sensor-node/Software/build/debug/stm32h7xx_hal_i2c.lst

29118 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/ccN54YTb.s page 1
1 .cpu cortex-m7
2 .arch armv7e-m
3 .fpu fpv5-d16
4 .eabi_attribute 28, 1
5 .eabi_attribute 20, 1
6 .eabi_attribute 21, 1
7 .eabi_attribute 23, 3
8 .eabi_attribute 24, 1
9 .eabi_attribute 25, 1
10 .eabi_attribute 26, 1
11 .eabi_attribute 30, 1
12 .eabi_attribute 34, 1
13 .eabi_attribute 18, 4
14 .file "stm32h7xx_hal_i2c.c"
15 .text
16 .Ltext0:
17 .cfi_sections .debug_frame
18 .file 1 "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c"
19 .section .text.I2C_Flush_TXDR,"ax",%progbits
20 .align 1
21 .syntax unified
22 .thumb
23 .thumb_func
25 I2C_Flush_TXDR:
26 .LVL0:
27 .LFB400:
1:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ******************************************************************************
3:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @file stm32h7xx_hal_i2c.c
4:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @author MCD Application Team
5:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C HAL module driver.
6:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral:
8:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * + Initialization and de-initialization functions
9:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * + IO operation functions
10:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * + Peripheral State and Errors functions
11:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
12:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ******************************************************************************
13:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @attention
14:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
15:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * Copyright (c) 2017 STMicroelectronics.
16:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * All rights reserved.
17:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
18:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This software is licensed under terms that can be found in the LICENSE file
19:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in the root directory of this software component.
20:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
21:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
22:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ******************************************************************************
23:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim
24:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ==============================================================================
25:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### How to use this driver #####
26:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ==============================================================================
27:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
28:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The I2C HAL driver can be used as follows:
29:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
30:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example:
31:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef hi2c;
ARM GAS /tmp/ccN54YTb.s page 2
32:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
33:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API:
34:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) Enable the I2Cx interface clock
35:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) I2C pins configuration
36:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs
37:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain
38:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process
39:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority
40:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel
41:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process
42:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for
43:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the transmit or receive stream or channel depends on Instance
44:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using
45:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the DMA handle parameters
46:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx stream or channel depends on Instance
47:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle
48:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on
49:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the DMA Tx or Rx stream or channel depends on Instance
50:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
51:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres
52:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure
53:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
54:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level H
55:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API.
56:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
57:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceRead
58:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
59:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver :
60:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
61:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Polling mode IO operation ***
62:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =================================
63:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
64:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using HAL_I2C_Master_Transmit(
65:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using HAL_I2C_Master_Receive()
66:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Transmit()
67:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Receive()
68:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
69:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Polling mode IO MEM operation ***
70:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =====================================
71:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
72:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using HAL_I2C_Mem_W
73:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using HAL_I2C_Mem_
74:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
75:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
76:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Interrupt mode IO operation ***
77:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===================================
78:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
79:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Trans
80:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can
81:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback()
82:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Receiv
83:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can
84:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
85:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Transmi
86:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can
87:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
88:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Receive_
ARM GAS /tmp/ccN54YTb.s page 3
89:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can
90:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
91:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
92:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
93:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Abort a master or memory I2C process communication with Interrupt using HAL_I2C_Master_Ab
94:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
95:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
96:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
97:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
98:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
99:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation ***
101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ==========================================================
102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition
104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** when a direction change during transfer
105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer
107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Option field values are defined through I2C_XFEROPTIONS and are listed below:
108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfac
109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** no sequential mode
110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con
111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and data to transfer without a final stop condition
112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a
113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** start condition, address and data to transfer without a final stop cond
114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** an then permit a call the same master sequential interface several time
115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (like HAL_I2C_Master_Seq_Transmit_IT() then HAL_I2C_Master_Seq_Transmit
116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA() then HAL_I2C_Master_Seq_Transmit_D
117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart
118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** transfer
120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases
121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart
122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** transfer
124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases
125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a re
126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** after several call of the same master sequential interface several time
127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (link with option I2C_FIRST_AND_NEXT_FRAME).
128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Usage can, transfer several bytes one by one using
129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT
130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT
131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA
132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA
133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** with option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME.
134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit
135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Receive sequence permit to call the opposite interface Receive or Tra
136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio
137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c
138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** each call of the same master sequential
139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** interface.
140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave
141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** each bytes using
142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT
143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT
144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA
145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA
ARM GAS /tmp/ccN54YTb.s page 4
146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** with option I2C_FIRST_FRAME then I2C_OTHER_FRAME.
147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to
148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** generation of STOP condition.
149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Different sequential I2C interfaces are listed below:
151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using
152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT() or using HAL_I2C_Master_Seq_Transmit_DMA()
153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is execut
154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_MasterTxCpltC
155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using
156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Master_Seq_Receive_IT() or using HAL_I2C_Master_Seq_Receive_DMA()
157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed
158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Abort a master or memory IT or DMA I2C process communication with Interrupt using HAL_I2
160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT()
163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_DisableListen_IT()
164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and users can
165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code to check the Address Match Code and the transmission direction reques
166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (Write/Read).
167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and users can
168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ListenCpltCallback()
169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using
170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Transmit_IT() or using HAL_I2C_Slave_Seq_Transmit_DMA()
171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is execute
172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCa
173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using
174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Receive_IT() or using HAL_I2C_Slave_Seq_Receive_DMA()
175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed a
176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Interrupt mode IO MEM operation ***
183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =======================================
184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address
186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Mem_Write_IT()
187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can
188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback()
189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address
190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Mem_Read_IT()
191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can
192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback()
193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** DMA mode IO operation ***
197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ==============================
198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using
200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Master_Transmit_DMA()
201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can
202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback()
ARM GAS /tmp/ccN54YTb.s page 5
203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using
204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Master_Receive_DMA()
205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can
206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using
208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Slave_Transmit_DMA()
209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can
210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using
212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Slave_Receive_DMA()
213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can
214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Abort a master or memory I2C process communication with Interrupt using HAL_I2C_Master_Ab
218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** DMA mode IO MEM operation ***
224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =================================
225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using
227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Mem_Write_DMA()
228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can
229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback()
230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using
231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Mem_Read_DMA()
232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can
233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback()
234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** I2C HAL driver macros list ***
239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ==================================
240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver.
242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE: Enable the I2C peripheral
244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE: Disable the I2C peripheral
245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode
246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not
247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag
248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt
249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt
250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Callback registration ***
252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================
253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1
255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks.
256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Use Functions HAL_I2C_RegisterCallback() or HAL_I2C_RegisterAddrCallback()
257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to register an interrupt callback.
258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Function HAL_I2C_RegisterCallback() allows to register following callbacks:
ARM GAS /tmp/ccN54YTb.s page 6
260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID
272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and a pointer to the user callback function.
273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : HAL_I2C_RegisterAddrCall
275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Use function HAL_I2C_UnRegisterCallback to reset a callback to the default
277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** weak function.
278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle,
279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and the Callback ID.
280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This function allows to reset following callbacks:
281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : HAL_I2C_UnRegisterAddrCallback().
294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** By default, after the HAL_I2C_Init() and when the state is HAL_I2C_STATE_RESET
296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions:
297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** examples HAL_I2C_MasterTxCpltCallback(), HAL_I2C_MasterRxCpltCallback().
298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are
299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** reset to the legacy weak functions in the HAL_I2C_Init()/ HAL_I2C_DeInit() only when
300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** these callbacks are null (not registered beforehand).
301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the HAL_I2C_Init()/ HAL_I2C_DeInit()
302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state.
303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Callbacks can be registered/unregistered in HAL_I2C_STATE_READY state only.
305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered
306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** in HAL_I2C_STATE_READY or HAL_I2C_STATE_RESET state,
307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks
309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** using HAL_I2C_RegisterCallback() before calling HAL_I2C_DeInit()
310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Init() function.
311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or
313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks
314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** are set to the corresponding weak functions.
315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
ARM GAS /tmp/ccN54YTb.s page 7
317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros
318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim
320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/
323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #include "stm32h7xx_hal.h"
324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @addtogroup STM32H7xx_HAL_Driver
326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C I2C
330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C HAL module driver
331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED
335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/
337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/
338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define
340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */
343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */
344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */
345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */
346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */
347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */
348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */
349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */
350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */
351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */
352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U
354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define SLAVE_ADDR_SHIFT 7U
355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define SLAVE_ADDR_MSK 0x06U
356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */
358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | \
359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)HAL_I2C_STATE_BUSY_RX) & \
360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY))))
361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Mask State define, keep only RX and TX bits */
362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE))
363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Default Value */
364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \
365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER))
366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Master Busy TX, combinaison of State LSB and Mode enum */
367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \
368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER))
369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Master Busy RX, combinaison of State LSB and Mode enum */
370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \
371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE))
372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Slave Busy TX, combinaison of State LSB and Mode enum */
373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \
ARM GAS /tmp/ccN54YTb.s page 8
374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE))
375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Slave Busy RX, combinaison of State LSB and Mode enum */
376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \
377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM))
378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Memory Busy TX, combinaison of State LSB and Mode enum */
379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \
380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM))
381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Memory Busy RX, combinaison of State LSB and Mode enum */
382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */
385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with
386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */
387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with
388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */
389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /*!< Bit field can be combinated with @ref I2
390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and @ref I2C_XFER_RX_IT */
391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /*!< Bit definition to manage addition of glo
393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and NACK treatment */
394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /*!< Bit definition to manage only STOP evene
395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /*!< Bit definition to manage only Reload of
396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */
398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U)
399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private macros ------------------------------------------------------------*/
404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @addtogroup I2C_Private_Macro
405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Macro to get remaining data to transfer on DMA side */
408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) __HAL_DMA_GET_COUNTER(__HANDLE__)
409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/
414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/
415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions
417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle DMA transfer */
420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma);
421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma);
422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma);
423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma);
424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma);
425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma);
426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle IT transfer */
429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c);
ARM GAS /tmp/ccN54YTb.s page 9
431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c);
432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode);
436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle IT transfer */
438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t
440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart);
441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T
443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart);
444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */
446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources);
448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources);
450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources);
452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources);
454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources);
456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources);
458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */
460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart);
462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart);
464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart);
466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart);
468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart);
470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */
472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to treat different error callback */
476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c);
477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to flush TXDR register */
479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c);
480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */
482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Request);
484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to Convert Specific options */
486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c);
487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
ARM GAS /tmp/ccN54YTb.s page 10
488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/
492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions
494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions
498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Initialization and Configuration functions
499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim
501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===============================================================================
502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### Initialization and de-initialization functions #####
503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===============================================================================
504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and
505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** deinitialize the I2Cx peripheral:
506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures
508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ).
509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with
511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the selected configuration:
512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Clock Timing
513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Own Address 1
514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Addressing mode (Master, Slave)
515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Dual Addressing mode
516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Own Address 2
517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Own Address 2 Mask
518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) General call mode
519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Nostretch mode
520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration
522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** of the selected I2Cx peripheral.
523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim
525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters
530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle.
531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c == NULL)
539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
ARM GAS /tmp/ccN54YTb.s page 11
545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode));
547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode));
548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2));
549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks));
550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode));
551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode));
552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET)
554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Allocate lock resource and initialize it */
556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED;
557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init the I2C Callback settings */
560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback
561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback
562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback
563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback
564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback
565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback
570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL)
572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */
574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c);
578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c);
581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable the selected I2C peripheral */
587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/
590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */
591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK;
592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/
594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */
595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN;
596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */
598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT)
599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1);
601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 12
602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */
603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1);
605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/
608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */
609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** SET_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10);
612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear the I2C ADD10 bit */
616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10);
617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */
619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK);
620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/
622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */
623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE;
624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \
627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/
630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode);
632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the selected I2C peripheral */
634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c);
635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral.
646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c)
651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c == NULL)
654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
ARM GAS /tmp/ccN54YTb.s page 13
659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */
664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL)
668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */
670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c);
674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c);
677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Release Lock */
685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Initialize the I2C MSP.
692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file
703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP.
708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
ARM GAS /tmp/ccN54YTb.s page 14
716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file
719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Register a User I2C Callback
725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * To be used instead of the weak predefined callback
726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note The HAL_I2C_RegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_RES
727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * to register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID.
728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered
731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values:
732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID
733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID
734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID
735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID
736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID
739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pCallback pointer to the Callback function
744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb
747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback)
748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (pCallback == NULL)
752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID)
762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback;
765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback;
769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback;
ARM GAS /tmp/ccN54YTb.s page 15
773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback;
777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback;
781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback;
785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback;
789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback;
793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback;
797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default :
808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID)
819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default :
829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
ARM GAS /tmp/ccN54YTb.s page 16
830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status;
847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Unregister an I2C Callback
851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback
852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note The HAL_I2C_UnRegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_R
853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * to un-register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID.
854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered
857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values:
858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values:
859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID
860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID
861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID
862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID
863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID
866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal
873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID)
879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb
882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb
886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
ARM GAS /tmp/ccN54YTb.s page 17
887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba
890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba
894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac
898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default :
925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID)
936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
ARM GAS /tmp/ccN54YTb.s page 18
944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default :
946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status;
964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback
968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback
969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function
972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC
975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (pCallback == NULL)
979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback = pCallback;
989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status;
1000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 19
1001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback
1004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal
1005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c)
1010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
1012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
1014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */
1016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
1020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
1021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
1023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
1024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status;
1027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
1033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions
1036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Data transfers functions
1037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
1038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim
1039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===============================================================================
1040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### IO operation functions #####
1041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===============================================================================
1042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
1043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data
1044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** transfers.
1045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) There are two modes of transfer:
1047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode.
1048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The status of all data processing is returned by the same function
1049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** after finishing transfer.
1050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts
1051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup.
1052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The end of the data processing will be indicated through the
1053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when
1054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** using DMA mode.
1055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Blocking mode functions are :
1057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit()
ARM GAS /tmp/ccN54YTb.s page 20
1058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive()
1059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit()
1060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive()
1061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write()
1062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read()
1063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady()
1064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are :
1066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT()
1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT()
1068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT()
1069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT()
1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT()
1071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT()
1072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT()
1073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT()
1074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT()
1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT()
1076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT()
1077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT()
1078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT()
1079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are :
1081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA()
1082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA()
1083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA()
1084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA()
1085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA()
1086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA()
1087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA()
1088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA()
1089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA()
1090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA()
1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode:
1093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback()
1094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback()
1095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback()
1096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback()
1097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback()
1098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback()
1099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback()
1100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback()
1101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback()
1102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback()
1103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim
1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
1106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode.
1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
ARM GAS /tmp/ccN54YTb.s page 21
1115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
1117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD
1120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout)
1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
1124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
1132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
1134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
1159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
1161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
1171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
ARM GAS /tmp/ccN54YTb.s page 22
1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode,
1173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
1178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode,
1180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
1200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */
1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
1203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
1223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is set */
1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 23
1229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
1234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode.
1251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
1258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa
1261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout)
1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
1272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
1274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
ARM GAS /tmp/ccN54YTb.s page 24
1286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
1288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
1294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
1300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */
1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
1320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */
1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
ARM GAS /tmp/ccN54YTb.s page 25
1343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is set */
1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
1350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
1354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode.
1371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
1376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
1379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout)
1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t tmpXferCount;
1383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef error;
1384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
1397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
ARM GAS /tmp/ccN54YTb.s page 26
1400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
1412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
1430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If 10bit addressing mode is selected */
1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
1440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
1448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
1449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 27
1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */
1458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK)
1459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
1464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
1465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until AF flag is set */
1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error = I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart);
1490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (error != HAL_OK)
1492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */
1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0 */
1496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpXferCount = hi2c->XferCount;
1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U))
1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset ErrorCode to NONE */
1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
1513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
ARM GAS /tmp/ccN54YTb.s page 28
1514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear AF flag */
1516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
1517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP flag is set */
1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP flag */
1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
1532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
1533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode
1558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
1563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout)
1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
ARM GAS /tmp/ccN54YTb.s page 29
1571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
1605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */
1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK)
1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */
1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */
1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET)
1625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
ARM GAS /tmp/ccN54YTb.s page 30
1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP flag is set */
1650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP flag */
1658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
1661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
1662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 31
1685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt
1687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size)
1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
1699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
1732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
1734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
1736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
1737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 32
1742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode,
1746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode,
1751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
1760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
1763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
1766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt
1777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *
1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size)
1787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
1789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
ARM GAS /tmp/ccN54YTb.s page 33
1799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
1822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ
1824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
1831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
1833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
1834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
1837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt
1848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
1855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 34
1856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
1874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
1877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
1879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
1895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
1898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
1901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt
1912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
ARM GAS /tmp/ccN54YTb.s page 35
1913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
1919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
1938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
1947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
1948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
1951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA
1962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
ARM GAS /tmp/ccN54YTb.s page 36
1970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size)
1972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
1974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
1975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
1996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
2009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
2011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
2013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
2016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
2023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
ARM GAS /tmp/ccN54YTb.s page 37
2027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
2028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
2030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
2034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
2035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
2037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr,
2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
2039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
2058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART
2059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U),
2060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
2061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
2076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
ARM GAS /tmp/ccN54YTb.s page 38
2084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
2095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
2098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
2099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, I2C_AUTOEND_MODE,
2100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
2101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
2110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA
2125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
2134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size)
2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
2137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 39
2141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
2158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
2171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
2173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
2176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
2178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
2179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
2183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
2186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
2187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
ARM GAS /tmp/ccN54YTb.s page 40
2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
2206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART *
2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_
2208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
2223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
2242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
2245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
ARM GAS /tmp/ccN54YTb.s page 41
2255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
2256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
2257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
2260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA
2272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size
2279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
2305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
2307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
2308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
2309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
ARM GAS /tmp/ccN54YTb.s page 42
2312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
2318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
2320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
2323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
2325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
2326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
2330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
2332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx,
2333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
2335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
2367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
ARM GAS /tmp/ccN54YTb.s page 43
2369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA
2408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
2415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
ARM GAS /tmp/ccN54YTb.s page 44
2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
2438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
2440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
2443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
2446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
2452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
2453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
2454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
ARM GAS /tmp/ccN54YTb.s page 45
2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
2486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address
2512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
2521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre
2524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti
2525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
ARM GAS /tmp/ccN54YTb.s page 46
2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
2544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
2546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL
2561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
2568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
2572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
2577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do
2580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
2589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
2592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
ARM GAS /tmp/ccN54YTb.s page 47
2597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */
2599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (hi2c->XferCount > 0U);
2619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
2621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
2628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
2631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
2632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address
2649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
ARM GAS /tmp/ccN54YTb.s page 48
2654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres
2661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim
2662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
2681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
2683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_
2698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
2705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
ARM GAS /tmp/ccN54YTb.s page 49
2711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do
2720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */
2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK)
2723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
2729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
2731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
2732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
2737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */
2739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
2740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
2748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (hi2c->XferCount > 0U);
2758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
2760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
2767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
ARM GAS /tmp/ccN54YTb.s page 50
2768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
2771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres
2787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd
2798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0U;
ARM GAS /tmp/ccN54YTb.s page 51
2825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
2829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
2830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */
2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
2833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */
2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
2836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */
2838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
2839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */
2841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
2845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
2847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
2848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_W
2851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
2861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre
2875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
ARM GAS /tmp/ccN54YTb.s page 52
2882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd
2886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
2916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
2917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */
2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
2920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */
2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
2923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */
2925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
2926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */
2928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
2931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
2932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
2934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
2935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_
2938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 53
2939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
2948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address
2962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA
2973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
2974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 54
2996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
3005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
3006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */
3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
3018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */
3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
3021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */
3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
3024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */
3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
3030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
3033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
3039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
3041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
3045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
3050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 55
3053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
3069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START
3070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
3079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address.
3108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
ARM GAS /tmp/ccN54YTb.s page 56
3110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
3113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
3114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be read
3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd
3119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
3120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
3125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
3129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
3135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
3144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
3151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
3152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */
3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
3164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */
3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
ARM GAS /tmp/ccN54YTb.s page 57
3167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */
3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */
3172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
3176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
3185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
3187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
3188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
3194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
3195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
3196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
3215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_STAR
3216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
ARM GAS /tmp/ccN54YTb.s page 58
3224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
3225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Checks if target device is ready for communication.
3254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This function is used with Memory devices
3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Trials Number of trials
3260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
3261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria
3264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout)
3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
3267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL;
3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
3271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp1;
3273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp2;
3274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
3278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 59
3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do
3289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Start */
3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress);
3292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
3294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/
3295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
3296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
3298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET))
3301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
3303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
3311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
3320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
3321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */
3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET)
3325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
3328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* A non acknowledge appear during STOP Flag waiting process, a new trial must be perform
3330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
3331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
3333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset the error code for next trial */
3336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 60
3338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
3341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* A acknowledge appear during STOP Flag waiting process, this mean that device respond t
3346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
3348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Device is ready */
3351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* A non acknowledge is detected, this mean that device not respond to its address,
3362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** a new trial must be performed */
3363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
3365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
3366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
3368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
3369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
3371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/
3375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Trials */
3380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Trials++;
3381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_Trials < Trials) && (status == HAL_ERROR))
3383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_OK;
3385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (I2C_Trials < Trials);
3388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
3394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 61
3395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte
3408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
3424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
3434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
ARM GAS /tmp/ccN54YTb.s page 62
3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \
3456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
3457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
3459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
3461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
3463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
3464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
3466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
3467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */
3472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \
3474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
3491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
3492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
3494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
3508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
ARM GAS /tmp/ccN54YTb.s page 63
3509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA.
3522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin
3533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
3539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
3549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 64
3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \
3571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
3574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
3576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
3579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
3582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */
3587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \
3589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
3606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
3611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
3614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
3617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr,
3621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
3622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 65
3623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
3641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
3642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
3644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
3651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
3660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
3661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
3664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 66
3680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
3683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
3686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
3688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
3704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter
3719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8
3730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
3734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
ARM GAS /tmp/ccN54YTb.s page 67
3737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */
3767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \
3769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
3786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
ARM GAS /tmp/ccN54YTb.s page 68
3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
3795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA
3806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
3817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
3821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
ARM GAS /tmp/ccN54YTb.s page 69
3851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */
3855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \
3857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
3879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
3882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
3885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
3889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
3890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 70
3908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
3909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
3912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
3921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
3922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
3925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
3947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
3948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
3949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
3950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
3958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
3959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
ARM GAS /tmp/ccN54YTb.s page 71
3965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit
3974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S
3983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions)
3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp;
3987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
3994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
3996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
4001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
4006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
4008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */
4010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
4011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
4014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
4016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
ARM GAS /tmp/ccN54YTb.s page 72
4022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */
4024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
4025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
4028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
4034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
4038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
4048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
4049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
4061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */
4062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
4063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit
4074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
4075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
4078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
ARM GAS /tmp/ccN54YTb.s page 73
4079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
4080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t
4083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions)
4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp;
4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
4090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
4091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
4093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
4095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
4097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
4104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
4105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
4107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
4108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
4109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */
4111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
4112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
4114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
4119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
4123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */
4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
4126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
4134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
ARM GAS /tmp/ccN54YTb.s page 74
4136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
4145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */
4147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
4148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
4151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
4158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
4165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
4178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
4180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
4181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
4183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
4188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
4189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
ARM GAS /tmp/ccN54YTb.s page 75
4193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
4198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
4206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
4208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
4209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset XferSize */
4211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0;
4212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
4216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
4220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
4221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
4230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
4241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
4245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 76
4250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with
4258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
4259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
4262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
4263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
4264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si
4267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions)
4268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp;
4271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
4273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
4274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
4276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
4278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
4280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
4284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
4285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
4290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
4292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */
4294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
4297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
4306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 77
4307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */
4308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
4309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
4312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
4318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
4322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
4325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
4330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
4333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
4345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */
4346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with
4358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
4359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
4362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
4363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
ARM GAS /tmp/ccN54YTb.s page 78
4364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S
4367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions)
4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp;
4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
4374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
4375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
4377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
4379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
4381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
4385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
4386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
4391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
4392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
4393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */
4395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
4398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
4407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */
4409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
4410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
4413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
4418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
4420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 79
4421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
4422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
4429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */
4431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
4432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
4435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
4442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
4452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
4461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
4462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
4464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
4465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
4467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR,
4472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
4473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
4477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
ARM GAS /tmp/ccN54YTb.s page 80
4478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
4481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
4482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
4490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
4492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
4493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset XferSize */
4495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0;
4496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
4500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
4504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
4505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
4514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
4524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
4525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
4529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */
4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
4531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
ARM GAS /tmp/ccN54YTb.s page 81
4535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt.
4542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c)
4547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
4549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
4552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the Address Match interrupt */
4554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
4561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt.
4566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C
4568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c)
4571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp;
4574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */
4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
4577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK;
4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
4580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
4583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable the Address Match interrupt */
4585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
ARM GAS /tmp/ccN54YTb.s page 82
4592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Abort a master or memory I2C IT or DMA process communication with Interrupt.
4597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
4600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
4601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress)
4604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode;
4606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmp_mode == HAL_I2C_MODE_MASTER) || (tmp_mode == HAL_I2C_MODE_MEM))
4608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
4613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
4614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
4617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
4619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
4621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
4622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
4626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */
4629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT;
4630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */
4632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe
4633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP);
4634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
4641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
4642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong usage of abort function */
4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */
ARM GAS /tmp/ccN54YTb.s page 83
4649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
4655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
4659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request.
4663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) /* Derogation MISRAC2012-Rule-8.13 */
4668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
4671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
4672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/
4674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferISR != NULL)
4675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources);
4677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request.
4682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c)
4687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
4689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
4690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
4691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/
4693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \
4694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
4695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR;
4697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear BERR flag */
4699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
4700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/
4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \
4704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
4705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 84
4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR;
4707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear OVR flag */
4709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
4710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/
4713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \
4714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
4715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO;
4717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ARLO flag */
4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
4720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
4723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
4724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */
4726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_
4727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror);
4729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback.
4734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c)
4739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file
4745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback.
4750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
4755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file
4761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 85
4763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback.
4765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c)
4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file
4776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback.
4781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
4786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file
4792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Slave Address Match callback.
4797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE
4800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code
4801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM
4804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(TransferDirection);
4808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(AddrMatchCode);
4809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file
4812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Listen Complete callback.
4817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
ARM GAS /tmp/ccN54YTb.s page 86
4820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c)
4822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file
4828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback.
4833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c)
4838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file
4844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback.
4849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c)
4854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file
4860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C error callback.
4865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c)
4870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file
4876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
ARM GAS /tmp/ccN54YTb.s page 87
4877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C abort callback.
4881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c)
4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file
4892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
4897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions
4900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions
4901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
4902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim
4903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===============================================================================
4904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions #####
4905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===============================================================================
4906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
4907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral
4908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and the data flow.
4909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim
4911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
4912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Return the I2C handle state.
4916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL state
4919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c)
4921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return I2C handle state */
4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->State;
4924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode.
4928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for I2C module
4930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL mode
4931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c)
4933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 88
4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->Mode;
4935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Return the I2C error code.
4939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval I2C Error Code
4942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c)
4944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->ErrorCode;
4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
4950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
4954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions
4957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
4958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt.
4962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
4965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
4966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
4969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources)
4970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
4972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
4973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
4978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
4979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
4981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */
4984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
4985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
4986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
4987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
4990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 89
4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
4992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
4993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
4996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
4999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
5001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) == RESET) && \
5007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
5008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)))
5009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
5011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
5012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
5015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
5018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \
5024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
5027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
5029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
5034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
5039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize,
5041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
5042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize,
5046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 90
5048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
5054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
5056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
5061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \
5067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
5070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
5072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
5074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
5075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */
5077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
5078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
5082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
5089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
5096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */
5102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
5103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 91
5105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with Interrupt.
5113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources)
5121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
5123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
5124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
5129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */
5135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
5136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
5143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
5144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
5146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
5147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
5150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
5152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
5153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
5158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Memaddress == 0xFFFFFFFFU)
5161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 92
5162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
5164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
5167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write LSB part of Memory Address */
5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress;
5175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */
5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
5178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \
5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
5184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
5190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
5196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
5201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \
5206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupt related to address step */
5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
5212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
5213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ;
5217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 93
5219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */
5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
5234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
5239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
5242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */
5245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
5246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt.
5256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources)
5264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
5266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
5267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */
5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if STOPF is set */
5272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave complete process */
ARM GAS /tmp/ccN54YTb.s page 94
5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags);
5277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
5279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */
5282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
5283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0*/
5284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */
5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
5286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
5289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
5290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */
5292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
5293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)
5295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */
5303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
5315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
5329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
5330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
5332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 95
5333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
5335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
5337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
5338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \
5344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
5345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \
5351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
5352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags);
5354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
5356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
5357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */
5359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */
5360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if all Data have already been sent */
5361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */
5362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
5363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
5369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
5376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */
5378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
5386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
ARM GAS /tmp/ccN54YTb.s page 96
5390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA.
5396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources)
5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
5406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
5412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */
5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
5421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
5422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
5423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
5424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
5426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \
5429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC interrupt */
5432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI);
5433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
5435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Recover Slave address */
5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
5438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
5440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 97
5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
5449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
5451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */
5459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
5460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
5462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
5463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
5465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
5468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
5472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
5478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
5480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
5481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
5485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \
5491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
5494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
5496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
5498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
5499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */
5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
5502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
ARM GAS /tmp/ccN54YTb.s page 98
5504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
5507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
5513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
5518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */
5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
5522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
5526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with DMA.
5536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources)
5544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
5546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
5551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */
5557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
5560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
ARM GAS /tmp/ccN54YTb.s page 99
5561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
5563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
5565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TXIS) != RESET) && \
5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
5569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write LSB part of Memory Address */
5571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress;
5572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */
5574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
5575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \
5577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupt related to address step */
5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable only Error interrupt */
5583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
5584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
5586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
5588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
5593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
5599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
5603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
5608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
5612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
5617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
ARM GAS /tmp/ccN54YTb.s page 100
5618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \
5622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupt related to address step */
5625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable only Error and NACK interrupt for data transfer */
5628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
5629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ;
5633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
5640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
5642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */
5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
5650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
5653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
5654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
5656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
5659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
5663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
5666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */
5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
5670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
5674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 101
5675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA.
5684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources)
5692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
5695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
5696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */
5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if STOPF is set */
5701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
5702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave complete process */
5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags);
5706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
5708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */
5711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
5712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0 */
5713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */
5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) ||
5715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
5716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */
5718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
5719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)
5721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U)
5723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmanack = 1U;
5725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */
5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
5731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 102
5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET)
5733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U)
5735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmanack = 1U;
5737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (treatdmanack == 1U)
5742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
5744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
5745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
5746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */
5748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags);
5749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM
5751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
5756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */
5759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
5771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
5775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */
5778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpstate = hi2c->State;
5779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
5781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
5783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
5785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN
5787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
ARM GAS /tmp/ccN54YTb.s page 103
5789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
5793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */
5803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \
5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
5808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags);
5810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
5814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques
5824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
5827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
5828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
5829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
5830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
5831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
5832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
5835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t
5836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart)
5837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
5839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 104
5846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */
5847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
5848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Memory Address */
5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */
5853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send MSB of Memory Address */
5856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
5857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send LSB of Memory Address */
5865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */
5869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK)
5870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request
5879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
5882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
5883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
5884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
5885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
5886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
5887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
5890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T
5891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart)
5892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
5894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */
5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
ARM GAS /tmp/ccN54YTb.s page 105
5903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Memory Address */
5905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */
5908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send MSB of Memory Address */
5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
5912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send LSB of Memory Address */
5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TC flag is set */
5924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK)
5925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Address complete process callback.
5934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
5935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
5937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection;
5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t slaveaddrcode;
5942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd1code;
5943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd2code;
5944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
5946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(ITFlags);
5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */
5949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
5950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c);
5952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
5954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
5955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If 10bits addressing mode is selected */
5957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
5958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK))
ARM GAS /tmp/ccN54YTb.s page 106
5960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = ownadd1code;
5962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount++;
5963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
5964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Address Event counter */
5966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount = 0U;
5967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
5969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
5970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */
5975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
5977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = ownadd2code;
5985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR Interrupts */
5987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
5988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */
5993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
5995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */
6001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR Interrupts */
6004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
6005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */
6010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
6012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
6014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 107
6017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Else clear address flag only */
6018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
6021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
6022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Master sequential complete process.
6030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c)
6034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */
6036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */
6039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */
6040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
6041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
6044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
6045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
6047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
6048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
6055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
6057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
6060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
6064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
6065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
6067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
6068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
ARM GAS /tmp/ccN54YTb.s page 108
6074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
6075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
6077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Slave sequential complete process.
6083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c)
6087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
6089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */
6091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
6094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
6095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
6100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
6107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
6110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */
6112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
6113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
6114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
6116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
6117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
6124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 109
6131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */
6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
6133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
6134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
6136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
6137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
6144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
6146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
6151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Master complete process.
6156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
6158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
6164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t tmpreg;
6165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
6167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
6168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
6171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
6174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
6176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
6178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
6179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
6183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
6186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
6187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 110
6188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
6190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET)
6193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set acknowledge error code */
6198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Fetch Last receive data if any */
6202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET))
6203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
6205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR;
6206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
6207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
6210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
6213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE))
6217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */
6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
6223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
6228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c);
6237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c);
6239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 111
6245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
6251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
6253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
6257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
6258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
6263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c);
6272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c);
6274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
6286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
6288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
6294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Slave complete process.
6299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
6301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
ARM GAS /tmp/ccN54YTb.s page 112
6302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
6306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
6307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
6309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
6311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
6312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
6315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
6317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
6320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
6322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
6323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (tmpstate == HAL_I2C_STATE_LISTEN)
6325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT | I2C_XFER_RX_IT);
6327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
6332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
6335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
6336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
6339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
6344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
6345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
6350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx);
6352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 113
6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
6360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx);
6362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
6367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */
6370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)
6371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
6373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
6374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
6377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
6380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
6382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
6384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
6385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */
6389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
6390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
6396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
6397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */
6399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
6400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0*/
6401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */
6402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
6403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
6405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
6406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
6407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */
6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
6410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)
6412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
6414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 114
6416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
6417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */
6420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
6421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
6426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
6432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
6433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
6436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
6439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
6442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
6448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE)
6450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
6453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
6456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */
6458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
6459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
6462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */
6464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 115
6473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
6474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
6476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
6478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
6482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
6494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
6507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
6509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Listen complete process.
6515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
6517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
6520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
6522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
6527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */
6529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET)
ARM GAS /tmp/ccN54YTb.s page 116
6530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
6533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
6536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
6538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
6540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
6541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all Interrupts*/
6548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT);
6549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
6551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
6557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
6559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
6561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C interrupts error process.
6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ErrorCode Error code to handle.
6568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode)
6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
6573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmppreviousstate;
6575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
6577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U;
6580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set new error code */
6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode;
6583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
6585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) ||
6586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
ARM GAS /tmp/ccN54YTb.s page 117
6587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
6588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */
6590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT);
6591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */
6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
6594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
6595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all interrupts */
6599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT);
6600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
6602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */
6605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This change will be do later */
6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT)
6607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */
6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a STOPF is detected */
6612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET)
6613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
6615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
6621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
6622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
6626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX transfer if any */
6629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState;
6630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \
6632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
6633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
6635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY)
6640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
6642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
6643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
ARM GAS /tmp/ccN54YTb.s page 118
6644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */
6649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
6650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
6652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
6653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX transfer if any */
6661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \
6662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
6663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
6665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY)
6670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
6672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
6673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
6674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */
6679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
6680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */
6682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
6683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Error callback treatment.
6698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
ARM GAS /tmp/ccN54YTb.s page 119
6701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c)
6702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
6704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c);
6714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c);
6716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c);
6728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c);
6730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Tx data register flush process.
6736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c)
6740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
28 .loc 1 6740 1 view -0
29 .cfi_startproc
30 @ args = 0, pretend = 0, frame = 0
31 @ frame_needed = 0, uses_anonymous_args = 0
32 @ link register save eliminated.
6741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a pending TXIS flag is set */
6742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */
6743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET)
33 .loc 1 6743 3 view .LVU1
34 .loc 1 6743 7 is_stmt 0 view .LVU2
35 0000 0368 ldr r3, [r0]
36 0002 9A69 ldr r2, [r3, #24]
37 .loc 1 6743 6 view .LVU3
38 0004 12F0020F tst r2, #2
39 0008 01D0 beq .L2
6744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U;
ARM GAS /tmp/ccN54YTb.s page 120
40 .loc 1 6745 5 is_stmt 1 view .LVU4
41 .loc 1 6745 26 is_stmt 0 view .LVU5
42 000a 0022 movs r2, #0
43 000c 9A62 str r2, [r3, #40]
44 .L2:
6746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register if not empty */
6749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)
45 .loc 1 6749 3 is_stmt 1 view .LVU6
46 .loc 1 6749 7 is_stmt 0 view .LVU7
47 000e 0368 ldr r3, [r0]
48 0010 9A69 ldr r2, [r3, #24]
49 .loc 1 6749 6 view .LVU8
50 0012 12F0010F tst r2, #1
51 0016 03D1 bne .L1
6750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE);
52 .loc 1 6751 5 is_stmt 1 view .LVU9
53 0018 9A69 ldr r2, [r3, #24]
54 001a 42F00102 orr r2, r2, #1
55 001e 9A61 str r2, [r3, #24]
56 .L1:
6752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
57 .loc 1 6753 1 is_stmt 0 view .LVU10
58 0020 7047 bx lr
59 .cfi_endproc
60 .LFE400:
62 .section .text.I2C_TransferConfig,"ax",%progbits
63 .align 1
64 .syntax unified
65 .thumb
66 .thumb_func
68 I2C_TransferConfig:
69 .LVL1:
70 .LFB412:
6754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback.
6757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
6758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma)
6761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
6769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
6770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupt */
6772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
6773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 121
6774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
6775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Buffer pointer */
6778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
6779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the XferSize to transfer */
6781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
6782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
6784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
6788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
6791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
6792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
6793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */
6800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
6801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback.
6808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
6809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma)
6812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
6816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
6818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */
6823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
6824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
6829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */
6830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
ARM GAS /tmp/ccN54YTb.s page 122
6831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback.
6837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
6838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma)
6841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
6849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
6850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupt */
6852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
6853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
6855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Buffer pointer */
6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
6859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the XferSize to transfer */
6861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
6862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
6864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
6868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
6871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr,
6872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
6873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */
6880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
6881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback.
ARM GAS /tmp/ccN54YTb.s page 123
6888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
6889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma)
6892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
6896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \
6898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
6899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
6904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
6909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */
6910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
6911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C communication error callback.
6917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
6918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma)
6921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U;
6923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
6927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U)
6929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmaerror = 1U;
6931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
6935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U)
6937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmaerror = 1U;
6939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a FIFO error is detected, if true normal use case, so no specific action to perform *
6943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (!((HAL_DMA_GetError(hdma) == HAL_DMA_ERROR_FE)) && (treatdmaerror != 0U))
6944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 124
6945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Acknowledge */
6946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
6947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C communication abort callback
6956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure).
6957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle.
6958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma)
6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset AbortCpltCallback */
6966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
6967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
6971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. It waits
6981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * until a flag is no longer in the specified status.
6982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
6984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check.
6985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Status The actual Flag status (SET or RESET).
6986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
6987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
6988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
6989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
6991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart)
6992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
6994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */
6996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
6997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
ARM GAS /tmp/ccN54YTb.s page 125
7002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
7003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
7005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status))
7007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
7009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
7013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
7015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
7020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
7023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag.
7024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
7026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
7027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
7028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
7029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
7030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
7031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart)
7032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
7034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */
7036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
7037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
7039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
7042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
7043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
7045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET))
7047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
7049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
7053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
7056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 126
7059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
7061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
7064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag.
7065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
7067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
7068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
7069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
7070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
7072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart)
7073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
7075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */
7077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
7078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
7080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
7083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
7084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET))
7086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
7088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
7095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
7099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
7102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag.
7103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
7105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
7106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
7107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
7108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
7109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
7110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart)
7111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
7113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) && (status == HAL_OK))
7115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 127
7116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */
7117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
7120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a STOPF is detected */
7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) && (status == HAL_OK))
7124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an RXNE is pending */
7126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */
7127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U))
7128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return HAL_OK */
7130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */
7131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_OK;
7132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check a no-acknowledge have been detected */
7135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
7136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
7138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF;
7139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
7141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
7142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
7144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
7145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
7150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
7153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
7155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) && (status == HAL_OK))
7162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET))
7164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
7169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
7172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 128
7173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status;
7176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
7179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles errors detection during an I2C Communication.
7180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
7182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
7183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
7184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
7185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
7186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Ti
7187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
7189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
7190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0;
7191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart = Tickstart;
7192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp1;
7193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2;
7194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF))
7196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACKF Flag */
7198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
7199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP Flag is set or timeout occurred */
7201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */
7202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK))
7203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
7205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
7206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
7208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP);
7210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode;
7211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* In case of I2C still busy, try to regenerate a STOP manually */
7213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \
7214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
7215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE))
7216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */
7218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
7219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Tick with new reference */
7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
7222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
7225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF)
7228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_TIMEOUT;
ARM GAS /tmp/ccN54YTb.s page 129
7230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
7232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
7234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* In case STOP Flag is detected, clear it */
7241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (status == HAL_OK)
7242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
7244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
7245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_AF;
7248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
7250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Refresh Content of Status register */
7253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** itflag = hi2c->Instance->ISR;
7254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Then verify if an additional errors occurs */
7256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a Bus error occurred */
7257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR))
7258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR;
7260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear BERR flag */
7262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
7263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
7265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an Over-Run/Under-Run error occurred */
7268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR))
7269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_OVR;
7271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear OVR flag */
7273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
7274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
7276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an Arbitration Loss error occurred */
7279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO))
7280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_ARLO;
7282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ARLO flag */
7284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
7285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
ARM GAS /tmp/ccN54YTb.s page 130
7287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (status != HAL_OK)
7290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
7292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
7293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
7295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
7296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= error_code;
7298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
7302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status;
7306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
7309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar
7310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
7311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed.
7312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed.
7313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter must be a value between 0 and 255.
7314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation.
7315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values:
7316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode .
7317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode.
7318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode.
7319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation.
7320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values:
7321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition.
7322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0).
7323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request.
7324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request.
7325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
7326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
7327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
7328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Request)
7329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
71 .loc 1 7329 1 is_stmt 1 view -0
72 .cfi_startproc
73 @ args = 4, pretend = 0, frame = 0
74 @ frame_needed = 0, uses_anonymous_args = 0
75 @ link register save eliminated.
76 .loc 1 7329 1 is_stmt 0 view .LVU12
77 0000 10B4 push {r4}
78 .cfi_def_cfa_offset 4
79 .cfi_offset 4, -4
80 0002 019C ldr r4, [sp, #4]
7330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp;
81 .loc 1 7330 3 is_stmt 1 view .LVU13
7331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
ARM GAS /tmp/ccN54YTb.s page 131
7333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
82 .loc 1 7333 3 view .LVU14
7334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode));
83 .loc 1 7334 3 view .LVU15
7335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request));
84 .loc 1 7335 3 view .LVU16
7336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
7338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \
85 .loc 1 7338 3 view .LVU17
86 .loc 1 7338 43 is_stmt 0 view .LVU18
87 0004 C1F30901 ubfx r1, r1, #0, #10
88 .LVL2:
89 .loc 1 7338 59 view .LVU19
90 0008 41EA0241 orr r1, r1, r2, lsl #16
7339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
91 .loc 1 7339 79 view .LVU20
92 000c 1943 orrs r1, r1, r3
7338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
93 .loc 1 7338 10 view .LVU21
94 000e 2143 orrs r1, r1, r4
7338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
95 .loc 1 7338 7 view .LVU22
96 0010 21F00041 bic r1, r1, #-2147483648
97 .LVL3:
7340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U));
7341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* update CR2 register */
7343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, \
98 .loc 1 7343 3 is_stmt 1 view .LVU23
99 0014 0268 ldr r2, [r0]
100 .LVL4:
101 .loc 1 7343 3 is_stmt 0 view .LVU24
102 0016 5368 ldr r3, [r2, #4]
103 .LVL5:
104 .loc 1 7343 3 view .LVU25
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]
7344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \
7345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \
7346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), tmp);
7347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
114 .loc 1 7347 1 view .LVU26
115 0036 5DF8044B ldr r4, [sp], #4
116 .cfi_restore 4
117 .cfi_def_cfa_offset 0
118 .LVL6:
119 .loc 1 7347 1 view .LVU27
120 003a 7047 bx lr
121 .cfi_endproc
ARM GAS /tmp/ccN54YTb.s page 132
122 .LFE412:
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 .LFB413:
7348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
7350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts.
7351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
7353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
7354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
7355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
7356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
7357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
133 .loc 1 7357 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.
7358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpisr = 0U;
138 .loc 1 7358 3 view .LVU29
7359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Master_ISR_DMA) && \
139 .loc 1 7360 3 view .LVU30
140 .loc 1 7360 12 is_stmt 0 view .LVU31
141 0000 436B ldr r3, [r0, #52]
142 .loc 1 7360 6 view .LVU32
143 0002 234A ldr r2, .L22
144 0004 9342 cmp r3, r2
145 0006 1FD0 beq .L7
146 .loc 1 7360 45 discriminator 1 view .LVU33
147 0008 224A ldr r2, .L22+4
148 000a 9342 cmp r3, r2
149 000c 1CD0 beq .L7
7361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \
150 .loc 1 7361 44 view .LVU34
151 000e 224A ldr r2, .L22+8
152 0010 9342 cmp r3, r2
153 0012 19D0 beq .L7
7362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->XferISR != I2C_Mem_ISR_DMA))
7363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
154 .loc 1 7364 5 is_stmt 1 view .LVU35
155 .loc 1 7364 8 is_stmt 0 view .LVU36
156 0014 11F4004F tst r1, #32768
157 0018 0FD1 bne .L18
7358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
158 .loc 1 7358 12 view .LVU37
159 001a 0023 movs r3, #0
160 .L8:
161 .LVL8:
7365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 133
7366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
7367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
7368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
162 .loc 1 7370 5 is_stmt 1 view .LVU38
163 .loc 1 7370 8 is_stmt 0 view .LVU39
164 001c 11F0010F tst r1, #1
165 0020 01D0 beq .L9
7371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
7373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI;
166 .loc 1 7373 7 is_stmt 1 view .LVU40
167 .loc 1 7373 14 is_stmt 0 view .LVU41
168 0022 43F0F203 orr r3, r3, #242
169 .LVL9:
170 .L9:
7374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
171 .loc 1 7376 5 is_stmt 1 view .LVU42
172 .loc 1 7376 8 is_stmt 0 view .LVU43
173 0026 11F0020F tst r1, #2
174 002a 08D0 beq .L10
7377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
7379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI;
175 .loc 1 7379 7 is_stmt 1 view .LVU44
176 .loc 1 7379 14 is_stmt 0 view .LVU45
177 002c 43F0F403 orr r3, r3, #244
178 .LVL10:
7380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
179 .loc 1 7382 5 is_stmt 1 view .LVU46
180 .L11:
7383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
7385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
7386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
181 .loc 1 7388 5 view .LVU47
182 .loc 1 7388 8 is_stmt 0 view .LVU48
183 0030 2029 cmp r1, #32
184 0032 1BD1 bne .L12
7389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */
7391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
185 .loc 1 7391 7 is_stmt 1 view .LVU49
186 .loc 1 7391 14 is_stmt 0 view .LVU50
187 0034 43F02003 orr r3, r3, #32
188 .LVL11:
189 .loc 1 7391 14 view .LVU51
190 0038 18E0 b .L12
191 .LVL12:
192 .L18:
ARM GAS /tmp/ccN54YTb.s page 134
7367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
193 .loc 1 7367 14 view .LVU52
194 003a B823 movs r3, #184
195 003c EEE7 b .L8
196 .LVL13:
197 .L10:
7382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
198 .loc 1 7382 5 is_stmt 1 view .LVU53
7382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
199 .loc 1 7382 8 is_stmt 0 view .LVU54
200 003e 1029 cmp r1, #16
201 0040 F6D1 bne .L11
7385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
202 .loc 1 7385 7 is_stmt 1 view .LVU55
7385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
203 .loc 1 7385 14 is_stmt 0 view .LVU56
204 0042 43F09003 orr r3, r3, #144
205 .LVL14:
7388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
206 .loc 1 7388 5 is_stmt 1 view .LVU57
207 0046 11E0 b .L12
208 .LVL15:
209 .L7:
7392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
7396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
210 .loc 1 7397 5 view .LVU58
211 .loc 1 7397 8 is_stmt 0 view .LVU59
212 0048 11F4004F tst r1, #32768
213 004c 13D1 bne .L19
7358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
214 .loc 1 7358 12 view .LVU60
215 004e 0023 movs r3, #0
216 .L13:
217 .LVL16:
7398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
7400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
7401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
218 .loc 1 7403 5 is_stmt 1 view .LVU61
219 .loc 1 7403 8 is_stmt 0 view .LVU62
220 0050 11F0010F tst r1, #1
221 0054 01D0 beq .L14
7404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
7406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI;
222 .loc 1 7406 7 is_stmt 1 view .LVU63
223 .loc 1 7406 14 is_stmt 0 view .LVU64
224 0056 43F0F203 orr r3, r3, #242
225 .LVL17:
226 .L14:
7407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 135
7408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
227 .loc 1 7409 5 is_stmt 1 view .LVU65
228 .loc 1 7409 8 is_stmt 0 view .LVU66
229 005a 11F0020F tst r1, #2
230 005e 0CD0 beq .L15
7410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
7412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI;
231 .loc 1 7412 7 is_stmt 1 view .LVU67
232 .loc 1 7412 14 is_stmt 0 view .LVU68
233 0060 43F0F403 orr r3, r3, #244
234 .LVL18:
7413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
235 .loc 1 7415 5 is_stmt 1 view .LVU69
236 .L16:
7416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
7418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
7419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
237 .loc 1 7421 5 view .LVU70
238 .loc 1 7421 8 is_stmt 0 view .LVU71
239 0064 2029 cmp r1, #32
240 0066 0DD0 beq .L20
241 .L17:
7422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */
7424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI);
7425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT)
242 .loc 1 7427 5 is_stmt 1 view .LVU72
243 .loc 1 7427 8 is_stmt 0 view .LVU73
244 0068 4029 cmp r1, #64
245 006a 0ED0 beq .L21
246 .LVL19:
247 .L12:
7428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */
7430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
7431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable interrupts only at the end */
7435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */
7436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* all interrupts requested done */
7437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr);
248 .loc 1 7437 3 is_stmt 1 view .LVU74
249 006c 0168 ldr r1, [r0]
250 .LVL20:
251 .loc 1 7437 3 is_stmt 0 view .LVU75
252 006e 0A68 ldr r2, [r1]
253 0070 1343 orrs r3, r3, r2
ARM GAS /tmp/ccN54YTb.s page 136
254 .LVL21:
255 .loc 1 7437 3 view .LVU76
256 0072 0B60 str r3, [r1]
7438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
257 .loc 1 7438 1 view .LVU77
258 0074 7047 bx lr
259 .LVL22:
260 .L19:
7400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
261 .loc 1 7400 14 view .LVU78
262 0076 B823 movs r3, #184
263 0078 EAE7 b .L13
264 .LVL23:
265 .L15:
7415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
266 .loc 1 7415 5 is_stmt 1 view .LVU79
7415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
267 .loc 1 7415 8 is_stmt 0 view .LVU80
268 007a 1029 cmp r1, #16
269 007c F2D1 bne .L16
7418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
270 .loc 1 7418 7 is_stmt 1 view .LVU81
7418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
271 .loc 1 7418 14 is_stmt 0 view .LVU82
272 007e 43F09003 orr r3, r3, #144
273 .LVL24:
7421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
274 .loc 1 7421 5 is_stmt 1 view .LVU83
275 0082 F1E7 b .L17
276 .L20:
7424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
277 .loc 1 7424 7 view .LVU84
7424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
278 .loc 1 7424 14 is_stmt 0 view .LVU85
279 0084 43F06003 orr r3, r3, #96
280 .LVL25:
7427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
281 .loc 1 7427 5 is_stmt 1 view .LVU86
282 0088 F0E7 b .L12
283 .L21:
7430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
284 .loc 1 7430 7 view .LVU87
7430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
285 .loc 1 7430 14 is_stmt 0 view .LVU88
286 008a 43F04003 orr r3, r3, #64
287 .LVL26:
7430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
288 .loc 1 7430 14 view .LVU89
289 008e EDE7 b .L12
290 .L23:
291 .align 2
292 .L22:
293 0090 00000000 .word I2C_Master_ISR_DMA
294 0094 00000000 .word I2C_Slave_ISR_DMA
295 0098 00000000 .word I2C_Mem_ISR_DMA
296 .cfi_endproc
297 .LFE413:
ARM GAS /tmp/ccN54YTb.s page 137
299 .section .text.I2C_Disable_IRQ,"ax",%progbits
300 .align 1
301 .syntax unified
302 .thumb
303 .thumb_func
305 I2C_Disable_IRQ:
306 .LVL27:
307 .LFB414:
7439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
7441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts.
7442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
7444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
7445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
7446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
7447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
7448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
308 .loc 1 7448 1 is_stmt 1 view -0
309 .cfi_startproc
310 @ args = 0, pretend = 0, frame = 0
311 @ frame_needed = 0, uses_anonymous_args = 0
312 @ link register save eliminated.
7449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpisr = 0U;
313 .loc 1 7449 3 view .LVU91
7450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
314 .loc 1 7451 3 view .LVU92
315 .loc 1 7451 6 is_stmt 0 view .LVU93
316 0000 11F0010F tst r1, #1
317 0004 09D0 beq .L31
7452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC and TXI interrupts */
7454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI;
318 .loc 1 7454 5 is_stmt 1 view .LVU94
319 .LVL28:
7455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN)
320 .loc 1 7456 5 view .LVU95
321 .loc 1 7456 24 is_stmt 0 view .LVU96
322 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
323 .loc 1 7456 8 view .LVU97
324 000a 03F02803 and r3, r3, #40
325 000e 282B cmp r3, #40
326 0010 01D0 beq .L34
7457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
7459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
327 .loc 1 7459 14 view .LVU98
328 0012 F223 movs r3, #242
329 0014 02E0 b .L25
330 .L34:
7454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
331 .loc 1 7454 12 view .LVU99
332 0016 4223 movs r3, #66
333 0018 00E0 b .L25
334 .LVL29:
ARM GAS /tmp/ccN54YTb.s page 138
335 .L31:
7449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
336 .loc 1 7449 12 view .LVU100
337 001a 0023 movs r3, #0
338 .LVL30:
339 .L25:
7460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
340 .loc 1 7463 3 is_stmt 1 view .LVU101
341 .loc 1 7463 6 is_stmt 0 view .LVU102
342 001c 11F0020F tst r1, #2
343 0020 09D0 beq .L26
7464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC and RXI interrupts */
7466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI;
344 .loc 1 7466 5 is_stmt 1 view .LVU103
345 .loc 1 7466 12 is_stmt 0 view .LVU104
346 0022 43F0440C orr ip, r3, #68
347 .LVL31:
7467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN)
348 .loc 1 7468 5 is_stmt 1 view .LVU105
349 .loc 1 7468 24 is_stmt 0 view .LVU106
350 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2
351 .loc 1 7468 8 view .LVU107
352 002a 02F02802 and r2, r2, #40
353 002e 282A cmp r2, #40
354 0030 09D0 beq .L33
7469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
7471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
355 .loc 1 7471 7 is_stmt 1 view .LVU108
356 .loc 1 7471 14 is_stmt 0 view .LVU109
357 0032 43F0F403 orr r3, r3, #244
358 .LVL32:
359 .L26:
7472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
360 .loc 1 7475 3 is_stmt 1 view .LVU110
361 .loc 1 7475 6 is_stmt 0 view .LVU111
362 0036 11F4004F tst r1, #32768
363 003a 06D1 bne .L35
7476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */
7478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
7479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
364 .loc 1 7481 3 is_stmt 1 view .LVU112
365 .loc 1 7481 6 is_stmt 0 view .LVU113
366 003c 1029 cmp r1, #16
367 003e 06D1 bne .L28
7482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 139
7483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
7484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
368 .loc 1 7484 5 is_stmt 1 view .LVU114
369 .loc 1 7484 12 is_stmt 0 view .LVU115
370 0040 43F09003 orr r3, r3, #144
371 .LVL33:
7485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
372 .loc 1 7487 3 is_stmt 1 view .LVU116
373 0044 05E0 b .L29
374 .LVL34:
375 .L33:
7466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
376 .loc 1 7466 12 is_stmt 0 view .LVU117
377 0046 6346 mov r3, ip
378 0048 F5E7 b .L26
379 .LVL35:
380 .L35:
7478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
381 .loc 1 7478 5 is_stmt 1 view .LVU118
7478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
382 .loc 1 7478 12 is_stmt 0 view .LVU119
383 004a 43F0B803 orr r3, r3, #184
384 .LVL36:
7481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
385 .loc 1 7481 3 is_stmt 1 view .LVU120
386 .L28:
387 .loc 1 7487 3 view .LVU121
388 .loc 1 7487 6 is_stmt 0 view .LVU122
389 004e 2029 cmp r1, #32
390 0050 07D0 beq .L36
391 .L29:
7488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */
7490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
7491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT)
392 .loc 1 7493 3 is_stmt 1 view .LVU123
393 .loc 1 7493 6 is_stmt 0 view .LVU124
394 0052 4029 cmp r1, #64
395 0054 08D0 beq .L37
396 .LVL37:
397 .L30:
7494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */
7496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
7497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable interrupts only at the end */
7500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */
7501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* all disable interrupts request are not done */
7502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr);
398 .loc 1 7502 3 is_stmt 1 view .LVU125
399 0056 0168 ldr r1, [r0]
400 .LVL38:
ARM GAS /tmp/ccN54YTb.s page 140
401 .loc 1 7502 3 is_stmt 0 view .LVU126
402 0058 0A68 ldr r2, [r1]
403 005a 22EA0303 bic r3, r2, r3
404 .LVL39:
405 .loc 1 7502 3 view .LVU127
406 005e 0B60 str r3, [r1]
7503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
407 .loc 1 7503 1 view .LVU128
408 0060 7047 bx lr
409 .LVL40:
410 .L36:
7490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
411 .loc 1 7490 5 is_stmt 1 view .LVU129
7490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
412 .loc 1 7490 12 is_stmt 0 view .LVU130
413 0062 43F02003 orr r3, r3, #32
414 .LVL41:
7493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
415 .loc 1 7493 3 is_stmt 1 view .LVU131
416 0066 F6E7 b .L30
417 .L37:
7496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
418 .loc 1 7496 5 view .LVU132
7496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
419 .loc 1 7496 12 is_stmt 0 view .LVU133
420 0068 43F04003 orr r3, r3, #64
421 .LVL42:
7496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
422 .loc 1 7496 12 view .LVU134
423 006c F3E7 b .L30
424 .cfi_endproc
425 .LFE414:
427 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits
428 .align 1
429 .syntax unified
430 .thumb
431 .thumb_func
433 I2C_ConvertOtherXferOptions:
434 .LVL43:
435 .LFB415:
7504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
7506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions.
7507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
7508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
7509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
7510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c)
7511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
436 .loc 1 7511 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.
7512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */
7513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
7514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */
7515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME)
ARM GAS /tmp/ccN54YTb.s page 141
441 .loc 1 7515 3 view .LVU136
442 .loc 1 7515 11 is_stmt 0 view .LVU137
443 0000 C36A ldr r3, [r0, #44]
444 .loc 1 7515 6 view .LVU138
445 0002 AA2B cmp r3, #170
446 0004 04D0 beq .L41
7516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME;
7518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */
7520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
7521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */
7522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */
7523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME)
447 .loc 1 7523 8 is_stmt 1 view .LVU139
448 .loc 1 7523 16 is_stmt 0 view .LVU140
449 0006 C36A ldr r3, [r0, #44]
450 .loc 1 7523 11 view .LVU141
451 0008 B3F52A4F cmp r3, #43520
452 000c 03D0 beq .L42
453 .L38:
7524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME;
7526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
7528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
7530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
454 .loc 1 7531 1 view .LVU142
455 000e 7047 bx lr
456 .L41:
7517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
457 .loc 1 7517 5 is_stmt 1 view .LVU143
7517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
458 .loc 1 7517 23 is_stmt 0 view .LVU144
459 0010 0023 movs r3, #0
460 0012 C362 str r3, [r0, #44]
461 0014 7047 bx lr
462 .L42:
7525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
463 .loc 1 7525 5 is_stmt 1 view .LVU145
7525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
464 .loc 1 7525 23 is_stmt 0 view .LVU146
465 0016 4FF00073 mov r3, #33554432
466 001a C362 str r3, [r0, #44]
7530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
467 .loc 1 7530 3 is_stmt 1 view .LVU147
468 .loc 1 7531 1 is_stmt 0 view .LVU148
469 001c F7E7 b .L38
470 .cfi_endproc
471 .LFE415:
473 .section .text.I2C_IsErrorOccurred,"ax",%progbits
474 .align 1
475 .syntax unified
476 .thumb
477 .thumb_func
ARM GAS /tmp/ccN54YTb.s page 142
479 I2C_IsErrorOccurred:
480 .LVL44:
481 .LFB411:
7187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
482 .loc 1 7187 1 is_stmt 1 view -0
483 .cfi_startproc
484 @ args = 0, pretend = 0, frame = 0
485 @ frame_needed = 0, uses_anonymous_args = 0
7187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
486 .loc 1 7187 1 is_stmt 0 view .LVU150
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
7188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
496 .loc 1 7188 3 is_stmt 1 view .LVU151
497 .LVL45:
7189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0;
498 .loc 1 7189 3 view .LVU152
7189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0;
499 .loc 1 7189 27 is_stmt 0 view .LVU153
500 0006 0368 ldr r3, [r0]
7189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0;
501 .loc 1 7189 12 view .LVU154
502 0008 9E69 ldr r6, [r3, #24]
503 .LVL46:
7190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart = Tickstart;
504 .loc 1 7190 3 is_stmt 1 view .LVU155
7191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp1;
505 .loc 1 7191 3 view .LVU156
7192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2;
506 .loc 1 7192 3 view .LVU157
7193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
507 .loc 1 7193 3 view .LVU158
7195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
508 .loc 1 7195 3 view .LVU159
7195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
509 .loc 1 7195 6 is_stmt 0 view .LVU160
510 000a 16F01006 ands r6, r6, #16
511 .LVL47:
7195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
512 .loc 1 7195 6 view .LVU161
513 000e 7ED0 beq .L60
514 0010 0D46 mov r5, r1
515 0012 9046 mov r8, r2
7198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
516 .loc 1 7198 5 is_stmt 1 view .LVU162
517 0014 1022 movs r2, #16
518 .LVL48:
7198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
519 .loc 1 7198 5 is_stmt 0 view .LVU163
520 0016 DA61 str r2, [r3, #28]
ARM GAS /tmp/ccN54YTb.s page 143
7202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
521 .loc 1 7202 5 is_stmt 1 view .LVU164
7190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart = Tickstart;
522 .loc 1 7190 12 is_stmt 0 view .LVU165
523 0018 0026 movs r6, #0
7188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
524 .loc 1 7188 21 view .LVU166
525 001a 3746 mov r7, r6
526 .LVL49:
527 .L46:
7202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
528 .loc 1 7202 64 is_stmt 1 view .LVU167
7202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
529 .loc 1 7202 13 is_stmt 0 view .LVU168
530 001c 2368 ldr r3, [r4]
531 001e 9869 ldr r0, [r3, #24]
7202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
532 .loc 1 7202 64 view .LVU169
533 0020 10F0200F tst r0, #32
534 0024 32D1 bne .L52
7202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
535 .loc 1 7202 64 discriminator 1 view .LVU170
536 0026 8FBB cbnz r7, .L52
7205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
537 .loc 1 7205 7 is_stmt 1 view .LVU171
7205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
538 .loc 1 7205 10 is_stmt 0 view .LVU172
539 0028 B5F1FF3F cmp r5, #-1
540 002c F6D0 beq .L46
7207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
541 .loc 1 7207 9 is_stmt 1 view .LVU173
7207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
542 .loc 1 7207 15 is_stmt 0 view .LVU174
543 002e FFF7FEFF bl HAL_GetTick
544 .LVL50:
7207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
545 .loc 1 7207 29 discriminator 1 view .LVU175
546 0032 A0EB0800 sub r0, r0, r8
7207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
547 .loc 1 7207 12 discriminator 1 view .LVU176
548 0036 A842 cmp r0, r5
549 0038 01D8 bhi .L47
7207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
550 .loc 1 7207 53 discriminator 1 view .LVU177
551 003a 002D cmp r5, #0
552 003c EED1 bne .L46
553 .L47:
7209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode;
554 .loc 1 7209 11 is_stmt 1 view .LVU178
7209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode;
555 .loc 1 7209 33 is_stmt 0 view .LVU179
556 003e 2168 ldr r1, [r4]
7209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode;
557 .loc 1 7209 43 view .LVU180
558 0040 4A68 ldr r2, [r1, #4]
7209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode;
559 .loc 1 7209 16 view .LVU181
ARM GAS /tmp/ccN54YTb.s page 144
560 0042 02F48042 and r2, r2, #16384
561 .LVL51:
7210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
562 .loc 1 7210 11 is_stmt 1 view .LVU182
7210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
563 .loc 1 7210 16 is_stmt 0 view .LVU183
564 0046 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2
565 004a DBB2 uxtb r3, r3
566 .LVL52:
7213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
567 .loc 1 7213 11 is_stmt 1 view .LVU184
7213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
568 .loc 1 7213 16 is_stmt 0 view .LVU185
569 004c 8869 ldr r0, [r1, #24]
7213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
570 .loc 1 7213 14 view .LVU186
571 004e 10F4004F tst r0, #32768
572 0052 04D0 beq .L50
7215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
573 .loc 1 7215 21 view .LVU187
574 0054 203B subs r3, r3, #32
575 .LVL53:
7215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
576 .loc 1 7215 21 view .LVU188
577 0056 18BF it ne
578 0058 0123 movne r3, #1
579 .LVL54:
7214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE))
580 .loc 1 7214 38 view .LVU189
581 005a 02B9 cbnz r2, .L50
582 005c 73B9 cbnz r3, .L62
583 .LVL55:
584 .L50:
7224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
585 .loc 1 7224 59 is_stmt 1 view .LVU190
7224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
586 .loc 1 7224 18 is_stmt 0 view .LVU191
587 005e 2368 ldr r3, [r4]
588 0060 9B69 ldr r3, [r3, #24]
7224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
589 .loc 1 7224 59 view .LVU192
590 0062 13F0200F tst r3, #32
591 0066 D9D1 bne .L46
7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
592 .loc 1 7227 13 is_stmt 1 view .LVU193
7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
593 .loc 1 7227 18 is_stmt 0 view .LVU194
594 0068 FFF7FEFF bl HAL_GetTick
595 .LVL56:
7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
596 .loc 1 7227 32 discriminator 1 view .LVU195
597 006c A0EB0800 sub r0, r0, r8
7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
598 .loc 1 7227 16 discriminator 1 view .LVU196
599 0070 1928 cmp r0, #25
600 0072 F4D9 bls .L50
7229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 145
601 .loc 1 7229 15 is_stmt 1 view .LVU197
7229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
602 .loc 1 7229 26 is_stmt 0 view .LVU198
603 0074 46F02006 orr r6, r6, #32
604 .LVL57:
7231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
605 .loc 1 7231 15 is_stmt 1 view .LVU199
7233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
606 .loc 1 7233 15 view .LVU200
7231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
607 .loc 1 7231 22 is_stmt 0 view .LVU201
608 0078 0127 movs r7, #1
7233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
609 .loc 1 7233 15 view .LVU202
610 007a CFE7 b .L46
611 .LVL58:
612 .L62:
7218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
613 .loc 1 7218 13 is_stmt 1 view .LVU203
7218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
614 .loc 1 7218 27 is_stmt 0 view .LVU204
615 007c 4B68 ldr r3, [r1, #4]
7218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
616 .loc 1 7218 33 view .LVU205
617 007e 43F48043 orr r3, r3, #16384
618 0082 4B60 str r3, [r1, #4]
7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
619 .loc 1 7221 13 is_stmt 1 view .LVU206
7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
620 .loc 1 7221 25 is_stmt 0 view .LVU207
621 0084 FFF7FEFF bl HAL_GetTick
622 .LVL59:
7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
623 .loc 1 7221 25 view .LVU208
624 0088 8046 mov r8, r0
625 .LVL60:
7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
626 .loc 1 7221 25 view .LVU209
627 008a E8E7 b .L50
628 .LVL61:
629 .L52:
7241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
630 .loc 1 7241 5 is_stmt 1 view .LVU210
7241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
631 .loc 1 7241 8 is_stmt 0 view .LVU211
632 008c 0FB9 cbnz r7, .L54
7244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
633 .loc 1 7244 7 is_stmt 1 view .LVU212
634 008e 2022 movs r2, #32
635 0090 DA61 str r2, [r3, #28]
636 .L54:
7247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
637 .loc 1 7247 5 view .LVU213
7247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
638 .loc 1 7247 16 is_stmt 0 view .LVU214
639 0092 46F00406 orr r6, r6, #4
640 .LVL62:
ARM GAS /tmp/ccN54YTb.s page 146
7249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
641 .loc 1 7249 5 is_stmt 1 view .LVU215
7249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
642 .loc 1 7249 12 is_stmt 0 view .LVU216
643 0096 0125 movs r5, #1
644 .LVL63:
645 .L44:
7253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
646 .loc 1 7253 3 is_stmt 1 view .LVU217
7253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
647 .loc 1 7253 16 is_stmt 0 view .LVU218
648 0098 2268 ldr r2, [r4]
7253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
649 .loc 1 7253 10 view .LVU219
650 009a 9369 ldr r3, [r2, #24]
651 .LVL64:
7257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
652 .loc 1 7257 3 is_stmt 1 view .LVU220
7257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
653 .loc 1 7257 6 is_stmt 0 view .LVU221
654 009c 13F4807F tst r3, #256
655 00a0 05D0 beq .L55
7259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
656 .loc 1 7259 5 is_stmt 1 view .LVU222
7259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
657 .loc 1 7259 16 is_stmt 0 view .LVU223
658 00a2 46F00106 orr r6, r6, #1
659 .LVL65:
7262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
660 .loc 1 7262 5 is_stmt 1 view .LVU224
661 00a6 4FF48071 mov r1, #256
662 00aa D161 str r1, [r2, #28]
7264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
663 .loc 1 7264 5 view .LVU225
664 .LVL66:
7264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
665 .loc 1 7264 12 is_stmt 0 view .LVU226
666 00ac 0125 movs r5, #1
667 .LVL67:
668 .L55:
7268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
669 .loc 1 7268 3 is_stmt 1 view .LVU227
7268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
670 .loc 1 7268 6 is_stmt 0 view .LVU228
671 00ae 13F4806F tst r3, #1024
672 00b2 06D0 beq .L56
7270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
673 .loc 1 7270 5 is_stmt 1 view .LVU229
7270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
674 .loc 1 7270 16 is_stmt 0 view .LVU230
675 00b4 46F00806 orr r6, r6, #8
676 .LVL68:
7273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
677 .loc 1 7273 5 is_stmt 1 view .LVU231
678 00b8 2268 ldr r2, [r4]
679 00ba 4FF48061 mov r1, #1024
680 00be D161 str r1, [r2, #28]
ARM GAS /tmp/ccN54YTb.s page 147
7275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
681 .loc 1 7275 5 view .LVU232
682 .LVL69:
7275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
683 .loc 1 7275 12 is_stmt 0 view .LVU233
684 00c0 0125 movs r5, #1
685 .LVL70:
686 .L56:
7279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
687 .loc 1 7279 3 is_stmt 1 view .LVU234
7279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
688 .loc 1 7279 6 is_stmt 0 view .LVU235
689 00c2 13F4007F tst r3, #512
690 00c6 24D0 beq .L57
7281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
691 .loc 1 7281 5 is_stmt 1 view .LVU236
7281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
692 .loc 1 7281 16 is_stmt 0 view .LVU237
693 00c8 46F00206 orr r6, r6, #2
694 .LVL71:
7284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
695 .loc 1 7284 5 is_stmt 1 view .LVU238
696 00cc 2368 ldr r3, [r4]
697 .LVL72:
7284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
698 .loc 1 7284 5 is_stmt 0 view .LVU239
699 00ce 4FF40072 mov r2, #512
700 00d2 DA61 str r2, [r3, #28]
7286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
701 .loc 1 7286 5 is_stmt 1 view .LVU240
702 .LVL73:
7289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
703 .loc 1 7289 3 view .LVU241
7286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
704 .loc 1 7286 12 is_stmt 0 view .LVU242
705 00d4 0125 movs r5, #1
706 .LVL74:
707 .L58:
7292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
708 .loc 1 7292 5 is_stmt 1 view .LVU243
709 00d6 2046 mov r0, r4
710 00d8 FFF7FEFF bl I2C_Flush_TXDR
711 .LVL75:
7295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
712 .loc 1 7295 5 view .LVU244
713 00dc 2268 ldr r2, [r4]
714 00de 5368 ldr r3, [r2, #4]
715 00e0 23F0FF73 bic r3, r3, #33423360
716 00e4 23F48B33 bic r3, r3, #71168
717 00e8 23F4FF73 bic r3, r3, #510
718 00ec 23F00103 bic r3, r3, #1
719 00f0 5360 str r3, [r2, #4]
7297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
720 .loc 1 7297 5 view .LVU245
7297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
721 .loc 1 7297 9 is_stmt 0 view .LVU246
722 00f2 636C ldr r3, [r4, #68]
ARM GAS /tmp/ccN54YTb.s page 148
7297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
723 .loc 1 7297 21 view .LVU247
724 00f4 3343 orrs r3, r3, r6
725 00f6 6364 str r3, [r4, #68]
7298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
726 .loc 1 7298 5 is_stmt 1 view .LVU248
7298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
727 .loc 1 7298 17 is_stmt 0 view .LVU249
728 00f8 2023 movs r3, #32
729 00fa 84F84130 strb r3, [r4, #65]
7299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
730 .loc 1 7299 5 is_stmt 1 view .LVU250
7299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
731 .loc 1 7299 16 is_stmt 0 view .LVU251
732 00fe 0023 movs r3, #0
733 0100 84F84230 strb r3, [r4, #66]
7302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
734 .loc 1 7302 5 is_stmt 1 view .LVU252
7302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
735 .loc 1 7302 5 view .LVU253
736 0104 84F84030 strb r3, [r4, #64]
737 .L59:
7302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
738 .loc 1 7302 5 discriminator 1 view .LVU254
7305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
739 .loc 1 7305 3 view .LVU255
7306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
740 .loc 1 7306 1 is_stmt 0 view .LVU256
741 0108 2846 mov r0, r5
742 010a BDE8F081 pop {r4, r5, r6, r7, r8, pc}
743 .LVL76:
744 .L60:
7188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
745 .loc 1 7188 21 view .LVU257
746 010e 0025 movs r5, #0
747 0110 C2E7 b .L44
748 .LVL77:
749 .L57:
7289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
750 .loc 1 7289 3 is_stmt 1 view .LVU258
7289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
751 .loc 1 7289 6 is_stmt 0 view .LVU259
752 0112 002D cmp r5, #0
753 0114 F8D0 beq .L59
754 0116 DEE7 b .L58
755 .cfi_endproc
756 .LFE411:
758 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits
759 .align 1
760 .syntax unified
761 .thumb
762 .thumb_func
764 I2C_WaitOnTXISFlagUntilTimeout:
765 .LVL78:
766 .LFB408:
7032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
767 .loc 1 7032 1 is_stmt 1 view -0
ARM GAS /tmp/ccN54YTb.s page 149
768 .cfi_startproc
769 @ args = 0, pretend = 0, frame = 0
770 @ frame_needed = 0, uses_anonymous_args = 0
7032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
771 .loc 1 7032 1 is_stmt 0 view .LVU261
772 0000 70B5 push {r4, r5, r6, lr}
773 .cfi_def_cfa_offset 16
774 .cfi_offset 4, -16
775 .cfi_offset 5, -12
776 .cfi_offset 6, -8
777 .cfi_offset 14, -4
778 0002 0446 mov r4, r0
779 0004 0D46 mov r5, r1
780 0006 1646 mov r6, r2
7033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
781 .loc 1 7033 3 is_stmt 1 view .LVU262
782 .LVL79:
783 .L66:
7033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
784 .loc 1 7033 50 view .LVU263
7033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
785 .loc 1 7033 10 is_stmt 0 view .LVU264
786 0008 2368 ldr r3, [r4]
787 000a 9B69 ldr r3, [r3, #24]
7033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
788 .loc 1 7033 50 view .LVU265
789 000c 13F0020F tst r3, #2
790 0010 22D1 bne .L71
7036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
791 .loc 1 7036 5 is_stmt 1 view .LVU266
7036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
792 .loc 1 7036 9 is_stmt 0 view .LVU267
793 0012 3246 mov r2, r6
794 0014 2946 mov r1, r5
795 0016 2046 mov r0, r4
796 0018 FFF7FEFF bl I2C_IsErrorOccurred
797 .LVL80:
7036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
798 .loc 1 7036 8 discriminator 1 view .LVU268
799 001c F0B9 cbnz r0, .L69
7042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
800 .loc 1 7042 5 is_stmt 1 view .LVU269
7042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
801 .loc 1 7042 8 is_stmt 0 view .LVU270
802 001e B5F1FF3F cmp r5, #-1
803 0022 F1D0 beq .L66
7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
804 .loc 1 7044 7 is_stmt 1 view .LVU271
7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
805 .loc 1 7044 13 is_stmt 0 view .LVU272
806 0024 FFF7FEFF bl HAL_GetTick
807 .LVL81:
7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
808 .loc 1 7044 27 discriminator 1 view .LVU273
809 0028 801B subs r0, r0, r6
7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
810 .loc 1 7044 10 discriminator 1 view .LVU274
ARM GAS /tmp/ccN54YTb.s page 150
811 002a A842 cmp r0, r5
812 002c 01D8 bhi .L67
7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
813 .loc 1 7044 51 discriminator 1 view .LVU275
814 002e 002D cmp r5, #0
815 0030 EAD1 bne .L66
816 .L67:
7046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
817 .loc 1 7046 9 is_stmt 1 view .LVU276
7046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
818 .loc 1 7046 14 is_stmt 0 view .LVU277
819 0032 2368 ldr r3, [r4]
820 0034 9B69 ldr r3, [r3, #24]
7046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
821 .loc 1 7046 12 view .LVU278
822 0036 13F0020F tst r3, #2
823 003a E5D1 bne .L66
7048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
824 .loc 1 7048 11 is_stmt 1 view .LVU279
7048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
825 .loc 1 7048 15 is_stmt 0 view .LVU280
826 003c 636C ldr r3, [r4, #68]
7048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
827 .loc 1 7048 27 view .LVU281
828 003e 43F02003 orr r3, r3, #32
829 0042 6364 str r3, [r4, #68]
7049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
830 .loc 1 7049 11 is_stmt 1 view .LVU282
7049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
831 .loc 1 7049 23 is_stmt 0 view .LVU283
832 0044 2023 movs r3, #32
833 0046 84F84130 strb r3, [r4, #65]
7050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
834 .loc 1 7050 11 is_stmt 1 view .LVU284
7050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
835 .loc 1 7050 22 is_stmt 0 view .LVU285
836 004a 0023 movs r3, #0
837 004c 84F84230 strb r3, [r4, #66]
7053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
838 .loc 1 7053 11 is_stmt 1 view .LVU286
7053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
839 .loc 1 7053 11 view .LVU287
840 0050 84F84030 strb r3, [r4, #64]
7053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
841 .loc 1 7053 11 view .LVU288
7055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
842 .loc 1 7055 11 view .LVU289
7055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
843 .loc 1 7055 18 is_stmt 0 view .LVU290
844 0054 0120 movs r0, #1
845 0056 00E0 b .L65
846 .L71:
7060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
847 .loc 1 7060 10 view .LVU291
848 0058 0020 movs r0, #0
849 .L65:
7061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 151
850 .loc 1 7061 1 view .LVU292
851 005a 70BD pop {r4, r5, r6, pc}
852 .LVL82:
853 .L69:
7038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
854 .loc 1 7038 14 view .LVU293
855 005c 0120 movs r0, #1
856 005e FCE7 b .L65
857 .cfi_endproc
858 .LFE408:
860 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits
861 .align 1
862 .syntax unified
863 .thumb
864 .thumb_func
866 I2C_WaitOnFlagUntilTimeout:
867 .LVL83:
868 .LFB407:
6992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
869 .loc 1 6992 1 is_stmt 1 view -0
870 .cfi_startproc
871 @ args = 4, pretend = 0, frame = 0
872 @ frame_needed = 0, uses_anonymous_args = 0
6992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
873 .loc 1 6992 1 is_stmt 0 view .LVU295
874 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr}
875 .cfi_def_cfa_offset 32
876 .cfi_offset 3, -32
877 .cfi_offset 4, -28
878 .cfi_offset 5, -24
879 .cfi_offset 6, -20
880 .cfi_offset 7, -16
881 .cfi_offset 8, -12
882 .cfi_offset 9, -8
883 .cfi_offset 14, -4
884 0004 0546 mov r5, r0
885 0006 8846 mov r8, r1
886 0008 1746 mov r7, r2
887 000a 1E46 mov r6, r3
888 000c DDF82090 ldr r9, [sp, #32]
6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
889 .loc 1 6993 3 is_stmt 1 view .LVU296
890 .LVL84:
891 .L75:
6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
892 .loc 1 6993 41 view .LVU297
6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
893 .loc 1 6993 10 is_stmt 0 view .LVU298
894 0010 2B68 ldr r3, [r5]
895 0012 9C69 ldr r4, [r3, #24]
896 0014 38EA0404 bics r4, r8, r4
897 0018 0CBF ite eq
898 001a 0123 moveq r3, #1
899 001c 0023 movne r3, #0
6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
900 .loc 1 6993 41 view .LVU299
901 001e BB42 cmp r3, r7
ARM GAS /tmp/ccN54YTb.s page 152
902 0020 27D1 bne .L80
6996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
903 .loc 1 6996 5 is_stmt 1 view .LVU300
6996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
904 .loc 1 6996 9 is_stmt 0 view .LVU301
905 0022 4A46 mov r2, r9
906 0024 3146 mov r1, r6
907 0026 2846 mov r0, r5
908 0028 FFF7FEFF bl I2C_IsErrorOccurred
909 .LVL85:
6996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
910 .loc 1 6996 8 discriminator 1 view .LVU302
911 002c 20BB cbnz r0, .L78
7002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
912 .loc 1 7002 5 is_stmt 1 view .LVU303
7002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
913 .loc 1 7002 8 is_stmt 0 view .LVU304
914 002e B6F1FF3F cmp r6, #-1
915 0032 EDD0 beq .L75
7004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
916 .loc 1 7004 7 is_stmt 1 view .LVU305
7004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
917 .loc 1 7004 13 is_stmt 0 view .LVU306
918 0034 FFF7FEFF bl HAL_GetTick
919 .LVL86:
7004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
920 .loc 1 7004 27 discriminator 1 view .LVU307
921 0038 A0EB0900 sub r0, r0, r9
7004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
922 .loc 1 7004 10 discriminator 1 view .LVU308
923 003c B042 cmp r0, r6
924 003e 01D8 bhi .L76
7004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
925 .loc 1 7004 51 discriminator 1 view .LVU309
926 0040 002E cmp r6, #0
927 0042 E5D1 bne .L75
928 .L76:
7006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
929 .loc 1 7006 9 is_stmt 1 view .LVU310
7006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
930 .loc 1 7006 14 is_stmt 0 view .LVU311
931 0044 2B68 ldr r3, [r5]
932 0046 9B69 ldr r3, [r3, #24]
933 0048 38EA0303 bics r3, r8, r3
934 004c 0CBF ite eq
935 004e 0123 moveq r3, #1
936 0050 0023 movne r3, #0
7006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
937 .loc 1 7006 12 view .LVU312
938 0052 BB42 cmp r3, r7
939 0054 DCD1 bne .L75
7008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
940 .loc 1 7008 11 is_stmt 1 view .LVU313
7008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
941 .loc 1 7008 15 is_stmt 0 view .LVU314
942 0056 6B6C ldr r3, [r5, #68]
7008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
ARM GAS /tmp/ccN54YTb.s page 153
943 .loc 1 7008 27 view .LVU315
944 0058 43F02003 orr r3, r3, #32
945 005c 6B64 str r3, [r5, #68]
7009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
946 .loc 1 7009 11 is_stmt 1 view .LVU316
7009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
947 .loc 1 7009 23 is_stmt 0 view .LVU317
948 005e 2023 movs r3, #32
949 0060 85F84130 strb r3, [r5, #65]
7010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
950 .loc 1 7010 11 is_stmt 1 view .LVU318
7010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
951 .loc 1 7010 22 is_stmt 0 view .LVU319
952 0064 0023 movs r3, #0
953 0066 85F84230 strb r3, [r5, #66]
7013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
954 .loc 1 7013 11 is_stmt 1 view .LVU320
7013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
955 .loc 1 7013 11 view .LVU321
956 006a 85F84030 strb r3, [r5, #64]
7013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
957 .loc 1 7013 11 view .LVU322
7014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
958 .loc 1 7014 11 view .LVU323
7014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
959 .loc 1 7014 18 is_stmt 0 view .LVU324
960 006e 0120 movs r0, #1
961 0070 00E0 b .L74
962 .L80:
7019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
963 .loc 1 7019 10 view .LVU325
964 0072 0020 movs r0, #0
965 .L74:
7020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
966 .loc 1 7020 1 view .LVU326
967 0074 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
968 .LVL87:
969 .L78:
6998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
970 .loc 1 6998 14 view .LVU327
971 0078 0120 movs r0, #1
972 007a FBE7 b .L74
973 .cfi_endproc
974 .LFE407:
976 .section .text.I2C_RequestMemoryWrite,"ax",%progbits
977 .align 1
978 .syntax unified
979 .thumb
980 .thumb_func
982 I2C_RequestMemoryWrite:
983 .LVL88:
984 .LFB390:
5837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
985 .loc 1 5837 1 is_stmt 1 view -0
986 .cfi_startproc
987 @ args = 8, pretend = 0, frame = 0
988 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/ccN54YTb.s page 154
5837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
989 .loc 1 5837 1 is_stmt 0 view .LVU329
990 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
991 .cfi_def_cfa_offset 24
992 .cfi_offset 4, -24
993 .cfi_offset 5, -20
994 .cfi_offset 6, -16
995 .cfi_offset 7, -12
996 .cfi_offset 8, -8
997 .cfi_offset 14, -4
998 0004 82B0 sub sp, sp, #8
999 .cfi_def_cfa_offset 32
1000 0006 0446 mov r4, r0
1001 0008 9046 mov r8, r2
1002 000a 1D46 mov r5, r3
1003 000c 089E ldr r6, [sp, #32]
1004 000e 099F ldr r7, [sp, #36]
5838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1005 .loc 1 5838 3 is_stmt 1 view .LVU330
1006 0010 194B ldr r3, .L90
1007 .LVL89:
5838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1008 .loc 1 5838 3 is_stmt 0 view .LVU331
1009 0012 0093 str r3, [sp]
1010 0014 4FF08073 mov r3, #16777216
1011 0018 EAB2 uxtb r2, r5
1012 .LVL90:
5838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1013 .loc 1 5838 3 view .LVU332
1014 001a FFF7FEFF bl I2C_TransferConfig
1015 .LVL91:
5841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1016 .loc 1 5841 3 is_stmt 1 view .LVU333
5841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1017 .loc 1 5841 7 is_stmt 0 view .LVU334
1018 001e 3A46 mov r2, r7
1019 0020 3146 mov r1, r6
1020 0022 2046 mov r0, r4
1021 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1022 .LVL92:
5841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1023 .loc 1 5841 6 discriminator 1 view .LVU335
1024 0028 F8B9 cbnz r0, .L85
5847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1025 .loc 1 5847 3 is_stmt 1 view .LVU336
5847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1026 .loc 1 5847 6 is_stmt 0 view .LVU337
1027 002a 012D cmp r5, #1
1028 002c 0ED1 bne .L83
5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1029 .loc 1 5850 5 is_stmt 1 view .LVU338
5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1030 .loc 1 5850 9 is_stmt 0 view .LVU339
1031 002e 2368 ldr r3, [r4]
5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1032 .loc 1 5850 28 view .LVU340
1033 0030 5FFA88F2 uxtb r2, r8
ARM GAS /tmp/ccN54YTb.s page 155
5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1034 .loc 1 5850 26 view .LVU341
1035 0034 9A62 str r2, [r3, #40]
1036 .L84:
5869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1037 .loc 1 5869 3 is_stmt 1 view .LVU342
5869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1038 .loc 1 5869 7 is_stmt 0 view .LVU343
1039 0036 0097 str r7, [sp]
1040 0038 3346 mov r3, r6
1041 003a 0022 movs r2, #0
1042 003c 8021 movs r1, #128
1043 003e 2046 mov r0, r4
1044 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1045 .LVL93:
5869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1046 .loc 1 5869 6 discriminator 1 view .LVU344
1047 0044 A8B9 cbnz r0, .L89
1048 .L82:
5875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1049 .loc 1 5875 1 view .LVU345
1050 0046 02B0 add sp, sp, #8
1051 .cfi_remember_state
1052 .cfi_def_cfa_offset 24
1053 @ sp needed
1054 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
1055 .LVL94:
1056 .L83:
1057 .cfi_restore_state
5856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1058 .loc 1 5856 5 is_stmt 1 view .LVU346
5856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1059 .loc 1 5856 9 is_stmt 0 view .LVU347
1060 004c 2368 ldr r3, [r4]
5856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1061 .loc 1 5856 28 view .LVU348
1062 004e 4FEA1822 lsr r2, r8, #8
5856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1063 .loc 1 5856 26 view .LVU349
1064 0052 9A62 str r2, [r3, #40]
5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1065 .loc 1 5859 5 is_stmt 1 view .LVU350
5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1066 .loc 1 5859 9 is_stmt 0 view .LVU351
1067 0054 3A46 mov r2, r7
1068 0056 3146 mov r1, r6
1069 0058 2046 mov r0, r4
1070 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1071 .LVL95:
5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1072 .loc 1 5859 8 discriminator 1 view .LVU352
1073 005e 30B9 cbnz r0, .L86
5865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1074 .loc 1 5865 5 is_stmt 1 view .LVU353
5865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1075 .loc 1 5865 9 is_stmt 0 view .LVU354
1076 0060 2368 ldr r3, [r4]
ARM GAS /tmp/ccN54YTb.s page 156
5865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1077 .loc 1 5865 28 view .LVU355
1078 0062 5FFA88F2 uxtb r2, r8
5865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1079 .loc 1 5865 26 view .LVU356
1080 0066 9A62 str r2, [r3, #40]
1081 0068 E5E7 b .L84
1082 .L85:
5843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1083 .loc 1 5843 12 view .LVU357
1084 006a 0120 movs r0, #1
1085 006c EBE7 b .L82
1086 .L86:
5861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1087 .loc 1 5861 14 view .LVU358
1088 006e 0120 movs r0, #1
1089 0070 E9E7 b .L82
1090 .L89:
5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1091 .loc 1 5871 12 view .LVU359
1092 0072 0120 movs r0, #1
1093 0074 E7E7 b .L82
1094 .L91:
1095 0076 00BF .align 2
1096 .L90:
1097 0078 00200080 .word -2147475456
1098 .cfi_endproc
1099 .LFE390:
1101 .section .text.I2C_RequestMemoryRead,"ax",%progbits
1102 .align 1
1103 .syntax unified
1104 .thumb
1105 .thumb_func
1107 I2C_RequestMemoryRead:
1108 .LVL96:
1109 .LFB391:
5892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
1110 .loc 1 5892 1 is_stmt 1 view -0
1111 .cfi_startproc
1112 @ args = 8, pretend = 0, frame = 0
1113 @ frame_needed = 0, uses_anonymous_args = 0
5892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
1114 .loc 1 5892 1 is_stmt 0 view .LVU361
1115 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
1116 .cfi_def_cfa_offset 24
1117 .cfi_offset 4, -24
1118 .cfi_offset 5, -20
1119 .cfi_offset 6, -16
1120 .cfi_offset 7, -12
1121 .cfi_offset 8, -8
1122 .cfi_offset 14, -4
1123 0004 82B0 sub sp, sp, #8
1124 .cfi_def_cfa_offset 32
1125 0006 0446 mov r4, r0
1126 0008 9046 mov r8, r2
1127 000a 1D46 mov r5, r3
1128 000c 089E ldr r6, [sp, #32]
ARM GAS /tmp/ccN54YTb.s page 157
1129 000e 099F ldr r7, [sp, #36]
5893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1130 .loc 1 5893 3 is_stmt 1 view .LVU362
1131 0010 184B ldr r3, .L101
1132 .LVL97:
5893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1133 .loc 1 5893 3 is_stmt 0 view .LVU363
1134 0012 0093 str r3, [sp]
1135 0014 0023 movs r3, #0
1136 0016 EAB2 uxtb r2, r5
1137 .LVL98:
5893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1138 .loc 1 5893 3 view .LVU364
1139 0018 FFF7FEFF bl I2C_TransferConfig
1140 .LVL99:
5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1141 .loc 1 5896 3 is_stmt 1 view .LVU365
5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1142 .loc 1 5896 7 is_stmt 0 view .LVU366
1143 001c 3A46 mov r2, r7
1144 001e 3146 mov r1, r6
1145 0020 2046 mov r0, r4
1146 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1147 .LVL100:
5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1148 .loc 1 5896 6 discriminator 1 view .LVU367
1149 0026 F8B9 cbnz r0, .L96
5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1150 .loc 1 5902 3 is_stmt 1 view .LVU368
5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1151 .loc 1 5902 6 is_stmt 0 view .LVU369
1152 0028 012D cmp r5, #1
1153 002a 0ED1 bne .L94
5905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1154 .loc 1 5905 5 is_stmt 1 view .LVU370
5905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1155 .loc 1 5905 9 is_stmt 0 view .LVU371
1156 002c 2368 ldr r3, [r4]
5905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1157 .loc 1 5905 28 view .LVU372
1158 002e 5FFA88F2 uxtb r2, r8
5905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1159 .loc 1 5905 26 view .LVU373
1160 0032 9A62 str r2, [r3, #40]
1161 .L95:
5924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1162 .loc 1 5924 3 is_stmt 1 view .LVU374
5924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1163 .loc 1 5924 7 is_stmt 0 view .LVU375
1164 0034 0097 str r7, [sp]
1165 0036 3346 mov r3, r6
1166 0038 0022 movs r2, #0
1167 003a 4021 movs r1, #64
1168 003c 2046 mov r0, r4
1169 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1170 .LVL101:
5924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 158
1171 .loc 1 5924 6 discriminator 1 view .LVU376
1172 0042 A8B9 cbnz r0, .L100
1173 .L93:
5930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1174 .loc 1 5930 1 view .LVU377
1175 0044 02B0 add sp, sp, #8
1176 .cfi_remember_state
1177 .cfi_def_cfa_offset 24
1178 @ sp needed
1179 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
1180 .LVL102:
1181 .L94:
1182 .cfi_restore_state
5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1183 .loc 1 5911 5 is_stmt 1 view .LVU378
5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1184 .loc 1 5911 9 is_stmt 0 view .LVU379
1185 004a 2368 ldr r3, [r4]
5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1186 .loc 1 5911 28 view .LVU380
1187 004c 4FEA1822 lsr r2, r8, #8
5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1188 .loc 1 5911 26 view .LVU381
1189 0050 9A62 str r2, [r3, #40]
5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1190 .loc 1 5914 5 is_stmt 1 view .LVU382
5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1191 .loc 1 5914 9 is_stmt 0 view .LVU383
1192 0052 3A46 mov r2, r7
1193 0054 3146 mov r1, r6
1194 0056 2046 mov r0, r4
1195 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1196 .LVL103:
5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1197 .loc 1 5914 8 discriminator 1 view .LVU384
1198 005c 30B9 cbnz r0, .L97
5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1199 .loc 1 5920 5 is_stmt 1 view .LVU385
5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1200 .loc 1 5920 9 is_stmt 0 view .LVU386
1201 005e 2368 ldr r3, [r4]
5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1202 .loc 1 5920 28 view .LVU387
1203 0060 5FFA88F2 uxtb r2, r8
5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1204 .loc 1 5920 26 view .LVU388
1205 0064 9A62 str r2, [r3, #40]
1206 0066 E5E7 b .L95
1207 .L96:
5898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1208 .loc 1 5898 12 view .LVU389
1209 0068 0120 movs r0, #1
1210 006a EBE7 b .L93
1211 .L97:
5916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1212 .loc 1 5916 14 view .LVU390
1213 006c 0120 movs r0, #1
ARM GAS /tmp/ccN54YTb.s page 159
1214 006e E9E7 b .L93
1215 .L100:
5926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1216 .loc 1 5926 12 view .LVU391
1217 0070 0120 movs r0, #1
1218 0072 E7E7 b .L93
1219 .L102:
1220 .align 2
1221 .L101:
1222 0074 00200080 .word -2147475456
1223 .cfi_endproc
1224 .LFE391:
1226 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits
1227 .align 1
1228 .syntax unified
1229 .thumb
1230 .thumb_func
1232 I2C_WaitOnSTOPFlagUntilTimeout:
1233 .LVL104:
1234 .LFB409:
7073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
1235 .loc 1 7073 1 is_stmt 1 view -0
1236 .cfi_startproc
1237 @ args = 0, pretend = 0, frame = 0
1238 @ frame_needed = 0, uses_anonymous_args = 0
7073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
1239 .loc 1 7073 1 is_stmt 0 view .LVU393
1240 0000 70B5 push {r4, r5, r6, lr}
1241 .cfi_def_cfa_offset 16
1242 .cfi_offset 4, -16
1243 .cfi_offset 5, -12
1244 .cfi_offset 6, -8
1245 .cfi_offset 14, -4
1246 0002 0446 mov r4, r0
1247 0004 0D46 mov r5, r1
1248 0006 1646 mov r6, r2
7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1249 .loc 1 7074 3 is_stmt 1 view .LVU394
7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1250 .loc 1 7074 9 is_stmt 0 view .LVU395
1251 0008 04E0 b .L104
1252 .LVL105:
1253 .L106:
7085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1254 .loc 1 7085 7 is_stmt 1 view .LVU396
7085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1255 .loc 1 7085 12 is_stmt 0 view .LVU397
1256 000a 2368 ldr r3, [r4]
1257 000c 9B69 ldr r3, [r3, #24]
7085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1258 .loc 1 7085 10 view .LVU398
1259 000e 13F0200F tst r3, #32
1260 0012 12D0 beq .L110
1261 .L104:
7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1262 .loc 1 7074 51 is_stmt 1 view .LVU399
7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 160
1263 .loc 1 7074 10 is_stmt 0 view .LVU400
1264 0014 2368 ldr r3, [r4]
1265 0016 9B69 ldr r3, [r3, #24]
7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1266 .loc 1 7074 51 view .LVU401
1267 0018 13F0200F tst r3, #32
1268 001c 1BD1 bne .L111
7077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1269 .loc 1 7077 5 is_stmt 1 view .LVU402
7077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1270 .loc 1 7077 9 is_stmt 0 view .LVU403
1271 001e 3246 mov r2, r6
1272 0020 2946 mov r1, r5
1273 0022 2046 mov r0, r4
1274 0024 FFF7FEFF bl I2C_IsErrorOccurred
1275 .LVL106:
7077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1276 .loc 1 7077 8 discriminator 1 view .LVU404
1277 0028 B8B9 cbnz r0, .L108
7083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1278 .loc 1 7083 5 is_stmt 1 view .LVU405
7083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1279 .loc 1 7083 11 is_stmt 0 view .LVU406
1280 002a FFF7FEFF bl HAL_GetTick
1281 .LVL107:
7083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1282 .loc 1 7083 25 discriminator 1 view .LVU407
1283 002e 801B subs r0, r0, r6
7083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1284 .loc 1 7083 8 discriminator 1 view .LVU408
1285 0030 A842 cmp r0, r5
1286 0032 EAD8 bhi .L106
7083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1287 .loc 1 7083 49 discriminator 1 view .LVU409
1288 0034 002D cmp r5, #0
1289 0036 EDD1 bne .L104
1290 0038 E7E7 b .L106
1291 .L110:
7087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1292 .loc 1 7087 9 is_stmt 1 view .LVU410
7087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1293 .loc 1 7087 13 is_stmt 0 view .LVU411
1294 003a 636C ldr r3, [r4, #68]
7087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1295 .loc 1 7087 25 view .LVU412
1296 003c 43F02003 orr r3, r3, #32
1297 0040 6364 str r3, [r4, #68]
7088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1298 .loc 1 7088 9 is_stmt 1 view .LVU413
7088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1299 .loc 1 7088 21 is_stmt 0 view .LVU414
1300 0042 2023 movs r3, #32
1301 0044 84F84130 strb r3, [r4, #65]
7089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1302 .loc 1 7089 9 is_stmt 1 view .LVU415
7089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1303 .loc 1 7089 20 is_stmt 0 view .LVU416
ARM GAS /tmp/ccN54YTb.s page 161
1304 0048 0023 movs r3, #0
1305 004a 84F84230 strb r3, [r4, #66]
7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1306 .loc 1 7092 9 is_stmt 1 view .LVU417
7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1307 .loc 1 7092 9 view .LVU418
1308 004e 84F84030 strb r3, [r4, #64]
7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1309 .loc 1 7092 9 view .LVU419
7094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1310 .loc 1 7094 9 view .LVU420
7094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1311 .loc 1 7094 16 is_stmt 0 view .LVU421
1312 0052 0120 movs r0, #1
1313 0054 00E0 b .L105
1314 .L111:
7098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1315 .loc 1 7098 10 view .LVU422
1316 0056 0020 movs r0, #0
1317 .L105:
7099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1318 .loc 1 7099 1 view .LVU423
1319 0058 70BD pop {r4, r5, r6, pc}
1320 .LVL108:
1321 .L108:
7079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1322 .loc 1 7079 14 view .LVU424
1323 005a 0120 movs r0, #1
1324 005c FCE7 b .L105
1325 .cfi_endproc
1326 .LFE409:
1328 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits
1329 .align 1
1330 .syntax unified
1331 .thumb
1332 .thumb_func
1334 I2C_WaitOnRXNEFlagUntilTimeout:
1335 .LVL109:
1336 .LFB410:
7111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
1337 .loc 1 7111 1 is_stmt 1 view -0
1338 .cfi_startproc
1339 @ args = 0, pretend = 0, frame = 0
1340 @ frame_needed = 0, uses_anonymous_args = 0
7111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
1341 .loc 1 7111 1 is_stmt 0 view .LVU426
1342 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
1343 .cfi_def_cfa_offset 24
1344 .cfi_offset 3, -24
1345 .cfi_offset 4, -20
1346 .cfi_offset 5, -16
1347 .cfi_offset 6, -12
1348 .cfi_offset 7, -8
1349 .cfi_offset 14, -4
1350 0002 0446 mov r4, r0
1351 0004 0E46 mov r6, r1
1352 0006 1746 mov r7, r2
ARM GAS /tmp/ccN54YTb.s page 162
7112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1353 .loc 1 7112 3 is_stmt 1 view .LVU427
1354 .LVL110:
7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1355 .loc 1 7114 3 view .LVU428
7112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1356 .loc 1 7112 21 is_stmt 0 view .LVU429
1357 0008 0025 movs r5, #0
7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1358 .loc 1 7114 9 view .LVU430
1359 000a 18E0 b .L113
1360 .LVL111:
1361 .L116:
7156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1362 .loc 1 7156 9 is_stmt 1 view .LVU431
7156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1363 .loc 1 7156 25 is_stmt 0 view .LVU432
1364 000c 0023 movs r3, #0
1365 000e 6364 str r3, [r4, #68]
1366 .LVL112:
1367 .L115:
7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1368 .loc 1 7161 5 is_stmt 1 view .LVU433
7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1369 .loc 1 7161 12 is_stmt 0 view .LVU434
1370 0010 FFF7FEFF bl HAL_GetTick
1371 .LVL113:
7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1372 .loc 1 7161 26 discriminator 1 view .LVU435
1373 0014 C01B subs r0, r0, r7
7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1374 .loc 1 7161 8 discriminator 1 view .LVU436
1375 0016 B042 cmp r0, r6
1376 0018 00D8 bhi .L117
7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1377 .loc 1 7161 50 discriminator 2 view .LVU437
1378 001a 86B9 cbnz r6, .L113
1379 .L117:
7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1380 .loc 1 7161 70 discriminator 3 view .LVU438
1381 001c 7DB9 cbnz r5, .L113
7163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1382 .loc 1 7163 7 is_stmt 1 view .LVU439
7163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1383 .loc 1 7163 12 is_stmt 0 view .LVU440
1384 001e 2368 ldr r3, [r4]
1385 0020 9B69 ldr r3, [r3, #24]
7163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1386 .loc 1 7163 10 view .LVU441
1387 0022 13F0040F tst r3, #4
1388 0026 0AD1 bne .L113
7165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1389 .loc 1 7165 9 is_stmt 1 view .LVU442
7165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1390 .loc 1 7165 13 is_stmt 0 view .LVU443
1391 0028 636C ldr r3, [r4, #68]
7165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
ARM GAS /tmp/ccN54YTb.s page 163
1392 .loc 1 7165 25 view .LVU444
1393 002a 43F02003 orr r3, r3, #32
1394 002e 6364 str r3, [r4, #68]
7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1395 .loc 1 7166 9 is_stmt 1 view .LVU445
7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1396 .loc 1 7166 21 is_stmt 0 view .LVU446
1397 0030 2023 movs r3, #32
1398 0032 84F84130 strb r3, [r4, #65]
7169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1399 .loc 1 7169 9 is_stmt 1 view .LVU447
7169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1400 .loc 1 7169 9 view .LVU448
1401 0036 0023 movs r3, #0
1402 0038 84F84030 strb r3, [r4, #64]
7169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1403 .loc 1 7169 9 view .LVU449
7171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1404 .loc 1 7171 9 view .LVU450
1405 .LVL114:
7171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1406 .loc 1 7171 16 is_stmt 0 view .LVU451
1407 003c 0125 movs r5, #1
1408 .LVL115:
1409 .L113:
7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1410 .loc 1 7114 61 is_stmt 1 view .LVU452
7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1411 .loc 1 7114 11 is_stmt 0 view .LVU453
1412 003e 2368 ldr r3, [r4]
1413 0040 9B69 ldr r3, [r3, #24]
7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1414 .loc 1 7114 61 view .LVU454
1415 0042 13F0040F tst r3, #4
1416 0046 2ED1 bne .L119
7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1417 .loc 1 7114 61 discriminator 1 view .LVU455
1418 0048 6DBB cbnz r5, .L119
7117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1419 .loc 1 7117 5 is_stmt 1 view .LVU456
7117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1420 .loc 1 7117 9 is_stmt 0 view .LVU457
1421 004a 3A46 mov r2, r7
1422 004c 3146 mov r1, r6
1423 004e 2046 mov r0, r4
1424 0050 FFF7FEFF bl I2C_IsErrorOccurred
1425 .LVL116:
7117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1426 .loc 1 7117 8 discriminator 1 view .LVU458
1427 0054 00B1 cbz r0, .L114
7119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1428 .loc 1 7119 14 view .LVU459
1429 0056 0125 movs r5, #1
1430 .LVL117:
1431 .L114:
7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1432 .loc 1 7123 5 is_stmt 1 view .LVU460
ARM GAS /tmp/ccN54YTb.s page 164
7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1433 .loc 1 7123 10 is_stmt 0 view .LVU461
1434 0058 2368 ldr r3, [r4]
1435 005a 9A69 ldr r2, [r3, #24]
7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1436 .loc 1 7123 8 view .LVU462
1437 005c 12F0200F tst r2, #32
1438 0060 D6D0 beq .L115
7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1439 .loc 1 7123 59 discriminator 1 view .LVU463
1440 0062 002D cmp r5, #0
1441 0064 D4D1 bne .L115
7127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1442 .loc 1 7127 7 is_stmt 1 view .LVU464
7127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1443 .loc 1 7127 12 is_stmt 0 view .LVU465
1444 0066 9A69 ldr r2, [r3, #24]
7131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1445 .loc 1 7131 9 is_stmt 1 view .LVU466
7135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1446 .loc 1 7135 7 view .LVU467
7135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1447 .loc 1 7135 11 is_stmt 0 view .LVU468
1448 0068 9A69 ldr r2, [r3, #24]
7135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1449 .loc 1 7135 10 view .LVU469
1450 006a 12F0100F tst r2, #16
1451 006e CDD0 beq .L116
7137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF;
1452 .loc 1 7137 9 is_stmt 1 view .LVU470
1453 0070 1022 movs r2, #16
1454 0072 DA61 str r2, [r3, #28]
7138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1455 .loc 1 7138 9 view .LVU471
7138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1456 .loc 1 7138 25 is_stmt 0 view .LVU472
1457 0074 0423 movs r3, #4
1458 0076 6364 str r3, [r4, #68]
7141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1459 .loc 1 7141 9 is_stmt 1 view .LVU473
1460 0078 2368 ldr r3, [r4]
1461 007a 2022 movs r2, #32
1462 007c DA61 str r2, [r3, #28]
7144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1463 .loc 1 7144 9 view .LVU474
1464 007e 2168 ldr r1, [r4]
1465 0080 4B68 ldr r3, [r1, #4]
1466 0082 23F0FF73 bic r3, r3, #33423360
1467 0086 23F48B33 bic r3, r3, #71168
1468 008a 23F4FF73 bic r3, r3, #510
1469 008e 23F00103 bic r3, r3, #1
1470 0092 4B60 str r3, [r1, #4]
7146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1471 .loc 1 7146 9 view .LVU475
7146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1472 .loc 1 7146 21 is_stmt 0 view .LVU476
1473 0094 84F84120 strb r2, [r4, #65]
ARM GAS /tmp/ccN54YTb.s page 165
7147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1474 .loc 1 7147 9 is_stmt 1 view .LVU477
7147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1475 .loc 1 7147 20 is_stmt 0 view .LVU478
1476 0098 0023 movs r3, #0
1477 009a 84F84230 strb r3, [r4, #66]
7150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1478 .loc 1 7150 9 is_stmt 1 view .LVU479
7150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1479 .loc 1 7150 9 view .LVU480
1480 009e 84F84030 strb r3, [r4, #64]
7150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1481 .loc 1 7150 9 view .LVU481
7152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1482 .loc 1 7152 9 view .LVU482
1483 .LVL118:
7152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1484 .loc 1 7152 16 is_stmt 0 view .LVU483
1485 00a2 0125 movs r5, #1
1486 00a4 B4E7 b .L115
1487 .LVL119:
1488 .L119:
7175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1489 .loc 1 7175 3 is_stmt 1 view .LVU484
7176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1490 .loc 1 7176 1 is_stmt 0 view .LVU485
1491 00a6 2846 mov r0, r5
1492 00a8 F8BD pop {r3, r4, r5, r6, r7, pc}
7176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1493 .loc 1 7176 1 view .LVU486
1494 .cfi_endproc
1495 .LFE410:
1497 .section .text.HAL_I2C_MspInit,"ax",%progbits
1498 .align 1
1499 .weak HAL_I2C_MspInit
1500 .syntax unified
1501 .thumb
1502 .thumb_func
1504 HAL_I2C_MspInit:
1505 .LVL120:
1506 .LFB337:
697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
1507 .loc 1 697 1 is_stmt 1 view -0
1508 .cfi_startproc
1509 @ args = 0, pretend = 0, frame = 0
1510 @ frame_needed = 0, uses_anonymous_args = 0
1511 @ link register save eliminated.
699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1512 .loc 1 699 3 view .LVU488
704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1513 .loc 1 704 1 is_stmt 0 view .LVU489
1514 0000 7047 bx lr
1515 .cfi_endproc
1516 .LFE337:
1518 .section .text.HAL_I2C_Init,"ax",%progbits
1519 .align 1
1520 .global HAL_I2C_Init
ARM GAS /tmp/ccN54YTb.s page 166
1521 .syntax unified
1522 .thumb
1523 .thumb_func
1525 HAL_I2C_Init:
1526 .LVL121:
1527 .LFB335:
536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
1528 .loc 1 536 1 is_stmt 1 view -0
1529 .cfi_startproc
1530 @ args = 0, pretend = 0, frame = 0
1531 @ frame_needed = 0, uses_anonymous_args = 0
538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1532 .loc 1 538 3 view .LVU491
538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1533 .loc 1 538 6 is_stmt 0 view .LVU492
1534 0000 0028 cmp r0, #0
1535 0002 5DD0 beq .L131
536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
1536 .loc 1 536 1 view .LVU493
1537 0004 10B5 push {r4, lr}
1538 .cfi_def_cfa_offset 8
1539 .cfi_offset 4, -8
1540 .cfi_offset 14, -4
1541 0006 0446 mov r4, r0
544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
1542 .loc 1 544 3 is_stmt 1 view .LVU494
545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode));
1543 .loc 1 545 3 view .LVU495
546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode));
1544 .loc 1 546 3 view .LVU496
547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2));
1545 .loc 1 547 3 view .LVU497
548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks));
1546 .loc 1 548 3 view .LVU498
549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode));
1547 .loc 1 549 3 view .LVU499
550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode));
1548 .loc 1 550 3 view .LVU500
551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1549 .loc 1 551 3 view .LVU501
553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1550 .loc 1 553 3 view .LVU502
553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1551 .loc 1 553 11 is_stmt 0 view .LVU503
1552 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1553 .loc 1 553 6 view .LVU504
1554 000c 002B cmp r3, #0
1555 000e 46D0 beq .L136
1556 .LVL122:
1557 .L126:
584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1558 .loc 1 584 3 is_stmt 1 view .LVU505
584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1559 .loc 1 584 15 is_stmt 0 view .LVU506
1560 0010 2423 movs r3, #36
1561 0012 84F84130 strb r3, [r4, #65]
ARM GAS /tmp/ccN54YTb.s page 167
587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1562 .loc 1 587 3 is_stmt 1 view .LVU507
1563 0016 2268 ldr r2, [r4]
1564 0018 1368 ldr r3, [r2]
1565 001a 23F00103 bic r3, r3, #1
1566 001e 1360 str r3, [r2]
591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1567 .loc 1 591 3 view .LVU508
591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1568 .loc 1 591 39 is_stmt 0 view .LVU509
1569 0020 6368 ldr r3, [r4, #4]
591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1570 .loc 1 591 7 view .LVU510
1571 0022 2268 ldr r2, [r4]
591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1572 .loc 1 591 47 view .LVU511
1573 0024 23F07063 bic r3, r3, #251658240
591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1574 .loc 1 591 27 view .LVU512
1575 0028 1361 str r3, [r2, #16]
595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1576 .loc 1 595 3 is_stmt 1 view .LVU513
595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1577 .loc 1 595 7 is_stmt 0 view .LVU514
1578 002a 2268 ldr r2, [r4]
595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1579 .loc 1 595 17 view .LVU515
1580 002c 9368 ldr r3, [r2, #8]
595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1581 .loc 1 595 24 view .LVU516
1582 002e 23F40043 bic r3, r3, #32768
1583 0032 9360 str r3, [r2, #8]
598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1584 .loc 1 598 3 is_stmt 1 view .LVU517
598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1585 .loc 1 598 17 is_stmt 0 view .LVU518
1586 0034 E368 ldr r3, [r4, #12]
598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1587 .loc 1 598 6 view .LVU519
1588 0036 012B cmp r3, #1
1589 0038 36D0 beq .L137
604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1590 .loc 1 604 5 is_stmt 1 view .LVU520
604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1591 .loc 1 604 75 is_stmt 0 view .LVU521
1592 003a A368 ldr r3, [r4, #8]
604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1593 .loc 1 604 9 view .LVU522
1594 003c 2268 ldr r2, [r4]
604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1595 .loc 1 604 63 view .LVU523
1596 003e 43F40443 orr r3, r3, #33792
604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1597 .loc 1 604 26 view .LVU524
1598 0042 9360 str r3, [r2, #8]
1599 .L128:
609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 168
1600 .loc 1 609 3 is_stmt 1 view .LVU525
609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1601 .loc 1 609 17 is_stmt 0 view .LVU526
1602 0044 E368 ldr r3, [r4, #12]
609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1603 .loc 1 609 6 view .LVU527
1604 0046 022B cmp r3, #2
1605 0048 34D0 beq .L138
616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1606 .loc 1 616 5 is_stmt 1 view .LVU528
1607 004a 2268 ldr r2, [r4]
1608 004c 5368 ldr r3, [r2, #4]
1609 004e 23F40063 bic r3, r3, #2048
1610 0052 5360 str r3, [r2, #4]
1611 .L130:
619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1612 .loc 1 619 3 view .LVU529
619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1613 .loc 1 619 7 is_stmt 0 view .LVU530
1614 0054 2268 ldr r2, [r4]
619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1615 .loc 1 619 17 view .LVU531
1616 0056 5168 ldr r1, [r2, #4]
619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1617 .loc 1 619 23 view .LVU532
1618 0058 1A4B ldr r3, .L139
1619 005a 0B43 orrs r3, r3, r1
1620 005c 5360 str r3, [r2, #4]
623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1621 .loc 1 623 3 is_stmt 1 view .LVU533
623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1622 .loc 1 623 7 is_stmt 0 view .LVU534
1623 005e 2268 ldr r2, [r4]
623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1624 .loc 1 623 17 view .LVU535
1625 0060 D368 ldr r3, [r2, #12]
623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1626 .loc 1 623 24 view .LVU536
1627 0062 23F40043 bic r3, r3, #32768
1628 0066 D360 str r3, [r2, #12]
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1629 .loc 1 626 3 is_stmt 1 view .LVU537
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1630 .loc 1 626 37 is_stmt 0 view .LVU538
1631 0068 2369 ldr r3, [r4, #16]
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1632 .loc 1 626 66 view .LVU539
1633 006a 6269 ldr r2, [r4, #20]
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1634 .loc 1 626 54 view .LVU540
1635 006c 1343 orrs r3, r3, r2
627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1636 .loc 1 627 38 view .LVU541
1637 006e A169 ldr r1, [r4, #24]
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1638 .loc 1 626 7 view .LVU542
1639 0070 2268 ldr r2, [r4]
ARM GAS /tmp/ccN54YTb.s page 169
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1640 .loc 1 626 79 view .LVU543
1641 0072 43EA0123 orr r3, r3, r1, lsl #8
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1642 .loc 1 626 24 view .LVU544
1643 0076 D360 str r3, [r2, #12]
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1644 .loc 1 631 3 is_stmt 1 view .LVU545
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1645 .loc 1 631 36 is_stmt 0 view .LVU546
1646 0078 E369 ldr r3, [r4, #28]
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1647 .loc 1 631 65 view .LVU547
1648 007a 216A ldr r1, [r4, #32]
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1649 .loc 1 631 7 view .LVU548
1650 007c 2268 ldr r2, [r4]
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1651 .loc 1 631 53 view .LVU549
1652 007e 0B43 orrs r3, r3, r1
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1653 .loc 1 631 23 view .LVU550
1654 0080 1360 str r3, [r2]
634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1655 .loc 1 634 3 is_stmt 1 view .LVU551
1656 0082 2268 ldr r2, [r4]
1657 0084 1368 ldr r3, [r2]
1658 0086 43F00103 orr r3, r3, #1
1659 008a 1360 str r3, [r2]
636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1660 .loc 1 636 3 view .LVU552
636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1661 .loc 1 636 19 is_stmt 0 view .LVU553
1662 008c 0020 movs r0, #0
1663 008e 6064 str r0, [r4, #68]
637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1664 .loc 1 637 3 is_stmt 1 view .LVU554
637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1665 .loc 1 637 15 is_stmt 0 view .LVU555
1666 0090 2023 movs r3, #32
1667 0092 84F84130 strb r3, [r4, #65]
638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1668 .loc 1 638 3 is_stmt 1 view .LVU556
638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1669 .loc 1 638 23 is_stmt 0 view .LVU557
1670 0096 2063 str r0, [r4, #48]
639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1671 .loc 1 639 3 is_stmt 1 view .LVU558
639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1672 .loc 1 639 14 is_stmt 0 view .LVU559
1673 0098 84F84200 strb r0, [r4, #66]
641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1674 .loc 1 641 3 is_stmt 1 view .LVU560
642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1675 .loc 1 642 1 is_stmt 0 view .LVU561
1676 009c 10BD pop {r4, pc}
1677 .LVL123:
ARM GAS /tmp/ccN54YTb.s page 170
1678 .L136:
556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1679 .loc 1 556 5 is_stmt 1 view .LVU562
556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1680 .loc 1 556 16 is_stmt 0 view .LVU563
1681 009e 80F84030 strb r3, [r0, #64]
580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1682 .loc 1 580 5 is_stmt 1 view .LVU564
1683 00a2 FFF7FEFF bl HAL_I2C_MspInit
1684 .LVL124:
580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1685 .loc 1 580 5 is_stmt 0 view .LVU565
1686 00a6 B3E7 b .L126
1687 .L137:
600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1688 .loc 1 600 5 is_stmt 1 view .LVU566
600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1689 .loc 1 600 56 is_stmt 0 view .LVU567
1690 00a8 A368 ldr r3, [r4, #8]
600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1691 .loc 1 600 9 view .LVU568
1692 00aa 2268 ldr r2, [r4]
600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1693 .loc 1 600 44 view .LVU569
1694 00ac 43F40043 orr r3, r3, #32768
600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1695 .loc 1 600 26 view .LVU570
1696 00b0 9360 str r3, [r2, #8]
1697 00b2 C7E7 b .L128
1698 .L138:
611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1699 .loc 1 611 5 is_stmt 1 view .LVU571
1700 00b4 2268 ldr r2, [r4]
1701 00b6 5368 ldr r3, [r2, #4]
1702 00b8 43F40063 orr r3, r3, #2048
1703 00bc 5360 str r3, [r2, #4]
1704 00be C9E7 b .L130
1705 .LVL125:
1706 .L131:
1707 .cfi_def_cfa_offset 0
1708 .cfi_restore 4
1709 .cfi_restore 14
540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1710 .loc 1 540 12 is_stmt 0 view .LVU572
1711 00c0 0120 movs r0, #1
1712 .LVL126:
642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1713 .loc 1 642 1 view .LVU573
1714 00c2 7047 bx lr
1715 .L140:
1716 .align 2
1717 .L139:
1718 00c4 00800002 .word 33587200
1719 .cfi_endproc
1720 .LFE335:
1722 .section .text.HAL_I2C_MspDeInit,"ax",%progbits
1723 .align 1
ARM GAS /tmp/ccN54YTb.s page 171
1724 .weak HAL_I2C_MspDeInit
1725 .syntax unified
1726 .thumb
1727 .thumb_func
1729 HAL_I2C_MspDeInit:
1730 .LVL127:
1731 .LFB338:
713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
1732 .loc 1 713 1 is_stmt 1 view -0
1733 .cfi_startproc
1734 @ args = 0, pretend = 0, frame = 0
1735 @ frame_needed = 0, uses_anonymous_args = 0
1736 @ link register save eliminated.
715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1737 .loc 1 715 3 view .LVU575
720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1738 .loc 1 720 1 is_stmt 0 view .LVU576
1739 0000 7047 bx lr
1740 .cfi_endproc
1741 .LFE338:
1743 .section .text.HAL_I2C_DeInit,"ax",%progbits
1744 .align 1
1745 .global HAL_I2C_DeInit
1746 .syntax unified
1747 .thumb
1748 .thumb_func
1750 HAL_I2C_DeInit:
1751 .LVL128:
1752 .LFB336:
651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
1753 .loc 1 651 1 is_stmt 1 view -0
1754 .cfi_startproc
1755 @ args = 0, pretend = 0, frame = 0
1756 @ frame_needed = 0, uses_anonymous_args = 0
653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1757 .loc 1 653 3 view .LVU578
653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1758 .loc 1 653 6 is_stmt 0 view .LVU579
1759 0000 A8B1 cbz r0, .L144
651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
1760 .loc 1 651 1 view .LVU580
1761 0002 10B5 push {r4, lr}
1762 .cfi_def_cfa_offset 8
1763 .cfi_offset 4, -8
1764 .cfi_offset 14, -4
1765 0004 0446 mov r4, r0
659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1766 .loc 1 659 3 is_stmt 1 view .LVU581
661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1767 .loc 1 661 3 view .LVU582
661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1768 .loc 1 661 15 is_stmt 0 view .LVU583
1769 0006 2423 movs r3, #36
1770 0008 80F84130 strb r3, [r0, #65]
664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1771 .loc 1 664 3 is_stmt 1 view .LVU584
1772 000c 0268 ldr r2, [r0]
ARM GAS /tmp/ccN54YTb.s page 172
1773 000e 1368 ldr r3, [r2]
1774 0010 23F00103 bic r3, r3, #1
1775 0014 1360 str r3, [r2]
676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1776 .loc 1 676 3 view .LVU585
1777 0016 FFF7FEFF bl HAL_I2C_MspDeInit
1778 .LVL129:
679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
1779 .loc 1 679 3 view .LVU586
679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
1780 .loc 1 679 19 is_stmt 0 view .LVU587
1781 001a 0020 movs r0, #0
1782 001c 6064 str r0, [r4, #68]
680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1783 .loc 1 680 3 is_stmt 1 view .LVU588
680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1784 .loc 1 680 15 is_stmt 0 view .LVU589
1785 001e 84F84100 strb r0, [r4, #65]
681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1786 .loc 1 681 3 is_stmt 1 view .LVU590
681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1787 .loc 1 681 23 is_stmt 0 view .LVU591
1788 0022 2063 str r0, [r4, #48]
682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1789 .loc 1 682 3 is_stmt 1 view .LVU592
682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1790 .loc 1 682 14 is_stmt 0 view .LVU593
1791 0024 84F84200 strb r0, [r4, #66]
685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1792 .loc 1 685 3 is_stmt 1 view .LVU594
685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1793 .loc 1 685 3 view .LVU595
1794 0028 84F84000 strb r0, [r4, #64]
685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1795 .loc 1 685 3 view .LVU596
687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1796 .loc 1 687 3 view .LVU597
688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1797 .loc 1 688 1 is_stmt 0 view .LVU598
1798 002c 10BD pop {r4, pc}
1799 .LVL130:
1800 .L144:
1801 .cfi_def_cfa_offset 0
1802 .cfi_restore 4
1803 .cfi_restore 14
655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1804 .loc 1 655 12 view .LVU599
1805 002e 0120 movs r0, #1
1806 .LVL131:
688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1807 .loc 1 688 1 view .LVU600
1808 0030 7047 bx lr
1809 .cfi_endproc
1810 .LFE336:
1812 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits
1813 .align 1
1814 .global HAL_I2C_Master_Transmit
ARM GAS /tmp/ccN54YTb.s page 173
1815 .syntax unified
1816 .thumb
1817 .thumb_func
1819 HAL_I2C_Master_Transmit:
1820 .LVL132:
1821 .LFB339:
1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1822 .loc 1 1121 1 is_stmt 1 view -0
1823 .cfi_startproc
1824 @ args = 4, pretend = 0, frame = 0
1825 @ frame_needed = 0, uses_anonymous_args = 0
1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1826 .loc 1 1121 1 is_stmt 0 view .LVU602
1827 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
1828 .cfi_def_cfa_offset 32
1829 .cfi_offset 4, -32
1830 .cfi_offset 5, -28
1831 .cfi_offset 6, -24
1832 .cfi_offset 7, -20
1833 .cfi_offset 8, -16
1834 .cfi_offset 9, -12
1835 .cfi_offset 10, -8
1836 .cfi_offset 14, -4
1837 0004 82B0 sub sp, sp, #8
1838 .cfi_def_cfa_offset 40
1839 0006 0F46 mov r7, r1
1840 0008 0A9E ldr r6, [sp, #40]
1122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
1841 .loc 1 1122 3 is_stmt 1 view .LVU603
1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1842 .loc 1 1123 3 view .LVU604
1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1843 .loc 1 1125 3 view .LVU605
1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1844 .loc 1 1125 11 is_stmt 0 view .LVU606
1845 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
1846 .LVL133:
1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1847 .loc 1 1125 6 view .LVU607
1848 000e 2029 cmp r1, #32
1849 0010 40F0B780 bne .L159
1850 0014 0446 mov r4, r0
1851 0016 9146 mov r9, r2
1852 0018 9846 mov r8, r3
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1853 .loc 1 1128 5 is_stmt 1 view .LVU608
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1854 .loc 1 1128 5 view .LVU609
1855 001a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
1856 .LVL134:
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1857 .loc 1 1128 5 is_stmt 0 view .LVU610
1858 001e 012B cmp r3, #1
1859 0020 00F0B380 beq .L160
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1860 .loc 1 1128 5 is_stmt 1 discriminator 2 view .LVU611
1861 0024 4FF0010A mov r10, #1
ARM GAS /tmp/ccN54YTb.s page 174
1862 0028 80F840A0 strb r10, [r0, #64]
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1863 .loc 1 1128 5 view .LVU612
1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1864 .loc 1 1131 5 view .LVU613
1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1865 .loc 1 1131 17 is_stmt 0 view .LVU614
1866 002c FFF7FEFF bl HAL_GetTick
1867 .LVL135:
1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1868 .loc 1 1131 17 view .LVU615
1869 0030 0546 mov r5, r0
1870 .LVL136:
1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1871 .loc 1 1133 5 is_stmt 1 view .LVU616
1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1872 .loc 1 1133 9 is_stmt 0 view .LVU617
1873 0032 0090 str r0, [sp]
1874 0034 1923 movs r3, #25
1875 0036 5246 mov r2, r10
1876 0038 4FF40041 mov r1, #32768
1877 003c 2046 mov r0, r4
1878 .LVL137:
1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1879 .loc 1 1133 9 view .LVU618
1880 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1881 .LVL138:
1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1882 .loc 1 1133 8 discriminator 1 view .LVU619
1883 0042 0028 cmp r0, #0
1884 0044 40F0A380 bne .L161
1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1885 .loc 1 1138 5 is_stmt 1 view .LVU620
1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1886 .loc 1 1138 21 is_stmt 0 view .LVU621
1887 0048 2123 movs r3, #33
1888 004a 84F84130 strb r3, [r4, #65]
1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1889 .loc 1 1139 5 is_stmt 1 view .LVU622
1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1890 .loc 1 1139 21 is_stmt 0 view .LVU623
1891 004e 1023 movs r3, #16
1892 0050 84F84230 strb r3, [r4, #66]
1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1893 .loc 1 1140 5 is_stmt 1 view .LVU624
1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1894 .loc 1 1140 21 is_stmt 0 view .LVU625
1895 0054 0023 movs r3, #0
1896 0056 6364 str r3, [r4, #68]
1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1897 .loc 1 1143 5 is_stmt 1 view .LVU626
1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1898 .loc 1 1143 21 is_stmt 0 view .LVU627
1899 0058 C4F82490 str r9, [r4, #36]
1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1900 .loc 1 1144 5 is_stmt 1 view .LVU628
1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
ARM GAS /tmp/ccN54YTb.s page 175
1901 .loc 1 1144 21 is_stmt 0 view .LVU629
1902 005c A4F82A80 strh r8, [r4, #42] @ movhi
1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1903 .loc 1 1145 5 is_stmt 1 view .LVU630
1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1904 .loc 1 1145 21 is_stmt 0 view .LVU631
1905 0060 6363 str r3, [r4, #52]
1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1906 .loc 1 1147 5 is_stmt 1 view .LVU632
1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1907 .loc 1 1147 13 is_stmt 0 view .LVU633
1908 0062 638D ldrh r3, [r4, #42]
1909 0064 9BB2 uxth r3, r3
1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1910 .loc 1 1147 8 view .LVU634
1911 0066 FF2B cmp r3, #255
1912 0068 1ED9 bls .L151
1149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1913 .loc 1 1149 7 is_stmt 1 view .LVU635
1149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1914 .loc 1 1149 22 is_stmt 0 view .LVU636
1915 006a FF23 movs r3, #255
1916 006c 2385 strh r3, [r4, #40] @ movhi
1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1917 .loc 1 1150 7 is_stmt 1 view .LVU637
1918 .LVL139:
1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1919 .loc 1 1150 16 is_stmt 0 view .LVU638
1920 006e 4FF08073 mov r3, #16777216
1921 .LVL140:
1922 .L152:
1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1923 .loc 1 1158 5 is_stmt 1 view .LVU639
1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1924 .loc 1 1158 13 is_stmt 0 view .LVU640
1925 0072 228D ldrh r2, [r4, #40]
1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1926 .loc 1 1158 8 view .LVU641
1927 0074 EAB1 cbz r2, .L153
1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1928 .loc 1 1162 7 is_stmt 1 view .LVU642
1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1929 .loc 1 1162 11 is_stmt 0 view .LVU643
1930 0076 2268 ldr r2, [r4]
1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1931 .loc 1 1162 30 view .LVU644
1932 0078 99F80010 ldrb r1, [r9] @ zero_extendqisi2
1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1933 .loc 1 1162 28 view .LVU645
1934 007c 9162 str r1, [r2, #40]
1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1935 .loc 1 1165 7 is_stmt 1 view .LVU646
1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1936 .loc 1 1165 11 is_stmt 0 view .LVU647
1937 007e 626A ldr r2, [r4, #36]
1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1938 .loc 1 1165 21 view .LVU648
ARM GAS /tmp/ccN54YTb.s page 176
1939 0080 0132 adds r2, r2, #1
1940 0082 6262 str r2, [r4, #36]
1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1941 .loc 1 1167 7 is_stmt 1 view .LVU649
1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1942 .loc 1 1167 11 is_stmt 0 view .LVU650
1943 0084 628D ldrh r2, [r4, #42]
1944 0086 92B2 uxth r2, r2
1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1945 .loc 1 1167 22 view .LVU651
1946 0088 013A subs r2, r2, #1
1947 008a 92B2 uxth r2, r2
1948 008c 6285 strh r2, [r4, #42] @ movhi
1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1949 .loc 1 1168 7 is_stmt 1 view .LVU652
1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1950 .loc 1 1168 11 is_stmt 0 view .LVU653
1951 008e 228D ldrh r2, [r4, #40]
1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1952 .loc 1 1168 21 view .LVU654
1953 0090 013A subs r2, r2, #1
1954 0092 92B2 uxth r2, r2
1955 0094 2285 strh r2, [r4, #40] @ movhi
1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1956 .loc 1 1172 7 is_stmt 1 view .LVU655
1957 0096 0132 adds r2, r2, #1
1958 0098 4149 ldr r1, .L167
1959 009a 0091 str r1, [sp]
1960 009c D2B2 uxtb r2, r2
1961 009e 3946 mov r1, r7
1962 00a0 2046 mov r0, r4
1963 00a2 FFF7FEFF bl I2C_TransferConfig
1964 .LVL141:
1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1965 .loc 1 1172 7 is_stmt 0 view .LVU656
1966 00a6 18E0 b .L157
1967 .LVL142:
1968 .L151:
1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1969 .loc 1 1154 7 is_stmt 1 view .LVU657
1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1970 .loc 1 1154 28 is_stmt 0 view .LVU658
1971 00a8 638D ldrh r3, [r4, #42]
1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1972 .loc 1 1154 22 view .LVU659
1973 00aa 2385 strh r3, [r4, #40] @ movhi
1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1974 .loc 1 1155 7 is_stmt 1 view .LVU660
1975 .LVL143:
1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1976 .loc 1 1155 16 is_stmt 0 view .LVU661
1977 00ac 4FF00073 mov r3, #33554432
1978 00b0 DFE7 b .L152
1979 .LVL144:
1980 .L153:
1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1981 .loc 1 1179 7 is_stmt 1 view .LVU662
ARM GAS /tmp/ccN54YTb.s page 177
1982 00b2 3B49 ldr r1, .L167
1983 00b4 0091 str r1, [sp]
1984 00b6 D2B2 uxtb r2, r2
1985 00b8 3946 mov r1, r7
1986 00ba 2046 mov r0, r4
1987 00bc FFF7FEFF bl I2C_TransferConfig
1988 .LVL145:
1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1989 .loc 1 1179 7 is_stmt 0 view .LVU663
1990 00c0 0BE0 b .L157
1991 .L156:
1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1992 .loc 1 1215 11 is_stmt 1 view .LVU664
1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1993 .loc 1 1215 32 is_stmt 0 view .LVU665
1994 00c2 628D ldrh r2, [r4, #42]
1995 00c4 92B2 uxth r2, r2
1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1996 .loc 1 1215 26 view .LVU666
1997 00c6 2285 strh r2, [r4, #40] @ movhi
1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1998 .loc 1 1216 11 is_stmt 1 view .LVU667
1999 00c8 0023 movs r3, #0
2000 00ca 0093 str r3, [sp]
2001 00cc 4FF00073 mov r3, #33554432
2002 00d0 D2B2 uxtb r2, r2
2003 00d2 3946 mov r1, r7
2004 00d4 2046 mov r0, r4
2005 00d6 FFF7FEFF bl I2C_TransferConfig
2006 .LVL146:
2007 .L157:
1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2008 .loc 1 1183 28 view .LVU668
1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2009 .loc 1 1183 16 is_stmt 0 view .LVU669
2010 00da 638D ldrh r3, [r4, #42]
2011 00dc 9BB2 uxth r3, r3
1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2012 .loc 1 1183 28 view .LVU670
2013 00de 002B cmp r3, #0
2014 00e0 33D0 beq .L166
1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2015 .loc 1 1186 7 is_stmt 1 view .LVU671
1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2016 .loc 1 1186 11 is_stmt 0 view .LVU672
2017 00e2 2A46 mov r2, r5
2018 00e4 3146 mov r1, r6
2019 00e6 2046 mov r0, r4
2020 00e8 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
2021 .LVL147:
1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2022 .loc 1 1186 10 discriminator 1 view .LVU673
2023 00ec 0028 cmp r0, #0
2024 00ee 50D1 bne .L162
1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2025 .loc 1 1191 7 is_stmt 1 view .LVU674
1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 178
2026 .loc 1 1191 35 is_stmt 0 view .LVU675
2027 00f0 626A ldr r2, [r4, #36]
1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2028 .loc 1 1191 11 view .LVU676
2029 00f2 2368 ldr r3, [r4]
1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2030 .loc 1 1191 30 view .LVU677
2031 00f4 1278 ldrb r2, [r2] @ zero_extendqisi2
1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2032 .loc 1 1191 28 view .LVU678
2033 00f6 9A62 str r2, [r3, #40]
1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2034 .loc 1 1194 7 is_stmt 1 view .LVU679
1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2035 .loc 1 1194 11 is_stmt 0 view .LVU680
2036 00f8 636A ldr r3, [r4, #36]
1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2037 .loc 1 1194 21 view .LVU681
2038 00fa 0133 adds r3, r3, #1
2039 00fc 6362 str r3, [r4, #36]
1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2040 .loc 1 1196 7 is_stmt 1 view .LVU682
1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2041 .loc 1 1196 11 is_stmt 0 view .LVU683
2042 00fe 638D ldrh r3, [r4, #42]
2043 0100 9BB2 uxth r3, r3
1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2044 .loc 1 1196 22 view .LVU684
2045 0102 013B subs r3, r3, #1
2046 0104 9BB2 uxth r3, r3
2047 0106 6385 strh r3, [r4, #42] @ movhi
1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2048 .loc 1 1197 7 is_stmt 1 view .LVU685
1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2049 .loc 1 1197 11 is_stmt 0 view .LVU686
2050 0108 238D ldrh r3, [r4, #40]
1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2051 .loc 1 1197 21 view .LVU687
2052 010a 013B subs r3, r3, #1
2053 010c 9BB2 uxth r3, r3
2054 010e 2385 strh r3, [r4, #40] @ movhi
1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2055 .loc 1 1199 7 is_stmt 1 view .LVU688
1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2056 .loc 1 1199 16 is_stmt 0 view .LVU689
2057 0110 628D ldrh r2, [r4, #42]
2058 0112 92B2 uxth r2, r2
1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2059 .loc 1 1199 10 view .LVU690
2060 0114 002A cmp r2, #0
2061 0116 E0D0 beq .L157
1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2062 .loc 1 1199 35 discriminator 1 view .LVU691
2063 0118 002B cmp r3, #0
2064 011a DED1 bne .L157
1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2065 .loc 1 1202 9 is_stmt 1 view .LVU692
ARM GAS /tmp/ccN54YTb.s page 179
1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2066 .loc 1 1202 13 is_stmt 0 view .LVU693
2067 011c 0095 str r5, [sp]
2068 011e 3346 mov r3, r6
2069 0120 0022 movs r2, #0
2070 0122 8021 movs r1, #128
2071 0124 2046 mov r0, r4
2072 0126 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2073 .LVL148:
1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2074 .loc 1 1202 12 discriminator 1 view .LVU694
2075 012a A0BB cbnz r0, .L163
1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2076 .loc 1 1207 9 is_stmt 1 view .LVU695
1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2077 .loc 1 1207 17 is_stmt 0 view .LVU696
2078 012c 638D ldrh r3, [r4, #42]
2079 012e 9BB2 uxth r3, r3
1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2080 .loc 1 1207 12 view .LVU697
2081 0130 FF2B cmp r3, #255
2082 0132 C6D9 bls .L156
1209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2083 .loc 1 1209 11 is_stmt 1 view .LVU698
1209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2084 .loc 1 1209 26 is_stmt 0 view .LVU699
2085 0134 FF22 movs r2, #255
2086 0136 2285 strh r2, [r4, #40] @ movhi
1210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2087 .loc 1 1210 11 is_stmt 1 view .LVU700
2088 0138 0023 movs r3, #0
2089 013a 0093 str r3, [sp]
2090 013c 4FF08073 mov r3, #16777216
2091 0140 3946 mov r1, r7
2092 0142 2046 mov r0, r4
2093 0144 FFF7FEFF bl I2C_TransferConfig
2094 .LVL149:
2095 0148 C7E7 b .L157
2096 .L166:
1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2097 .loc 1 1224 5 view .LVU701
1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2098 .loc 1 1224 9 is_stmt 0 view .LVU702
2099 014a 2A46 mov r2, r5
2100 014c 3146 mov r1, r6
2101 014e 2046 mov r0, r4
2102 0150 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2103 .LVL150:
1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2104 .loc 1 1224 8 discriminator 1 view .LVU703
2105 0154 08BB cbnz r0, .L164
1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2106 .loc 1 1230 5 is_stmt 1 view .LVU704
2107 0156 2368 ldr r3, [r4]
2108 0158 2022 movs r2, #32
2109 015a DA61 str r2, [r3, #28]
1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 180
2110 .loc 1 1233 5 view .LVU705
2111 015c 2168 ldr r1, [r4]
2112 015e 4B68 ldr r3, [r1, #4]
2113 0160 23F0FF73 bic r3, r3, #33423360
2114 0164 23F48B33 bic r3, r3, #71168
2115 0168 23F4FF73 bic r3, r3, #510
2116 016c 23F00103 bic r3, r3, #1
2117 0170 4B60 str r3, [r1, #4]
1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2118 .loc 1 1235 5 view .LVU706
1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2119 .loc 1 1235 17 is_stmt 0 view .LVU707
2120 0172 84F84120 strb r2, [r4, #65]
1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2121 .loc 1 1236 5 is_stmt 1 view .LVU708
1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2122 .loc 1 1236 17 is_stmt 0 view .LVU709
2123 0176 0023 movs r3, #0
2124 0178 84F84230 strb r3, [r4, #66]
1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2125 .loc 1 1239 5 is_stmt 1 view .LVU710
1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2126 .loc 1 1239 5 view .LVU711
2127 017c 84F84030 strb r3, [r4, #64]
1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2128 .loc 1 1239 5 view .LVU712
1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2129 .loc 1 1241 5 view .LVU713
1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2130 .loc 1 1241 12 is_stmt 0 view .LVU714
2131 0180 00E0 b .L150
2132 .LVL151:
2133 .L159:
1245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2134 .loc 1 1245 12 view .LVU715
2135 0182 0220 movs r0, #2
2136 .LVL152:
2137 .L150:
1247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2138 .loc 1 1247 1 view .LVU716
2139 0184 02B0 add sp, sp, #8
2140 .cfi_remember_state
2141 .cfi_def_cfa_offset 32
2142 @ sp needed
2143 0186 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
2144 .LVL153:
2145 .L160:
2146 .cfi_restore_state
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2147 .loc 1 1128 5 discriminator 1 view .LVU717
2148 018a 0220 movs r0, #2
2149 .LVL154:
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2150 .loc 1 1128 5 discriminator 1 view .LVU718
2151 018c FAE7 b .L150
2152 .LVL155:
2153 .L161:
ARM GAS /tmp/ccN54YTb.s page 181
1135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2154 .loc 1 1135 14 view .LVU719
2155 018e 0120 movs r0, #1
2156 0190 F8E7 b .L150
2157 .LVL156:
2158 .L162:
1188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2159 .loc 1 1188 16 view .LVU720
2160 0192 0120 movs r0, #1
2161 0194 F6E7 b .L150
2162 .L163:
1204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2163 .loc 1 1204 18 view .LVU721
2164 0196 0120 movs r0, #1
2165 0198 F4E7 b .L150
2166 .L164:
1226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2167 .loc 1 1226 14 view .LVU722
2168 019a 0120 movs r0, #1
2169 019c F2E7 b .L150
2170 .L168:
2171 019e 00BF .align 2
2172 .L167:
2173 01a0 00200080 .word -2147475456
2174 .cfi_endproc
2175 .LFE339:
2177 .section .text.HAL_I2C_Master_Receive,"ax",%progbits
2178 .align 1
2179 .global HAL_I2C_Master_Receive
2180 .syntax unified
2181 .thumb
2182 .thumb_func
2184 HAL_I2C_Master_Receive:
2185 .LVL157:
2186 .LFB340:
1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2187 .loc 1 1262 1 is_stmt 1 view -0
2188 .cfi_startproc
2189 @ args = 4, pretend = 0, frame = 0
2190 @ frame_needed = 0, uses_anonymous_args = 0
1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2191 .loc 1 1262 1 is_stmt 0 view .LVU724
2192 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
2193 .cfi_def_cfa_offset 32
2194 .cfi_offset 4, -32
2195 .cfi_offset 5, -28
2196 .cfi_offset 6, -24
2197 .cfi_offset 7, -20
2198 .cfi_offset 8, -16
2199 .cfi_offset 9, -12
2200 .cfi_offset 10, -8
2201 .cfi_offset 14, -4
2202 0004 82B0 sub sp, sp, #8
2203 .cfi_def_cfa_offset 40
2204 0006 0F46 mov r7, r1
2205 0008 0A9E ldr r6, [sp, #40]
1263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 182
2206 .loc 1 1263 3 is_stmt 1 view .LVU725
1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2207 .loc 1 1265 3 view .LVU726
1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2208 .loc 1 1265 11 is_stmt 0 view .LVU727
2209 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
2210 .LVL158:
1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2211 .loc 1 1265 6 view .LVU728
2212 000e 2029 cmp r1, #32
2213 0010 40F0A280 bne .L177
2214 0014 0446 mov r4, r0
2215 0016 9146 mov r9, r2
2216 0018 9846 mov r8, r3
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2217 .loc 1 1268 5 is_stmt 1 view .LVU729
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2218 .loc 1 1268 5 view .LVU730
2219 001a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
2220 .LVL159:
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2221 .loc 1 1268 5 is_stmt 0 view .LVU731
2222 001e 012B cmp r3, #1
2223 0020 00F09E80 beq .L178
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2224 .loc 1 1268 5 is_stmt 1 discriminator 2 view .LVU732
2225 0024 4FF0010A mov r10, #1
2226 0028 80F840A0 strb r10, [r0, #64]
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2227 .loc 1 1268 5 view .LVU733
1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2228 .loc 1 1271 5 view .LVU734
1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2229 .loc 1 1271 17 is_stmt 0 view .LVU735
2230 002c FFF7FEFF bl HAL_GetTick
2231 .LVL160:
1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2232 .loc 1 1271 17 view .LVU736
2233 0030 0546 mov r5, r0
2234 .LVL161:
1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2235 .loc 1 1273 5 is_stmt 1 view .LVU737
1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2236 .loc 1 1273 9 is_stmt 0 view .LVU738
2237 0032 0090 str r0, [sp]
2238 0034 1923 movs r3, #25
2239 0036 5246 mov r2, r10
2240 0038 4FF40041 mov r1, #32768
2241 003c 2046 mov r0, r4
2242 .LVL162:
1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2243 .loc 1 1273 9 view .LVU739
2244 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2245 .LVL163:
1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2246 .loc 1 1273 8 discriminator 1 view .LVU740
2247 0042 0028 cmp r0, #0
ARM GAS /tmp/ccN54YTb.s page 183
2248 0044 40F08E80 bne .L179
1278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2249 .loc 1 1278 5 is_stmt 1 view .LVU741
1278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2250 .loc 1 1278 21 is_stmt 0 view .LVU742
2251 0048 2223 movs r3, #34
2252 004a 84F84130 strb r3, [r4, #65]
1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2253 .loc 1 1279 5 is_stmt 1 view .LVU743
1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2254 .loc 1 1279 21 is_stmt 0 view .LVU744
2255 004e 1023 movs r3, #16
2256 0050 84F84230 strb r3, [r4, #66]
1280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2257 .loc 1 1280 5 is_stmt 1 view .LVU745
1280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2258 .loc 1 1280 21 is_stmt 0 view .LVU746
2259 0054 0023 movs r3, #0
2260 0056 6364 str r3, [r4, #68]
1283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2261 .loc 1 1283 5 is_stmt 1 view .LVU747
1283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2262 .loc 1 1283 21 is_stmt 0 view .LVU748
2263 0058 C4F82490 str r9, [r4, #36]
1284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2264 .loc 1 1284 5 is_stmt 1 view .LVU749
1284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2265 .loc 1 1284 21 is_stmt 0 view .LVU750
2266 005c A4F82A80 strh r8, [r4, #42] @ movhi
1285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2267 .loc 1 1285 5 is_stmt 1 view .LVU751
1285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2268 .loc 1 1285 21 is_stmt 0 view .LVU752
2269 0060 6363 str r3, [r4, #52]
1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2270 .loc 1 1289 5 is_stmt 1 view .LVU753
1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2271 .loc 1 1289 13 is_stmt 0 view .LVU754
2272 0062 638D ldrh r3, [r4, #42]
2273 0064 9BB2 uxth r3, r3
1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2274 .loc 1 1289 8 view .LVU755
2275 0066 FF2B cmp r3, #255
2276 0068 0AD9 bls .L171
1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2277 .loc 1 1291 7 is_stmt 1 view .LVU756
1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2278 .loc 1 1291 22 is_stmt 0 view .LVU757
2279 006a FF22 movs r2, #255
2280 006c 2285 strh r2, [r4, #40] @ movhi
1292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2281 .loc 1 1292 7 is_stmt 1 view .LVU758
2282 006e 414B ldr r3, .L185
2283 0070 0093 str r3, [sp]
2284 0072 4FF08073 mov r3, #16777216
2285 0076 3946 mov r1, r7
2286 0078 2046 mov r0, r4
ARM GAS /tmp/ccN54YTb.s page 184
2287 007a FFF7FEFF bl I2C_TransferConfig
2288 .LVL164:
2289 007e 18E0 b .L175
2290 .L171:
1297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2291 .loc 1 1297 7 view .LVU759
1297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2292 .loc 1 1297 28 is_stmt 0 view .LVU760
2293 0080 628D ldrh r2, [r4, #42]
2294 0082 92B2 uxth r2, r2
1297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2295 .loc 1 1297 22 view .LVU761
2296 0084 2285 strh r2, [r4, #40] @ movhi
1298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2297 .loc 1 1298 7 is_stmt 1 view .LVU762
2298 0086 3B4B ldr r3, .L185
2299 0088 0093 str r3, [sp]
2300 008a 4FF00073 mov r3, #33554432
2301 008e D2B2 uxtb r2, r2
2302 0090 3946 mov r1, r7
2303 0092 2046 mov r0, r4
2304 0094 FFF7FEFF bl I2C_TransferConfig
2305 .LVL165:
2306 0098 0BE0 b .L175
2307 .L174:
1335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2308 .loc 1 1335 11 view .LVU763
1335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2309 .loc 1 1335 32 is_stmt 0 view .LVU764
2310 009a 628D ldrh r2, [r4, #42]
2311 009c 92B2 uxth r2, r2
1335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2312 .loc 1 1335 26 view .LVU765
2313 009e 2285 strh r2, [r4, #40] @ movhi
1336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2314 .loc 1 1336 11 is_stmt 1 view .LVU766
2315 00a0 0023 movs r3, #0
2316 00a2 0093 str r3, [sp]
2317 00a4 4FF00073 mov r3, #33554432
2318 00a8 D2B2 uxtb r2, r2
2319 00aa 3946 mov r1, r7
2320 00ac 2046 mov r0, r4
2321 00ae FFF7FEFF bl I2C_TransferConfig
2322 .LVL166:
2323 .L175:
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2324 .loc 1 1302 28 view .LVU767
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2325 .loc 1 1302 16 is_stmt 0 view .LVU768
2326 00b2 638D ldrh r3, [r4, #42]
2327 00b4 9BB2 uxth r3, r3
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2328 .loc 1 1302 28 view .LVU769
2329 00b6 002B cmp r3, #0
2330 00b8 32D0 beq .L184
1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2331 .loc 1 1305 7 is_stmt 1 view .LVU770
ARM GAS /tmp/ccN54YTb.s page 185
1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2332 .loc 1 1305 11 is_stmt 0 view .LVU771
2333 00ba 2A46 mov r2, r5
2334 00bc 3146 mov r1, r6
2335 00be 2046 mov r0, r4
2336 00c0 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
2337 .LVL167:
1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2338 .loc 1 1305 10 discriminator 1 view .LVU772
2339 00c4 0028 cmp r0, #0
2340 00c6 4FD1 bne .L180
1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2341 .loc 1 1311 7 is_stmt 1 view .LVU773
1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2342 .loc 1 1311 38 is_stmt 0 view .LVU774
2343 00c8 2368 ldr r3, [r4]
1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2344 .loc 1 1311 48 view .LVU775
2345 00ca 5A6A ldr r2, [r3, #36]
1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2346 .loc 1 1311 12 view .LVU776
2347 00cc 636A ldr r3, [r4, #36]
1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2348 .loc 1 1311 23 view .LVU777
2349 00ce 1A70 strb r2, [r3]
1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2350 .loc 1 1314 7 is_stmt 1 view .LVU778
1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2351 .loc 1 1314 11 is_stmt 0 view .LVU779
2352 00d0 636A ldr r3, [r4, #36]
1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2353 .loc 1 1314 21 view .LVU780
2354 00d2 0133 adds r3, r3, #1
2355 00d4 6362 str r3, [r4, #36]
1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2356 .loc 1 1316 7 is_stmt 1 view .LVU781
1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2357 .loc 1 1316 11 is_stmt 0 view .LVU782
2358 00d6 228D ldrh r2, [r4, #40]
1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2359 .loc 1 1316 21 view .LVU783
2360 00d8 013A subs r2, r2, #1
2361 00da 92B2 uxth r2, r2
2362 00dc 2285 strh r2, [r4, #40] @ movhi
1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2363 .loc 1 1317 7 is_stmt 1 view .LVU784
1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2364 .loc 1 1317 11 is_stmt 0 view .LVU785
2365 00de 638D ldrh r3, [r4, #42]
2366 00e0 9BB2 uxth r3, r3
1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2367 .loc 1 1317 22 view .LVU786
2368 00e2 013B subs r3, r3, #1
2369 00e4 9BB2 uxth r3, r3
2370 00e6 6385 strh r3, [r4, #42] @ movhi
1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2371 .loc 1 1319 7 is_stmt 1 view .LVU787
ARM GAS /tmp/ccN54YTb.s page 186
1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2372 .loc 1 1319 16 is_stmt 0 view .LVU788
2373 00e8 638D ldrh r3, [r4, #42]
2374 00ea 9BB2 uxth r3, r3
1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2375 .loc 1 1319 10 view .LVU789
2376 00ec 002B cmp r3, #0
2377 00ee E0D0 beq .L175
1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2378 .loc 1 1319 35 discriminator 1 view .LVU790
2379 00f0 002A cmp r2, #0
2380 00f2 DED1 bne .L175
1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2381 .loc 1 1322 9 is_stmt 1 view .LVU791
1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2382 .loc 1 1322 13 is_stmt 0 view .LVU792
2383 00f4 0095 str r5, [sp]
2384 00f6 3346 mov r3, r6
2385 00f8 8021 movs r1, #128
2386 00fa 2046 mov r0, r4
2387 00fc FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2388 .LVL168:
1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2389 .loc 1 1322 12 discriminator 1 view .LVU793
2390 0100 A0BB cbnz r0, .L181
1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2391 .loc 1 1327 9 is_stmt 1 view .LVU794
1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2392 .loc 1 1327 17 is_stmt 0 view .LVU795
2393 0102 638D ldrh r3, [r4, #42]
2394 0104 9BB2 uxth r3, r3
1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2395 .loc 1 1327 12 view .LVU796
2396 0106 FF2B cmp r3, #255
2397 0108 C7D9 bls .L174
1329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2398 .loc 1 1329 11 is_stmt 1 view .LVU797
1329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2399 .loc 1 1329 26 is_stmt 0 view .LVU798
2400 010a FF22 movs r2, #255
2401 010c 2285 strh r2, [r4, #40] @ movhi
1330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2402 .loc 1 1330 11 is_stmt 1 view .LVU799
2403 010e 0023 movs r3, #0
2404 0110 0093 str r3, [sp]
2405 0112 4FF08073 mov r3, #16777216
2406 0116 3946 mov r1, r7
2407 0118 2046 mov r0, r4
2408 011a FFF7FEFF bl I2C_TransferConfig
2409 .LVL169:
2410 011e C8E7 b .L175
2411 .L184:
1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2412 .loc 1 1344 5 view .LVU800
1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2413 .loc 1 1344 9 is_stmt 0 view .LVU801
2414 0120 2A46 mov r2, r5
ARM GAS /tmp/ccN54YTb.s page 187
2415 0122 3146 mov r1, r6
2416 0124 2046 mov r0, r4
2417 0126 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2418 .LVL170:
1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2419 .loc 1 1344 8 discriminator 1 view .LVU802
2420 012a 08BB cbnz r0, .L182
1350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2421 .loc 1 1350 5 is_stmt 1 view .LVU803
2422 012c 2368 ldr r3, [r4]
2423 012e 2022 movs r2, #32
2424 0130 DA61 str r2, [r3, #28]
1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2425 .loc 1 1353 5 view .LVU804
2426 0132 2168 ldr r1, [r4]
2427 0134 4B68 ldr r3, [r1, #4]
2428 0136 23F0FF73 bic r3, r3, #33423360
2429 013a 23F48B33 bic r3, r3, #71168
2430 013e 23F4FF73 bic r3, r3, #510
2431 0142 23F00103 bic r3, r3, #1
2432 0146 4B60 str r3, [r1, #4]
1355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2433 .loc 1 1355 5 view .LVU805
1355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2434 .loc 1 1355 17 is_stmt 0 view .LVU806
2435 0148 84F84120 strb r2, [r4, #65]
1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2436 .loc 1 1356 5 is_stmt 1 view .LVU807
1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2437 .loc 1 1356 17 is_stmt 0 view .LVU808
2438 014c 0023 movs r3, #0
2439 014e 84F84230 strb r3, [r4, #66]
1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2440 .loc 1 1359 5 is_stmt 1 view .LVU809
1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2441 .loc 1 1359 5 view .LVU810
2442 0152 84F84030 strb r3, [r4, #64]
1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2443 .loc 1 1359 5 view .LVU811
1361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2444 .loc 1 1361 5 view .LVU812
1361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2445 .loc 1 1361 12 is_stmt 0 view .LVU813
2446 0156 00E0 b .L170
2447 .LVL171:
2448 .L177:
1365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2449 .loc 1 1365 12 view .LVU814
2450 0158 0220 movs r0, #2
2451 .LVL172:
2452 .L170:
1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2453 .loc 1 1367 1 view .LVU815
2454 015a 02B0 add sp, sp, #8
2455 .cfi_remember_state
2456 .cfi_def_cfa_offset 32
2457 @ sp needed
ARM GAS /tmp/ccN54YTb.s page 188
2458 015c BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
2459 .LVL173:
2460 .L178:
2461 .cfi_restore_state
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2462 .loc 1 1268 5 discriminator 1 view .LVU816
2463 0160 0220 movs r0, #2
2464 .LVL174:
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2465 .loc 1 1268 5 discriminator 1 view .LVU817
2466 0162 FAE7 b .L170
2467 .LVL175:
2468 .L179:
1275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2469 .loc 1 1275 14 view .LVU818
2470 0164 0120 movs r0, #1
2471 0166 F8E7 b .L170
2472 .L180:
1307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2473 .loc 1 1307 16 view .LVU819
2474 0168 0120 movs r0, #1
2475 016a F6E7 b .L170
2476 .L181:
1324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2477 .loc 1 1324 18 view .LVU820
2478 016c 0120 movs r0, #1
2479 016e F4E7 b .L170
2480 .L182:
1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2481 .loc 1 1346 14 view .LVU821
2482 0170 0120 movs r0, #1
2483 0172 F2E7 b .L170
2484 .L186:
2485 .align 2
2486 .L185:
2487 0174 00240080 .word -2147474432
2488 .cfi_endproc
2489 .LFE340:
2491 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits
2492 .align 1
2493 .global HAL_I2C_Slave_Transmit
2494 .syntax unified
2495 .thumb
2496 .thumb_func
2498 HAL_I2C_Slave_Transmit:
2499 .LVL176:
2500 .LFB341:
1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2501 .loc 1 1380 1 is_stmt 1 view -0
2502 .cfi_startproc
2503 @ args = 0, pretend = 0, frame = 0
2504 @ frame_needed = 0, uses_anonymous_args = 0
1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2505 .loc 1 1380 1 is_stmt 0 view .LVU823
2506 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
2507 .cfi_def_cfa_offset 24
2508 .cfi_offset 4, -24
ARM GAS /tmp/ccN54YTb.s page 189
2509 .cfi_offset 5, -20
2510 .cfi_offset 6, -16
2511 .cfi_offset 7, -12
2512 .cfi_offset 8, -8
2513 .cfi_offset 14, -4
2514 0004 82B0 sub sp, sp, #8
2515 .cfi_def_cfa_offset 32
2516 0006 1D46 mov r5, r3
1381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t tmpXferCount;
2517 .loc 1 1381 3 is_stmt 1 view .LVU824
1382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef error;
2518 .loc 1 1382 3 view .LVU825
1383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2519 .loc 1 1383 3 view .LVU826
1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2520 .loc 1 1385 3 view .LVU827
1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2521 .loc 1 1385 11 is_stmt 0 view .LVU828
2522 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
2523 .LVL177:
1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2524 .loc 1 1385 6 view .LVU829
2525 000c 202B cmp r3, #32
2526 000e 40F0EA80 bne .L202
2527 0012 0446 mov r4, r0
2528 0014 8846 mov r8, r1
2529 0016 1746 mov r7, r2
1387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2530 .loc 1 1387 5 is_stmt 1 view .LVU830
1387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2531 .loc 1 1387 8 is_stmt 0 view .LVU831
2532 0018 002A cmp r2, #0
2533 001a 18BF it ne
2534 001c 0029 cmpne r1, #0
2535 001e 55D0 beq .L205
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2536 .loc 1 1393 5 is_stmt 1 view .LVU832
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2537 .loc 1 1393 5 view .LVU833
2538 0020 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
2539 0024 012B cmp r3, #1
2540 0026 00F0E280 beq .L203
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2541 .loc 1 1393 5 discriminator 2 view .LVU834
2542 002a 0123 movs r3, #1
2543 002c 80F84030 strb r3, [r0, #64]
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2544 .loc 1 1393 5 view .LVU835
1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2545 .loc 1 1396 5 view .LVU836
1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2546 .loc 1 1396 17 is_stmt 0 view .LVU837
2547 0030 FFF7FEFF bl HAL_GetTick
2548 .LVL178:
1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2549 .loc 1 1396 17 view .LVU838
2550 0034 0646 mov r6, r0
ARM GAS /tmp/ccN54YTb.s page 190
2551 .LVL179:
1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2552 .loc 1 1398 5 is_stmt 1 view .LVU839
1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2553 .loc 1 1398 21 is_stmt 0 view .LVU840
2554 0036 2123 movs r3, #33
2555 0038 84F84130 strb r3, [r4, #65]
1399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2556 .loc 1 1399 5 is_stmt 1 view .LVU841
1399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2557 .loc 1 1399 21 is_stmt 0 view .LVU842
2558 003c 2023 movs r3, #32
2559 003e 84F84230 strb r3, [r4, #66]
1400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2560 .loc 1 1400 5 is_stmt 1 view .LVU843
1400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2561 .loc 1 1400 21 is_stmt 0 view .LVU844
2562 0042 0023 movs r3, #0
2563 0044 6364 str r3, [r4, #68]
1403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2564 .loc 1 1403 5 is_stmt 1 view .LVU845
1403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2565 .loc 1 1403 21 is_stmt 0 view .LVU846
2566 0046 C4F82480 str r8, [r4, #36]
1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2567 .loc 1 1404 5 is_stmt 1 view .LVU847
1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2568 .loc 1 1404 21 is_stmt 0 view .LVU848
2569 004a 6785 strh r7, [r4, #42] @ movhi
1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2570 .loc 1 1405 5 is_stmt 1 view .LVU849
1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2571 .loc 1 1405 21 is_stmt 0 view .LVU850
2572 004c 6363 str r3, [r4, #52]
1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2573 .loc 1 1408 5 is_stmt 1 view .LVU851
1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2574 .loc 1 1408 9 is_stmt 0 view .LVU852
2575 004e 2268 ldr r2, [r4]
1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2576 .loc 1 1408 19 view .LVU853
2577 0050 5368 ldr r3, [r2, #4]
1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2578 .loc 1 1408 25 view .LVU854
2579 0052 23F40043 bic r3, r3, #32768
2580 0056 5360 str r3, [r2, #4]
1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2581 .loc 1 1411 5 is_stmt 1 view .LVU855
1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2582 .loc 1 1411 19 is_stmt 0 view .LVU856
2583 0058 236A ldr r3, [r4, #32]
1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2584 .loc 1 1411 8 view .LVU857
2585 005a B3F5003F cmp r3, #131072
2586 005e 3AD0 beq .L206
2587 .L190:
1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 191
2588 .loc 1 1424 5 is_stmt 1 view .LVU858
1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2589 .loc 1 1424 9 is_stmt 0 view .LVU859
2590 0060 0096 str r6, [sp]
2591 0062 2B46 mov r3, r5
2592 0064 0022 movs r2, #0
2593 0066 0821 movs r1, #8
2594 0068 2046 mov r0, r4
2595 .LVL180:
1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2596 .loc 1 1424 9 view .LVU860
2597 006a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2598 .LVL181:
1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2599 .loc 1 1424 8 discriminator 1 view .LVU861
2600 006e 0028 cmp r0, #0
2601 0070 3ED1 bne .L207
1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2602 .loc 1 1436 5 is_stmt 1 view .LVU862
2603 0072 2368 ldr r3, [r4]
2604 0074 0822 movs r2, #8
2605 0076 DA61 str r2, [r3, #28]
1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2606 .loc 1 1439 5 view .LVU863
1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2607 .loc 1 1439 19 is_stmt 0 view .LVU864
2608 0078 E368 ldr r3, [r4, #12]
1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2609 .loc 1 1439 8 view .LVU865
2610 007a 022B cmp r3, #2
2611 007c 42D0 beq .L208
2612 .L192:
1458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2613 .loc 1 1458 5 is_stmt 1 view .LVU866
1458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2614 .loc 1 1458 9 is_stmt 0 view .LVU867
2615 007e 0096 str r6, [sp]
2616 0080 2B46 mov r3, r5
2617 0082 0022 movs r2, #0
2618 0084 4FF48031 mov r1, #65536
2619 0088 2046 mov r0, r4
2620 008a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2621 .LVL182:
1458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2622 .loc 1 1458 8 discriminator 1 view .LVU868
2623 008e 0028 cmp r0, #0
2624 0090 4ED1 bne .L209
2625 .L194:
1469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2626 .loc 1 1469 28 is_stmt 1 view .LVU869
1469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2627 .loc 1 1469 16 is_stmt 0 view .LVU870
2628 0092 628D ldrh r2, [r4, #42]
2629 0094 92B2 uxth r2, r2
1469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2630 .loc 1 1469 28 view .LVU871
2631 0096 002A cmp r2, #0
ARM GAS /tmp/ccN54YTb.s page 192
2632 0098 5BD0 beq .L210
1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2633 .loc 1 1472 7 is_stmt 1 view .LVU872
1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2634 .loc 1 1472 11 is_stmt 0 view .LVU873
2635 009a 3246 mov r2, r6
2636 009c 2946 mov r1, r5
2637 009e 2046 mov r0, r4
2638 00a0 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
2639 .LVL183:
1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2640 .loc 1 1472 10 discriminator 1 view .LVU874
2641 00a4 0028 cmp r0, #0
2642 00a6 4DD1 bne .L211
1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2643 .loc 1 1480 7 is_stmt 1 view .LVU875
1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2644 .loc 1 1480 35 is_stmt 0 view .LVU876
2645 00a8 626A ldr r2, [r4, #36]
1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2646 .loc 1 1480 11 view .LVU877
2647 00aa 2368 ldr r3, [r4]
1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2648 .loc 1 1480 30 view .LVU878
2649 00ac 1278 ldrb r2, [r2] @ zero_extendqisi2
1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2650 .loc 1 1480 28 view .LVU879
2651 00ae 9A62 str r2, [r3, #40]
1483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2652 .loc 1 1483 7 is_stmt 1 view .LVU880
1483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2653 .loc 1 1483 11 is_stmt 0 view .LVU881
2654 00b0 636A ldr r3, [r4, #36]
1483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2655 .loc 1 1483 21 view .LVU882
2656 00b2 0133 adds r3, r3, #1
2657 00b4 6362 str r3, [r4, #36]
1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2658 .loc 1 1485 7 is_stmt 1 view .LVU883
1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2659 .loc 1 1485 11 is_stmt 0 view .LVU884
2660 00b6 B4F82AC0 ldrh ip, [r4, #42]
2661 00ba 1FFA8CFC uxth ip, ip
1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2662 .loc 1 1485 22 view .LVU885
2663 00be 0CF1FF3C add ip, ip, #-1
2664 00c2 1FFA8CFC uxth ip, ip
2665 00c6 A4F82AC0 strh ip, [r4, #42] @ movhi
2666 00ca E2E7 b .L194
2667 .LVL184:
2668 .L205:
1389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2669 .loc 1 1389 7 is_stmt 1 view .LVU886
1389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2670 .loc 1 1389 23 is_stmt 0 view .LVU887
2671 00cc 4FF40073 mov r3, #512
2672 00d0 4364 str r3, [r0, #68]
ARM GAS /tmp/ccN54YTb.s page 193
1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2673 .loc 1 1390 7 is_stmt 1 view .LVU888
1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2674 .loc 1 1390 15 is_stmt 0 view .LVU889
2675 00d2 0120 movs r0, #1
2676 .LVL185:
1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2677 .loc 1 1390 15 view .LVU890
2678 00d4 88E0 b .L188
2679 .LVL186:
2680 .L206:
1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2681 .loc 1 1415 7 is_stmt 1 view .LVU891
1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2682 .loc 1 1415 35 is_stmt 0 view .LVU892
2683 00d6 626A ldr r2, [r4, #36]
1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2684 .loc 1 1415 11 view .LVU893
2685 00d8 2368 ldr r3, [r4]
1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2686 .loc 1 1415 30 view .LVU894
2687 00da 1278 ldrb r2, [r2] @ zero_extendqisi2
1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2688 .loc 1 1415 28 view .LVU895
2689 00dc 9A62 str r2, [r3, #40]
1418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2690 .loc 1 1418 7 is_stmt 1 view .LVU896
1418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2691 .loc 1 1418 11 is_stmt 0 view .LVU897
2692 00de 636A ldr r3, [r4, #36]
1418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2693 .loc 1 1418 21 view .LVU898
2694 00e0 0133 adds r3, r3, #1
2695 00e2 6362 str r3, [r4, #36]
1420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2696 .loc 1 1420 7 is_stmt 1 view .LVU899
1420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2697 .loc 1 1420 11 is_stmt 0 view .LVU900
2698 00e4 638D ldrh r3, [r4, #42]
2699 00e6 9BB2 uxth r3, r3
1420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2700 .loc 1 1420 22 view .LVU901
2701 00e8 013B subs r3, r3, #1
2702 00ea 9BB2 uxth r3, r3
2703 00ec 6385 strh r3, [r4, #42] @ movhi
2704 00ee B7E7 b .L190
2705 .LVL187:
2706 .L207:
1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2707 .loc 1 1427 7 is_stmt 1 view .LVU902
1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2708 .loc 1 1427 11 is_stmt 0 view .LVU903
2709 00f0 2268 ldr r2, [r4]
1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2710 .loc 1 1427 21 view .LVU904
2711 00f2 5368 ldr r3, [r2, #4]
1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 194
2712 .loc 1 1427 27 view .LVU905
2713 00f4 43F40043 orr r3, r3, #32768
2714 00f8 5360 str r3, [r2, #4]
1430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2715 .loc 1 1430 7 is_stmt 1 view .LVU906
2716 00fa 2046 mov r0, r4
2717 00fc FFF7FEFF bl I2C_Flush_TXDR
2718 .LVL188:
1432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2719 .loc 1 1432 7 view .LVU907
1432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2720 .loc 1 1432 14 is_stmt 0 view .LVU908
2721 0100 0120 movs r0, #1
2722 0102 71E0 b .L188
2723 .L208:
1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2724 .loc 1 1442 7 is_stmt 1 view .LVU909
1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2725 .loc 1 1442 11 is_stmt 0 view .LVU910
2726 0104 0096 str r6, [sp]
2727 0106 2B46 mov r3, r5
2728 0108 0022 movs r2, #0
2729 010a 0821 movs r1, #8
2730 010c 2046 mov r0, r4
2731 010e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2732 .LVL189:
1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2733 .loc 1 1442 10 discriminator 1 view .LVU911
2734 0112 18B9 cbnz r0, .L212
1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2735 .loc 1 1454 7 is_stmt 1 view .LVU912
2736 0114 2368 ldr r3, [r4]
2737 0116 0822 movs r2, #8
2738 0118 DA61 str r2, [r3, #28]
2739 011a B0E7 b .L192
2740 .L212:
1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2741 .loc 1 1445 9 view .LVU913
1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2742 .loc 1 1445 13 is_stmt 0 view .LVU914
2743 011c 2268 ldr r2, [r4]
1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2744 .loc 1 1445 23 view .LVU915
2745 011e 5368 ldr r3, [r2, #4]
1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2746 .loc 1 1445 29 view .LVU916
2747 0120 43F40043 orr r3, r3, #32768
2748 0124 5360 str r3, [r2, #4]
1448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2749 .loc 1 1448 9 is_stmt 1 view .LVU917
2750 0126 2046 mov r0, r4
2751 0128 FFF7FEFF bl I2C_Flush_TXDR
2752 .LVL190:
1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2753 .loc 1 1450 9 view .LVU918
1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2754 .loc 1 1450 16 is_stmt 0 view .LVU919
ARM GAS /tmp/ccN54YTb.s page 195
2755 012c 0120 movs r0, #1
2756 012e 5BE0 b .L188
2757 .L209:
1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2758 .loc 1 1461 7 is_stmt 1 view .LVU920
1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2759 .loc 1 1461 11 is_stmt 0 view .LVU921
2760 0130 2268 ldr r2, [r4]
1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2761 .loc 1 1461 21 view .LVU922
2762 0132 5368 ldr r3, [r2, #4]
1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2763 .loc 1 1461 27 view .LVU923
2764 0134 43F40043 orr r3, r3, #32768
2765 0138 5360 str r3, [r2, #4]
1464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2766 .loc 1 1464 7 is_stmt 1 view .LVU924
2767 013a 2046 mov r0, r4
2768 013c FFF7FEFF bl I2C_Flush_TXDR
2769 .LVL191:
1466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2770 .loc 1 1466 7 view .LVU925
1466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2771 .loc 1 1466 14 is_stmt 0 view .LVU926
2772 0140 0120 movs r0, #1
2773 0142 51E0 b .L188
2774 .L211:
1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2775 .loc 1 1475 9 is_stmt 1 view .LVU927
1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2776 .loc 1 1475 13 is_stmt 0 view .LVU928
2777 0144 2268 ldr r2, [r4]
1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2778 .loc 1 1475 23 view .LVU929
2779 0146 5368 ldr r3, [r2, #4]
1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2780 .loc 1 1475 29 view .LVU930
2781 0148 43F40043 orr r3, r3, #32768
2782 014c 5360 str r3, [r2, #4]
1476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2783 .loc 1 1476 9 is_stmt 1 view .LVU931
1476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2784 .loc 1 1476 16 is_stmt 0 view .LVU932
2785 014e 0120 movs r0, #1
2786 0150 4AE0 b .L188
2787 .L210:
1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2788 .loc 1 1489 5 is_stmt 1 view .LVU933
1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2789 .loc 1 1489 13 is_stmt 0 view .LVU934
2790 0152 0096 str r6, [sp]
2791 0154 2B46 mov r3, r5
2792 0156 1021 movs r1, #16
2793 0158 2046 mov r0, r4
2794 015a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2795 .LVL192:
1491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 196
2796 .loc 1 1491 5 is_stmt 1 view .LVU935
1491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2797 .loc 1 1491 8 is_stmt 0 view .LVU936
2798 015e E8B1 cbz r0, .L197
1497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U))
2799 .loc 1 1497 7 is_stmt 1 view .LVU937
1497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U))
2800 .loc 1 1497 20 is_stmt 0 view .LVU938
2801 0160 638D ldrh r3, [r4, #42]
2802 0162 9BB2 uxth r3, r3
2803 .LVL193:
1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2804 .loc 1 1498 7 is_stmt 1 view .LVU939
1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2805 .loc 1 1498 16 is_stmt 0 view .LVU940
2806 0164 626C ldr r2, [r4, #68]
1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2807 .loc 1 1498 10 view .LVU941
2808 0166 042A cmp r2, #4
2809 0168 11D1 bne .L198
1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2810 .loc 1 1498 49 discriminator 1 view .LVU942
2811 016a 83B9 cbnz r3, .L198
1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2812 .loc 1 1501 9 is_stmt 1 view .LVU943
1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2813 .loc 1 1501 25 is_stmt 0 view .LVU944
2814 016c 6364 str r3, [r4, #68]
2815 .LVL194:
2816 .L199:
1532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2817 .loc 1 1532 5 is_stmt 1 view .LVU945
1532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2818 .loc 1 1532 9 is_stmt 0 view .LVU946
2819 016e 0096 str r6, [sp]
2820 0170 2B46 mov r3, r5
2821 0172 0122 movs r2, #1
2822 0174 4FF40041 mov r1, #32768
2823 0178 2046 mov r0, r4
2824 017a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2825 .LVL195:
1532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2826 .loc 1 1532 8 discriminator 1 view .LVU947
2827 017e 20B3 cbz r0, .L201
1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2828 .loc 1 1535 7 is_stmt 1 view .LVU948
1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2829 .loc 1 1535 11 is_stmt 0 view .LVU949
2830 0180 2268 ldr r2, [r4]
1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2831 .loc 1 1535 21 view .LVU950
2832 0182 5368 ldr r3, [r2, #4]
1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2833 .loc 1 1535 27 view .LVU951
2834 0184 43F40043 orr r3, r3, #32768
2835 0188 5360 str r3, [r2, #4]
1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 197
2836 .loc 1 1536 7 is_stmt 1 view .LVU952
1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2837 .loc 1 1536 14 is_stmt 0 view .LVU953
2838 018a 0120 movs r0, #1
2839 018c 2CE0 b .L188
2840 .LVL196:
2841 .L198:
1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2842 .loc 1 1506 9 is_stmt 1 view .LVU954
1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2843 .loc 1 1506 13 is_stmt 0 view .LVU955
2844 018e 2268 ldr r2, [r4]
1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2845 .loc 1 1506 23 view .LVU956
2846 0190 5368 ldr r3, [r2, #4]
2847 .LVL197:
1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2848 .loc 1 1506 29 view .LVU957
2849 0192 43F40043 orr r3, r3, #32768
2850 0196 5360 str r3, [r2, #4]
1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2851 .loc 1 1507 9 is_stmt 1 view .LVU958
1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2852 .loc 1 1507 16 is_stmt 0 view .LVU959
2853 0198 0120 movs r0, #1
2854 .LVL198:
1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2855 .loc 1 1507 16 view .LVU960
2856 019a 25E0 b .L188
2857 .LVL199:
2858 .L197:
1513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2859 .loc 1 1513 7 is_stmt 1 view .LVU961
2860 019c 2046 mov r0, r4
2861 .LVL200:
1513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2862 .loc 1 1513 7 is_stmt 0 view .LVU962
2863 019e FFF7FEFF bl I2C_Flush_TXDR
2864 .LVL201:
1516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2865 .loc 1 1516 7 is_stmt 1 view .LVU963
2866 01a2 2368 ldr r3, [r4]
2867 01a4 1022 movs r2, #16
2868 01a6 DA61 str r2, [r3, #28]
1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2869 .loc 1 1519 7 view .LVU964
1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2870 .loc 1 1519 11 is_stmt 0 view .LVU965
2871 01a8 3246 mov r2, r6
2872 01aa 2946 mov r1, r5
2873 01ac 2046 mov r0, r4
2874 01ae FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2875 .LVL202:
1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2876 .loc 1 1519 10 discriminator 1 view .LVU966
2877 01b2 18B9 cbnz r0, .L213
1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 198
2878 .loc 1 1528 7 is_stmt 1 view .LVU967
2879 01b4 2368 ldr r3, [r4]
2880 01b6 2022 movs r2, #32
2881 01b8 DA61 str r2, [r3, #28]
2882 01ba D8E7 b .L199
2883 .L213:
1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2884 .loc 1 1522 9 view .LVU968
1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2885 .loc 1 1522 13 is_stmt 0 view .LVU969
2886 01bc 2268 ldr r2, [r4]
1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2887 .loc 1 1522 23 view .LVU970
2888 01be 5368 ldr r3, [r2, #4]
1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2889 .loc 1 1522 29 view .LVU971
2890 01c0 43F40043 orr r3, r3, #32768
2891 01c4 5360 str r3, [r2, #4]
1524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2892 .loc 1 1524 9 is_stmt 1 view .LVU972
1524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2893 .loc 1 1524 16 is_stmt 0 view .LVU973
2894 01c6 0120 movs r0, #1
2895 01c8 0EE0 b .L188
2896 .L201:
1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2897 .loc 1 1540 5 is_stmt 1 view .LVU974
1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2898 .loc 1 1540 9 is_stmt 0 view .LVU975
2899 01ca 2268 ldr r2, [r4]
1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2900 .loc 1 1540 19 view .LVU976
2901 01cc 5368 ldr r3, [r2, #4]
1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2902 .loc 1 1540 25 view .LVU977
2903 01ce 43F40043 orr r3, r3, #32768
2904 01d2 5360 str r3, [r2, #4]
1542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2905 .loc 1 1542 5 is_stmt 1 view .LVU978
1542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2906 .loc 1 1542 17 is_stmt 0 view .LVU979
2907 01d4 2023 movs r3, #32
2908 01d6 84F84130 strb r3, [r4, #65]
1543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2909 .loc 1 1543 5 is_stmt 1 view .LVU980
1543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2910 .loc 1 1543 17 is_stmt 0 view .LVU981
2911 01da 0023 movs r3, #0
2912 01dc 84F84230 strb r3, [r4, #66]
1546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2913 .loc 1 1546 5 is_stmt 1 view .LVU982
1546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2914 .loc 1 1546 5 view .LVU983
2915 01e0 84F84030 strb r3, [r4, #64]
1546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2916 .loc 1 1546 5 view .LVU984
1548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 199
2917 .loc 1 1548 5 view .LVU985
1548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2918 .loc 1 1548 12 is_stmt 0 view .LVU986
2919 01e4 00E0 b .L188
2920 .LVL203:
2921 .L202:
1552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2922 .loc 1 1552 12 view .LVU987
2923 01e6 0220 movs r0, #2
2924 .LVL204:
2925 .L188:
1554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2926 .loc 1 1554 1 view .LVU988
2927 01e8 02B0 add sp, sp, #8
2928 .cfi_remember_state
2929 .cfi_def_cfa_offset 24
2930 @ sp needed
2931 01ea BDE8F081 pop {r4, r5, r6, r7, r8, pc}
2932 .LVL205:
2933 .L203:
2934 .cfi_restore_state
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2935 .loc 1 1393 5 discriminator 1 view .LVU989
2936 01ee 0220 movs r0, #2
2937 .LVL206:
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2938 .loc 1 1393 5 discriminator 1 view .LVU990
2939 01f0 FAE7 b .L188
2940 .cfi_endproc
2941 .LFE341:
2943 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits
2944 .align 1
2945 .global HAL_I2C_Slave_Receive
2946 .syntax unified
2947 .thumb
2948 .thumb_func
2950 HAL_I2C_Slave_Receive:
2951 .LVL207:
2952 .LFB342:
1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2953 .loc 1 1567 1 is_stmt 1 view -0
2954 .cfi_startproc
2955 @ args = 0, pretend = 0, frame = 0
2956 @ frame_needed = 0, uses_anonymous_args = 0
1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2957 .loc 1 1567 1 is_stmt 0 view .LVU992
2958 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
2959 .cfi_def_cfa_offset 24
2960 .cfi_offset 4, -24
2961 .cfi_offset 5, -20
2962 .cfi_offset 6, -16
2963 .cfi_offset 7, -12
2964 .cfi_offset 8, -8
2965 .cfi_offset 14, -4
2966 0004 82B0 sub sp, sp, #8
2967 .cfi_def_cfa_offset 32
2968 0006 1D46 mov r5, r3
ARM GAS /tmp/ccN54YTb.s page 200
1568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2969 .loc 1 1568 3 is_stmt 1 view .LVU993
1570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2970 .loc 1 1570 3 view .LVU994
1570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2971 .loc 1 1570 11 is_stmt 0 view .LVU995
2972 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
2973 .LVL208:
1570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2974 .loc 1 1570 6 view .LVU996
2975 000c 202B cmp r3, #32
2976 000e 40F0B280 bne .L224
2977 0012 0446 mov r4, r0
2978 0014 8846 mov r8, r1
2979 0016 1746 mov r7, r2
1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2980 .loc 1 1572 5 is_stmt 1 view .LVU997
1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2981 .loc 1 1572 8 is_stmt 0 view .LVU998
2982 0018 002A cmp r2, #0
2983 001a 18BF it ne
2984 001c 0029 cmpne r1, #0
2985 001e 2BD0 beq .L227
1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2986 .loc 1 1578 5 is_stmt 1 view .LVU999
1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2987 .loc 1 1578 5 view .LVU1000
2988 0020 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
2989 0024 012B cmp r3, #1
2990 0026 00F0AA80 beq .L225
1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2991 .loc 1 1578 5 discriminator 2 view .LVU1001
2992 002a 0123 movs r3, #1
2993 002c 80F84030 strb r3, [r0, #64]
1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2994 .loc 1 1578 5 view .LVU1002
1581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2995 .loc 1 1581 5 view .LVU1003
1581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2996 .loc 1 1581 17 is_stmt 0 view .LVU1004
2997 0030 FFF7FEFF bl HAL_GetTick
2998 .LVL209:
1581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2999 .loc 1 1581 17 view .LVU1005
3000 0034 0646 mov r6, r0
3001 .LVL210:
1583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3002 .loc 1 1583 5 is_stmt 1 view .LVU1006
1583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3003 .loc 1 1583 21 is_stmt 0 view .LVU1007
3004 0036 2223 movs r3, #34
3005 0038 84F84130 strb r3, [r4, #65]
1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3006 .loc 1 1584 5 is_stmt 1 view .LVU1008
1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3007 .loc 1 1584 21 is_stmt 0 view .LVU1009
3008 003c 2023 movs r3, #32
ARM GAS /tmp/ccN54YTb.s page 201
3009 003e 84F84230 strb r3, [r4, #66]
1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3010 .loc 1 1585 5 is_stmt 1 view .LVU1010
1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3011 .loc 1 1585 21 is_stmt 0 view .LVU1011
3012 0042 0022 movs r2, #0
3013 0044 6264 str r2, [r4, #68]
1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3014 .loc 1 1588 5 is_stmt 1 view .LVU1012
1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3015 .loc 1 1588 21 is_stmt 0 view .LVU1013
3016 0046 C4F82480 str r8, [r4, #36]
1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3017 .loc 1 1589 5 is_stmt 1 view .LVU1014
1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3018 .loc 1 1589 21 is_stmt 0 view .LVU1015
3019 004a 6785 strh r7, [r4, #42] @ movhi
1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
3020 .loc 1 1590 5 is_stmt 1 view .LVU1016
1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
3021 .loc 1 1590 26 is_stmt 0 view .LVU1017
3022 004c 638D ldrh r3, [r4, #42]
1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
3023 .loc 1 1590 20 view .LVU1018
3024 004e 2385 strh r3, [r4, #40] @ movhi
1591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3025 .loc 1 1591 5 is_stmt 1 view .LVU1019
1591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3026 .loc 1 1591 21 is_stmt 0 view .LVU1020
3027 0050 6263 str r2, [r4, #52]
1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3028 .loc 1 1594 5 is_stmt 1 view .LVU1021
1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3029 .loc 1 1594 9 is_stmt 0 view .LVU1022
3030 0052 2168 ldr r1, [r4]
1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3031 .loc 1 1594 19 view .LVU1023
3032 0054 4B68 ldr r3, [r1, #4]
1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3033 .loc 1 1594 25 view .LVU1024
3034 0056 23F40043 bic r3, r3, #32768
3035 005a 4B60 str r3, [r1, #4]
1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3036 .loc 1 1597 5 is_stmt 1 view .LVU1025
1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3037 .loc 1 1597 9 is_stmt 0 view .LVU1026
3038 005c 0090 str r0, [sp]
3039 005e 2B46 mov r3, r5
3040 0060 0821 movs r1, #8
3041 0062 2046 mov r0, r4
3042 .LVL211:
1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3043 .loc 1 1597 9 view .LVU1027
3044 0064 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
3045 .LVL212:
1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3046 .loc 1 1597 8 discriminator 1 view .LVU1028
ARM GAS /tmp/ccN54YTb.s page 202
3047 0068 58B1 cbz r0, .L217
1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3048 .loc 1 1600 7 is_stmt 1 view .LVU1029
1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3049 .loc 1 1600 11 is_stmt 0 view .LVU1030
3050 006a 2268 ldr r2, [r4]
1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3051 .loc 1 1600 21 view .LVU1031
3052 006c 5368 ldr r3, [r2, #4]
1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3053 .loc 1 1600 27 view .LVU1032
3054 006e 43F40043 orr r3, r3, #32768
3055 0072 5360 str r3, [r2, #4]
1601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3056 .loc 1 1601 7 is_stmt 1 view .LVU1033
1601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3057 .loc 1 1601 14 is_stmt 0 view .LVU1034
3058 0074 0120 movs r0, #1
3059 0076 7FE0 b .L215
3060 .LVL213:
3061 .L227:
1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3062 .loc 1 1574 7 is_stmt 1 view .LVU1035
1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3063 .loc 1 1574 23 is_stmt 0 view .LVU1036
3064 0078 4FF40073 mov r3, #512
3065 007c 4364 str r3, [r0, #68]
1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3066 .loc 1 1575 7 is_stmt 1 view .LVU1037
1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3067 .loc 1 1575 15 is_stmt 0 view .LVU1038
3068 007e 0120 movs r0, #1
3069 .LVL214:
1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3070 .loc 1 1575 15 view .LVU1039
3071 0080 7AE0 b .L215
3072 .LVL215:
3073 .L217:
1605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3074 .loc 1 1605 5 is_stmt 1 view .LVU1040
3075 0082 2368 ldr r3, [r4]
3076 0084 0822 movs r2, #8
3077 0086 DA61 str r2, [r3, #28]
1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3078 .loc 1 1608 5 view .LVU1041
1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3079 .loc 1 1608 9 is_stmt 0 view .LVU1042
3080 0088 0096 str r6, [sp]
3081 008a 2B46 mov r3, r5
3082 008c 0122 movs r2, #1
3083 008e 4FF48031 mov r1, #65536
3084 0092 2046 mov r0, r4
3085 0094 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
3086 .LVL216:
1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3087 .loc 1 1608 8 discriminator 1 view .LVU1043
3088 0098 F0B9 cbnz r0, .L228
ARM GAS /tmp/ccN54YTb.s page 203
3089 .L218:
1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3090 .loc 1 1615 28 is_stmt 1 view .LVU1044
1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3091 .loc 1 1615 16 is_stmt 0 view .LVU1045
3092 009a 638D ldrh r3, [r4, #42]
3093 009c 9BB2 uxth r3, r3
1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3094 .loc 1 1615 28 view .LVU1046
3095 009e 002B cmp r3, #0
3096 00a0 3BD0 beq .L229
1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3097 .loc 1 1618 7 is_stmt 1 view .LVU1047
1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3098 .loc 1 1618 11 is_stmt 0 view .LVU1048
3099 00a2 3246 mov r2, r6
3100 00a4 2946 mov r1, r5
3101 00a6 2046 mov r0, r4
3102 00a8 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
3103 .LVL217:
1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3104 .loc 1 1618 10 discriminator 1 view .LVU1049
3105 00ac D8B9 cbnz r0, .L230
1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3106 .loc 1 1640 7 is_stmt 1 view .LVU1050
1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3107 .loc 1 1640 38 is_stmt 0 view .LVU1051
3108 00ae 2368 ldr r3, [r4]
1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3109 .loc 1 1640 48 view .LVU1052
3110 00b0 5A6A ldr r2, [r3, #36]
1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3111 .loc 1 1640 12 view .LVU1053
3112 00b2 636A ldr r3, [r4, #36]
1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3113 .loc 1 1640 23 view .LVU1054
3114 00b4 1A70 strb r2, [r3]
1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3115 .loc 1 1643 7 is_stmt 1 view .LVU1055
1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3116 .loc 1 1643 11 is_stmt 0 view .LVU1056
3117 00b6 636A ldr r3, [r4, #36]
1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3118 .loc 1 1643 21 view .LVU1057
3119 00b8 0133 adds r3, r3, #1
3120 00ba 6362 str r3, [r4, #36]
1645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3121 .loc 1 1645 7 is_stmt 1 view .LVU1058
1645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3122 .loc 1 1645 11 is_stmt 0 view .LVU1059
3123 00bc B4F82AC0 ldrh ip, [r4, #42]
3124 00c0 1FFA8CFC uxth ip, ip
1645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3125 .loc 1 1645 22 view .LVU1060
3126 00c4 0CF1FF3C add ip, ip, #-1
3127 00c8 1FFA8CFC uxth ip, ip
3128 00cc A4F82AC0 strh ip, [r4, #42] @ movhi
ARM GAS /tmp/ccN54YTb.s page 204
1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3129 .loc 1 1646 7 is_stmt 1 view .LVU1061
1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3130 .loc 1 1646 11 is_stmt 0 view .LVU1062
3131 00d0 238D ldrh r3, [r4, #40]
1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3132 .loc 1 1646 21 view .LVU1063
3133 00d2 013B subs r3, r3, #1
3134 00d4 2385 strh r3, [r4, #40] @ movhi
3135 00d6 E0E7 b .L218
3136 .L228:
1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3137 .loc 1 1611 7 is_stmt 1 view .LVU1064
1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3138 .loc 1 1611 11 is_stmt 0 view .LVU1065
3139 00d8 2268 ldr r2, [r4]
1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3140 .loc 1 1611 21 view .LVU1066
3141 00da 5368 ldr r3, [r2, #4]
1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3142 .loc 1 1611 27 view .LVU1067
3143 00dc 43F40043 orr r3, r3, #32768
3144 00e0 5360 str r3, [r2, #4]
1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3145 .loc 1 1612 7 is_stmt 1 view .LVU1068
1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3146 .loc 1 1612 14 is_stmt 0 view .LVU1069
3147 00e2 0120 movs r0, #1
3148 00e4 48E0 b .L215
3149 .L230:
1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3150 .loc 1 1621 9 is_stmt 1 view .LVU1070
1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3151 .loc 1 1621 13 is_stmt 0 view .LVU1071
3152 00e6 2268 ldr r2, [r4]
1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3153 .loc 1 1621 23 view .LVU1072
3154 00e8 5368 ldr r3, [r2, #4]
1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3155 .loc 1 1621 29 view .LVU1073
3156 00ea 43F40043 orr r3, r3, #32768
3157 00ee 5360 str r3, [r2, #4]
1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3158 .loc 1 1624 9 is_stmt 1 view .LVU1074
1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3159 .loc 1 1624 13 is_stmt 0 view .LVU1075
3160 00f0 2368 ldr r3, [r4]
3161 00f2 9A69 ldr r2, [r3, #24]
1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3162 .loc 1 1624 12 view .LVU1076
3163 00f4 12F0040F tst r2, #4
3164 00f8 0DD0 beq .L220
1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3165 .loc 1 1627 11 is_stmt 1 view .LVU1077
1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3166 .loc 1 1627 52 is_stmt 0 view .LVU1078
3167 00fa 5A6A ldr r2, [r3, #36]
ARM GAS /tmp/ccN54YTb.s page 205
1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3168 .loc 1 1627 16 view .LVU1079
3169 00fc 636A ldr r3, [r4, #36]
1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3170 .loc 1 1627 27 view .LVU1080
3171 00fe 1A70 strb r2, [r3]
1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3172 .loc 1 1630 11 is_stmt 1 view .LVU1081
1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3173 .loc 1 1630 15 is_stmt 0 view .LVU1082
3174 0100 636A ldr r3, [r4, #36]
1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3175 .loc 1 1630 25 view .LVU1083
3176 0102 0133 adds r3, r3, #1
3177 0104 6362 str r3, [r4, #36]
1632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3178 .loc 1 1632 11 is_stmt 1 view .LVU1084
1632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3179 .loc 1 1632 15 is_stmt 0 view .LVU1085
3180 0106 638D ldrh r3, [r4, #42]
3181 0108 9BB2 uxth r3, r3
1632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3182 .loc 1 1632 26 view .LVU1086
3183 010a 013B subs r3, r3, #1
3184 010c 9BB2 uxth r3, r3
3185 010e 6385 strh r3, [r4, #42] @ movhi
1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3186 .loc 1 1633 11 is_stmt 1 view .LVU1087
1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3187 .loc 1 1633 15 is_stmt 0 view .LVU1088
3188 0110 238D ldrh r3, [r4, #40]
1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3189 .loc 1 1633 25 view .LVU1089
3190 0112 013B subs r3, r3, #1
3191 0114 2385 strh r3, [r4, #40] @ movhi
3192 .L220:
1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3193 .loc 1 1636 9 is_stmt 1 view .LVU1090
1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3194 .loc 1 1636 16 is_stmt 0 view .LVU1091
3195 0116 0120 movs r0, #1
3196 0118 2EE0 b .L215
3197 .L229:
1650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3198 .loc 1 1650 5 is_stmt 1 view .LVU1092
1650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3199 .loc 1 1650 9 is_stmt 0 view .LVU1093
3200 011a 3246 mov r2, r6
3201 011c 2946 mov r1, r5
3202 011e 2046 mov r0, r4
3203 0120 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
3204 .LVL218:
1650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3205 .loc 1 1650 8 discriminator 1 view .LVU1094
3206 0124 30B1 cbz r0, .L222
1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3207 .loc 1 1653 7 is_stmt 1 view .LVU1095
ARM GAS /tmp/ccN54YTb.s page 206
1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3208 .loc 1 1653 11 is_stmt 0 view .LVU1096
3209 0126 2268 ldr r2, [r4]
1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3210 .loc 1 1653 21 view .LVU1097
3211 0128 5368 ldr r3, [r2, #4]
1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3212 .loc 1 1653 27 view .LVU1098
3213 012a 43F40043 orr r3, r3, #32768
3214 012e 5360 str r3, [r2, #4]
1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3215 .loc 1 1654 7 is_stmt 1 view .LVU1099
1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3216 .loc 1 1654 14 is_stmt 0 view .LVU1100
3217 0130 0120 movs r0, #1
3218 0132 21E0 b .L215
3219 .L222:
1658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3220 .loc 1 1658 5 is_stmt 1 view .LVU1101
3221 0134 2368 ldr r3, [r4]
3222 0136 2022 movs r2, #32
3223 0138 DA61 str r2, [r3, #28]
1661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3224 .loc 1 1661 5 view .LVU1102
1661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3225 .loc 1 1661 9 is_stmt 0 view .LVU1103
3226 013a 0096 str r6, [sp]
3227 013c 2B46 mov r3, r5
3228 013e 0122 movs r2, #1
3229 0140 4FF40041 mov r1, #32768
3230 0144 2046 mov r0, r4
3231 0146 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
3232 .LVL219:
1661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3233 .loc 1 1661 8 discriminator 1 view .LVU1104
3234 014a 30B1 cbz r0, .L223
1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3235 .loc 1 1664 7 is_stmt 1 view .LVU1105
1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3236 .loc 1 1664 11 is_stmt 0 view .LVU1106
3237 014c 2268 ldr r2, [r4]
1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3238 .loc 1 1664 21 view .LVU1107
3239 014e 5368 ldr r3, [r2, #4]
1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3240 .loc 1 1664 27 view .LVU1108
3241 0150 43F40043 orr r3, r3, #32768
3242 0154 5360 str r3, [r2, #4]
1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3243 .loc 1 1665 7 is_stmt 1 view .LVU1109
1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3244 .loc 1 1665 14 is_stmt 0 view .LVU1110
3245 0156 0120 movs r0, #1
3246 0158 0EE0 b .L215
3247 .L223:
1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3248 .loc 1 1669 5 is_stmt 1 view .LVU1111
ARM GAS /tmp/ccN54YTb.s page 207
1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3249 .loc 1 1669 9 is_stmt 0 view .LVU1112
3250 015a 2268 ldr r2, [r4]
1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3251 .loc 1 1669 19 view .LVU1113
3252 015c 5368 ldr r3, [r2, #4]
1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3253 .loc 1 1669 25 view .LVU1114
3254 015e 43F40043 orr r3, r3, #32768
3255 0162 5360 str r3, [r2, #4]
1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3256 .loc 1 1671 5 is_stmt 1 view .LVU1115
1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3257 .loc 1 1671 17 is_stmt 0 view .LVU1116
3258 0164 2023 movs r3, #32
3259 0166 84F84130 strb r3, [r4, #65]
1672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3260 .loc 1 1672 5 is_stmt 1 view .LVU1117
1672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3261 .loc 1 1672 17 is_stmt 0 view .LVU1118
3262 016a 0023 movs r3, #0
3263 016c 84F84230 strb r3, [r4, #66]
1675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3264 .loc 1 1675 5 is_stmt 1 view .LVU1119
1675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3265 .loc 1 1675 5 view .LVU1120
3266 0170 84F84030 strb r3, [r4, #64]
1675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3267 .loc 1 1675 5 view .LVU1121
1677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3268 .loc 1 1677 5 view .LVU1122
1677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3269 .loc 1 1677 12 is_stmt 0 view .LVU1123
3270 0174 00E0 b .L215
3271 .LVL220:
3272 .L224:
1681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3273 .loc 1 1681 12 view .LVU1124
3274 0176 0220 movs r0, #2
3275 .LVL221:
3276 .L215:
1683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3277 .loc 1 1683 1 view .LVU1125
3278 0178 02B0 add sp, sp, #8
3279 .cfi_remember_state
3280 .cfi_def_cfa_offset 24
3281 @ sp needed
3282 017a BDE8F081 pop {r4, r5, r6, r7, r8, pc}
3283 .LVL222:
3284 .L225:
3285 .cfi_restore_state
1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3286 .loc 1 1578 5 discriminator 1 view .LVU1126
3287 017e 0220 movs r0, #2
3288 .LVL223:
1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3289 .loc 1 1578 5 discriminator 1 view .LVU1127
ARM GAS /tmp/ccN54YTb.s page 208
3290 0180 FAE7 b .L215
3291 .cfi_endproc
3292 .LFE342:
3294 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits
3295 .align 1
3296 .global HAL_I2C_Master_Transmit_IT
3297 .syntax unified
3298 .thumb
3299 .thumb_func
3301 HAL_I2C_Master_Transmit_IT:
3302 .LVL224:
3303 .LFB343:
1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3304 .loc 1 1697 1 is_stmt 1 view -0
3305 .cfi_startproc
3306 @ args = 0, pretend = 0, frame = 0
3307 @ frame_needed = 0, uses_anonymous_args = 0
1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3308 .loc 1 1697 1 is_stmt 0 view .LVU1129
3309 0000 30B5 push {r4, r5, lr}
3310 .cfi_def_cfa_offset 12
3311 .cfi_offset 4, -12
3312 .cfi_offset 5, -8
3313 .cfi_offset 14, -4
3314 0002 83B0 sub sp, sp, #12
3315 .cfi_def_cfa_offset 24
3316 0004 0446 mov r4, r0
1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3317 .loc 1 1698 3 is_stmt 1 view .LVU1130
1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3318 .loc 1 1700 3 view .LVU1131
1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3319 .loc 1 1700 11 is_stmt 0 view .LVU1132
3320 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3321 .LVL225:
1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3322 .loc 1 1700 6 view .LVU1133
3323 000a 2028 cmp r0, #32
3324 000c 4ED1 bne .L237
1702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3325 .loc 1 1702 5 is_stmt 1 view .LVU1134
1702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3326 .loc 1 1702 9 is_stmt 0 view .LVU1135
3327 000e 2068 ldr r0, [r4]
3328 0010 8569 ldr r5, [r0, #24]
1702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3329 .loc 1 1702 8 view .LVU1136
3330 0012 15F4004F tst r5, #32768
3331 0016 4BD1 bne .L238
1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3332 .loc 1 1708 5 is_stmt 1 view .LVU1137
1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3333 .loc 1 1708 5 view .LVU1138
3334 0018 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2
3335 001c 012D cmp r5, #1
3336 001e 49D0 beq .L239
1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 209
3337 .loc 1 1708 5 discriminator 2 view .LVU1139
3338 0020 0125 movs r5, #1
3339 0022 84F84050 strb r5, [r4, #64]
1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3340 .loc 1 1708 5 view .LVU1140
1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3341 .loc 1 1710 5 view .LVU1141
1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3342 .loc 1 1710 23 is_stmt 0 view .LVU1142
3343 0026 2125 movs r5, #33
3344 0028 84F84150 strb r5, [r4, #65]
1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3345 .loc 1 1711 5 is_stmt 1 view .LVU1143
1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3346 .loc 1 1711 23 is_stmt 0 view .LVU1144
3347 002c 1025 movs r5, #16
3348 002e 84F84250 strb r5, [r4, #66]
1712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3349 .loc 1 1712 5 is_stmt 1 view .LVU1145
1712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3350 .loc 1 1712 23 is_stmt 0 view .LVU1146
3351 0032 0025 movs r5, #0
3352 0034 6564 str r5, [r4, #68]
1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3353 .loc 1 1715 5 is_stmt 1 view .LVU1147
1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3354 .loc 1 1715 23 is_stmt 0 view .LVU1148
3355 0036 6262 str r2, [r4, #36]
1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3356 .loc 1 1716 5 is_stmt 1 view .LVU1149
1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3357 .loc 1 1716 23 is_stmt 0 view .LVU1150
3358 0038 6385 strh r3, [r4, #42] @ movhi
1717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3359 .loc 1 1717 5 is_stmt 1 view .LVU1151
1717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3360 .loc 1 1717 23 is_stmt 0 view .LVU1152
3361 003a 1F4B ldr r3, .L241
3362 .LVL226:
1717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3363 .loc 1 1717 23 view .LVU1153
3364 003c E362 str r3, [r4, #44]
3365 .LVL227:
1718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3366 .loc 1 1718 5 is_stmt 1 view .LVU1154
1718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3367 .loc 1 1718 23 is_stmt 0 view .LVU1155
3368 003e 1F4B ldr r3, .L241+4
3369 0040 6363 str r3, [r4, #52]
1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3370 .loc 1 1720 5 is_stmt 1 view .LVU1156
1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3371 .loc 1 1720 13 is_stmt 0 view .LVU1157
3372 0042 638D ldrh r3, [r4, #42]
3373 0044 9BB2 uxth r3, r3
1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3374 .loc 1 1720 8 view .LVU1158
ARM GAS /tmp/ccN54YTb.s page 210
3375 0046 FF2B cmp r3, #255
3376 0048 24D9 bls .L233
1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3377 .loc 1 1722 7 is_stmt 1 view .LVU1159
1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3378 .loc 1 1722 22 is_stmt 0 view .LVU1160
3379 004a FF23 movs r3, #255
3380 004c 2385 strh r3, [r4, #40] @ movhi
1723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3381 .loc 1 1723 7 is_stmt 1 view .LVU1161
3382 .LVL228:
1723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3383 .loc 1 1723 16 is_stmt 0 view .LVU1162
3384 004e 4FF08073 mov r3, #16777216
3385 .LVL229:
3386 .L234:
1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3387 .loc 1 1733 5 is_stmt 1 view .LVU1163
1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3388 .loc 1 1733 13 is_stmt 0 view .LVU1164
3389 0052 258D ldrh r5, [r4, #40]
1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3390 .loc 1 1733 8 view .LVU1165
3391 0054 1DB3 cbz r5, .L235
1737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3392 .loc 1 1737 7 is_stmt 1 view .LVU1166
1737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3393 .loc 1 1737 30 is_stmt 0 view .LVU1167
3394 0056 1278 ldrb r2, [r2] @ zero_extendqisi2
3395 .LVL230:
1737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3396 .loc 1 1737 28 view .LVU1168
3397 0058 8262 str r2, [r0, #40]
3398 .LVL231:
1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3399 .loc 1 1740 7 is_stmt 1 view .LVU1169
1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3400 .loc 1 1740 11 is_stmt 0 view .LVU1170
3401 005a 626A ldr r2, [r4, #36]
1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3402 .loc 1 1740 21 view .LVU1171
3403 005c 0132 adds r2, r2, #1
3404 005e 6262 str r2, [r4, #36]
1742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3405 .loc 1 1742 7 is_stmt 1 view .LVU1172
1742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3406 .loc 1 1742 11 is_stmt 0 view .LVU1173
3407 0060 628D ldrh r2, [r4, #42]
3408 0062 92B2 uxth r2, r2
1742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3409 .loc 1 1742 22 view .LVU1174
3410 0064 013A subs r2, r2, #1
3411 0066 92B2 uxth r2, r2
3412 0068 6285 strh r2, [r4, #42] @ movhi
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3413 .loc 1 1743 7 is_stmt 1 view .LVU1175
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 211
3414 .loc 1 1743 11 is_stmt 0 view .LVU1176
3415 006a 228D ldrh r2, [r4, #40]
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3416 .loc 1 1743 21 view .LVU1177
3417 006c 013A subs r2, r2, #1
3418 006e 92B2 uxth r2, r2
3419 0070 2285 strh r2, [r4, #40] @ movhi
1745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3420 .loc 1 1745 7 is_stmt 1 view .LVU1178
3421 0072 0132 adds r2, r2, #1
3422 0074 1248 ldr r0, .L241+8
3423 0076 0090 str r0, [sp]
3424 0078 D2B2 uxtb r2, r2
3425 007a 2046 mov r0, r4
3426 007c FFF7FEFF bl I2C_TransferConfig
3427 .LVL232:
3428 .L236:
1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3429 .loc 1 1755 5 view .LVU1179
1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3430 .loc 1 1755 5 view .LVU1180
3431 0080 0025 movs r5, #0
3432 0082 84F84050 strb r5, [r4, #64]
1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3433 .loc 1 1755 5 view .LVU1181
1765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3434 .loc 1 1765 5 view .LVU1182
3435 0086 0121 movs r1, #1
3436 0088 2046 mov r0, r4
3437 008a FFF7FEFF bl I2C_Enable_IRQ
3438 .LVL233:
1767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3439 .loc 1 1767 5 view .LVU1183
1767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3440 .loc 1 1767 12 is_stmt 0 view .LVU1184
3441 008e 2846 mov r0, r5
3442 .LVL234:
3443 .L232:
1773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3444 .loc 1 1773 1 view .LVU1185
3445 0090 03B0 add sp, sp, #12
3446 .cfi_remember_state
3447 .cfi_def_cfa_offset 12
3448 @ sp needed
3449 0092 30BD pop {r4, r5, pc}
3450 .LVL235:
3451 .L233:
3452 .cfi_restore_state
1727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3453 .loc 1 1727 7 is_stmt 1 view .LVU1186
1727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3454 .loc 1 1727 28 is_stmt 0 view .LVU1187
3455 0094 638D ldrh r3, [r4, #42]
1727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3456 .loc 1 1727 22 view .LVU1188
3457 0096 2385 strh r3, [r4, #40] @ movhi
1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 212
3458 .loc 1 1728 7 is_stmt 1 view .LVU1189
3459 .LVL236:
1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3460 .loc 1 1728 16 is_stmt 0 view .LVU1190
3461 0098 4FF00073 mov r3, #33554432
3462 009c D9E7 b .L234
3463 .LVL237:
3464 .L235:
1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3465 .loc 1 1750 7 is_stmt 1 view .LVU1191
3466 009e 084A ldr r2, .L241+8
3467 .LVL238:
1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3468 .loc 1 1750 7 is_stmt 0 view .LVU1192
3469 00a0 0092 str r2, [sp]
3470 .LVL239:
1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3471 .loc 1 1750 7 view .LVU1193
3472 00a2 EAB2 uxtb r2, r5
3473 00a4 2046 mov r0, r4
3474 00a6 FFF7FEFF bl I2C_TransferConfig
3475 .LVL240:
1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3476 .loc 1 1750 7 view .LVU1194
3477 00aa E9E7 b .L236
3478 .LVL241:
3479 .L237:
1771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3480 .loc 1 1771 12 view .LVU1195
3481 00ac 0220 movs r0, #2
3482 00ae EFE7 b .L232
3483 .L238:
1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3484 .loc 1 1704 14 view .LVU1196
3485 00b0 0220 movs r0, #2
3486 00b2 EDE7 b .L232
3487 .L239:
1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3488 .loc 1 1708 5 discriminator 1 view .LVU1197
3489 00b4 0220 movs r0, #2
3490 00b6 EBE7 b .L232
3491 .L242:
3492 .align 2
3493 .L241:
3494 00b8 0000FFFF .word -65536
3495 00bc 00000000 .word I2C_Master_ISR_IT
3496 00c0 00200080 .word -2147475456
3497 .cfi_endproc
3498 .LFE343:
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 .LVL242:
ARM GAS /tmp/ccN54YTb.s page 213
3509 .LFB344:
1787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_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/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3514 .loc 1 1787 1 is_stmt 0 view .LVU1199
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/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3523 .loc 1 1788 3 is_stmt 1 view .LVU1200
1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3524 .loc 1 1790 3 view .LVU1201
1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3525 .loc 1 1790 11 is_stmt 0 view .LVU1202
3526 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3527 .LVL243:
1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3528 .loc 1 1790 6 view .LVU1203
3529 000a 2028 cmp r0, #32
3530 000c 37D1 bne .L247
1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3531 .loc 1 1792 5 is_stmt 1 view .LVU1204
1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3532 .loc 1 1792 9 is_stmt 0 view .LVU1205
3533 000e 2068 ldr r0, [r4]
3534 0010 8069 ldr r0, [r0, #24]
1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3535 .loc 1 1792 8 view .LVU1206
3536 0012 10F4004F tst r0, #32768
3537 0016 34D1 bne .L248
1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3538 .loc 1 1798 5 is_stmt 1 view .LVU1207
1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3539 .loc 1 1798 5 view .LVU1208
3540 0018 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2
3541 001c 0128 cmp r0, #1
3542 001e 32D0 beq .L249
1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3543 .loc 1 1798 5 discriminator 2 view .LVU1209
3544 0020 0120 movs r0, #1
3545 0022 84F84000 strb r0, [r4, #64]
1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3546 .loc 1 1798 5 view .LVU1210
1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3547 .loc 1 1800 5 view .LVU1211
1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3548 .loc 1 1800 23 is_stmt 0 view .LVU1212
3549 0026 2220 movs r0, #34
3550 0028 84F84100 strb r0, [r4, #65]
ARM GAS /tmp/ccN54YTb.s page 214
1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3551 .loc 1 1801 5 is_stmt 1 view .LVU1213
1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3552 .loc 1 1801 23 is_stmt 0 view .LVU1214
3553 002c 1020 movs r0, #16
3554 002e 84F84200 strb r0, [r4, #66]
1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3555 .loc 1 1802 5 is_stmt 1 view .LVU1215
1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3556 .loc 1 1802 23 is_stmt 0 view .LVU1216
3557 0032 0020 movs r0, #0
3558 0034 6064 str r0, [r4, #68]
1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3559 .loc 1 1805 5 is_stmt 1 view .LVU1217
1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3560 .loc 1 1805 23 is_stmt 0 view .LVU1218
3561 0036 6262 str r2, [r4, #36]
1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3562 .loc 1 1806 5 is_stmt 1 view .LVU1219
1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3563 .loc 1 1806 23 is_stmt 0 view .LVU1220
3564 0038 6385 strh r3, [r4, #42] @ movhi
1807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3565 .loc 1 1807 5 is_stmt 1 view .LVU1221
1807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3566 .loc 1 1807 23 is_stmt 0 view .LVU1222
3567 003a 144B ldr r3, .L251
3568 .LVL244:
1807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3569 .loc 1 1807 23 view .LVU1223
3570 003c E362 str r3, [r4, #44]
3571 .LVL245:
1808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3572 .loc 1 1808 5 is_stmt 1 view .LVU1224
1808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3573 .loc 1 1808 23 is_stmt 0 view .LVU1225
3574 003e 144B ldr r3, .L251+4
3575 0040 6363 str r3, [r4, #52]
1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3576 .loc 1 1810 5 is_stmt 1 view .LVU1226
1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3577 .loc 1 1810 13 is_stmt 0 view .LVU1227
3578 0042 638D ldrh r3, [r4, #42]
3579 0044 9BB2 uxth r3, r3
1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3580 .loc 1 1810 8 view .LVU1228
3581 0046 FF2B cmp r3, #255
3582 0048 14D9 bls .L245
1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3583 .loc 1 1812 7 is_stmt 1 view .LVU1229
1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3584 .loc 1 1812 22 is_stmt 0 view .LVU1230
3585 004a FF23 movs r3, #255
3586 004c 2385 strh r3, [r4, #40] @ movhi
1813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3587 .loc 1 1813 7 is_stmt 1 view .LVU1231
3588 .LVL246:
ARM GAS /tmp/ccN54YTb.s page 215
1813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3589 .loc 1 1813 16 is_stmt 0 view .LVU1232
3590 004e 4FF08073 mov r3, #16777216
3591 .LVL247:
3592 .L246:
1823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3593 .loc 1 1823 5 is_stmt 1 view .LVU1233
3594 0052 104A ldr r2, .L251+8
3595 .LVL248:
1823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3596 .loc 1 1823 5 is_stmt 0 view .LVU1234
3597 0054 0092 str r2, [sp]
3598 .LVL249:
1823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3599 .loc 1 1823 5 view .LVU1235
3600 0056 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
3601 005a 2046 mov r0, r4
3602 005c FFF7FEFF bl I2C_TransferConfig
3603 .LVL250:
1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3604 .loc 1 1826 5 is_stmt 1 view .LVU1236
1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3605 .loc 1 1826 5 view .LVU1237
3606 0060 0025 movs r5, #0
3607 0062 84F84050 strb r5, [r4, #64]
1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3608 .loc 1 1826 5 view .LVU1238
1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3609 .loc 1 1836 5 view .LVU1239
3610 0066 0221 movs r1, #2
3611 0068 2046 mov r0, r4
3612 006a FFF7FEFF bl I2C_Enable_IRQ
3613 .LVL251:
1838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3614 .loc 1 1838 5 view .LVU1240
1838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3615 .loc 1 1838 12 is_stmt 0 view .LVU1241
3616 006e 2846 mov r0, r5
3617 .LVL252:
3618 .L244:
1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3619 .loc 1 1844 1 view .LVU1242
3620 0070 03B0 add sp, sp, #12
3621 .cfi_remember_state
3622 .cfi_def_cfa_offset 12
3623 @ sp needed
3624 0072 30BD pop {r4, r5, pc}
3625 .LVL253:
3626 .L245:
3627 .cfi_restore_state
1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3628 .loc 1 1817 7 is_stmt 1 view .LVU1243
1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3629 .loc 1 1817 28 is_stmt 0 view .LVU1244
3630 0074 638D ldrh r3, [r4, #42]
1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3631 .loc 1 1817 22 view .LVU1245
ARM GAS /tmp/ccN54YTb.s page 216
3632 0076 2385 strh r3, [r4, #40] @ movhi
1818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3633 .loc 1 1818 7 is_stmt 1 view .LVU1246
3634 .LVL254:
1818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3635 .loc 1 1818 16 is_stmt 0 view .LVU1247
3636 0078 4FF00073 mov r3, #33554432
3637 007c E9E7 b .L246
3638 .LVL255:
3639 .L247:
1842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3640 .loc 1 1842 12 view .LVU1248
3641 007e 0220 movs r0, #2
3642 0080 F6E7 b .L244
3643 .L248:
1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3644 .loc 1 1794 14 view .LVU1249
3645 0082 0220 movs r0, #2
3646 0084 F4E7 b .L244
3647 .L249:
1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3648 .loc 1 1798 5 discriminator 1 view .LVU1250
3649 0086 0220 movs r0, #2
3650 0088 F2E7 b .L244
3651 .L252:
3652 008a 00BF .align 2
3653 .L251:
3654 008c 0000FFFF .word -65536
3655 0090 00000000 .word I2C_Master_ISR_IT
3656 0094 00240080 .word -2147474432
3657 .cfi_endproc
3658 .LFE344:
3660 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits
3661 .align 1
3662 .global HAL_I2C_Slave_Transmit_IT
3663 .syntax unified
3664 .thumb
3665 .thumb_func
3667 HAL_I2C_Slave_Transmit_IT:
3668 .LVL256:
3669 .LFB345:
1855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3670 .loc 1 1855 1 is_stmt 1 view -0
3671 .cfi_startproc
3672 @ args = 0, pretend = 0, frame = 0
3673 @ frame_needed = 0, uses_anonymous_args = 0
1856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3674 .loc 1 1856 3 view .LVU1252
1856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3675 .loc 1 1856 11 is_stmt 0 view .LVU1253
3676 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
1856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3677 .loc 1 1856 6 view .LVU1254
3678 0004 202B cmp r3, #32
3679 0006 38D1 bne .L256
1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3680 .loc 1 1859 5 is_stmt 1 view .LVU1255
ARM GAS /tmp/ccN54YTb.s page 217
1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3681 .loc 1 1859 5 view .LVU1256
3682 0008 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
3683 000c 012B cmp r3, #1
3684 000e 36D0 beq .L257
1855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3685 .loc 1 1855 1 is_stmt 0 view .LVU1257
3686 0010 10B5 push {r4, lr}
3687 .cfi_def_cfa_offset 8
3688 .cfi_offset 4, -8
3689 .cfi_offset 14, -4
1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3690 .loc 1 1859 5 is_stmt 1 discriminator 2 view .LVU1258
3691 0012 0123 movs r3, #1
3692 0014 80F84030 strb r3, [r0, #64]
1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3693 .loc 1 1859 5 view .LVU1259
1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3694 .loc 1 1861 5 view .LVU1260
1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3695 .loc 1 1861 23 is_stmt 0 view .LVU1261
3696 0018 2123 movs r3, #33
3697 001a 80F84130 strb r3, [r0, #65]
1862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3698 .loc 1 1862 5 is_stmt 1 view .LVU1262
1862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3699 .loc 1 1862 23 is_stmt 0 view .LVU1263
3700 001e 2023 movs r3, #32
3701 0020 80F84230 strb r3, [r0, #66]
1863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3702 .loc 1 1863 5 is_stmt 1 view .LVU1264
1863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3703 .loc 1 1863 23 is_stmt 0 view .LVU1265
3704 0024 0023 movs r3, #0
3705 0026 4364 str r3, [r0, #68]
1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3706 .loc 1 1866 5 is_stmt 1 view .LVU1266
1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3707 .loc 1 1866 9 is_stmt 0 view .LVU1267
3708 0028 0468 ldr r4, [r0]
1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3709 .loc 1 1866 19 view .LVU1268
3710 002a 6368 ldr r3, [r4, #4]
1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3711 .loc 1 1866 25 view .LVU1269
3712 002c 23F40043 bic r3, r3, #32768
3713 0030 6360 str r3, [r4, #4]
1869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3714 .loc 1 1869 5 is_stmt 1 view .LVU1270
1869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3715 .loc 1 1869 23 is_stmt 0 view .LVU1271
3716 0032 4162 str r1, [r0, #36]
1870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3717 .loc 1 1870 5 is_stmt 1 view .LVU1272
1870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3718 .loc 1 1870 23 is_stmt 0 view .LVU1273
3719 0034 4285 strh r2, [r0, #42] @ movhi
ARM GAS /tmp/ccN54YTb.s page 218
1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3720 .loc 1 1871 5 is_stmt 1 view .LVU1274
1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3721 .loc 1 1871 29 is_stmt 0 view .LVU1275
3722 0036 438D ldrh r3, [r0, #42]
1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3723 .loc 1 1871 23 view .LVU1276
3724 0038 0385 strh r3, [r0, #40] @ movhi
1872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3725 .loc 1 1872 5 is_stmt 1 view .LVU1277
1872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3726 .loc 1 1872 23 is_stmt 0 view .LVU1278
3727 003a 124B ldr r3, .L263
3728 003c C362 str r3, [r0, #44]
1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3729 .loc 1 1873 5 is_stmt 1 view .LVU1279
1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3730 .loc 1 1873 23 is_stmt 0 view .LVU1280
3731 003e 124B ldr r3, .L263+4
3732 0040 4363 str r3, [r0, #52]
1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3733 .loc 1 1876 5 is_stmt 1 view .LVU1281
1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3734 .loc 1 1876 19 is_stmt 0 view .LVU1282
3735 0042 036A ldr r3, [r0, #32]
1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3736 .loc 1 1876 8 view .LVU1283
3737 0044 B3F5003F cmp r3, #131072
3738 0048 08D0 beq .L262
3739 .LVL257:
3740 .L255:
1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3741 .loc 1 1890 5 is_stmt 1 view .LVU1284
1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3742 .loc 1 1890 5 view .LVU1285
3743 004a 0024 movs r4, #0
3744 004c 80F84040 strb r4, [r0, #64]
1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3745 .loc 1 1890 5 view .LVU1286
1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3746 .loc 1 1900 5 view .LVU1287
3747 0050 48F20101 movw r1, #32769
3748 .LVL258:
1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3749 .loc 1 1900 5 is_stmt 0 view .LVU1288
3750 0054 FFF7FEFF bl I2C_Enable_IRQ
3751 .LVL259:
1902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3752 .loc 1 1902 5 is_stmt 1 view .LVU1289
1902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3753 .loc 1 1902 12 is_stmt 0 view .LVU1290
3754 0058 2046 mov r0, r4
1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3755 .loc 1 1908 1 view .LVU1291
3756 005a 10BD pop {r4, pc}
3757 .LVL260:
3758 .L262:
ARM GAS /tmp/ccN54YTb.s page 219
1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3759 .loc 1 1880 7 is_stmt 1 view .LVU1292
1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3760 .loc 1 1880 11 is_stmt 0 view .LVU1293
3761 005c 0368 ldr r3, [r0]
1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3762 .loc 1 1880 30 view .LVU1294
3763 005e 0A78 ldrb r2, [r1] @ zero_extendqisi2
3764 .LVL261:
1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3765 .loc 1 1880 28 view .LVU1295
3766 0060 9A62 str r2, [r3, #40]
1883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3767 .loc 1 1883 7 is_stmt 1 view .LVU1296
1883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3768 .loc 1 1883 11 is_stmt 0 view .LVU1297
3769 0062 436A ldr r3, [r0, #36]
1883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3770 .loc 1 1883 21 view .LVU1298
3771 0064 0133 adds r3, r3, #1
3772 0066 4362 str r3, [r0, #36]
1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3773 .loc 1 1885 7 is_stmt 1 view .LVU1299
1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3774 .loc 1 1885 11 is_stmt 0 view .LVU1300
3775 0068 438D ldrh r3, [r0, #42]
3776 006a 9BB2 uxth r3, r3
1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3777 .loc 1 1885 22 view .LVU1301
3778 006c 013B subs r3, r3, #1
3779 006e 9BB2 uxth r3, r3
3780 0070 4385 strh r3, [r0, #42] @ movhi
1886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3781 .loc 1 1886 7 is_stmt 1 view .LVU1302
1886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3782 .loc 1 1886 11 is_stmt 0 view .LVU1303
3783 0072 038D ldrh r3, [r0, #40]
1886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3784 .loc 1 1886 21 view .LVU1304
3785 0074 013B subs r3, r3, #1
3786 0076 0385 strh r3, [r0, #40] @ movhi
3787 0078 E7E7 b .L255
3788 .LVL262:
3789 .L256:
3790 .cfi_def_cfa_offset 0
3791 .cfi_restore 4
3792 .cfi_restore 14
1906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3793 .loc 1 1906 12 view .LVU1305
3794 007a 0220 movs r0, #2
3795 .LVL263:
1906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3796 .loc 1 1906 12 view .LVU1306
3797 007c 7047 bx lr
3798 .LVL264:
3799 .L257:
1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 220
3800 .loc 1 1859 5 discriminator 1 view .LVU1307
3801 007e 0220 movs r0, #2
3802 .LVL265:
1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3803 .loc 1 1908 1 view .LVU1308
3804 0080 7047 bx lr
3805 .L264:
3806 0082 00BF .align 2
3807 .L263:
3808 0084 0000FFFF .word -65536
3809 0088 00000000 .word I2C_Slave_ISR_IT
3810 .cfi_endproc
3811 .LFE345:
3813 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits
3814 .align 1
3815 .global HAL_I2C_Slave_Receive_IT
3816 .syntax unified
3817 .thumb
3818 .thumb_func
3820 HAL_I2C_Slave_Receive_IT:
3821 .LVL266:
3822 .LFB346:
1919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3823 .loc 1 1919 1 is_stmt 1 view -0
3824 .cfi_startproc
3825 @ args = 0, pretend = 0, frame = 0
3826 @ frame_needed = 0, uses_anonymous_args = 0
1919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3827 .loc 1 1919 1 is_stmt 0 view .LVU1310
3828 0000 38B5 push {r3, r4, r5, lr}
3829 .cfi_def_cfa_offset 16
3830 .cfi_offset 3, -16
3831 .cfi_offset 4, -12
3832 .cfi_offset 5, -8
3833 .cfi_offset 14, -4
1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3834 .loc 1 1920 3 is_stmt 1 view .LVU1311
1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3835 .loc 1 1920 11 is_stmt 0 view .LVU1312
3836 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3837 .loc 1 1920 6 view .LVU1313
3838 0006 202B cmp r3, #32
3839 0008 23D1 bne .L267
1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3840 .loc 1 1923 5 is_stmt 1 view .LVU1314
1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3841 .loc 1 1923 5 view .LVU1315
3842 000a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
3843 000e 012B cmp r3, #1
3844 0010 21D0 beq .L268
1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3845 .loc 1 1923 5 discriminator 2 view .LVU1316
3846 0012 0123 movs r3, #1
3847 0014 80F84030 strb r3, [r0, #64]
1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3848 .loc 1 1923 5 view .LVU1317
ARM GAS /tmp/ccN54YTb.s page 221
1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3849 .loc 1 1925 5 view .LVU1318
1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3850 .loc 1 1925 23 is_stmt 0 view .LVU1319
3851 0018 2223 movs r3, #34
3852 001a 80F84130 strb r3, [r0, #65]
1926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3853 .loc 1 1926 5 is_stmt 1 view .LVU1320
1926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3854 .loc 1 1926 23 is_stmt 0 view .LVU1321
3855 001e 2023 movs r3, #32
3856 0020 80F84230 strb r3, [r0, #66]
1927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3857 .loc 1 1927 5 is_stmt 1 view .LVU1322
1927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3858 .loc 1 1927 23 is_stmt 0 view .LVU1323
3859 0024 0024 movs r4, #0
3860 0026 4464 str r4, [r0, #68]
1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3861 .loc 1 1930 5 is_stmt 1 view .LVU1324
1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3862 .loc 1 1930 9 is_stmt 0 view .LVU1325
3863 0028 0568 ldr r5, [r0]
1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3864 .loc 1 1930 19 view .LVU1326
3865 002a 6B68 ldr r3, [r5, #4]
1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3866 .loc 1 1930 25 view .LVU1327
3867 002c 23F40043 bic r3, r3, #32768
3868 0030 6B60 str r3, [r5, #4]
1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3869 .loc 1 1933 5 is_stmt 1 view .LVU1328
1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3870 .loc 1 1933 23 is_stmt 0 view .LVU1329
3871 0032 4162 str r1, [r0, #36]
1934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3872 .loc 1 1934 5 is_stmt 1 view .LVU1330
1934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3873 .loc 1 1934 23 is_stmt 0 view .LVU1331
3874 0034 4285 strh r2, [r0, #42] @ movhi
1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3875 .loc 1 1935 5 is_stmt 1 view .LVU1332
1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3876 .loc 1 1935 29 is_stmt 0 view .LVU1333
3877 0036 438D ldrh r3, [r0, #42]
1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3878 .loc 1 1935 23 view .LVU1334
3879 0038 0385 strh r3, [r0, #40] @ movhi
1936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3880 .loc 1 1936 5 is_stmt 1 view .LVU1335
1936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3881 .loc 1 1936 23 is_stmt 0 view .LVU1336
3882 003a 084B ldr r3, .L270
3883 003c C362 str r3, [r0, #44]
1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3884 .loc 1 1937 5 is_stmt 1 view .LVU1337
1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 222
3885 .loc 1 1937 23 is_stmt 0 view .LVU1338
3886 003e 084B ldr r3, .L270+4
3887 0040 4363 str r3, [r0, #52]
1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3888 .loc 1 1940 5 is_stmt 1 view .LVU1339
1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3889 .loc 1 1940 5 view .LVU1340
3890 0042 80F84040 strb r4, [r0, #64]
1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3891 .loc 1 1940 5 view .LVU1341
1950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3892 .loc 1 1950 5 view .LVU1342
3893 0046 48F20201 movw r1, #32770
3894 .LVL267:
1950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3895 .loc 1 1950 5 is_stmt 0 view .LVU1343
3896 004a FFF7FEFF bl I2C_Enable_IRQ
3897 .LVL268:
1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3898 .loc 1 1952 5 is_stmt 1 view .LVU1344
1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3899 .loc 1 1952 12 is_stmt 0 view .LVU1345
3900 004e 2046 mov r0, r4
3901 .L266:
1958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3902 .loc 1 1958 1 view .LVU1346
3903 0050 38BD pop {r3, r4, r5, pc}
3904 .LVL269:
3905 .L267:
1956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3906 .loc 1 1956 12 view .LVU1347
3907 0052 0220 movs r0, #2
3908 .LVL270:
1956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3909 .loc 1 1956 12 view .LVU1348
3910 0054 FCE7 b .L266
3911 .LVL271:
3912 .L268:
1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3913 .loc 1 1923 5 discriminator 1 view .LVU1349
3914 0056 0220 movs r0, #2
3915 .LVL272:
1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3916 .loc 1 1923 5 discriminator 1 view .LVU1350
3917 0058 FAE7 b .L266
3918 .L271:
3919 005a 00BF .align 2
3920 .L270:
3921 005c 0000FFFF .word -65536
3922 0060 00000000 .word I2C_Slave_ISR_IT
3923 .cfi_endproc
3924 .LFE346:
3926 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits
3927 .align 1
3928 .global HAL_I2C_Master_Transmit_DMA
3929 .syntax unified
3930 .thumb
ARM GAS /tmp/ccN54YTb.s page 223
3931 .thumb_func
3933 HAL_I2C_Master_Transmit_DMA:
3934 .LVL273:
3935 .LFB347:
1972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3936 .loc 1 1972 1 is_stmt 1 view -0
3937 .cfi_startproc
3938 @ args = 0, pretend = 0, frame = 0
3939 @ frame_needed = 0, uses_anonymous_args = 0
1972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3940 .loc 1 1972 1 is_stmt 0 view .LVU1352
3941 0000 70B5 push {r4, r5, r6, lr}
3942 .cfi_def_cfa_offset 16
3943 .cfi_offset 4, -16
3944 .cfi_offset 5, -12
3945 .cfi_offset 6, -8
3946 .cfi_offset 14, -4
3947 0002 82B0 sub sp, sp, #8
3948 .cfi_def_cfa_offset 24
3949 0004 0446 mov r4, r0
1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3950 .loc 1 1973 3 is_stmt 1 view .LVU1353
1974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
3951 .loc 1 1974 3 view .LVU1354
1975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3952 .loc 1 1975 3 view .LVU1355
3953 .LVL274:
1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3954 .loc 1 1977 3 view .LVU1356
1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3955 .loc 1 1977 11 is_stmt 0 view .LVU1357
3956 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3957 .LVL275:
1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3958 .loc 1 1977 6 view .LVU1358
3959 000a 2028 cmp r0, #32
3960 000c 40F09D80 bne .L282
3961 0010 0D46 mov r5, r1
1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3962 .loc 1 1979 5 is_stmt 1 view .LVU1359
1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3963 .loc 1 1979 9 is_stmt 0 view .LVU1360
3964 0012 2068 ldr r0, [r4]
3965 0014 8169 ldr r1, [r0, #24]
3966 .LVL276:
1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3967 .loc 1 1979 8 view .LVU1361
3968 0016 11F40041 ands r1, r1, #32768
3969 001a 40F09980 bne .L283
1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3970 .loc 1 1985 5 is_stmt 1 view .LVU1362
1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3971 .loc 1 1985 5 view .LVU1363
3972 001e 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2
3973 0022 012E cmp r6, #1
3974 0024 00F09680 beq .L284
1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 224
3975 .loc 1 1985 5 discriminator 2 view .LVU1364
3976 0028 0126 movs r6, #1
3977 002a 84F84060 strb r6, [r4, #64]
1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3978 .loc 1 1985 5 view .LVU1365
1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3979 .loc 1 1987 5 view .LVU1366
1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3980 .loc 1 1987 23 is_stmt 0 view .LVU1367
3981 002e 2126 movs r6, #33
3982 0030 84F84160 strb r6, [r4, #65]
1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3983 .loc 1 1988 5 is_stmt 1 view .LVU1368
1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3984 .loc 1 1988 23 is_stmt 0 view .LVU1369
3985 0034 1026 movs r6, #16
3986 0036 84F84260 strb r6, [r4, #66]
1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3987 .loc 1 1989 5 is_stmt 1 view .LVU1370
1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3988 .loc 1 1989 23 is_stmt 0 view .LVU1371
3989 003a 0026 movs r6, #0
3990 003c 6664 str r6, [r4, #68]
1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3991 .loc 1 1992 5 is_stmt 1 view .LVU1372
1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3992 .loc 1 1992 23 is_stmt 0 view .LVU1373
3993 003e 6262 str r2, [r4, #36]
1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3994 .loc 1 1993 5 is_stmt 1 view .LVU1374
1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3995 .loc 1 1993 23 is_stmt 0 view .LVU1375
3996 0040 6385 strh r3, [r4, #42] @ movhi
1994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3997 .loc 1 1994 5 is_stmt 1 view .LVU1376
1994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3998 .loc 1 1994 23 is_stmt 0 view .LVU1377
3999 0042 454B ldr r3, .L288
4000 .LVL277:
1994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
4001 .loc 1 1994 23 view .LVU1378
4002 0044 E362 str r3, [r4, #44]
4003 .LVL278:
1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4004 .loc 1 1995 5 is_stmt 1 view .LVU1379
1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4005 .loc 1 1995 23 is_stmt 0 view .LVU1380
4006 0046 454B ldr r3, .L288+4
4007 0048 6363 str r3, [r4, #52]
1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4008 .loc 1 1997 5 is_stmt 1 view .LVU1381
1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4009 .loc 1 1997 13 is_stmt 0 view .LVU1382
4010 004a 638D ldrh r3, [r4, #42]
4011 004c 9BB2 uxth r3, r3
1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4012 .loc 1 1997 8 view .LVU1383
ARM GAS /tmp/ccN54YTb.s page 225
4013 004e FF2B cmp r3, #255
4014 0050 37D9 bls .L274
1999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4015 .loc 1 1999 7 is_stmt 1 view .LVU1384
1999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4016 .loc 1 1999 22 is_stmt 0 view .LVU1385
4017 0052 FF23 movs r3, #255
4018 0054 2385 strh r3, [r4, #40] @ movhi
2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4019 .loc 1 2000 7 is_stmt 1 view .LVU1386
4020 .LVL279:
2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4021 .loc 1 2000 16 is_stmt 0 view .LVU1387
4022 0056 4FF08076 mov r6, #16777216
4023 .LVL280:
4024 .L275:
2008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4025 .loc 1 2008 5 is_stmt 1 view .LVU1388
2008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4026 .loc 1 2008 13 is_stmt 0 view .LVU1389
4027 005a 238D ldrh r3, [r4, #40]
2008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4028 .loc 1 2008 8 view .LVU1390
4029 005c 63B1 cbz r3, .L276
2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4030 .loc 1 2012 7 is_stmt 1 view .LVU1391
2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4031 .loc 1 2012 30 is_stmt 0 view .LVU1392
4032 005e 1378 ldrb r3, [r2] @ zero_extendqisi2
2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4033 .loc 1 2012 28 view .LVU1393
4034 0060 8362 str r3, [r0, #40]
2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4035 .loc 1 2015 7 is_stmt 1 view .LVU1394
2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4036 .loc 1 2015 11 is_stmt 0 view .LVU1395
4037 0062 636A ldr r3, [r4, #36]
2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4038 .loc 1 2015 21 view .LVU1396
4039 0064 0133 adds r3, r3, #1
4040 0066 6362 str r3, [r4, #36]
2017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
4041 .loc 1 2017 7 is_stmt 1 view .LVU1397
2017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
4042 .loc 1 2017 24 is_stmt 0 view .LVU1398
4043 0068 218D ldrh r1, [r4, #40]
4044 .LVL281:
2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4045 .loc 1 2018 7 is_stmt 1 view .LVU1399
2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4046 .loc 1 2018 11 is_stmt 0 view .LVU1400
4047 006a 638D ldrh r3, [r4, #42]
4048 006c 9BB2 uxth r3, r3
2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4049 .loc 1 2018 22 view .LVU1401
4050 006e 013B subs r3, r3, #1
4051 0070 9BB2 uxth r3, r3
ARM GAS /tmp/ccN54YTb.s page 226
4052 0072 6385 strh r3, [r4, #42] @ movhi
2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4053 .loc 1 2019 7 is_stmt 1 view .LVU1402
2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4054 .loc 1 2019 21 is_stmt 0 view .LVU1403
4055 0074 4B1E subs r3, r1, #1
4056 0076 2385 strh r3, [r4, #40] @ movhi
4057 .LVL282:
4058 .L276:
2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4059 .loc 1 2022 5 is_stmt 1 view .LVU1404
2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4060 .loc 1 2022 13 is_stmt 0 view .LVU1405
4061 0078 238D ldrh r3, [r4, #40]
2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4062 .loc 1 2022 8 view .LVU1406
4063 007a 002B cmp r3, #0
4064 007c 51D0 beq .L277
2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4065 .loc 1 2024 7 is_stmt 1 view .LVU1407
2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4066 .loc 1 2024 15 is_stmt 0 view .LVU1408
4067 007e A36B ldr r3, [r4, #56]
2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4068 .loc 1 2024 10 view .LVU1409
4069 0080 23B3 cbz r3, .L278
2027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4070 .loc 1 2027 9 is_stmt 1 view .LVU1410
2027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4071 .loc 1 2027 40 is_stmt 0 view .LVU1411
4072 0082 374A ldr r2, .L288+8
4073 .LVL283:
2027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4074 .loc 1 2027 40 view .LVU1412
4075 0084 DA63 str r2, [r3, #60]
2030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4076 .loc 1 2030 9 is_stmt 1 view .LVU1413
2030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4077 .loc 1 2030 13 is_stmt 0 view .LVU1414
4078 0086 A36B ldr r3, [r4, #56]
2030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4079 .loc 1 2030 41 view .LVU1415
4080 0088 364A ldr r2, .L288+12
4081 008a DA64 str r2, [r3, #76]
2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4082 .loc 1 2033 9 is_stmt 1 view .LVU1416
2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4083 .loc 1 2033 13 is_stmt 0 view .LVU1417
4084 008c A26B ldr r2, [r4, #56]
2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4085 .loc 1 2033 44 view .LVU1418
4086 008e 0023 movs r3, #0
4087 0090 1364 str r3, [r2, #64]
2034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4088 .loc 1 2034 9 is_stmt 1 view .LVU1419
2034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4089 .loc 1 2034 13 is_stmt 0 view .LVU1420
ARM GAS /tmp/ccN54YTb.s page 227
4090 0092 A26B ldr r2, [r4, #56]
2034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4091 .loc 1 2034 41 view .LVU1421
4092 0094 1365 str r3, [r2, #80]
2037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
4093 .loc 1 2037 9 is_stmt 1 view .LVU1422
2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4094 .loc 1 2038 57 is_stmt 0 view .LVU1423
4095 0096 2268 ldr r2, [r4]
2037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
4096 .loc 1 2037 25 view .LVU1424
4097 0098 238D ldrh r3, [r4, #40]
4098 009a 2832 adds r2, r2, #40
4099 009c 616A ldr r1, [r4, #36]
4100 .LVL284:
2037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
4101 .loc 1 2037 25 view .LVU1425
4102 009e A06B ldr r0, [r4, #56]
4103 00a0 FFF7FEFF bl HAL_DMA_Start_IT
4104 .LVL285:
2055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4105 .loc 1 2055 7 is_stmt 1 view .LVU1426
2055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4106 .loc 1 2055 10 is_stmt 0 view .LVU1427
4107 00a4 00B3 cbz r0, .L287
2080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4108 .loc 1 2080 9 is_stmt 1 view .LVU1428
2080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4109 .loc 1 2080 25 is_stmt 0 view .LVU1429
4110 00a6 2023 movs r3, #32
4111 00a8 84F84130 strb r3, [r4, #65]
2081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4112 .loc 1 2081 9 is_stmt 1 view .LVU1430
2081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4113 .loc 1 2081 25 is_stmt 0 view .LVU1431
4114 00ac 0022 movs r2, #0
4115 00ae 84F84220 strb r2, [r4, #66]
2084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4116 .loc 1 2084 9 is_stmt 1 view .LVU1432
2084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4117 .loc 1 2084 13 is_stmt 0 view .LVU1433
4118 00b2 636C ldr r3, [r4, #68]
2084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4119 .loc 1 2084 25 view .LVU1434
4120 00b4 43F01003 orr r3, r3, #16
4121 00b8 6364 str r3, [r4, #68]
2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4122 .loc 1 2087 9 is_stmt 1 view .LVU1435
2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4123 .loc 1 2087 9 view .LVU1436
4124 00ba 84F84020 strb r2, [r4, #64]
2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4125 .loc 1 2087 9 view .LVU1437
2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4126 .loc 1 2089 9 view .LVU1438
2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4127 .loc 1 2089 16 is_stmt 0 view .LVU1439
ARM GAS /tmp/ccN54YTb.s page 228
4128 00be 0120 movs r0, #1
4129 .LVL286:
2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4130 .loc 1 2089 16 view .LVU1440
4131 00c0 44E0 b .L273
4132 .LVL287:
4133 .L274:
2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4134 .loc 1 2004 7 is_stmt 1 view .LVU1441
2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4135 .loc 1 2004 28 is_stmt 0 view .LVU1442
4136 00c2 638D ldrh r3, [r4, #42]
2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4137 .loc 1 2004 22 view .LVU1443
4138 00c4 2385 strh r3, [r4, #40] @ movhi
2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4139 .loc 1 2005 7 is_stmt 1 view .LVU1444
4140 .LVL288:
2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4141 .loc 1 2005 16 is_stmt 0 view .LVU1445
4142 00c6 4FF00076 mov r6, #33554432
4143 00ca C6E7 b .L275
4144 .LVL289:
4145 .L278:
2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4146 .loc 1 2043 9 is_stmt 1 view .LVU1446
2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4147 .loc 1 2043 25 is_stmt 0 view .LVU1447
4148 00cc 2023 movs r3, #32
4149 00ce 84F84130 strb r3, [r4, #65]
2044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4150 .loc 1 2044 9 is_stmt 1 view .LVU1448
2044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4151 .loc 1 2044 25 is_stmt 0 view .LVU1449
4152 00d2 0022 movs r2, #0
4153 .LVL290:
2044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4154 .loc 1 2044 25 view .LVU1450
4155 00d4 84F84220 strb r2, [r4, #66]
2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4156 .loc 1 2047 9 is_stmt 1 view .LVU1451
2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4157 .loc 1 2047 13 is_stmt 0 view .LVU1452
4158 00d8 636C ldr r3, [r4, #68]
2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4159 .loc 1 2047 25 view .LVU1453
4160 00da 43F08003 orr r3, r3, #128
4161 00de 6364 str r3, [r4, #68]
2050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4162 .loc 1 2050 9 is_stmt 1 view .LVU1454
2050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4163 .loc 1 2050 9 view .LVU1455
4164 00e0 84F84020 strb r2, [r4, #64]
2050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4165 .loc 1 2050 9 view .LVU1456
2052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4166 .loc 1 2052 9 view .LVU1457
ARM GAS /tmp/ccN54YTb.s page 229
2052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4167 .loc 1 2052 16 is_stmt 0 view .LVU1458
4168 00e4 0120 movs r0, #1
4169 00e6 31E0 b .L273
4170 .LVL291:
4171 .L287:
2059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
4172 .loc 1 2059 9 is_stmt 1 view .LVU1459
2059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
4173 .loc 1 2059 60 is_stmt 0 view .LVU1460
4174 00e8 228D ldrh r2, [r4, #40]
2059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
4175 .loc 1 2059 9 view .LVU1461
4176 00ea 0132 adds r2, r2, #1
4177 00ec 1E4B ldr r3, .L288+16
4178 00ee 0093 str r3, [sp]
4179 00f0 3346 mov r3, r6
4180 00f2 D2B2 uxtb r2, r2
4181 00f4 2946 mov r1, r5
4182 00f6 2046 mov r0, r4
4183 .LVL292:
2059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
4184 .loc 1 2059 9 view .LVU1462
4185 00f8 FFF7FEFF bl I2C_TransferConfig
4186 .LVL293:
2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4187 .loc 1 2063 9 is_stmt 1 view .LVU1463
2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4188 .loc 1 2063 13 is_stmt 0 view .LVU1464
4189 00fc 638D ldrh r3, [r4, #42]
4190 00fe 9BB2 uxth r3, r3
2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4191 .loc 1 2063 32 view .LVU1465
4192 0100 228D ldrh r2, [r4, #40]
2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4193 .loc 1 2063 25 view .LVU1466
4194 0102 9B1A subs r3, r3, r2
4195 0104 9BB2 uxth r3, r3
4196 0106 6385 strh r3, [r4, #42] @ movhi
2066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4197 .loc 1 2066 9 is_stmt 1 view .LVU1467
2066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4198 .loc 1 2066 9 view .LVU1468
4199 0108 0023 movs r3, #0
4200 010a 84F84030 strb r3, [r4, #64]
2066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4201 .loc 1 2066 9 view .LVU1469
2072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4202 .loc 1 2072 9 view .LVU1470
4203 010e 1021 movs r1, #16
4204 0110 2046 mov r0, r4
4205 0112 FFF7FEFF bl I2C_Enable_IRQ
4206 .LVL294:
2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4207 .loc 1 2075 9 view .LVU1471
2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4208 .loc 1 2075 13 is_stmt 0 view .LVU1472
ARM GAS /tmp/ccN54YTb.s page 230
4209 0116 2268 ldr r2, [r4]
2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4210 .loc 1 2075 23 view .LVU1473
4211 0118 1368 ldr r3, [r2]
2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4212 .loc 1 2075 29 view .LVU1474
4213 011a 43F48043 orr r3, r3, #16384
4214 011e 1360 str r3, [r2]
4215 0120 11E0 b .L281
4216 .LVL295:
4217 .L277:
2095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4218 .loc 1 2095 7 is_stmt 1 view .LVU1475
2095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4219 .loc 1 2095 21 is_stmt 0 view .LVU1476
4220 0122 124B ldr r3, .L288+20
4221 0124 6363 str r3, [r4, #52]
2099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
4222 .loc 1 2099 7 is_stmt 1 view .LVU1477
4223 0126 104B ldr r3, .L288+16
4224 0128 0093 str r3, [sp]
4225 012a 4FF00073 mov r3, #33554432
4226 012e CAB2 uxtb r2, r1
4227 .LVL296:
2099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
4228 .loc 1 2099 7 is_stmt 0 view .LVU1478
4229 0130 2946 mov r1, r5
4230 .LVL297:
2099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
4231 .loc 1 2099 7 view .LVU1479
4232 0132 2046 mov r0, r4
4233 0134 FFF7FEFF bl I2C_TransferConfig
4234 .LVL298:
2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4235 .loc 1 2103 7 is_stmt 1 view .LVU1480
2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4236 .loc 1 2103 7 view .LVU1481
4237 0138 0023 movs r3, #0
4238 013a 84F84030 strb r3, [r4, #64]
2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4239 .loc 1 2103 7 view .LVU1482
2112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4240 .loc 1 2112 7 view .LVU1483
4241 013e 0121 movs r1, #1
4242 0140 2046 mov r0, r4
4243 0142 FFF7FEFF bl I2C_Enable_IRQ
4244 .LVL299:
4245 .L281:
2115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4246 .loc 1 2115 5 view .LVU1484
2115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4247 .loc 1 2115 12 is_stmt 0 view .LVU1485
4248 0146 0020 movs r0, #0
4249 0148 00E0 b .L273
4250 .LVL300:
4251 .L282:
2119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 231
4252 .loc 1 2119 12 view .LVU1486
4253 014a 0220 movs r0, #2
4254 .LVL301:
4255 .L273:
2121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4256 .loc 1 2121 1 view .LVU1487
4257 014c 02B0 add sp, sp, #8
4258 .cfi_remember_state
4259 .cfi_def_cfa_offset 16
4260 @ sp needed
4261 014e 70BD pop {r4, r5, r6, pc}
4262 .LVL302:
4263 .L283:
4264 .cfi_restore_state
1981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4265 .loc 1 1981 14 view .LVU1488
4266 0150 0220 movs r0, #2
4267 0152 FBE7 b .L273
4268 .L284:
1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4269 .loc 1 1985 5 discriminator 1 view .LVU1489
4270 0154 0220 movs r0, #2
4271 0156 F9E7 b .L273
4272 .L289:
4273 .align 2
4274 .L288:
4275 0158 0000FFFF .word -65536
4276 015c 00000000 .word I2C_Master_ISR_DMA
4277 0160 00000000 .word I2C_DMAMasterTransmitCplt
4278 0164 00000000 .word I2C_DMAError
4279 0168 00200080 .word -2147475456
4280 016c 00000000 .word I2C_Master_ISR_IT
4281 .cfi_endproc
4282 .LFE347:
4284 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits
4285 .align 1
4286 .global HAL_I2C_Master_Receive_DMA
4287 .syntax unified
4288 .thumb
4289 .thumb_func
4291 HAL_I2C_Master_Receive_DMA:
4292 .LVL303:
4293 .LFB348:
2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
4294 .loc 1 2135 1 is_stmt 1 view -0
4295 .cfi_startproc
4296 @ args = 0, pretend = 0, frame = 0
4297 @ frame_needed = 0, uses_anonymous_args = 0
2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
4298 .loc 1 2135 1 is_stmt 0 view .LVU1491
4299 0000 70B5 push {r4, r5, r6, lr}
4300 .cfi_def_cfa_offset 16
4301 .cfi_offset 4, -16
4302 .cfi_offset 5, -12
4303 .cfi_offset 6, -8
4304 .cfi_offset 14, -4
4305 0002 82B0 sub sp, sp, #8
ARM GAS /tmp/ccN54YTb.s page 232
4306 .cfi_def_cfa_offset 24
4307 0004 0446 mov r4, r0
2136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4308 .loc 1 2136 3 is_stmt 1 view .LVU1492
2137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4309 .loc 1 2137 3 view .LVU1493
2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4310 .loc 1 2139 3 view .LVU1494
2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4311 .loc 1 2139 11 is_stmt 0 view .LVU1495
4312 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
4313 .LVL304:
2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4314 .loc 1 2139 6 view .LVU1496
4315 000a 2028 cmp r0, #32
4316 000c 40F08C80 bne .L299
4317 0010 0D46 mov r5, r1
2141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4318 .loc 1 2141 5 is_stmt 1 view .LVU1497
2141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4319 .loc 1 2141 9 is_stmt 0 view .LVU1498
4320 0012 2168 ldr r1, [r4]
4321 .LVL305:
2141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4322 .loc 1 2141 9 view .LVU1499
4323 0014 8969 ldr r1, [r1, #24]
2141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4324 .loc 1 2141 8 view .LVU1500
4325 0016 11F4004F tst r1, #32768
4326 001a 40F08880 bne .L300
2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4327 .loc 1 2147 5 is_stmt 1 view .LVU1501
2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4328 .loc 1 2147 5 view .LVU1502
4329 001e 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
4330 0022 0129 cmp r1, #1
4331 0024 00F08580 beq .L301
2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4332 .loc 1 2147 5 discriminator 2 view .LVU1503
4333 0028 0121 movs r1, #1
4334 002a 84F84010 strb r1, [r4, #64]
2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4335 .loc 1 2147 5 view .LVU1504
2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
4336 .loc 1 2149 5 view .LVU1505
2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
4337 .loc 1 2149 23 is_stmt 0 view .LVU1506
4338 002e 2221 movs r1, #34
4339 0030 84F84110 strb r1, [r4, #65]
2150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4340 .loc 1 2150 5 is_stmt 1 view .LVU1507
2150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4341 .loc 1 2150 23 is_stmt 0 view .LVU1508
4342 0034 1021 movs r1, #16
4343 0036 84F84210 strb r1, [r4, #66]
2151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4344 .loc 1 2151 5 is_stmt 1 view .LVU1509
ARM GAS /tmp/ccN54YTb.s page 233
2151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4345 .loc 1 2151 23 is_stmt 0 view .LVU1510
4346 003a 0021 movs r1, #0
4347 003c 6164 str r1, [r4, #68]
2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4348 .loc 1 2154 5 is_stmt 1 view .LVU1511
2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4349 .loc 1 2154 23 is_stmt 0 view .LVU1512
4350 003e 6262 str r2, [r4, #36]
2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4351 .loc 1 2155 5 is_stmt 1 view .LVU1513
2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4352 .loc 1 2155 23 is_stmt 0 view .LVU1514
4353 0040 6385 strh r3, [r4, #42] @ movhi
2156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
4354 .loc 1 2156 5 is_stmt 1 view .LVU1515
2156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
4355 .loc 1 2156 23 is_stmt 0 view .LVU1516
4356 0042 3D4B ldr r3, .L305
4357 .LVL306:
2156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
4358 .loc 1 2156 23 view .LVU1517
4359 0044 E362 str r3, [r4, #44]
4360 .LVL307:
2157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4361 .loc 1 2157 5 is_stmt 1 view .LVU1518
2157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4362 .loc 1 2157 23 is_stmt 0 view .LVU1519
4363 0046 3D4B ldr r3, .L305+4
4364 0048 6363 str r3, [r4, #52]
2159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4365 .loc 1 2159 5 is_stmt 1 view .LVU1520
2159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4366 .loc 1 2159 13 is_stmt 0 view .LVU1521
4367 004a 638D ldrh r3, [r4, #42]
4368 004c 9BB2 uxth r3, r3
2159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4369 .loc 1 2159 8 view .LVU1522
4370 004e FF2B cmp r3, #255
4371 0050 27D9 bls .L292
2161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4372 .loc 1 2161 7 is_stmt 1 view .LVU1523
2161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4373 .loc 1 2161 22 is_stmt 0 view .LVU1524
4374 0052 FF23 movs r3, #255
4375 0054 2385 strh r3, [r4, #40] @ movhi
2162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4376 .loc 1 2162 7 is_stmt 1 view .LVU1525
4377 .LVL308:
2162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4378 .loc 1 2162 16 is_stmt 0 view .LVU1526
4379 0056 4FF08076 mov r6, #16777216
4380 .LVL309:
4381 .L293:
2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4382 .loc 1 2170 5 is_stmt 1 view .LVU1527
2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 234
4383 .loc 1 2170 13 is_stmt 0 view .LVU1528
4384 005a 218D ldrh r1, [r4, #40]
2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4385 .loc 1 2170 8 view .LVU1529
4386 005c 0029 cmp r1, #0
4387 005e 4FD0 beq .L294
2172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4388 .loc 1 2172 7 is_stmt 1 view .LVU1530
2172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4389 .loc 1 2172 15 is_stmt 0 view .LVU1531
4390 0060 E36B ldr r3, [r4, #60]
2172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4391 .loc 1 2172 10 view .LVU1532
4392 0062 1BB3 cbz r3, .L295
2175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4393 .loc 1 2175 9 is_stmt 1 view .LVU1533
2175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4394 .loc 1 2175 40 is_stmt 0 view .LVU1534
4395 0064 3649 ldr r1, .L305+8
4396 0066 D963 str r1, [r3, #60]
2178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4397 .loc 1 2178 9 is_stmt 1 view .LVU1535
2178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4398 .loc 1 2178 13 is_stmt 0 view .LVU1536
4399 0068 E36B ldr r3, [r4, #60]
2178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4400 .loc 1 2178 41 view .LVU1537
4401 006a 3649 ldr r1, .L305+12
4402 006c D964 str r1, [r3, #76]
2181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4403 .loc 1 2181 9 is_stmt 1 view .LVU1538
2181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4404 .loc 1 2181 13 is_stmt 0 view .LVU1539
4405 006e E16B ldr r1, [r4, #60]
2181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4406 .loc 1 2181 44 view .LVU1540
4407 0070 0023 movs r3, #0
4408 0072 0B64 str r3, [r1, #64]
2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4409 .loc 1 2182 9 is_stmt 1 view .LVU1541
2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4410 .loc 1 2182 13 is_stmt 0 view .LVU1542
4411 0074 E16B ldr r1, [r4, #60]
2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4412 .loc 1 2182 41 view .LVU1543
4413 0076 0B65 str r3, [r1, #80]
2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
4414 .loc 1 2185 9 is_stmt 1 view .LVU1544
2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
4415 .loc 1 2185 71 is_stmt 0 view .LVU1545
4416 0078 2168 ldr r1, [r4]
2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
4417 .loc 1 2185 25 view .LVU1546
4418 007a 238D ldrh r3, [r4, #40]
4419 007c 2431 adds r1, r1, #36
4420 007e E06B ldr r0, [r4, #60]
4421 0080 FFF7FEFF bl HAL_DMA_Start_IT
ARM GAS /tmp/ccN54YTb.s page 235
4422 .LVL310:
2203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4423 .loc 1 2203 7 is_stmt 1 view .LVU1547
2203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4424 .loc 1 2203 10 is_stmt 0 view .LVU1548
4425 0084 00B3 cbz r0, .L304
2227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4426 .loc 1 2227 9 is_stmt 1 view .LVU1549
2227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4427 .loc 1 2227 25 is_stmt 0 view .LVU1550
4428 0086 2023 movs r3, #32
4429 0088 84F84130 strb r3, [r4, #65]
2228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4430 .loc 1 2228 9 is_stmt 1 view .LVU1551
2228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4431 .loc 1 2228 25 is_stmt 0 view .LVU1552
4432 008c 0022 movs r2, #0
4433 008e 84F84220 strb r2, [r4, #66]
2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4434 .loc 1 2231 9 is_stmt 1 view .LVU1553
2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4435 .loc 1 2231 13 is_stmt 0 view .LVU1554
4436 0092 636C ldr r3, [r4, #68]
2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4437 .loc 1 2231 25 view .LVU1555
4438 0094 43F01003 orr r3, r3, #16
4439 0098 6364 str r3, [r4, #68]
2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4440 .loc 1 2234 9 is_stmt 1 view .LVU1556
2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4441 .loc 1 2234 9 view .LVU1557
4442 009a 84F84020 strb r2, [r4, #64]
2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4443 .loc 1 2234 9 view .LVU1558
2236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4444 .loc 1 2236 9 view .LVU1559
2236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4445 .loc 1 2236 16 is_stmt 0 view .LVU1560
4446 009e 0120 movs r0, #1
4447 .LVL311:
2236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4448 .loc 1 2236 16 view .LVU1561
4449 00a0 43E0 b .L291
4450 .LVL312:
4451 .L292:
2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4452 .loc 1 2166 7 is_stmt 1 view .LVU1562
2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4453 .loc 1 2166 28 is_stmt 0 view .LVU1563
4454 00a2 638D ldrh r3, [r4, #42]
2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4455 .loc 1 2166 22 view .LVU1564
4456 00a4 2385 strh r3, [r4, #40] @ movhi
2167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4457 .loc 1 2167 7 is_stmt 1 view .LVU1565
4458 .LVL313:
2167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 236
4459 .loc 1 2167 16 is_stmt 0 view .LVU1566
4460 00a6 4FF00076 mov r6, #33554432
4461 00aa D6E7 b .L293
4462 .LVL314:
4463 .L295:
2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4464 .loc 1 2191 9 is_stmt 1 view .LVU1567
2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4465 .loc 1 2191 25 is_stmt 0 view .LVU1568
4466 00ac 2023 movs r3, #32
4467 00ae 84F84130 strb r3, [r4, #65]
2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4468 .loc 1 2192 9 is_stmt 1 view .LVU1569
2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4469 .loc 1 2192 25 is_stmt 0 view .LVU1570
4470 00b2 0022 movs r2, #0
4471 .LVL315:
2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4472 .loc 1 2192 25 view .LVU1571
4473 00b4 84F84220 strb r2, [r4, #66]
2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4474 .loc 1 2195 9 is_stmt 1 view .LVU1572
2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4475 .loc 1 2195 13 is_stmt 0 view .LVU1573
4476 00b8 636C ldr r3, [r4, #68]
2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4477 .loc 1 2195 25 view .LVU1574
4478 00ba 43F08003 orr r3, r3, #128
4479 00be 6364 str r3, [r4, #68]
2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4480 .loc 1 2198 9 is_stmt 1 view .LVU1575
2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4481 .loc 1 2198 9 view .LVU1576
4482 00c0 84F84020 strb r2, [r4, #64]
2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4483 .loc 1 2198 9 view .LVU1577
2200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4484 .loc 1 2200 9 view .LVU1578
2200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4485 .loc 1 2200 16 is_stmt 0 view .LVU1579
4486 00c4 0120 movs r0, #1
4487 00c6 30E0 b .L291
4488 .LVL316:
4489 .L304:
2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4490 .loc 1 2207 9 is_stmt 1 view .LVU1580
4491 00c8 1F4B ldr r3, .L305+16
4492 00ca 0093 str r3, [sp]
4493 00cc 3346 mov r3, r6
4494 00ce 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
4495 00d2 2946 mov r1, r5
4496 00d4 2046 mov r0, r4
4497 .LVL317:
2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4498 .loc 1 2207 9 is_stmt 0 view .LVU1581
4499 00d6 FFF7FEFF bl I2C_TransferConfig
4500 .LVL318:
ARM GAS /tmp/ccN54YTb.s page 237
2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4501 .loc 1 2210 9 is_stmt 1 view .LVU1582
2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4502 .loc 1 2210 13 is_stmt 0 view .LVU1583
4503 00da 638D ldrh r3, [r4, #42]
4504 00dc 9BB2 uxth r3, r3
2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4505 .loc 1 2210 32 view .LVU1584
4506 00de 228D ldrh r2, [r4, #40]
2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4507 .loc 1 2210 25 view .LVU1585
4508 00e0 9B1A subs r3, r3, r2
4509 00e2 9BB2 uxth r3, r3
4510 00e4 6385 strh r3, [r4, #42] @ movhi
2213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4511 .loc 1 2213 9 is_stmt 1 view .LVU1586
2213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4512 .loc 1 2213 9 view .LVU1587
4513 00e6 0023 movs r3, #0
4514 00e8 84F84030 strb r3, [r4, #64]
2213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4515 .loc 1 2213 9 view .LVU1588
2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4516 .loc 1 2219 9 view .LVU1589
4517 00ec 1021 movs r1, #16
4518 00ee 2046 mov r0, r4
4519 00f0 FFF7FEFF bl I2C_Enable_IRQ
4520 .LVL319:
2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4521 .loc 1 2222 9 view .LVU1590
2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4522 .loc 1 2222 13 is_stmt 0 view .LVU1591
4523 00f4 2268 ldr r2, [r4]
2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4524 .loc 1 2222 23 view .LVU1592
4525 00f6 1368 ldr r3, [r2]
2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4526 .loc 1 2222 29 view .LVU1593
4527 00f8 43F40043 orr r3, r3, #32768
4528 00fc 1360 str r3, [r2]
4529 00fe 11E0 b .L298
4530 .LVL320:
4531 .L294:
2242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4532 .loc 1 2242 7 is_stmt 1 view .LVU1594
2242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4533 .loc 1 2242 21 is_stmt 0 view .LVU1595
4534 0100 124B ldr r3, .L305+20
4535 0102 6363 str r3, [r4, #52]
2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
4536 .loc 1 2246 7 is_stmt 1 view .LVU1596
4537 0104 104B ldr r3, .L305+16
4538 0106 0093 str r3, [sp]
4539 0108 4FF00073 mov r3, #33554432
4540 010c CAB2 uxtb r2, r1
4541 .LVL321:
2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
ARM GAS /tmp/ccN54YTb.s page 238
4542 .loc 1 2246 7 is_stmt 0 view .LVU1597
4543 010e 2946 mov r1, r5
4544 0110 2046 mov r0, r4
4545 0112 FFF7FEFF bl I2C_TransferConfig
4546 .LVL322:
2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4547 .loc 1 2250 7 is_stmt 1 view .LVU1598
2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4548 .loc 1 2250 7 view .LVU1599
4549 0116 0023 movs r3, #0
4550 0118 84F84030 strb r3, [r4, #64]
2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4551 .loc 1 2250 7 view .LVU1600
2259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4552 .loc 1 2259 7 view .LVU1601
4553 011c 0221 movs r1, #2
4554 011e 2046 mov r0, r4
4555 0120 FFF7FEFF bl I2C_Enable_IRQ
4556 .LVL323:
4557 .L298:
2262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4558 .loc 1 2262 5 view .LVU1602
2262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4559 .loc 1 2262 12 is_stmt 0 view .LVU1603
4560 0124 0020 movs r0, #0
4561 0126 00E0 b .L291
4562 .LVL324:
4563 .L299:
2266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4564 .loc 1 2266 12 view .LVU1604
4565 0128 0220 movs r0, #2
4566 .LVL325:
4567 .L291:
2268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4568 .loc 1 2268 1 view .LVU1605
4569 012a 02B0 add sp, sp, #8
4570 .cfi_remember_state
4571 .cfi_def_cfa_offset 16
4572 @ sp needed
4573 012c 70BD pop {r4, r5, r6, pc}
4574 .LVL326:
4575 .L300:
4576 .cfi_restore_state
2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4577 .loc 1 2143 14 view .LVU1606
4578 012e 0220 movs r0, #2
4579 0130 FBE7 b .L291
4580 .L301:
2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4581 .loc 1 2147 5 discriminator 1 view .LVU1607
4582 0132 0220 movs r0, #2
4583 0134 F9E7 b .L291
4584 .L306:
4585 0136 00BF .align 2
4586 .L305:
4587 0138 0000FFFF .word -65536
4588 013c 00000000 .word I2C_Master_ISR_DMA
ARM GAS /tmp/ccN54YTb.s page 239
4589 0140 00000000 .word I2C_DMAMasterReceiveCplt
4590 0144 00000000 .word I2C_DMAError
4591 0148 00240080 .word -2147474432
4592 014c 00000000 .word I2C_Master_ISR_IT
4593 .cfi_endproc
4594 .LFE348:
4596 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits
4597 .align 1
4598 .global HAL_I2C_Slave_Transmit_DMA
4599 .syntax unified
4600 .thumb
4601 .thumb_func
4603 HAL_I2C_Slave_Transmit_DMA:
4604 .LVL327:
4605 .LFB349:
2279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4606 .loc 1 2279 1 is_stmt 1 view -0
4607 .cfi_startproc
4608 @ args = 0, pretend = 0, frame = 0
4609 @ frame_needed = 0, uses_anonymous_args = 0
2280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4610 .loc 1 2280 3 view .LVU1609
2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4611 .loc 1 2282 3 view .LVU1610
2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4612 .loc 1 2282 11 is_stmt 0 view .LVU1611
4613 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4614 .loc 1 2282 6 view .LVU1612
4615 0004 202B cmp r3, #32
4616 0006 40F08D80 bne .L316
2279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4617 .loc 1 2279 1 view .LVU1613
4618 000a 10B5 push {r4, lr}
4619 .cfi_def_cfa_offset 8
4620 .cfi_offset 4, -8
4621 .cfi_offset 14, -4
4622 000c 0446 mov r4, r0
2284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4623 .loc 1 2284 5 is_stmt 1 view .LVU1614
2284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4624 .loc 1 2284 8 is_stmt 0 view .LVU1615
4625 000e 002A cmp r2, #0
4626 0010 18BF it ne
4627 0012 0029 cmpne r1, #0
4628 0014 42D0 beq .L323
2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4629 .loc 1 2290 5 is_stmt 1 view .LVU1616
2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4630 .loc 1 2290 5 view .LVU1617
4631 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
4632 001a 012B cmp r3, #1
4633 001c 00F08480 beq .L317
2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4634 .loc 1 2290 5 discriminator 2 view .LVU1618
4635 0020 0123 movs r3, #1
4636 0022 80F84030 strb r3, [r0, #64]
ARM GAS /tmp/ccN54YTb.s page 240
2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4637 .loc 1 2290 5 view .LVU1619
2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4638 .loc 1 2292 5 view .LVU1620
2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4639 .loc 1 2292 23 is_stmt 0 view .LVU1621
4640 0026 2123 movs r3, #33
4641 0028 80F84130 strb r3, [r0, #65]
2293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4642 .loc 1 2293 5 is_stmt 1 view .LVU1622
2293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4643 .loc 1 2293 23 is_stmt 0 view .LVU1623
4644 002c 2023 movs r3, #32
4645 002e 80F84230 strb r3, [r0, #66]
2294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4646 .loc 1 2294 5 is_stmt 1 view .LVU1624
2294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4647 .loc 1 2294 23 is_stmt 0 view .LVU1625
4648 0032 0023 movs r3, #0
4649 0034 4364 str r3, [r0, #68]
2297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4650 .loc 1 2297 5 is_stmt 1 view .LVU1626
2297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4651 .loc 1 2297 23 is_stmt 0 view .LVU1627
4652 0036 4162 str r1, [r0, #36]
2298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4653 .loc 1 2298 5 is_stmt 1 view .LVU1628
2298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4654 .loc 1 2298 23 is_stmt 0 view .LVU1629
4655 0038 4285 strh r2, [r0, #42] @ movhi
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4656 .loc 1 2299 5 is_stmt 1 view .LVU1630
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4657 .loc 1 2299 29 is_stmt 0 view .LVU1631
4658 003a 438D ldrh r3, [r0, #42]
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4659 .loc 1 2299 23 view .LVU1632
4660 003c 0385 strh r3, [r0, #40] @ movhi
2300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4661 .loc 1 2300 5 is_stmt 1 view .LVU1633
2300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4662 .loc 1 2300 23 is_stmt 0 view .LVU1634
4663 003e 3B4B ldr r3, .L326
4664 0040 C362 str r3, [r0, #44]
2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4665 .loc 1 2301 5 is_stmt 1 view .LVU1635
2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4666 .loc 1 2301 23 is_stmt 0 view .LVU1636
4667 0042 3B4B ldr r3, .L326+4
4668 0044 4363 str r3, [r0, #52]
2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4669 .loc 1 2304 5 is_stmt 1 view .LVU1637
2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4670 .loc 1 2304 19 is_stmt 0 view .LVU1638
4671 0046 036A ldr r3, [r0, #32]
2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4672 .loc 1 2304 8 view .LVU1639
ARM GAS /tmp/ccN54YTb.s page 241
4673 0048 B3F5003F cmp r3, #131072
4674 004c 2BD0 beq .L324
4675 .LVL328:
4676 .L310:
2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4677 .loc 1 2317 5 is_stmt 1 view .LVU1640
2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4678 .loc 1 2317 13 is_stmt 0 view .LVU1641
4679 004e 638D ldrh r3, [r4, #42]
4680 0050 9BB2 uxth r3, r3
2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4681 .loc 1 2317 8 view .LVU1642
4682 0052 002B cmp r3, #0
4683 0054 57D0 beq .L311
2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4684 .loc 1 2319 7 is_stmt 1 view .LVU1643
2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4685 .loc 1 2319 15 is_stmt 0 view .LVU1644
4686 0056 A36B ldr r3, [r4, #56]
2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4687 .loc 1 2319 10 view .LVU1645
4688 0058 002B cmp r3, #0
4689 005a 33D0 beq .L312
2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4690 .loc 1 2322 9 is_stmt 1 view .LVU1646
2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4691 .loc 1 2322 40 is_stmt 0 view .LVU1647
4692 005c 354A ldr r2, .L326+8
4693 005e DA63 str r2, [r3, #60]
2325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4694 .loc 1 2325 9 is_stmt 1 view .LVU1648
2325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4695 .loc 1 2325 13 is_stmt 0 view .LVU1649
4696 0060 A36B ldr r3, [r4, #56]
2325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4697 .loc 1 2325 41 view .LVU1650
4698 0062 354A ldr r2, .L326+12
4699 0064 DA64 str r2, [r3, #76]
2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4700 .loc 1 2328 9 is_stmt 1 view .LVU1651
2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4701 .loc 1 2328 13 is_stmt 0 view .LVU1652
4702 0066 A26B ldr r2, [r4, #56]
2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4703 .loc 1 2328 44 view .LVU1653
4704 0068 0023 movs r3, #0
4705 006a 1364 str r3, [r2, #64]
2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4706 .loc 1 2329 9 is_stmt 1 view .LVU1654
2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4707 .loc 1 2329 13 is_stmt 0 view .LVU1655
4708 006c A26B ldr r2, [r4, #56]
2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4709 .loc 1 2329 41 view .LVU1656
4710 006e 1365 str r3, [r2, #80]
2332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
4711 .loc 1 2332 9 is_stmt 1 view .LVU1657
ARM GAS /tmp/ccN54YTb.s page 242
2333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
4712 .loc 1 2333 83 is_stmt 0 view .LVU1658
4713 0070 2268 ldr r2, [r4]
2332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
4714 .loc 1 2332 25 view .LVU1659
4715 0072 238D ldrh r3, [r4, #40]
4716 0074 2832 adds r2, r2, #40
4717 0076 616A ldr r1, [r4, #36]
4718 .LVL329:
2332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
4719 .loc 1 2332 25 view .LVU1660
4720 0078 A06B ldr r0, [r4, #56]
4721 .LVL330:
2332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
4722 .loc 1 2332 25 view .LVU1661
4723 007a FFF7FEFF bl HAL_DMA_Start_IT
4724 .LVL331:
2351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4725 .loc 1 2351 7 is_stmt 1 view .LVU1662
2351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4726 .loc 1 2351 10 is_stmt 0 view .LVU1663
4727 007e 78B3 cbz r0, .L325
2371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4728 .loc 1 2371 9 is_stmt 1 view .LVU1664
2371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4729 .loc 1 2371 25 is_stmt 0 view .LVU1665
4730 0080 2823 movs r3, #40
4731 0082 84F84130 strb r3, [r4, #65]
2372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4732 .loc 1 2372 9 is_stmt 1 view .LVU1666
2372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4733 .loc 1 2372 25 is_stmt 0 view .LVU1667
4734 0086 0022 movs r2, #0
4735 0088 84F84220 strb r2, [r4, #66]
2375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4736 .loc 1 2375 9 is_stmt 1 view .LVU1668
2375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4737 .loc 1 2375 13 is_stmt 0 view .LVU1669
4738 008c 636C ldr r3, [r4, #68]
2375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4739 .loc 1 2375 25 view .LVU1670
4740 008e 43F01003 orr r3, r3, #16
4741 0092 6364 str r3, [r4, #68]
2378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4742 .loc 1 2378 9 is_stmt 1 view .LVU1671
2378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4743 .loc 1 2378 9 view .LVU1672
4744 0094 84F84020 strb r2, [r4, #64]
2378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4745 .loc 1 2378 9 view .LVU1673
2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4746 .loc 1 2380 9 view .LVU1674
2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4747 .loc 1 2380 16 is_stmt 0 view .LVU1675
4748 0098 0120 movs r0, #1
4749 .LVL332:
2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 243
4750 .loc 1 2380 16 view .LVU1676
4751 009a 03E0 b .L308
4752 .LVL333:
4753 .L323:
2286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4754 .loc 1 2286 7 is_stmt 1 view .LVU1677
2286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4755 .loc 1 2286 23 is_stmt 0 view .LVU1678
4756 009c 4FF40073 mov r3, #512
4757 00a0 4364 str r3, [r0, #68]
2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4758 .loc 1 2287 7 is_stmt 1 view .LVU1679
2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4759 .loc 1 2287 15 is_stmt 0 view .LVU1680
4760 00a2 0120 movs r0, #1
4761 .LVL334:
4762 .L308:
2404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4763 .loc 1 2404 1 view .LVU1681
4764 00a4 10BD pop {r4, pc}
4765 .LVL335:
4766 .L324:
2308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4767 .loc 1 2308 7 is_stmt 1 view .LVU1682
2308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4768 .loc 1 2308 11 is_stmt 0 view .LVU1683
4769 00a6 0368 ldr r3, [r0]
2308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4770 .loc 1 2308 30 view .LVU1684
4771 00a8 0A78 ldrb r2, [r1] @ zero_extendqisi2
4772 .LVL336:
2308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4773 .loc 1 2308 28 view .LVU1685
4774 00aa 9A62 str r2, [r3, #40]
2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4775 .loc 1 2311 7 is_stmt 1 view .LVU1686
2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4776 .loc 1 2311 11 is_stmt 0 view .LVU1687
4777 00ac 436A ldr r3, [r0, #36]
2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4778 .loc 1 2311 21 view .LVU1688
4779 00ae 0133 adds r3, r3, #1
4780 00b0 4362 str r3, [r0, #36]
2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4781 .loc 1 2313 7 is_stmt 1 view .LVU1689
2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4782 .loc 1 2313 11 is_stmt 0 view .LVU1690
4783 00b2 438D ldrh r3, [r0, #42]
4784 00b4 9BB2 uxth r3, r3
2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4785 .loc 1 2313 22 view .LVU1691
4786 00b6 013B subs r3, r3, #1
4787 00b8 9BB2 uxth r3, r3
4788 00ba 4385 strh r3, [r0, #42] @ movhi
2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4789 .loc 1 2314 7 is_stmt 1 view .LVU1692
2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 244
4790 .loc 1 2314 11 is_stmt 0 view .LVU1693
4791 00bc 038D ldrh r3, [r0, #40]
2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4792 .loc 1 2314 21 view .LVU1694
4793 00be 013B subs r3, r3, #1
4794 00c0 0385 strh r3, [r0, #40] @ movhi
4795 00c2 C4E7 b .L310
4796 .L312:
2339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4797 .loc 1 2339 9 is_stmt 1 view .LVU1695
2339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4798 .loc 1 2339 25 is_stmt 0 view .LVU1696
4799 00c4 2823 movs r3, #40
4800 00c6 84F84130 strb r3, [r4, #65]
2340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4801 .loc 1 2340 9 is_stmt 1 view .LVU1697
2340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4802 .loc 1 2340 25 is_stmt 0 view .LVU1698
4803 00ca 0022 movs r2, #0
4804 00cc 84F84220 strb r2, [r4, #66]
2343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4805 .loc 1 2343 9 is_stmt 1 view .LVU1699
2343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4806 .loc 1 2343 13 is_stmt 0 view .LVU1700
4807 00d0 636C ldr r3, [r4, #68]
2343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4808 .loc 1 2343 25 view .LVU1701
4809 00d2 43F08003 orr r3, r3, #128
4810 00d6 6364 str r3, [r4, #68]
2346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4811 .loc 1 2346 9 is_stmt 1 view .LVU1702
2346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4812 .loc 1 2346 9 view .LVU1703
4813 00d8 84F84020 strb r2, [r4, #64]
2346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4814 .loc 1 2346 9 view .LVU1704
2348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4815 .loc 1 2348 9 view .LVU1705
2348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4816 .loc 1 2348 16 is_stmt 0 view .LVU1706
4817 00dc 0120 movs r0, #1
4818 .LVL337:
2348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4819 .loc 1 2348 16 view .LVU1707
4820 00de E1E7 b .L308
4821 .LVL338:
4822 .L325:
2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4823 .loc 1 2354 9 is_stmt 1 view .LVU1708
2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4824 .loc 1 2354 13 is_stmt 0 view .LVU1709
4825 00e0 2268 ldr r2, [r4]
2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4826 .loc 1 2354 23 view .LVU1710
4827 00e2 5368 ldr r3, [r2, #4]
2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4828 .loc 1 2354 29 view .LVU1711
ARM GAS /tmp/ccN54YTb.s page 245
4829 00e4 23F40043 bic r3, r3, #32768
4830 00e8 5360 str r3, [r2, #4]
2357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4831 .loc 1 2357 9 is_stmt 1 view .LVU1712
2357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4832 .loc 1 2357 9 view .LVU1713
4833 00ea 0023 movs r3, #0
4834 00ec 84F84030 strb r3, [r4, #64]
2357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4835 .loc 1 2357 9 view .LVU1714
2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4836 .loc 1 2363 9 view .LVU1715
4837 00f0 4FF40041 mov r1, #32768
4838 00f4 2046 mov r0, r4
4839 .LVL339:
2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4840 .loc 1 2363 9 is_stmt 0 view .LVU1716
4841 00f6 FFF7FEFF bl I2C_Enable_IRQ
4842 .LVL340:
2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4843 .loc 1 2366 9 is_stmt 1 view .LVU1717
2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4844 .loc 1 2366 13 is_stmt 0 view .LVU1718
4845 00fa 2268 ldr r2, [r4]
2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4846 .loc 1 2366 23 view .LVU1719
4847 00fc 1368 ldr r3, [r2]
2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4848 .loc 1 2366 29 view .LVU1720
4849 00fe 43F48043 orr r3, r3, #16384
4850 0102 1360 str r3, [r2]
4851 0104 0CE0 b .L315
4852 .LVL341:
4853 .L311:
2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4854 .loc 1 2386 7 is_stmt 1 view .LVU1721
2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4855 .loc 1 2386 11 is_stmt 0 view .LVU1722
4856 0106 2268 ldr r2, [r4]
2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4857 .loc 1 2386 21 view .LVU1723
4858 0108 5368 ldr r3, [r2, #4]
2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4859 .loc 1 2386 27 view .LVU1724
4860 010a 23F40043 bic r3, r3, #32768
4861 010e 5360 str r3, [r2, #4]
2389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4862 .loc 1 2389 7 is_stmt 1 view .LVU1725
2389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4863 .loc 1 2389 7 view .LVU1726
4864 0110 0023 movs r3, #0
4865 0112 84F84030 strb r3, [r4, #64]
2389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4866 .loc 1 2389 7 view .LVU1727
2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4867 .loc 1 2395 7 view .LVU1728
4868 0116 4FF40041 mov r1, #32768
ARM GAS /tmp/ccN54YTb.s page 246
4869 .LVL342:
2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4870 .loc 1 2395 7 is_stmt 0 view .LVU1729
4871 011a 2046 mov r0, r4
4872 .LVL343:
2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4873 .loc 1 2395 7 view .LVU1730
4874 011c FFF7FEFF bl I2C_Enable_IRQ
4875 .LVL344:
4876 .L315:
2398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4877 .loc 1 2398 5 is_stmt 1 view .LVU1731
2398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4878 .loc 1 2398 12 is_stmt 0 view .LVU1732
4879 0120 0020 movs r0, #0
4880 0122 BFE7 b .L308
4881 .LVL345:
4882 .L316:
4883 .cfi_def_cfa_offset 0
4884 .cfi_restore 4
4885 .cfi_restore 14
2402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4886 .loc 1 2402 12 view .LVU1733
4887 0124 0220 movs r0, #2
4888 .LVL346:
2404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4889 .loc 1 2404 1 view .LVU1734
4890 0126 7047 bx lr
4891 .LVL347:
4892 .L317:
4893 .cfi_def_cfa_offset 8
4894 .cfi_offset 4, -8
4895 .cfi_offset 14, -4
2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4896 .loc 1 2290 5 discriminator 1 view .LVU1735
4897 0128 0220 movs r0, #2
4898 .LVL348:
2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4899 .loc 1 2290 5 discriminator 1 view .LVU1736
4900 012a BBE7 b .L308
4901 .L327:
4902 .align 2
4903 .L326:
4904 012c 0000FFFF .word -65536
4905 0130 00000000 .word I2C_Slave_ISR_DMA
4906 0134 00000000 .word I2C_DMASlaveTransmitCplt
4907 0138 00000000 .word I2C_DMAError
4908 .cfi_endproc
4909 .LFE349:
4911 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits
4912 .align 1
4913 .global HAL_I2C_Slave_Receive_DMA
4914 .syntax unified
4915 .thumb
4916 .thumb_func
4918 HAL_I2C_Slave_Receive_DMA:
4919 .LVL349:
ARM GAS /tmp/ccN54YTb.s page 247
4920 .LFB350:
2415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4921 .loc 1 2415 1 is_stmt 1 view -0
4922 .cfi_startproc
4923 @ args = 0, pretend = 0, frame = 0
4924 @ frame_needed = 0, uses_anonymous_args = 0
2415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4925 .loc 1 2415 1 is_stmt 0 view .LVU1738
4926 0000 38B5 push {r3, r4, r5, lr}
4927 .cfi_def_cfa_offset 16
4928 .cfi_offset 3, -16
4929 .cfi_offset 4, -12
4930 .cfi_offset 5, -8
4931 .cfi_offset 14, -4
2416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4932 .loc 1 2416 3 is_stmt 1 view .LVU1739
2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4933 .loc 1 2418 3 view .LVU1740
2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4934 .loc 1 2418 11 is_stmt 0 view .LVU1741
4935 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4936 .loc 1 2418 6 view .LVU1742
4937 0006 202B cmp r3, #32
4938 0008 65D1 bne .L334
4939 000a 0446 mov r4, r0
2420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4940 .loc 1 2420 5 is_stmt 1 view .LVU1743
2420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4941 .loc 1 2420 8 is_stmt 0 view .LVU1744
4942 000c 002A cmp r2, #0
4943 000e 18BF it ne
4944 0010 0029 cmpne r1, #0
4945 0012 3AD0 beq .L338
2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4946 .loc 1 2426 5 is_stmt 1 view .LVU1745
2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4947 .loc 1 2426 5 view .LVU1746
4948 0014 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
4949 0018 012B cmp r3, #1
4950 001a 5FD0 beq .L335
2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4951 .loc 1 2426 5 discriminator 2 view .LVU1747
4952 001c 0123 movs r3, #1
4953 001e 80F84030 strb r3, [r0, #64]
2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4954 .loc 1 2426 5 view .LVU1748
2428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4955 .loc 1 2428 5 view .LVU1749
2428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4956 .loc 1 2428 23 is_stmt 0 view .LVU1750
4957 0022 2223 movs r3, #34
4958 0024 80F84130 strb r3, [r0, #65]
2429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4959 .loc 1 2429 5 is_stmt 1 view .LVU1751
2429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4960 .loc 1 2429 23 is_stmt 0 view .LVU1752
ARM GAS /tmp/ccN54YTb.s page 248
4961 0028 2023 movs r3, #32
4962 002a 80F84230 strb r3, [r0, #66]
2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4963 .loc 1 2430 5 is_stmt 1 view .LVU1753
2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4964 .loc 1 2430 23 is_stmt 0 view .LVU1754
4965 002e 0023 movs r3, #0
4966 0030 4364 str r3, [r0, #68]
2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4967 .loc 1 2433 5 is_stmt 1 view .LVU1755
2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4968 .loc 1 2433 23 is_stmt 0 view .LVU1756
4969 0032 4162 str r1, [r0, #36]
2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4970 .loc 1 2434 5 is_stmt 1 view .LVU1757
2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4971 .loc 1 2434 23 is_stmt 0 view .LVU1758
4972 0034 4285 strh r2, [r0, #42] @ movhi
2435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4973 .loc 1 2435 5 is_stmt 1 view .LVU1759
2435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4974 .loc 1 2435 29 is_stmt 0 view .LVU1760
4975 0036 438D ldrh r3, [r0, #42]
2435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4976 .loc 1 2435 23 view .LVU1761
4977 0038 0385 strh r3, [r0, #40] @ movhi
2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4978 .loc 1 2436 5 is_stmt 1 view .LVU1762
2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4979 .loc 1 2436 23 is_stmt 0 view .LVU1763
4980 003a 294B ldr r3, .L340
4981 003c C362 str r3, [r0, #44]
2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4982 .loc 1 2437 5 is_stmt 1 view .LVU1764
2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4983 .loc 1 2437 23 is_stmt 0 view .LVU1765
4984 003e 294B ldr r3, .L340+4
4985 0040 4363 str r3, [r0, #52]
2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4986 .loc 1 2439 5 is_stmt 1 view .LVU1766
2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4987 .loc 1 2439 13 is_stmt 0 view .LVU1767
4988 0042 C36B ldr r3, [r0, #60]
2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4989 .loc 1 2439 8 view .LVU1768
4990 0044 33B3 cbz r3, .L331
2442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4991 .loc 1 2442 7 is_stmt 1 view .LVU1769
2442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4992 .loc 1 2442 38 is_stmt 0 view .LVU1770
4993 0046 284A ldr r2, .L340+8
4994 .LVL350:
2442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4995 .loc 1 2442 38 view .LVU1771
4996 0048 DA63 str r2, [r3, #60]
2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4997 .loc 1 2445 7 is_stmt 1 view .LVU1772
ARM GAS /tmp/ccN54YTb.s page 249
2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4998 .loc 1 2445 11 is_stmt 0 view .LVU1773
4999 004a C36B ldr r3, [r0, #60]
2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5000 .loc 1 2445 39 view .LVU1774
5001 004c 274A ldr r2, .L340+12
5002 004e DA64 str r2, [r3, #76]
2448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
5003 .loc 1 2448 7 is_stmt 1 view .LVU1775
2448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
5004 .loc 1 2448 11 is_stmt 0 view .LVU1776
5005 0050 C26B ldr r2, [r0, #60]
2448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
5006 .loc 1 2448 42 view .LVU1777
5007 0052 0023 movs r3, #0
5008 0054 1364 str r3, [r2, #64]
2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5009 .loc 1 2449 7 is_stmt 1 view .LVU1778
2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5010 .loc 1 2449 11 is_stmt 0 view .LVU1779
5011 0056 C26B ldr r2, [r0, #60]
2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5012 .loc 1 2449 39 view .LVU1780
5013 0058 1365 str r3, [r2, #80]
2452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
5014 .loc 1 2452 7 is_stmt 1 view .LVU1781
2452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
5015 .loc 1 2452 69 is_stmt 0 view .LVU1782
5016 005a 0068 ldr r0, [r0]
5017 .LVL351:
2452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
5018 .loc 1 2452 23 view .LVU1783
5019 005c 238D ldrh r3, [r4, #40]
5020 005e 0A46 mov r2, r1
5021 0060 00F12401 add r1, r0, #36
5022 .LVL352:
2452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
5023 .loc 1 2452 23 view .LVU1784
5024 0064 E06B ldr r0, [r4, #60]
5025 0066 FFF7FEFF bl HAL_DMA_Start_IT
5026 .LVL353:
2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5027 .loc 1 2470 5 is_stmt 1 view .LVU1785
2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5028 .loc 1 2470 8 is_stmt 0 view .LVU1786
5029 006a 0546 mov r5, r0
5030 006c 00B3 cbz r0, .L339
2490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5031 .loc 1 2490 7 is_stmt 1 view .LVU1787
2490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5032 .loc 1 2490 23 is_stmt 0 view .LVU1788
5033 006e 2823 movs r3, #40
5034 0070 84F84130 strb r3, [r4, #65]
2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5035 .loc 1 2491 7 is_stmt 1 view .LVU1789
2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5036 .loc 1 2491 23 is_stmt 0 view .LVU1790
ARM GAS /tmp/ccN54YTb.s page 250
5037 0074 0022 movs r2, #0
5038 0076 84F84220 strb r2, [r4, #66]
2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5039 .loc 1 2494 7 is_stmt 1 view .LVU1791
2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5040 .loc 1 2494 11 is_stmt 0 view .LVU1792
5041 007a 636C ldr r3, [r4, #68]
2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5042 .loc 1 2494 23 view .LVU1793
5043 007c 43F01003 orr r3, r3, #16
5044 0080 6364 str r3, [r4, #68]
2497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5045 .loc 1 2497 7 is_stmt 1 view .LVU1794
2497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5046 .loc 1 2497 7 view .LVU1795
5047 0082 84F84020 strb r2, [r4, #64]
2497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5048 .loc 1 2497 7 view .LVU1796
2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5049 .loc 1 2499 7 view .LVU1797
2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5050 .loc 1 2499 14 is_stmt 0 view .LVU1798
5051 0086 0125 movs r5, #1
5052 0088 26E0 b .L329
5053 .LVL354:
5054 .L338:
2422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5055 .loc 1 2422 7 is_stmt 1 view .LVU1799
2422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5056 .loc 1 2422 23 is_stmt 0 view .LVU1800
5057 008a 4FF40073 mov r3, #512
5058 008e 4364 str r3, [r0, #68]
2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5059 .loc 1 2423 7 is_stmt 1 view .LVU1801
2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5060 .loc 1 2423 15 is_stmt 0 view .LVU1802
5061 0090 0125 movs r5, #1
5062 0092 21E0 b .L329
5063 .L331:
2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5064 .loc 1 2458 7 is_stmt 1 view .LVU1803
2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5065 .loc 1 2458 23 is_stmt 0 view .LVU1804
5066 0094 2823 movs r3, #40
5067 0096 80F84130 strb r3, [r0, #65]
2459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5068 .loc 1 2459 7 is_stmt 1 view .LVU1805
2459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5069 .loc 1 2459 23 is_stmt 0 view .LVU1806
5070 009a 0022 movs r2, #0
5071 .LVL355:
2459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5072 .loc 1 2459 23 view .LVU1807
5073 009c 80F84220 strb r2, [r0, #66]
2462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5074 .loc 1 2462 7 is_stmt 1 view .LVU1808
2462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 251
5075 .loc 1 2462 11 is_stmt 0 view .LVU1809
5076 00a0 436C ldr r3, [r0, #68]
2462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5077 .loc 1 2462 23 view .LVU1810
5078 00a2 43F08003 orr r3, r3, #128
5079 00a6 4364 str r3, [r0, #68]
2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5080 .loc 1 2465 7 is_stmt 1 view .LVU1811
2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5081 .loc 1 2465 7 view .LVU1812
5082 00a8 80F84020 strb r2, [r0, #64]
2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5083 .loc 1 2465 7 view .LVU1813
2467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5084 .loc 1 2467 7 view .LVU1814
2467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5085 .loc 1 2467 14 is_stmt 0 view .LVU1815
5086 00ac 0125 movs r5, #1
5087 00ae 13E0 b .L329
5088 .LVL356:
5089 .L339:
2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5090 .loc 1 2473 7 is_stmt 1 view .LVU1816
2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5091 .loc 1 2473 11 is_stmt 0 view .LVU1817
5092 00b0 2268 ldr r2, [r4]
2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5093 .loc 1 2473 21 view .LVU1818
5094 00b2 5368 ldr r3, [r2, #4]
2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5095 .loc 1 2473 27 view .LVU1819
5096 00b4 23F40043 bic r3, r3, #32768
5097 00b8 5360 str r3, [r2, #4]
2476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5098 .loc 1 2476 7 is_stmt 1 view .LVU1820
2476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5099 .loc 1 2476 7 view .LVU1821
5100 00ba 0023 movs r3, #0
5101 00bc 84F84030 strb r3, [r4, #64]
2476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5102 .loc 1 2476 7 view .LVU1822
2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5103 .loc 1 2482 7 view .LVU1823
5104 00c0 4FF40041 mov r1, #32768
5105 00c4 2046 mov r0, r4
5106 .LVL357:
2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5107 .loc 1 2482 7 is_stmt 0 view .LVU1824
5108 00c6 FFF7FEFF bl I2C_Enable_IRQ
5109 .LVL358:
2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5110 .loc 1 2485 7 is_stmt 1 view .LVU1825
2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5111 .loc 1 2485 11 is_stmt 0 view .LVU1826
5112 00ca 2268 ldr r2, [r4]
2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5113 .loc 1 2485 21 view .LVU1827
ARM GAS /tmp/ccN54YTb.s page 252
5114 00cc 1368 ldr r3, [r2]
2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5115 .loc 1 2485 27 view .LVU1828
5116 00ce 43F40043 orr r3, r3, #32768
5117 00d2 1360 str r3, [r2]
2502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5118 .loc 1 2502 5 is_stmt 1 view .LVU1829
2502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5119 .loc 1 2502 12 is_stmt 0 view .LVU1830
5120 00d4 00E0 b .L329
5121 .LVL359:
5122 .L334:
2506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5123 .loc 1 2506 12 view .LVU1831
5124 00d6 0225 movs r5, #2
5125 .LVL360:
5126 .L329:
2508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5127 .loc 1 2508 1 view .LVU1832
5128 00d8 2846 mov r0, r5
5129 00da 38BD pop {r3, r4, r5, pc}
5130 .LVL361:
5131 .L335:
2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5132 .loc 1 2426 5 discriminator 1 view .LVU1833
5133 00dc 0225 movs r5, #2
5134 00de FBE7 b .L329
5135 .L341:
5136 .align 2
5137 .L340:
5138 00e0 0000FFFF .word -65536
5139 00e4 00000000 .word I2C_Slave_ISR_DMA
5140 00e8 00000000 .word I2C_DMASlaveReceiveCplt
5141 00ec 00000000 .word I2C_DMAError
5142 .cfi_endproc
5143 .LFE350:
5145 .section .text.HAL_I2C_Mem_Write,"ax",%progbits
5146 .align 1
5147 .global HAL_I2C_Mem_Write
5148 .syntax unified
5149 .thumb
5150 .thumb_func
5152 HAL_I2C_Mem_Write:
5153 .LVL362:
5154 .LFB351:
2525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
5155 .loc 1 2525 1 is_stmt 1 view -0
5156 .cfi_startproc
5157 @ args = 12, pretend = 0, frame = 0
5158 @ frame_needed = 0, uses_anonymous_args = 0
2525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
5159 .loc 1 2525 1 is_stmt 0 view .LVU1835
5160 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5161 .cfi_def_cfa_offset 36
5162 .cfi_offset 4, -36
5163 .cfi_offset 5, -32
5164 .cfi_offset 6, -28
ARM GAS /tmp/ccN54YTb.s page 253
5165 .cfi_offset 7, -24
5166 .cfi_offset 8, -20
5167 .cfi_offset 9, -16
5168 .cfi_offset 10, -12
5169 .cfi_offset 11, -8
5170 .cfi_offset 14, -4
5171 0004 83B0 sub sp, sp, #12
5172 .cfi_def_cfa_offset 48
5173 0006 0D46 mov r5, r1
5174 0008 BDF834A0 ldrh r10, [sp, #52]
5175 000c 0E9F ldr r7, [sp, #56]
2526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5176 .loc 1 2526 3 is_stmt 1 view .LVU1836
2529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5177 .loc 1 2529 3 view .LVU1837
2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5178 .loc 1 2531 3 view .LVU1838
2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5179 .loc 1 2531 11 is_stmt 0 view .LVU1839
5180 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
5181 .LVL363:
2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5182 .loc 1 2531 6 view .LVU1840
5183 0012 2029 cmp r1, #32
5184 0014 40F0BC80 bne .L351
5185 0018 0446 mov r4, r0
5186 001a 9146 mov r9, r2
5187 001c 9846 mov r8, r3
2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5188 .loc 1 2533 5 is_stmt 1 view .LVU1841
2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5189 .loc 1 2533 8 is_stmt 0 view .LVU1842
5190 001e 0C9B ldr r3, [sp, #48]
5191 .LVL364:
2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5192 .loc 1 2533 8 view .LVU1843
5193 0020 BAF1000F cmp r10, #0
5194 0024 18BF it ne
5195 0026 002B cmpne r3, #0
5196 0028 16D0 beq .L358
2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5197 .loc 1 2540 5 is_stmt 1 view .LVU1844
2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5198 .loc 1 2540 5 view .LVU1845
5199 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
5200 002e 012B cmp r3, #1
5201 0030 00F0B280 beq .L352
2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5202 .loc 1 2540 5 discriminator 2 view .LVU1846
5203 0034 4FF0010B mov fp, #1
5204 0038 80F840B0 strb fp, [r0, #64]
2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5205 .loc 1 2540 5 view .LVU1847
2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5206 .loc 1 2543 5 view .LVU1848
2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5207 .loc 1 2543 17 is_stmt 0 view .LVU1849
ARM GAS /tmp/ccN54YTb.s page 254
5208 003c FFF7FEFF bl HAL_GetTick
5209 .LVL365:
2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5210 .loc 1 2543 17 view .LVU1850
5211 0040 0646 mov r6, r0
5212 .LVL366:
2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5213 .loc 1 2545 5 is_stmt 1 view .LVU1851
2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5214 .loc 1 2545 9 is_stmt 0 view .LVU1852
5215 0042 0090 str r0, [sp]
5216 0044 1923 movs r3, #25
5217 0046 5A46 mov r2, fp
5218 0048 4FF40041 mov r1, #32768
5219 004c 2046 mov r0, r4
5220 .LVL367:
2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5221 .loc 1 2545 9 view .LVU1853
5222 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5223 .LVL368:
2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5224 .loc 1 2545 8 discriminator 1 view .LVU1854
5225 0052 30B1 cbz r0, .L359
2547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5226 .loc 1 2547 14 view .LVU1855
5227 0054 0120 movs r0, #1
5228 0056 9CE0 b .L343
5229 .LVL369:
5230 .L358:
2535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5231 .loc 1 2535 7 is_stmt 1 view .LVU1856
2535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5232 .loc 1 2535 23 is_stmt 0 view .LVU1857
5233 0058 4FF40073 mov r3, #512
5234 005c 4364 str r3, [r0, #68]
2536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5235 .loc 1 2536 7 is_stmt 1 view .LVU1858
2536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5236 .loc 1 2536 15 is_stmt 0 view .LVU1859
5237 005e 0120 movs r0, #1
5238 .LVL370:
2536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5239 .loc 1 2536 15 view .LVU1860
5240 0060 97E0 b .L343
5241 .LVL371:
5242 .L359:
2550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5243 .loc 1 2550 5 is_stmt 1 view .LVU1861
2550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5244 .loc 1 2550 21 is_stmt 0 view .LVU1862
5245 0062 2123 movs r3, #33
5246 0064 84F84130 strb r3, [r4, #65]
2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5247 .loc 1 2551 5 is_stmt 1 view .LVU1863
2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5248 .loc 1 2551 21 is_stmt 0 view .LVU1864
5249 0068 4023 movs r3, #64
ARM GAS /tmp/ccN54YTb.s page 255
5250 006a 84F84230 strb r3, [r4, #66]
2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5251 .loc 1 2552 5 is_stmt 1 view .LVU1865
2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5252 .loc 1 2552 21 is_stmt 0 view .LVU1866
5253 006e 0023 movs r3, #0
5254 0070 6364 str r3, [r4, #68]
2555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5255 .loc 1 2555 5 is_stmt 1 view .LVU1867
2555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5256 .loc 1 2555 21 is_stmt 0 view .LVU1868
5257 0072 0C9A ldr r2, [sp, #48]
5258 0074 6262 str r2, [r4, #36]
2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5259 .loc 1 2556 5 is_stmt 1 view .LVU1869
2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5260 .loc 1 2556 21 is_stmt 0 view .LVU1870
5261 0076 A4F82AA0 strh r10, [r4, #42] @ movhi
2557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5262 .loc 1 2557 5 is_stmt 1 view .LVU1871
2557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5263 .loc 1 2557 21 is_stmt 0 view .LVU1872
5264 007a 6363 str r3, [r4, #52]
2560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5265 .loc 1 2560 5 is_stmt 1 view .LVU1873
2560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5266 .loc 1 2560 9 is_stmt 0 view .LVU1874
5267 007c 0196 str r6, [sp, #4]
5268 007e 0097 str r7, [sp]
5269 0080 4346 mov r3, r8
5270 0082 4A46 mov r2, r9
5271 0084 2946 mov r1, r5
5272 0086 2046 mov r0, r4
5273 0088 FFF7FEFF bl I2C_RequestMemoryWrite
5274 .LVL372:
2560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5275 .loc 1 2560 8 discriminator 1 view .LVU1875
5276 008c 70B9 cbnz r0, .L360
2568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5277 .loc 1 2568 5 is_stmt 1 view .LVU1876
2568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5278 .loc 1 2568 13 is_stmt 0 view .LVU1877
5279 008e 638D ldrh r3, [r4, #42]
5280 0090 9BB2 uxth r3, r3
2568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5281 .loc 1 2568 8 view .LVU1878
5282 0092 FF2B cmp r3, #255
5283 0094 0FD9 bls .L346
2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
5284 .loc 1 2570 7 is_stmt 1 view .LVU1879
2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
5285 .loc 1 2570 22 is_stmt 0 view .LVU1880
5286 0096 FF22 movs r2, #255
5287 0098 2285 strh r2, [r4, #40] @ movhi
2571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5288 .loc 1 2571 7 is_stmt 1 view .LVU1881
5289 009a 0023 movs r3, #0
ARM GAS /tmp/ccN54YTb.s page 256
5290 009c 0093 str r3, [sp]
5291 009e 4FF08073 mov r3, #16777216
5292 00a2 2946 mov r1, r5
5293 00a4 2046 mov r0, r4
5294 00a6 FFF7FEFF bl I2C_TransferConfig
5295 .LVL373:
5296 00aa 21E0 b .L350
5297 .L360:
2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5298 .loc 1 2563 7 view .LVU1882
2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5299 .loc 1 2563 7 view .LVU1883
5300 00ac 0023 movs r3, #0
5301 00ae 84F84030 strb r3, [r4, #64]
2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5302 .loc 1 2563 7 view .LVU1884
2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5303 .loc 1 2564 7 view .LVU1885
2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5304 .loc 1 2564 14 is_stmt 0 view .LVU1886
5305 00b2 5846 mov r0, fp
5306 00b4 6DE0 b .L343
5307 .L346:
2575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
5308 .loc 1 2575 7 is_stmt 1 view .LVU1887
2575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
5309 .loc 1 2575 28 is_stmt 0 view .LVU1888
5310 00b6 628D ldrh r2, [r4, #42]
5311 00b8 92B2 uxth r2, r2
2575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
5312 .loc 1 2575 22 view .LVU1889
5313 00ba 2285 strh r2, [r4, #40] @ movhi
2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5314 .loc 1 2576 7 is_stmt 1 view .LVU1890
5315 00bc 0023 movs r3, #0
5316 00be 0093 str r3, [sp]
5317 00c0 4FF00073 mov r3, #33554432
5318 00c4 D2B2 uxtb r2, r2
5319 00c6 2946 mov r1, r5
5320 00c8 2046 mov r0, r4
5321 00ca FFF7FEFF bl I2C_TransferConfig
5322 .LVL374:
5323 00ce 0FE0 b .L350
5324 .L349:
2612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5325 .loc 1 2612 11 view .LVU1891
2612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5326 .loc 1 2612 32 is_stmt 0 view .LVU1892
5327 00d0 628D ldrh r2, [r4, #42]
5328 00d2 92B2 uxth r2, r2
2612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5329 .loc 1 2612 26 view .LVU1893
5330 00d4 2285 strh r2, [r4, #40] @ movhi
2613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
5331 .loc 1 2613 11 is_stmt 1 view .LVU1894
5332 00d6 0023 movs r3, #0
5333 00d8 0093 str r3, [sp]
ARM GAS /tmp/ccN54YTb.s page 257
5334 00da 4FF00073 mov r3, #33554432
5335 00de D2B2 uxtb r2, r2
5336 00e0 2946 mov r1, r5
5337 00e2 2046 mov r0, r4
5338 00e4 FFF7FEFF bl I2C_TransferConfig
5339 .LVL375:
5340 .L348:
2618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5341 .loc 1 2618 30 view .LVU1895
2618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5342 .loc 1 2618 18 is_stmt 0 view .LVU1896
5343 00e8 638D ldrh r3, [r4, #42]
5344 00ea 9BB2 uxth r3, r3
2618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5345 .loc 1 2618 30 view .LVU1897
5346 00ec 002B cmp r3, #0
5347 00ee 33D0 beq .L361
5348 .L350:
2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5349 .loc 1 2579 5 is_stmt 1 view .LVU1898
2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5350 .loc 1 2582 7 view .LVU1899
2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5351 .loc 1 2582 11 is_stmt 0 view .LVU1900
5352 00f0 3246 mov r2, r6
5353 00f2 3946 mov r1, r7
5354 00f4 2046 mov r0, r4
5355 00f6 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
5356 .LVL376:
2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5357 .loc 1 2582 10 discriminator 1 view .LVU1901
5358 00fa 0028 cmp r0, #0
5359 00fc 4ED1 bne .L354
2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5360 .loc 1 2588 7 is_stmt 1 view .LVU1902
2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5361 .loc 1 2588 35 is_stmt 0 view .LVU1903
5362 00fe 626A ldr r2, [r4, #36]
2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5363 .loc 1 2588 11 view .LVU1904
5364 0100 2368 ldr r3, [r4]
2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5365 .loc 1 2588 30 view .LVU1905
5366 0102 1278 ldrb r2, [r2] @ zero_extendqisi2
2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5367 .loc 1 2588 28 view .LVU1906
5368 0104 9A62 str r2, [r3, #40]
2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5369 .loc 1 2591 7 is_stmt 1 view .LVU1907
2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5370 .loc 1 2591 11 is_stmt 0 view .LVU1908
5371 0106 636A ldr r3, [r4, #36]
2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5372 .loc 1 2591 21 view .LVU1909
5373 0108 0133 adds r3, r3, #1
5374 010a 6362 str r3, [r4, #36]
2593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
ARM GAS /tmp/ccN54YTb.s page 258
5375 .loc 1 2593 7 is_stmt 1 view .LVU1910
2593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5376 .loc 1 2593 11 is_stmt 0 view .LVU1911
5377 010c 638D ldrh r3, [r4, #42]
5378 010e 9BB2 uxth r3, r3
2593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5379 .loc 1 2593 22 view .LVU1912
5380 0110 013B subs r3, r3, #1
5381 0112 9BB2 uxth r3, r3
5382 0114 6385 strh r3, [r4, #42] @ movhi
2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5383 .loc 1 2594 7 is_stmt 1 view .LVU1913
2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5384 .loc 1 2594 11 is_stmt 0 view .LVU1914
5385 0116 238D ldrh r3, [r4, #40]
2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5386 .loc 1 2594 21 view .LVU1915
5387 0118 013B subs r3, r3, #1
5388 011a 9BB2 uxth r3, r3
5389 011c 2385 strh r3, [r4, #40] @ movhi
2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5390 .loc 1 2596 7 is_stmt 1 view .LVU1916
2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5391 .loc 1 2596 16 is_stmt 0 view .LVU1917
5392 011e 628D ldrh r2, [r4, #42]
5393 0120 92B2 uxth r2, r2
2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5394 .loc 1 2596 10 view .LVU1918
5395 0122 002A cmp r2, #0
5396 0124 E0D0 beq .L348
2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5397 .loc 1 2596 35 discriminator 1 view .LVU1919
5398 0126 002B cmp r3, #0
5399 0128 DED1 bne .L348
2599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5400 .loc 1 2599 9 is_stmt 1 view .LVU1920
2599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5401 .loc 1 2599 13 is_stmt 0 view .LVU1921
5402 012a 0096 str r6, [sp]
5403 012c 3B46 mov r3, r7
5404 012e 0022 movs r2, #0
5405 0130 8021 movs r1, #128
5406 0132 2046 mov r0, r4
5407 0134 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5408 .LVL377:
2599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5409 .loc 1 2599 12 discriminator 1 view .LVU1922
5410 0138 90BB cbnz r0, .L355
2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5411 .loc 1 2604 9 is_stmt 1 view .LVU1923
2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5412 .loc 1 2604 17 is_stmt 0 view .LVU1924
5413 013a 638D ldrh r3, [r4, #42]
5414 013c 9BB2 uxth r3, r3
2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5415 .loc 1 2604 12 view .LVU1925
5416 013e FF2B cmp r3, #255
ARM GAS /tmp/ccN54YTb.s page 259
5417 0140 C6D9 bls .L349
2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
5418 .loc 1 2606 11 is_stmt 1 view .LVU1926
2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
5419 .loc 1 2606 26 is_stmt 0 view .LVU1927
5420 0142 FF22 movs r2, #255
5421 0144 2285 strh r2, [r4, #40] @ movhi
2607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
5422 .loc 1 2607 11 is_stmt 1 view .LVU1928
5423 0146 0023 movs r3, #0
5424 0148 0093 str r3, [sp]
5425 014a 4FF08073 mov r3, #16777216
5426 014e 2946 mov r1, r5
5427 0150 2046 mov r0, r4
5428 0152 FFF7FEFF bl I2C_TransferConfig
5429 .LVL378:
5430 0156 C7E7 b .L348
5431 .L361:
2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5432 .loc 1 2622 5 view .LVU1929
2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5433 .loc 1 2622 9 is_stmt 0 view .LVU1930
5434 0158 3246 mov r2, r6
5435 015a 3946 mov r1, r7
5436 015c 2046 mov r0, r4
5437 015e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
5438 .LVL379:
2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5439 .loc 1 2622 8 discriminator 1 view .LVU1931
5440 0162 F8B9 cbnz r0, .L356
2628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5441 .loc 1 2628 5 is_stmt 1 view .LVU1932
5442 0164 2368 ldr r3, [r4]
5443 0166 2022 movs r2, #32
5444 0168 DA61 str r2, [r3, #28]
2631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5445 .loc 1 2631 5 view .LVU1933
5446 016a 2168 ldr r1, [r4]
5447 016c 4B68 ldr r3, [r1, #4]
5448 016e 23F0FF73 bic r3, r3, #33423360
5449 0172 23F48B33 bic r3, r3, #71168
5450 0176 23F4FF73 bic r3, r3, #510
5451 017a 23F00103 bic r3, r3, #1
5452 017e 4B60 str r3, [r1, #4]
2633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5453 .loc 1 2633 5 view .LVU1934
2633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5454 .loc 1 2633 17 is_stmt 0 view .LVU1935
5455 0180 84F84120 strb r2, [r4, #65]
2634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5456 .loc 1 2634 5 is_stmt 1 view .LVU1936
2634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5457 .loc 1 2634 17 is_stmt 0 view .LVU1937
5458 0184 0023 movs r3, #0
5459 0186 84F84230 strb r3, [r4, #66]
2637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5460 .loc 1 2637 5 is_stmt 1 view .LVU1938
ARM GAS /tmp/ccN54YTb.s page 260
2637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5461 .loc 1 2637 5 view .LVU1939
5462 018a 84F84030 strb r3, [r4, #64]
2637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5463 .loc 1 2637 5 view .LVU1940
2639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5464 .loc 1 2639 5 view .LVU1941
2639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5465 .loc 1 2639 12 is_stmt 0 view .LVU1942
5466 018e 00E0 b .L343
5467 .LVL380:
5468 .L351:
2643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5469 .loc 1 2643 12 view .LVU1943
5470 0190 0220 movs r0, #2
5471 .LVL381:
5472 .L343:
2645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5473 .loc 1 2645 1 view .LVU1944
5474 0192 03B0 add sp, sp, #12
5475 .cfi_remember_state
5476 .cfi_def_cfa_offset 36
5477 @ sp needed
5478 0194 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5479 .LVL382:
5480 .L352:
5481 .cfi_restore_state
2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5482 .loc 1 2540 5 discriminator 1 view .LVU1945
5483 0198 0220 movs r0, #2
5484 .LVL383:
2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5485 .loc 1 2540 5 discriminator 1 view .LVU1946
5486 019a FAE7 b .L343
5487 .LVL384:
5488 .L354:
2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5489 .loc 1 2584 16 view .LVU1947
5490 019c 0120 movs r0, #1
5491 019e F8E7 b .L343
5492 .L355:
2601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5493 .loc 1 2601 18 view .LVU1948
5494 01a0 0120 movs r0, #1
5495 01a2 F6E7 b .L343
5496 .L356:
2624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5497 .loc 1 2624 14 view .LVU1949
5498 01a4 0120 movs r0, #1
5499 01a6 F4E7 b .L343
5500 .cfi_endproc
5501 .LFE351:
5503 .section .text.HAL_I2C_Mem_Read,"ax",%progbits
5504 .align 1
5505 .global HAL_I2C_Mem_Read
5506 .syntax unified
5507 .thumb
ARM GAS /tmp/ccN54YTb.s page 261
5508 .thumb_func
5510 HAL_I2C_Mem_Read:
5511 .LVL385:
5512 .LFB352:
2662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
5513 .loc 1 2662 1 is_stmt 1 view -0
5514 .cfi_startproc
5515 @ args = 12, pretend = 0, frame = 0
5516 @ frame_needed = 0, uses_anonymous_args = 0
2662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
5517 .loc 1 2662 1 is_stmt 0 view .LVU1951
5518 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5519 .cfi_def_cfa_offset 36
5520 .cfi_offset 4, -36
5521 .cfi_offset 5, -32
5522 .cfi_offset 6, -28
5523 .cfi_offset 7, -24
5524 .cfi_offset 8, -20
5525 .cfi_offset 9, -16
5526 .cfi_offset 10, -12
5527 .cfi_offset 11, -8
5528 .cfi_offset 14, -4
5529 0004 83B0 sub sp, sp, #12
5530 .cfi_def_cfa_offset 48
5531 0006 0D46 mov r5, r1
5532 0008 BDF834A0 ldrh r10, [sp, #52]
5533 000c 0E9F ldr r7, [sp, #56]
2663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5534 .loc 1 2663 3 is_stmt 1 view .LVU1952
2666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5535 .loc 1 2666 3 view .LVU1953
2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5536 .loc 1 2668 3 view .LVU1954
2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5537 .loc 1 2668 11 is_stmt 0 view .LVU1955
5538 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
5539 .LVL386:
2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5540 .loc 1 2668 6 view .LVU1956
5541 0012 2029 cmp r1, #32
5542 0014 40F0BD80 bne .L371
5543 0018 0446 mov r4, r0
5544 001a 9146 mov r9, r2
5545 001c 9846 mov r8, r3
2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5546 .loc 1 2670 5 is_stmt 1 view .LVU1957
2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5547 .loc 1 2670 8 is_stmt 0 view .LVU1958
5548 001e 0C9B ldr r3, [sp, #48]
5549 .LVL387:
2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5550 .loc 1 2670 8 view .LVU1959
5551 0020 BAF1000F cmp r10, #0
5552 0024 18BF it ne
5553 0026 002B cmpne r3, #0
5554 0028 16D0 beq .L378
2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 262
5555 .loc 1 2677 5 is_stmt 1 view .LVU1960
2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5556 .loc 1 2677 5 view .LVU1961
5557 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
5558 002e 012B cmp r3, #1
5559 0030 00F0B380 beq .L372
2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5560 .loc 1 2677 5 discriminator 2 view .LVU1962
5561 0034 4FF0010B mov fp, #1
5562 0038 80F840B0 strb fp, [r0, #64]
2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5563 .loc 1 2677 5 view .LVU1963
2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5564 .loc 1 2680 5 view .LVU1964
2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5565 .loc 1 2680 17 is_stmt 0 view .LVU1965
5566 003c FFF7FEFF bl HAL_GetTick
5567 .LVL388:
2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5568 .loc 1 2680 17 view .LVU1966
5569 0040 0646 mov r6, r0
5570 .LVL389:
2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5571 .loc 1 2682 5 is_stmt 1 view .LVU1967
2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5572 .loc 1 2682 9 is_stmt 0 view .LVU1968
5573 0042 0090 str r0, [sp]
5574 0044 1923 movs r3, #25
5575 0046 5A46 mov r2, fp
5576 0048 4FF40041 mov r1, #32768
5577 004c 2046 mov r0, r4
5578 .LVL390:
2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5579 .loc 1 2682 9 view .LVU1969
5580 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5581 .LVL391:
2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5582 .loc 1 2682 8 discriminator 1 view .LVU1970
5583 0052 30B1 cbz r0, .L379
2684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5584 .loc 1 2684 14 view .LVU1971
5585 0054 0120 movs r0, #1
5586 0056 9DE0 b .L363
5587 .LVL392:
5588 .L378:
2672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5589 .loc 1 2672 7 is_stmt 1 view .LVU1972
2672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5590 .loc 1 2672 23 is_stmt 0 view .LVU1973
5591 0058 4FF40073 mov r3, #512
5592 005c 4364 str r3, [r0, #68]
2673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5593 .loc 1 2673 7 is_stmt 1 view .LVU1974
2673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5594 .loc 1 2673 15 is_stmt 0 view .LVU1975
5595 005e 0120 movs r0, #1
5596 .LVL393:
ARM GAS /tmp/ccN54YTb.s page 263
2673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5597 .loc 1 2673 15 view .LVU1976
5598 0060 98E0 b .L363
5599 .LVL394:
5600 .L379:
2687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5601 .loc 1 2687 5 is_stmt 1 view .LVU1977
2687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5602 .loc 1 2687 21 is_stmt 0 view .LVU1978
5603 0062 2223 movs r3, #34
5604 0064 84F84130 strb r3, [r4, #65]
2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5605 .loc 1 2688 5 is_stmt 1 view .LVU1979
2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5606 .loc 1 2688 21 is_stmt 0 view .LVU1980
5607 0068 4023 movs r3, #64
5608 006a 84F84230 strb r3, [r4, #66]
2689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5609 .loc 1 2689 5 is_stmt 1 view .LVU1981
2689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5610 .loc 1 2689 21 is_stmt 0 view .LVU1982
5611 006e 0023 movs r3, #0
5612 0070 6364 str r3, [r4, #68]
2692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5613 .loc 1 2692 5 is_stmt 1 view .LVU1983
2692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5614 .loc 1 2692 21 is_stmt 0 view .LVU1984
5615 0072 0C9A ldr r2, [sp, #48]
5616 0074 6262 str r2, [r4, #36]
2693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5617 .loc 1 2693 5 is_stmt 1 view .LVU1985
2693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5618 .loc 1 2693 21 is_stmt 0 view .LVU1986
5619 0076 A4F82AA0 strh r10, [r4, #42] @ movhi
2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5620 .loc 1 2694 5 is_stmt 1 view .LVU1987
2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5621 .loc 1 2694 21 is_stmt 0 view .LVU1988
5622 007a 6363 str r3, [r4, #52]
2697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5623 .loc 1 2697 5 is_stmt 1 view .LVU1989
2697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5624 .loc 1 2697 9 is_stmt 0 view .LVU1990
5625 007c 0196 str r6, [sp, #4]
5626 007e 0097 str r7, [sp]
5627 0080 4346 mov r3, r8
5628 0082 4A46 mov r2, r9
5629 0084 2946 mov r1, r5
5630 0086 2046 mov r0, r4
5631 0088 FFF7FEFF bl I2C_RequestMemoryRead
5632 .LVL395:
2697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5633 .loc 1 2697 8 discriminator 1 view .LVU1991
5634 008c 70B9 cbnz r0, .L380
2706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5635 .loc 1 2706 5 is_stmt 1 view .LVU1992
2706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 264
5636 .loc 1 2706 13 is_stmt 0 view .LVU1993
5637 008e 638D ldrh r3, [r4, #42]
5638 0090 9BB2 uxth r3, r3
2706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5639 .loc 1 2706 8 view .LVU1994
5640 0092 FF2B cmp r3, #255
5641 0094 0FD9 bls .L366
2708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
5642 .loc 1 2708 7 is_stmt 1 view .LVU1995
2708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
5643 .loc 1 2708 22 is_stmt 0 view .LVU1996
5644 0096 FF22 movs r2, #255
5645 0098 2285 strh r2, [r4, #40] @ movhi
2709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
5646 .loc 1 2709 7 is_stmt 1 view .LVU1997
5647 009a 444B ldr r3, .L382
5648 009c 0093 str r3, [sp]
5649 009e 4FF08073 mov r3, #16777216
5650 00a2 2946 mov r1, r5
5651 00a4 2046 mov r0, r4
5652 00a6 FFF7FEFF bl I2C_TransferConfig
5653 .LVL396:
5654 00aa 21E0 b .L370
5655 .L380:
2700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5656 .loc 1 2700 7 view .LVU1998
2700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5657 .loc 1 2700 7 view .LVU1999
5658 00ac 0023 movs r3, #0
5659 00ae 84F84030 strb r3, [r4, #64]
2700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5660 .loc 1 2700 7 view .LVU2000
2701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5661 .loc 1 2701 7 view .LVU2001
2701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5662 .loc 1 2701 14 is_stmt 0 view .LVU2002
5663 00b2 5846 mov r0, fp
5664 00b4 6EE0 b .L363
5665 .L366:
2714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5666 .loc 1 2714 7 is_stmt 1 view .LVU2003
2714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5667 .loc 1 2714 28 is_stmt 0 view .LVU2004
5668 00b6 628D ldrh r2, [r4, #42]
5669 00b8 92B2 uxth r2, r2
2714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5670 .loc 1 2714 22 view .LVU2005
5671 00ba 2285 strh r2, [r4, #40] @ movhi
2715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
5672 .loc 1 2715 7 is_stmt 1 view .LVU2006
5673 00bc 3B4B ldr r3, .L382
5674 00be 0093 str r3, [sp]
5675 00c0 4FF00073 mov r3, #33554432
5676 00c4 D2B2 uxtb r2, r2
5677 00c6 2946 mov r1, r5
5678 00c8 2046 mov r0, r4
5679 00ca FFF7FEFF bl I2C_TransferConfig
ARM GAS /tmp/ccN54YTb.s page 265
5680 .LVL397:
5681 00ce 0FE0 b .L370
5682 .L369:
2752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5683 .loc 1 2752 11 view .LVU2007
2752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5684 .loc 1 2752 32 is_stmt 0 view .LVU2008
5685 00d0 628D ldrh r2, [r4, #42]
5686 00d2 92B2 uxth r2, r2
2752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5687 .loc 1 2752 26 view .LVU2009
5688 00d4 2285 strh r2, [r4, #40] @ movhi
2753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
5689 .loc 1 2753 11 is_stmt 1 view .LVU2010
5690 00d6 0023 movs r3, #0
5691 00d8 0093 str r3, [sp]
5692 00da 4FF00073 mov r3, #33554432
5693 00de D2B2 uxtb r2, r2
5694 00e0 2946 mov r1, r5
5695 00e2 2046 mov r0, r4
5696 00e4 FFF7FEFF bl I2C_TransferConfig
5697 .LVL398:
5698 .L368:
2757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5699 .loc 1 2757 30 view .LVU2011
2757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5700 .loc 1 2757 18 is_stmt 0 view .LVU2012
5701 00e8 638D ldrh r3, [r4, #42]
5702 00ea 9BB2 uxth r3, r3
2757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5703 .loc 1 2757 30 view .LVU2013
5704 00ec 002B cmp r3, #0
5705 00ee 34D0 beq .L381
5706 .L370:
2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5707 .loc 1 2719 5 is_stmt 1 view .LVU2014
2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5708 .loc 1 2722 7 view .LVU2015
2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5709 .loc 1 2722 11 is_stmt 0 view .LVU2016
5710 00f0 0096 str r6, [sp]
5711 00f2 3B46 mov r3, r7
5712 00f4 0022 movs r2, #0
5713 00f6 0421 movs r1, #4
5714 00f8 2046 mov r0, r4
5715 00fa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5716 .LVL399:
2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5717 .loc 1 2722 10 discriminator 1 view .LVU2017
5718 00fe 0028 cmp r0, #0
5719 0100 4DD1 bne .L374
2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5720 .loc 1 2728 7 is_stmt 1 view .LVU2018
2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5721 .loc 1 2728 38 is_stmt 0 view .LVU2019
5722 0102 2368 ldr r3, [r4]
2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 266
5723 .loc 1 2728 48 view .LVU2020
5724 0104 5A6A ldr r2, [r3, #36]
2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5725 .loc 1 2728 12 view .LVU2021
5726 0106 636A ldr r3, [r4, #36]
2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5727 .loc 1 2728 23 view .LVU2022
5728 0108 1A70 strb r2, [r3]
2731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5729 .loc 1 2731 7 is_stmt 1 view .LVU2023
2731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5730 .loc 1 2731 11 is_stmt 0 view .LVU2024
5731 010a 636A ldr r3, [r4, #36]
2731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5732 .loc 1 2731 21 view .LVU2025
5733 010c 0133 adds r3, r3, #1
5734 010e 6362 str r3, [r4, #36]
2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5735 .loc 1 2733 7 is_stmt 1 view .LVU2026
2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5736 .loc 1 2733 11 is_stmt 0 view .LVU2027
5737 0110 228D ldrh r2, [r4, #40]
2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5738 .loc 1 2733 21 view .LVU2028
5739 0112 013A subs r2, r2, #1
5740 0114 92B2 uxth r2, r2
5741 0116 2285 strh r2, [r4, #40] @ movhi
2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5742 .loc 1 2734 7 is_stmt 1 view .LVU2029
2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5743 .loc 1 2734 11 is_stmt 0 view .LVU2030
5744 0118 638D ldrh r3, [r4, #42]
5745 011a 9BB2 uxth r3, r3
2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5746 .loc 1 2734 22 view .LVU2031
5747 011c 013B subs r3, r3, #1
5748 011e 9BB2 uxth r3, r3
5749 0120 6385 strh r3, [r4, #42] @ movhi
2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5750 .loc 1 2736 7 is_stmt 1 view .LVU2032
2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5751 .loc 1 2736 16 is_stmt 0 view .LVU2033
5752 0122 638D ldrh r3, [r4, #42]
5753 0124 9BB2 uxth r3, r3
2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5754 .loc 1 2736 10 view .LVU2034
5755 0126 002B cmp r3, #0
5756 0128 DED0 beq .L368
2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5757 .loc 1 2736 35 discriminator 1 view .LVU2035
5758 012a 002A cmp r2, #0
5759 012c DCD1 bne .L368
2739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5760 .loc 1 2739 9 is_stmt 1 view .LVU2036
2739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5761 .loc 1 2739 13 is_stmt 0 view .LVU2037
5762 012e 0096 str r6, [sp]
ARM GAS /tmp/ccN54YTb.s page 267
5763 0130 3B46 mov r3, r7
5764 0132 8021 movs r1, #128
5765 0134 2046 mov r0, r4
5766 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5767 .LVL400:
2739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5768 .loc 1 2739 12 discriminator 1 view .LVU2038
5769 013a 90BB cbnz r0, .L375
2744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5770 .loc 1 2744 9 is_stmt 1 view .LVU2039
2744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5771 .loc 1 2744 17 is_stmt 0 view .LVU2040
5772 013c 638D ldrh r3, [r4, #42]
5773 013e 9BB2 uxth r3, r3
2744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5774 .loc 1 2744 12 view .LVU2041
5775 0140 FF2B cmp r3, #255
5776 0142 C5D9 bls .L369
2746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
5777 .loc 1 2746 11 is_stmt 1 view .LVU2042
2746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
5778 .loc 1 2746 26 is_stmt 0 view .LVU2043
5779 0144 FF22 movs r2, #255
5780 0146 2285 strh r2, [r4, #40] @ movhi
2747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
5781 .loc 1 2747 11 is_stmt 1 view .LVU2044
5782 0148 0023 movs r3, #0
5783 014a 0093 str r3, [sp]
5784 014c 4FF08073 mov r3, #16777216
5785 0150 2946 mov r1, r5
5786 0152 2046 mov r0, r4
5787 0154 FFF7FEFF bl I2C_TransferConfig
5788 .LVL401:
5789 0158 C6E7 b .L368
5790 .L381:
2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5791 .loc 1 2761 5 view .LVU2045
2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5792 .loc 1 2761 9 is_stmt 0 view .LVU2046
5793 015a 3246 mov r2, r6
5794 015c 3946 mov r1, r7
5795 015e 2046 mov r0, r4
5796 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
5797 .LVL402:
2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5798 .loc 1 2761 8 discriminator 1 view .LVU2047
5799 0164 F8B9 cbnz r0, .L376
2767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5800 .loc 1 2767 5 is_stmt 1 view .LVU2048
5801 0166 2368 ldr r3, [r4]
5802 0168 2022 movs r2, #32
5803 016a DA61 str r2, [r3, #28]
2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5804 .loc 1 2770 5 view .LVU2049
5805 016c 2168 ldr r1, [r4]
5806 016e 4B68 ldr r3, [r1, #4]
5807 0170 23F0FF73 bic r3, r3, #33423360
ARM GAS /tmp/ccN54YTb.s page 268
5808 0174 23F48B33 bic r3, r3, #71168
5809 0178 23F4FF73 bic r3, r3, #510
5810 017c 23F00103 bic r3, r3, #1
5811 0180 4B60 str r3, [r1, #4]
2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5812 .loc 1 2772 5 view .LVU2050
2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5813 .loc 1 2772 17 is_stmt 0 view .LVU2051
5814 0182 84F84120 strb r2, [r4, #65]
2773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5815 .loc 1 2773 5 is_stmt 1 view .LVU2052
2773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5816 .loc 1 2773 17 is_stmt 0 view .LVU2053
5817 0186 0023 movs r3, #0
5818 0188 84F84230 strb r3, [r4, #66]
2776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5819 .loc 1 2776 5 is_stmt 1 view .LVU2054
2776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5820 .loc 1 2776 5 view .LVU2055
5821 018c 84F84030 strb r3, [r4, #64]
2776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5822 .loc 1 2776 5 view .LVU2056
2778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5823 .loc 1 2778 5 view .LVU2057
2778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5824 .loc 1 2778 12 is_stmt 0 view .LVU2058
5825 0190 00E0 b .L363
5826 .LVL403:
5827 .L371:
2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5828 .loc 1 2782 12 view .LVU2059
5829 0192 0220 movs r0, #2
5830 .LVL404:
5831 .L363:
2784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5832 .loc 1 2784 1 view .LVU2060
5833 0194 03B0 add sp, sp, #12
5834 .cfi_remember_state
5835 .cfi_def_cfa_offset 36
5836 @ sp needed
5837 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5838 .LVL405:
5839 .L372:
5840 .cfi_restore_state
2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5841 .loc 1 2677 5 discriminator 1 view .LVU2061
5842 019a 0220 movs r0, #2
5843 .LVL406:
2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5844 .loc 1 2677 5 discriminator 1 view .LVU2062
5845 019c FAE7 b .L363
5846 .LVL407:
5847 .L374:
2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5848 .loc 1 2724 16 view .LVU2063
5849 019e 0120 movs r0, #1
5850 01a0 F8E7 b .L363
ARM GAS /tmp/ccN54YTb.s page 269
5851 .L375:
2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5852 .loc 1 2741 18 view .LVU2064
5853 01a2 0120 movs r0, #1
5854 01a4 F6E7 b .L363
5855 .L376:
2763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5856 .loc 1 2763 14 view .LVU2065
5857 01a6 0120 movs r0, #1
5858 01a8 F4E7 b .L363
5859 .L383:
5860 01aa 00BF .align 2
5861 .L382:
5862 01ac 00240080 .word -2147474432
5863 .cfi_endproc
5864 .LFE352:
5866 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits
5867 .align 1
5868 .global HAL_I2C_Mem_Write_IT
5869 .syntax unified
5870 .thumb
5871 .thumb_func
5873 HAL_I2C_Mem_Write_IT:
5874 .LVL408:
5875 .LFB353:
2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
5876 .loc 1 2799 1 is_stmt 1 view -0
5877 .cfi_startproc
5878 @ args = 8, pretend = 0, frame = 0
5879 @ frame_needed = 0, uses_anonymous_args = 0
2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
5880 .loc 1 2799 1 is_stmt 0 view .LVU2067
5881 0000 70B5 push {r4, r5, r6, lr}
5882 .cfi_def_cfa_offset 16
5883 .cfi_offset 4, -16
5884 .cfi_offset 5, -12
5885 .cfi_offset 6, -8
5886 .cfi_offset 14, -4
5887 0002 82B0 sub sp, sp, #8
5888 .cfi_def_cfa_offset 24
5889 0004 0446 mov r4, r0
5890 0006 1D46 mov r5, r3
5891 0008 BDF81C30 ldrh r3, [sp, #28]
5892 .LVL409:
2801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5893 .loc 1 2801 3 is_stmt 1 view .LVU2068
2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5894 .loc 1 2803 3 view .LVU2069
2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5895 .loc 1 2803 11 is_stmt 0 view .LVU2070
5896 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
5897 .LVL410:
2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5898 .loc 1 2803 6 view .LVU2071
5899 0010 2028 cmp r0, #32
5900 0012 43D1 bne .L389
2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 270
5901 .loc 1 2805 5 is_stmt 1 view .LVU2072
2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5902 .loc 1 2805 8 is_stmt 0 view .LVU2073
5903 0014 0698 ldr r0, [sp, #24]
5904 0016 002B cmp r3, #0
5905 0018 18BF it ne
5906 001a 0028 cmpne r0, #0
5907 001c 33D0 beq .L393
2811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5908 .loc 1 2811 5 is_stmt 1 view .LVU2074
2811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5909 .loc 1 2811 9 is_stmt 0 view .LVU2075
5910 001e 2068 ldr r0, [r4]
5911 0020 8669 ldr r6, [r0, #24]
2811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5912 .loc 1 2811 8 view .LVU2076
5913 0022 16F4004F tst r6, #32768
5914 0026 3CD1 bne .L390
2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5915 .loc 1 2817 5 is_stmt 1 view .LVU2077
2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5916 .loc 1 2817 5 view .LVU2078
5917 0028 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2
5918 002c 012E cmp r6, #1
5919 002e 3AD0 beq .L391
2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5920 .loc 1 2817 5 discriminator 2 view .LVU2079
5921 0030 0126 movs r6, #1
5922 0032 84F84060 strb r6, [r4, #64]
2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5923 .loc 1 2817 5 view .LVU2080
2819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5924 .loc 1 2819 5 view .LVU2081
2819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5925 .loc 1 2819 23 is_stmt 0 view .LVU2082
5926 0036 2126 movs r6, #33
5927 0038 84F84160 strb r6, [r4, #65]
2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5928 .loc 1 2820 5 is_stmt 1 view .LVU2083
2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5929 .loc 1 2820 23 is_stmt 0 view .LVU2084
5930 003c 4026 movs r6, #64
5931 003e 84F84260 strb r6, [r4, #66]
2821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5932 .loc 1 2821 5 is_stmt 1 view .LVU2085
2821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5933 .loc 1 2821 23 is_stmt 0 view .LVU2086
5934 0042 0026 movs r6, #0
5935 0044 6664 str r6, [r4, #68]
2824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
5936 .loc 1 2824 5 is_stmt 1 view .LVU2087
2824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
5937 .loc 1 2824 23 is_stmt 0 view .LVU2088
5938 0046 2685 strh r6, [r4, #40] @ movhi
2825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5939 .loc 1 2825 5 is_stmt 1 view .LVU2089
2825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
ARM GAS /tmp/ccN54YTb.s page 271
5940 .loc 1 2825 23 is_stmt 0 view .LVU2090
5941 0048 069E ldr r6, [sp, #24]
5942 004a 6662 str r6, [r4, #36]
2826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5943 .loc 1 2826 5 is_stmt 1 view .LVU2091
2826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5944 .loc 1 2826 23 is_stmt 0 view .LVU2092
5945 004c 6385 strh r3, [r4, #42] @ movhi
2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
5946 .loc 1 2827 5 is_stmt 1 view .LVU2093
2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
5947 .loc 1 2827 23 is_stmt 0 view .LVU2094
5948 004e 174B ldr r3, .L395
5949 0050 E362 str r3, [r4, #44]
2828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
5950 .loc 1 2828 5 is_stmt 1 view .LVU2095
2828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
5951 .loc 1 2828 23 is_stmt 0 view .LVU2096
5952 0052 174B ldr r3, .L395+4
5953 0054 6363 str r3, [r4, #52]
2829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5954 .loc 1 2829 5 is_stmt 1 view .LVU2097
2829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5955 .loc 1 2829 23 is_stmt 0 view .LVU2098
5956 0056 E164 str r1, [r4, #76]
2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5957 .loc 1 2832 5 is_stmt 1 view .LVU2099
2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5958 .loc 1 2832 8 is_stmt 0 view .LVU2100
5959 0058 012D cmp r5, #1
5960 005a 19D0 beq .L394
2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5961 .loc 1 2844 7 is_stmt 1 view .LVU2101
2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5962 .loc 1 2844 30 is_stmt 0 view .LVU2102
5963 005c 130A lsrs r3, r2, #8
2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5964 .loc 1 2844 28 view .LVU2103
5965 005e 8362 str r3, [r0, #40]
2847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5966 .loc 1 2847 7 is_stmt 1 view .LVU2104
2847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5967 .loc 1 2847 26 is_stmt 0 view .LVU2105
5968 0060 D2B2 uxtb r2, r2
5969 .LVL411:
2847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5970 .loc 1 2847 24 view .LVU2106
5971 0062 2265 str r2, [r4, #80]
5972 .L388:
2850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5973 .loc 1 2850 5 is_stmt 1 view .LVU2107
5974 0064 134B ldr r3, .L395+8
5975 0066 0093 str r3, [sp]
5976 0068 4FF08073 mov r3, #16777216
5977 006c EAB2 uxtb r2, r5
5978 006e 2046 mov r0, r4
5979 0070 FFF7FEFF bl I2C_TransferConfig
ARM GAS /tmp/ccN54YTb.s page 272
5980 .LVL412:
2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5981 .loc 1 2853 5 view .LVU2108
2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5982 .loc 1 2853 5 view .LVU2109
5983 0074 0025 movs r5, #0
5984 .LVL413:
2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5985 .loc 1 2853 5 is_stmt 0 view .LVU2110
5986 0076 84F84050 strb r5, [r4, #64]
2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5987 .loc 1 2853 5 is_stmt 1 view .LVU2111
2863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5988 .loc 1 2863 5 view .LVU2112
5989 007a 0121 movs r1, #1
5990 007c 2046 mov r0, r4
5991 007e FFF7FEFF bl I2C_Enable_IRQ
5992 .LVL414:
2865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5993 .loc 1 2865 5 view .LVU2113
2865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5994 .loc 1 2865 12 is_stmt 0 view .LVU2114
5995 0082 2846 mov r0, r5
5996 0084 0BE0 b .L385
5997 .LVL415:
5998 .L393:
2807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5999 .loc 1 2807 7 is_stmt 1 view .LVU2115
2807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6000 .loc 1 2807 23 is_stmt 0 view .LVU2116
6001 0086 4FF40073 mov r3, #512
6002 008a 6364 str r3, [r4, #68]
2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6003 .loc 1 2808 7 is_stmt 1 view .LVU2117
2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6004 .loc 1 2808 15 is_stmt 0 view .LVU2118
6005 008c 0120 movs r0, #1
6006 008e 06E0 b .L385
6007 .L394:
2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6008 .loc 1 2835 7 is_stmt 1 view .LVU2119
2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6009 .loc 1 2835 30 is_stmt 0 view .LVU2120
6010 0090 D2B2 uxtb r2, r2
6011 .LVL416:
2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6012 .loc 1 2835 28 view .LVU2121
6013 0092 8262 str r2, [r0, #40]
2838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6014 .loc 1 2838 7 is_stmt 1 view .LVU2122
2838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6015 .loc 1 2838 24 is_stmt 0 view .LVU2123
6016 0094 4FF0FF33 mov r3, #-1
6017 0098 2365 str r3, [r4, #80]
6018 009a E3E7 b .L388
6019 .LVL417:
6020 .L389:
ARM GAS /tmp/ccN54YTb.s page 273
2869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6021 .loc 1 2869 12 view .LVU2124
6022 009c 0220 movs r0, #2
6023 .LVL418:
6024 .L385:
2871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6025 .loc 1 2871 1 view .LVU2125
6026 009e 02B0 add sp, sp, #8
6027 .cfi_remember_state
6028 .cfi_def_cfa_offset 16
6029 @ sp needed
6030 00a0 70BD pop {r4, r5, r6, pc}
6031 .LVL419:
6032 .L390:
6033 .cfi_restore_state
2813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6034 .loc 1 2813 14 view .LVU2126
6035 00a2 0220 movs r0, #2
6036 00a4 FBE7 b .L385
6037 .L391:
2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6038 .loc 1 2817 5 discriminator 1 view .LVU2127
6039 00a6 0220 movs r0, #2
6040 00a8 F9E7 b .L385
6041 .L396:
6042 00aa 00BF .align 2
6043 .L395:
6044 00ac 0000FFFF .word -65536
6045 00b0 00000000 .word I2C_Mem_ISR_IT
6046 00b4 00200080 .word -2147475456
6047 .cfi_endproc
6048 .LFE353:
6050 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits
6051 .align 1
6052 .global HAL_I2C_Mem_Read_IT
6053 .syntax unified
6054 .thumb
6055 .thumb_func
6057 HAL_I2C_Mem_Read_IT:
6058 .LVL420:
6059 .LFB354:
2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
6060 .loc 1 2887 1 is_stmt 1 view -0
6061 .cfi_startproc
6062 @ args = 8, pretend = 0, frame = 0
6063 @ frame_needed = 0, uses_anonymous_args = 0
2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
6064 .loc 1 2887 1 is_stmt 0 view .LVU2129
6065 0000 70B5 push {r4, r5, r6, lr}
6066 .cfi_def_cfa_offset 16
6067 .cfi_offset 4, -16
6068 .cfi_offset 5, -12
6069 .cfi_offset 6, -8
6070 .cfi_offset 14, -4
6071 0002 82B0 sub sp, sp, #8
6072 .cfi_def_cfa_offset 24
6073 0004 0446 mov r4, r0
ARM GAS /tmp/ccN54YTb.s page 274
6074 0006 1D46 mov r5, r3
6075 0008 BDF81C30 ldrh r3, [sp, #28]
6076 .LVL421:
2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6077 .loc 1 2889 3 is_stmt 1 view .LVU2130
2891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6078 .loc 1 2891 3 view .LVU2131
2891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6079 .loc 1 2891 11 is_stmt 0 view .LVU2132
6080 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
6081 .LVL422:
2891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6082 .loc 1 2891 6 view .LVU2133
6083 0010 2028 cmp r0, #32
6084 0012 41D1 bne .L402
2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6085 .loc 1 2893 5 is_stmt 1 view .LVU2134
2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6086 .loc 1 2893 8 is_stmt 0 view .LVU2135
6087 0014 0698 ldr r0, [sp, #24]
6088 0016 002B cmp r3, #0
6089 0018 18BF it ne
6090 001a 0028 cmpne r0, #0
6091 001c 31D0 beq .L406
2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6092 .loc 1 2899 5 is_stmt 1 view .LVU2136
2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6093 .loc 1 2899 9 is_stmt 0 view .LVU2137
6094 001e 2068 ldr r0, [r4]
6095 0020 8669 ldr r6, [r0, #24]
2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6096 .loc 1 2899 8 view .LVU2138
6097 0022 16F4004F tst r6, #32768
6098 0026 3AD1 bne .L403
2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6099 .loc 1 2905 5 is_stmt 1 view .LVU2139
2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6100 .loc 1 2905 5 view .LVU2140
6101 0028 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2
6102 002c 012E cmp r6, #1
6103 002e 38D0 beq .L404
2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6104 .loc 1 2905 5 discriminator 2 view .LVU2141
6105 0030 0126 movs r6, #1
6106 0032 84F84060 strb r6, [r4, #64]
2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6107 .loc 1 2905 5 view .LVU2142
2907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6108 .loc 1 2907 5 view .LVU2143
2907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6109 .loc 1 2907 23 is_stmt 0 view .LVU2144
6110 0036 2226 movs r6, #34
6111 0038 84F84160 strb r6, [r4, #65]
2908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6112 .loc 1 2908 5 is_stmt 1 view .LVU2145
2908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6113 .loc 1 2908 23 is_stmt 0 view .LVU2146
ARM GAS /tmp/ccN54YTb.s page 275
6114 003c 4026 movs r6, #64
6115 003e 84F84260 strb r6, [r4, #66]
2909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6116 .loc 1 2909 5 is_stmt 1 view .LVU2147
2909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6117 .loc 1 2909 23 is_stmt 0 view .LVU2148
6118 0042 0026 movs r6, #0
6119 0044 6664 str r6, [r4, #68]
2912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6120 .loc 1 2912 5 is_stmt 1 view .LVU2149
2912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6121 .loc 1 2912 23 is_stmt 0 view .LVU2150
6122 0046 069E ldr r6, [sp, #24]
6123 0048 6662 str r6, [r4, #36]
2913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6124 .loc 1 2913 5 is_stmt 1 view .LVU2151
2913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6125 .loc 1 2913 23 is_stmt 0 view .LVU2152
6126 004a 6385 strh r3, [r4, #42] @ movhi
2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
6127 .loc 1 2914 5 is_stmt 1 view .LVU2153
2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
6128 .loc 1 2914 23 is_stmt 0 view .LVU2154
6129 004c 164B ldr r3, .L408
6130 004e E362 str r3, [r4, #44]
2915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6131 .loc 1 2915 5 is_stmt 1 view .LVU2155
2915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6132 .loc 1 2915 23 is_stmt 0 view .LVU2156
6133 0050 164B ldr r3, .L408+4
6134 0052 6363 str r3, [r4, #52]
2916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6135 .loc 1 2916 5 is_stmt 1 view .LVU2157
2916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6136 .loc 1 2916 23 is_stmt 0 view .LVU2158
6137 0054 E164 str r1, [r4, #76]
2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6138 .loc 1 2919 5 is_stmt 1 view .LVU2159
2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6139 .loc 1 2919 8 is_stmt 0 view .LVU2160
6140 0056 012D cmp r5, #1
6141 0058 18D0 beq .L407
2931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6142 .loc 1 2931 7 is_stmt 1 view .LVU2161
2931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6143 .loc 1 2931 30 is_stmt 0 view .LVU2162
6144 005a 130A lsrs r3, r2, #8
2931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6145 .loc 1 2931 28 view .LVU2163
6146 005c 8362 str r3, [r0, #40]
2934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6147 .loc 1 2934 7 is_stmt 1 view .LVU2164
2934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6148 .loc 1 2934 26 is_stmt 0 view .LVU2165
6149 005e D2B2 uxtb r2, r2
6150 .LVL423:
2934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 276
6151 .loc 1 2934 24 view .LVU2166
6152 0060 2265 str r2, [r4, #80]
6153 .L401:
2937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6154 .loc 1 2937 5 is_stmt 1 view .LVU2167
6155 0062 134B ldr r3, .L408+8
6156 0064 0093 str r3, [sp]
6157 0066 0023 movs r3, #0
6158 0068 EAB2 uxtb r2, r5
6159 006a 2046 mov r0, r4
6160 006c FFF7FEFF bl I2C_TransferConfig
6161 .LVL424:
2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6162 .loc 1 2940 5 view .LVU2168
2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6163 .loc 1 2940 5 view .LVU2169
6164 0070 0025 movs r5, #0
6165 .LVL425:
2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6166 .loc 1 2940 5 is_stmt 0 view .LVU2170
6167 0072 84F84050 strb r5, [r4, #64]
2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6168 .loc 1 2940 5 is_stmt 1 view .LVU2171
2950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6169 .loc 1 2950 5 view .LVU2172
6170 0076 0121 movs r1, #1
6171 0078 2046 mov r0, r4
6172 007a FFF7FEFF bl I2C_Enable_IRQ
6173 .LVL426:
2952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6174 .loc 1 2952 5 view .LVU2173
2952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6175 .loc 1 2952 12 is_stmt 0 view .LVU2174
6176 007e 2846 mov r0, r5
6177 0080 0BE0 b .L398
6178 .LVL427:
6179 .L406:
2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6180 .loc 1 2895 7 is_stmt 1 view .LVU2175
2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6181 .loc 1 2895 23 is_stmt 0 view .LVU2176
6182 0082 4FF40073 mov r3, #512
6183 0086 6364 str r3, [r4, #68]
2896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6184 .loc 1 2896 7 is_stmt 1 view .LVU2177
2896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6185 .loc 1 2896 15 is_stmt 0 view .LVU2178
6186 0088 0120 movs r0, #1
6187 008a 06E0 b .L398
6188 .L407:
2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6189 .loc 1 2922 7 is_stmt 1 view .LVU2179
2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6190 .loc 1 2922 30 is_stmt 0 view .LVU2180
6191 008c D2B2 uxtb r2, r2
6192 .LVL428:
2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 277
6193 .loc 1 2922 28 view .LVU2181
6194 008e 8262 str r2, [r0, #40]
2925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6195 .loc 1 2925 7 is_stmt 1 view .LVU2182
2925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6196 .loc 1 2925 24 is_stmt 0 view .LVU2183
6197 0090 4FF0FF33 mov r3, #-1
6198 0094 2365 str r3, [r4, #80]
6199 0096 E4E7 b .L401
6200 .LVL429:
6201 .L402:
2956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6202 .loc 1 2956 12 view .LVU2184
6203 0098 0220 movs r0, #2
6204 .LVL430:
6205 .L398:
2958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6206 .loc 1 2958 1 view .LVU2185
6207 009a 02B0 add sp, sp, #8
6208 .cfi_remember_state
6209 .cfi_def_cfa_offset 16
6210 @ sp needed
6211 009c 70BD pop {r4, r5, r6, pc}
6212 .LVL431:
6213 .L403:
6214 .cfi_restore_state
2901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6215 .loc 1 2901 14 view .LVU2186
6216 009e 0220 movs r0, #2
6217 00a0 FBE7 b .L398
6218 .L404:
2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6219 .loc 1 2905 5 discriminator 1 view .LVU2187
6220 00a2 0220 movs r0, #2
6221 00a4 F9E7 b .L398
6222 .L409:
6223 00a6 00BF .align 2
6224 .L408:
6225 00a8 0000FFFF .word -65536
6226 00ac 00000000 .word I2C_Mem_ISR_IT
6227 00b0 00200080 .word -2147475456
6228 .cfi_endproc
6229 .LFE354:
6231 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits
6232 .align 1
6233 .global HAL_I2C_Mem_Write_DMA
6234 .syntax unified
6235 .thumb
6236 .thumb_func
6238 HAL_I2C_Mem_Write_DMA:
6239 .LVL432:
6240 .LFB355:
2974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6241 .loc 1 2974 1 is_stmt 1 view -0
6242 .cfi_startproc
6243 @ args = 8, pretend = 0, frame = 0
6244 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/ccN54YTb.s page 278
2974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6245 .loc 1 2974 1 is_stmt 0 view .LVU2189
6246 0000 F0B5 push {r4, r5, r6, r7, lr}
6247 .cfi_def_cfa_offset 20
6248 .cfi_offset 4, -20
6249 .cfi_offset 5, -16
6250 .cfi_offset 6, -12
6251 .cfi_offset 7, -8
6252 .cfi_offset 14, -4
6253 0002 83B0 sub sp, sp, #12
6254 .cfi_def_cfa_offset 32
6255 0004 0446 mov r4, r0
6256 0006 0E46 mov r6, r1
6257 0008 1F46 mov r7, r3
6258 000a 0899 ldr r1, [sp, #32]
6259 .LVL433:
2974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6260 .loc 1 2974 1 view .LVU2190
6261 000c BDF82430 ldrh r3, [sp, #36]
6262 .LVL434:
2975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6263 .loc 1 2975 3 is_stmt 1 view .LVU2191
2978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6264 .loc 1 2978 3 view .LVU2192
2980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6265 .loc 1 2980 3 view .LVU2193
2980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6266 .loc 1 2980 11 is_stmt 0 view .LVU2194
6267 0010 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
6268 .LVL435:
2980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6269 .loc 1 2980 6 view .LVU2195
6270 0014 2028 cmp r0, #32
6271 0016 7AD1 bne .L420
2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6272 .loc 1 2982 5 is_stmt 1 view .LVU2196
2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6273 .loc 1 2982 8 is_stmt 0 view .LVU2197
6274 0018 002B cmp r3, #0
6275 001a 18BF it ne
6276 001c 0029 cmpne r1, #0
6277 001e 49D0 beq .L425
2988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6278 .loc 1 2988 5 is_stmt 1 view .LVU2198
2988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6279 .loc 1 2988 9 is_stmt 0 view .LVU2199
6280 0020 2068 ldr r0, [r4]
6281 0022 8569 ldr r5, [r0, #24]
2988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6282 .loc 1 2988 8 view .LVU2200
6283 0024 15F4004F tst r5, #32768
6284 0028 75D1 bne .L421
2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6285 .loc 1 2994 5 is_stmt 1 view .LVU2201
2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6286 .loc 1 2994 5 view .LVU2202
6287 002a 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2
ARM GAS /tmp/ccN54YTb.s page 279
6288 002e 012D cmp r5, #1
6289 0030 73D0 beq .L422
2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6290 .loc 1 2994 5 discriminator 2 view .LVU2203
6291 0032 0125 movs r5, #1
6292 0034 84F84050 strb r5, [r4, #64]
2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6293 .loc 1 2994 5 view .LVU2204
2996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6294 .loc 1 2996 5 view .LVU2205
2996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6295 .loc 1 2996 23 is_stmt 0 view .LVU2206
6296 0038 2125 movs r5, #33
6297 003a 84F84150 strb r5, [r4, #65]
2997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6298 .loc 1 2997 5 is_stmt 1 view .LVU2207
2997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6299 .loc 1 2997 23 is_stmt 0 view .LVU2208
6300 003e 4025 movs r5, #64
6301 0040 84F84250 strb r5, [r4, #66]
2998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6302 .loc 1 2998 5 is_stmt 1 view .LVU2209
2998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6303 .loc 1 2998 23 is_stmt 0 view .LVU2210
6304 0044 0025 movs r5, #0
6305 0046 6564 str r5, [r4, #68]
3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6306 .loc 1 3001 5 is_stmt 1 view .LVU2211
3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6307 .loc 1 3001 23 is_stmt 0 view .LVU2212
6308 0048 6162 str r1, [r4, #36]
3002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6309 .loc 1 3002 5 is_stmt 1 view .LVU2213
3002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6310 .loc 1 3002 23 is_stmt 0 view .LVU2214
6311 004a 6385 strh r3, [r4, #42] @ movhi
3003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
6312 .loc 1 3003 5 is_stmt 1 view .LVU2215
3003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
6313 .loc 1 3003 23 is_stmt 0 view .LVU2216
6314 004c 344B ldr r3, .L428
6315 004e E362 str r3, [r4, #44]
3004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6316 .loc 1 3004 5 is_stmt 1 view .LVU2217
3004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6317 .loc 1 3004 23 is_stmt 0 view .LVU2218
6318 0050 344B ldr r3, .L428+4
6319 0052 6363 str r3, [r4, #52]
3005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6320 .loc 1 3005 5 is_stmt 1 view .LVU2219
3005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6321 .loc 1 3005 23 is_stmt 0 view .LVU2220
6322 0054 E664 str r6, [r4, #76]
3007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6323 .loc 1 3007 5 is_stmt 1 view .LVU2221
3007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6324 .loc 1 3007 13 is_stmt 0 view .LVU2222
ARM GAS /tmp/ccN54YTb.s page 280
6325 0056 638D ldrh r3, [r4, #42]
6326 0058 9BB2 uxth r3, r3
3007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6327 .loc 1 3007 8 view .LVU2223
6328 005a FF2B cmp r3, #255
6329 005c 2FD9 bls .L413
3009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6330 .loc 1 3009 7 is_stmt 1 view .LVU2224
3009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6331 .loc 1 3009 22 is_stmt 0 view .LVU2225
6332 005e FF23 movs r3, #255
6333 0060 2385 strh r3, [r4, #40] @ movhi
6334 .L414:
3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6335 .loc 1 3017 5 is_stmt 1 view .LVU2226
3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6336 .loc 1 3017 8 is_stmt 0 view .LVU2227
6337 0062 012F cmp r7, #1
6338 0064 2ED0 beq .L426
3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6339 .loc 1 3029 7 is_stmt 1 view .LVU2228
3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6340 .loc 1 3029 30 is_stmt 0 view .LVU2229
6341 0066 130A lsrs r3, r2, #8
3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6342 .loc 1 3029 28 view .LVU2230
6343 0068 8362 str r3, [r0, #40]
3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6344 .loc 1 3032 7 is_stmt 1 view .LVU2231
3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6345 .loc 1 3032 26 is_stmt 0 view .LVU2232
6346 006a D2B2 uxtb r2, r2
6347 .LVL436:
3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6348 .loc 1 3032 24 view .LVU2233
6349 006c 2265 str r2, [r4, #80]
6350 .L416:
3035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6351 .loc 1 3035 5 is_stmt 1 view .LVU2234
3035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6352 .loc 1 3035 13 is_stmt 0 view .LVU2235
6353 006e A36B ldr r3, [r4, #56]
3035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6354 .loc 1 3035 8 view .LVU2236
6355 0070 002B cmp r3, #0
6356 0072 2DD0 beq .L417
3038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6357 .loc 1 3038 7 is_stmt 1 view .LVU2237
3038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6358 .loc 1 3038 38 is_stmt 0 view .LVU2238
6359 0074 2C4A ldr r2, .L428+8
6360 0076 DA63 str r2, [r3, #60]
3041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6361 .loc 1 3041 7 is_stmt 1 view .LVU2239
3041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6362 .loc 1 3041 11 is_stmt 0 view .LVU2240
6363 0078 A36B ldr r3, [r4, #56]
ARM GAS /tmp/ccN54YTb.s page 281
3041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6364 .loc 1 3041 39 view .LVU2241
6365 007a 2C4A ldr r2, .L428+12
6366 007c DA64 str r2, [r3, #76]
3044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6367 .loc 1 3044 7 is_stmt 1 view .LVU2242
3044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6368 .loc 1 3044 11 is_stmt 0 view .LVU2243
6369 007e A26B ldr r2, [r4, #56]
3044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6370 .loc 1 3044 42 view .LVU2244
6371 0080 0023 movs r3, #0
6372 0082 1364 str r3, [r2, #64]
3045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6373 .loc 1 3045 7 is_stmt 1 view .LVU2245
3045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6374 .loc 1 3045 11 is_stmt 0 view .LVU2246
6375 0084 A26B ldr r2, [r4, #56]
3045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6376 .loc 1 3045 39 view .LVU2247
6377 0086 1365 str r3, [r2, #80]
3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
6378 .loc 1 3048 7 is_stmt 1 view .LVU2248
3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
6379 .loc 1 3048 86 is_stmt 0 view .LVU2249
6380 0088 2268 ldr r2, [r4]
3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
6381 .loc 1 3048 23 view .LVU2250
6382 008a 238D ldrh r3, [r4, #40]
6383 008c 2832 adds r2, r2, #40
6384 008e A06B ldr r0, [r4, #56]
6385 0090 FFF7FEFF bl HAL_DMA_Start_IT
6386 .LVL437:
3066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6387 .loc 1 3066 5 is_stmt 1 view .LVU2251
3066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6388 .loc 1 3066 8 is_stmt 0 view .LVU2252
6389 0094 0546 mov r5, r0
6390 0096 48B3 cbz r0, .L427
3086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6391 .loc 1 3086 7 is_stmt 1 view .LVU2253
3086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6392 .loc 1 3086 23 is_stmt 0 view .LVU2254
6393 0098 2023 movs r3, #32
6394 009a 84F84130 strb r3, [r4, #65]
3087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6395 .loc 1 3087 7 is_stmt 1 view .LVU2255
3087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6396 .loc 1 3087 23 is_stmt 0 view .LVU2256
6397 009e 0022 movs r2, #0
6398 00a0 84F84220 strb r2, [r4, #66]
3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6399 .loc 1 3090 7 is_stmt 1 view .LVU2257
3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6400 .loc 1 3090 11 is_stmt 0 view .LVU2258
6401 00a4 636C ldr r3, [r4, #68]
3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 282
6402 .loc 1 3090 23 view .LVU2259
6403 00a6 43F01003 orr r3, r3, #16
6404 00aa 6364 str r3, [r4, #68]
3093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6405 .loc 1 3093 7 is_stmt 1 view .LVU2260
3093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6406 .loc 1 3093 7 view .LVU2261
6407 00ac 84F84020 strb r2, [r4, #64]
3093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6408 .loc 1 3093 7 view .LVU2262
3095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6409 .loc 1 3095 7 view .LVU2263
3095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6410 .loc 1 3095 14 is_stmt 0 view .LVU2264
6411 00b0 0125 movs r5, #1
6412 00b2 2DE0 b .L411
6413 .LVL438:
6414 .L425:
2984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6415 .loc 1 2984 7 is_stmt 1 view .LVU2265
2984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6416 .loc 1 2984 23 is_stmt 0 view .LVU2266
6417 00b4 4FF40073 mov r3, #512
6418 00b8 6364 str r3, [r4, #68]
2985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6419 .loc 1 2985 7 is_stmt 1 view .LVU2267
2985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6420 .loc 1 2985 15 is_stmt 0 view .LVU2268
6421 00ba 0125 movs r5, #1
6422 00bc 28E0 b .L411
6423 .L413:
3013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6424 .loc 1 3013 7 is_stmt 1 view .LVU2269
3013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6425 .loc 1 3013 28 is_stmt 0 view .LVU2270
6426 00be 638D ldrh r3, [r4, #42]
3013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6427 .loc 1 3013 22 view .LVU2271
6428 00c0 2385 strh r3, [r4, #40] @ movhi
6429 00c2 CEE7 b .L414
6430 .L426:
3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6431 .loc 1 3020 7 is_stmt 1 view .LVU2272
3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6432 .loc 1 3020 30 is_stmt 0 view .LVU2273
6433 00c4 D2B2 uxtb r2, r2
6434 .LVL439:
3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6435 .loc 1 3020 28 view .LVU2274
6436 00c6 8262 str r2, [r0, #40]
3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6437 .loc 1 3023 7 is_stmt 1 view .LVU2275
3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6438 .loc 1 3023 24 is_stmt 0 view .LVU2276
6439 00c8 4FF0FF33 mov r3, #-1
6440 00cc 2365 str r3, [r4, #80]
6441 00ce CEE7 b .L416
ARM GAS /tmp/ccN54YTb.s page 283
6442 .L417:
3054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6443 .loc 1 3054 7 is_stmt 1 view .LVU2277
3054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6444 .loc 1 3054 23 is_stmt 0 view .LVU2278
6445 00d0 2023 movs r3, #32
6446 00d2 84F84130 strb r3, [r4, #65]
3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6447 .loc 1 3055 7 is_stmt 1 view .LVU2279
3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6448 .loc 1 3055 23 is_stmt 0 view .LVU2280
6449 00d6 0022 movs r2, #0
6450 00d8 84F84220 strb r2, [r4, #66]
3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6451 .loc 1 3058 7 is_stmt 1 view .LVU2281
3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6452 .loc 1 3058 11 is_stmt 0 view .LVU2282
6453 00dc 636C ldr r3, [r4, #68]
3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6454 .loc 1 3058 23 view .LVU2283
6455 00de 43F08003 orr r3, r3, #128
6456 00e2 6364 str r3, [r4, #68]
3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6457 .loc 1 3061 7 is_stmt 1 view .LVU2284
3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6458 .loc 1 3061 7 view .LVU2285
6459 00e4 84F84020 strb r2, [r4, #64]
3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6460 .loc 1 3061 7 view .LVU2286
3063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6461 .loc 1 3063 7 view .LVU2287
3063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6462 .loc 1 3063 14 is_stmt 0 view .LVU2288
6463 00e8 0125 movs r5, #1
6464 00ea 11E0 b .L411
6465 .LVL440:
6466 .L427:
3069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6467 .loc 1 3069 7 is_stmt 1 view .LVU2289
6468 00ec 104B ldr r3, .L428+16
6469 00ee 0093 str r3, [sp]
6470 00f0 4FF08073 mov r3, #16777216
6471 00f4 FAB2 uxtb r2, r7
6472 00f6 3146 mov r1, r6
6473 00f8 2046 mov r0, r4
6474 .LVL441:
3069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6475 .loc 1 3069 7 is_stmt 0 view .LVU2290
6476 00fa FFF7FEFF bl I2C_TransferConfig
6477 .LVL442:
3072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6478 .loc 1 3072 7 is_stmt 1 view .LVU2291
3072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6479 .loc 1 3072 7 view .LVU2292
6480 00fe 0023 movs r3, #0
6481 0100 84F84030 strb r3, [r4, #64]
3072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 284
6482 .loc 1 3072 7 view .LVU2293
3081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6483 .loc 1 3081 7 view .LVU2294
6484 0104 0121 movs r1, #1
6485 0106 2046 mov r0, r4
6486 0108 FFF7FEFF bl I2C_Enable_IRQ
6487 .LVL443:
3098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6488 .loc 1 3098 5 view .LVU2295
3098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6489 .loc 1 3098 12 is_stmt 0 view .LVU2296
6490 010c 00E0 b .L411
6491 .LVL444:
6492 .L420:
3102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6493 .loc 1 3102 12 view .LVU2297
6494 010e 0225 movs r5, #2
6495 .LVL445:
6496 .L411:
3104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6497 .loc 1 3104 1 view .LVU2298
6498 0110 2846 mov r0, r5
6499 0112 03B0 add sp, sp, #12
6500 .cfi_remember_state
6501 .cfi_def_cfa_offset 20
6502 @ sp needed
6503 0114 F0BD pop {r4, r5, r6, r7, pc}
6504 .LVL446:
6505 .L421:
6506 .cfi_restore_state
2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6507 .loc 1 2990 14 view .LVU2299
6508 0116 0225 movs r5, #2
6509 0118 FAE7 b .L411
6510 .L422:
2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6511 .loc 1 2994 5 discriminator 1 view .LVU2300
6512 011a 0225 movs r5, #2
6513 011c F8E7 b .L411
6514 .L429:
6515 011e 00BF .align 2
6516 .L428:
6517 0120 0000FFFF .word -65536
6518 0124 00000000 .word I2C_Mem_ISR_DMA
6519 0128 00000000 .word I2C_DMAMasterTransmitCplt
6520 012c 00000000 .word I2C_DMAError
6521 0130 00200080 .word -2147475456
6522 .cfi_endproc
6523 .LFE355:
6525 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits
6526 .align 1
6527 .global HAL_I2C_Mem_Read_DMA
6528 .syntax unified
6529 .thumb
6530 .thumb_func
6532 HAL_I2C_Mem_Read_DMA:
6533 .LVL447:
ARM GAS /tmp/ccN54YTb.s page 285
6534 .LFB356:
3120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6535 .loc 1 3120 1 is_stmt 1 view -0
6536 .cfi_startproc
6537 @ args = 8, pretend = 0, frame = 0
6538 @ frame_needed = 0, uses_anonymous_args = 0
3120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6539 .loc 1 3120 1 is_stmt 0 view .LVU2302
6540 0000 F0B5 push {r4, r5, r6, r7, lr}
6541 .cfi_def_cfa_offset 20
6542 .cfi_offset 4, -20
6543 .cfi_offset 5, -16
6544 .cfi_offset 6, -12
6545 .cfi_offset 7, -8
6546 .cfi_offset 14, -4
6547 0002 83B0 sub sp, sp, #12
6548 .cfi_def_cfa_offset 32
6549 0004 0446 mov r4, r0
6550 0006 1F46 mov r7, r3
6551 0008 089D ldr r5, [sp, #32]
6552 000a BDF82430 ldrh r3, [sp, #36]
6553 .LVL448:
3121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6554 .loc 1 3121 3 is_stmt 1 view .LVU2303
3124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6555 .loc 1 3124 3 view .LVU2304
3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6556 .loc 1 3126 3 view .LVU2305
3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6557 .loc 1 3126 11 is_stmt 0 view .LVU2306
6558 000e 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
6559 .LVL449:
3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6560 .loc 1 3126 6 view .LVU2307
6561 0012 2028 cmp r0, #32
6562 0014 7BD1 bne .L440
6563 0016 0E46 mov r6, r1
3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6564 .loc 1 3128 5 is_stmt 1 view .LVU2308
3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6565 .loc 1 3128 8 is_stmt 0 view .LVU2309
6566 0018 002B cmp r3, #0
6567 001a 18BF it ne
6568 001c 002D cmpne r5, #0
6569 001e 4AD0 beq .L445
3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6570 .loc 1 3134 5 is_stmt 1 view .LVU2310
3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6571 .loc 1 3134 9 is_stmt 0 view .LVU2311
6572 0020 2168 ldr r1, [r4]
6573 .LVL450:
3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6574 .loc 1 3134 9 view .LVU2312
6575 0022 8869 ldr r0, [r1, #24]
3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6576 .loc 1 3134 8 view .LVU2313
6577 0024 10F4004F tst r0, #32768
ARM GAS /tmp/ccN54YTb.s page 286
6578 0028 75D1 bne .L441
3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6579 .loc 1 3140 5 is_stmt 1 view .LVU2314
3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6580 .loc 1 3140 5 view .LVU2315
6581 002a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2
6582 002e 0128 cmp r0, #1
6583 0030 73D0 beq .L442
3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6584 .loc 1 3140 5 discriminator 2 view .LVU2316
6585 0032 0120 movs r0, #1
6586 0034 84F84000 strb r0, [r4, #64]
3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6587 .loc 1 3140 5 view .LVU2317
3142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6588 .loc 1 3142 5 view .LVU2318
3142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6589 .loc 1 3142 23 is_stmt 0 view .LVU2319
6590 0038 2220 movs r0, #34
6591 003a 84F84100 strb r0, [r4, #65]
3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6592 .loc 1 3143 5 is_stmt 1 view .LVU2320
3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6593 .loc 1 3143 23 is_stmt 0 view .LVU2321
6594 003e 4020 movs r0, #64
6595 0040 84F84200 strb r0, [r4, #66]
3144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6596 .loc 1 3144 5 is_stmt 1 view .LVU2322
3144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6597 .loc 1 3144 23 is_stmt 0 view .LVU2323
6598 0044 0020 movs r0, #0
6599 0046 6064 str r0, [r4, #68]
3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6600 .loc 1 3147 5 is_stmt 1 view .LVU2324
3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6601 .loc 1 3147 23 is_stmt 0 view .LVU2325
6602 0048 6562 str r5, [r4, #36]
3148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6603 .loc 1 3148 5 is_stmt 1 view .LVU2326
3148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6604 .loc 1 3148 23 is_stmt 0 view .LVU2327
6605 004a 6385 strh r3, [r4, #42] @ movhi
3149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
6606 .loc 1 3149 5 is_stmt 1 view .LVU2328
3149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
6607 .loc 1 3149 23 is_stmt 0 view .LVU2329
6608 004c 344B ldr r3, .L448
6609 004e E362 str r3, [r4, #44]
3150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6610 .loc 1 3150 5 is_stmt 1 view .LVU2330
3150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6611 .loc 1 3150 23 is_stmt 0 view .LVU2331
6612 0050 344B ldr r3, .L448+4
6613 0052 6363 str r3, [r4, #52]
3151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6614 .loc 1 3151 5 is_stmt 1 view .LVU2332
3151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 287
6615 .loc 1 3151 23 is_stmt 0 view .LVU2333
6616 0054 E664 str r6, [r4, #76]
3153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6617 .loc 1 3153 5 is_stmt 1 view .LVU2334
3153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6618 .loc 1 3153 13 is_stmt 0 view .LVU2335
6619 0056 638D ldrh r3, [r4, #42]
6620 0058 9BB2 uxth r3, r3
3153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6621 .loc 1 3153 8 view .LVU2336
6622 005a FF2B cmp r3, #255
6623 005c 30D9 bls .L433
3155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6624 .loc 1 3155 7 is_stmt 1 view .LVU2337
3155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6625 .loc 1 3155 22 is_stmt 0 view .LVU2338
6626 005e FF23 movs r3, #255
6627 0060 2385 strh r3, [r4, #40] @ movhi
6628 .L434:
3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6629 .loc 1 3163 5 is_stmt 1 view .LVU2339
3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6630 .loc 1 3163 8 is_stmt 0 view .LVU2340
6631 0062 012F cmp r7, #1
6632 0064 2FD0 beq .L446
3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6633 .loc 1 3175 7 is_stmt 1 view .LVU2341
3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6634 .loc 1 3175 30 is_stmt 0 view .LVU2342
6635 0066 130A lsrs r3, r2, #8
3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6636 .loc 1 3175 28 view .LVU2343
6637 0068 8B62 str r3, [r1, #40]
3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6638 .loc 1 3178 7 is_stmt 1 view .LVU2344
3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6639 .loc 1 3178 26 is_stmt 0 view .LVU2345
6640 006a D2B2 uxtb r2, r2
6641 .LVL451:
3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6642 .loc 1 3178 24 view .LVU2346
6643 006c 2265 str r2, [r4, #80]
6644 .L436:
3181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6645 .loc 1 3181 5 is_stmt 1 view .LVU2347
3181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6646 .loc 1 3181 13 is_stmt 0 view .LVU2348
6647 006e E36B ldr r3, [r4, #60]
3181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6648 .loc 1 3181 8 view .LVU2349
6649 0070 002B cmp r3, #0
6650 0072 2ED0 beq .L437
3184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6651 .loc 1 3184 7 is_stmt 1 view .LVU2350
3184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6652 .loc 1 3184 38 is_stmt 0 view .LVU2351
6653 0074 2C4A ldr r2, .L448+8
ARM GAS /tmp/ccN54YTb.s page 288
6654 0076 DA63 str r2, [r3, #60]
3187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6655 .loc 1 3187 7 is_stmt 1 view .LVU2352
3187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6656 .loc 1 3187 11 is_stmt 0 view .LVU2353
6657 0078 E36B ldr r3, [r4, #60]
3187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6658 .loc 1 3187 39 view .LVU2354
6659 007a 2C4A ldr r2, .L448+12
6660 007c DA64 str r2, [r3, #76]
3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6661 .loc 1 3190 7 is_stmt 1 view .LVU2355
3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6662 .loc 1 3190 11 is_stmt 0 view .LVU2356
6663 007e E26B ldr r2, [r4, #60]
3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6664 .loc 1 3190 42 view .LVU2357
6665 0080 0023 movs r3, #0
6666 0082 1364 str r3, [r2, #64]
3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6667 .loc 1 3191 7 is_stmt 1 view .LVU2358
3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6668 .loc 1 3191 11 is_stmt 0 view .LVU2359
6669 0084 E26B ldr r2, [r4, #60]
3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6670 .loc 1 3191 39 view .LVU2360
6671 0086 1365 str r3, [r2, #80]
3194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
6672 .loc 1 3194 7 is_stmt 1 view .LVU2361
3194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
6673 .loc 1 3194 69 is_stmt 0 view .LVU2362
6674 0088 2168 ldr r1, [r4]
3194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
6675 .loc 1 3194 23 view .LVU2363
6676 008a 238D ldrh r3, [r4, #40]
6677 008c 2A46 mov r2, r5
6678 008e 2431 adds r1, r1, #36
6679 0090 E06B ldr r0, [r4, #60]
6680 0092 FFF7FEFF bl HAL_DMA_Start_IT
6681 .LVL452:
3212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6682 .loc 1 3212 5 is_stmt 1 view .LVU2364
3212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6683 .loc 1 3212 8 is_stmt 0 view .LVU2365
6684 0096 0546 mov r5, r0
6685 0098 48B3 cbz r0, .L447
3232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6686 .loc 1 3232 7 is_stmt 1 view .LVU2366
3232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6687 .loc 1 3232 23 is_stmt 0 view .LVU2367
6688 009a 2023 movs r3, #32
6689 009c 84F84130 strb r3, [r4, #65]
3233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6690 .loc 1 3233 7 is_stmt 1 view .LVU2368
3233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6691 .loc 1 3233 23 is_stmt 0 view .LVU2369
6692 00a0 0022 movs r2, #0
ARM GAS /tmp/ccN54YTb.s page 289
6693 00a2 84F84220 strb r2, [r4, #66]
3236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6694 .loc 1 3236 7 is_stmt 1 view .LVU2370
3236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6695 .loc 1 3236 11 is_stmt 0 view .LVU2371
6696 00a6 636C ldr r3, [r4, #68]
3236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6697 .loc 1 3236 23 view .LVU2372
6698 00a8 43F01003 orr r3, r3, #16
6699 00ac 6364 str r3, [r4, #68]
3239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6700 .loc 1 3239 7 is_stmt 1 view .LVU2373
3239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6701 .loc 1 3239 7 view .LVU2374
6702 00ae 84F84020 strb r2, [r4, #64]
3239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6703 .loc 1 3239 7 view .LVU2375
3241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6704 .loc 1 3241 7 view .LVU2376
3241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6705 .loc 1 3241 14 is_stmt 0 view .LVU2377
6706 00b2 0125 movs r5, #1
6707 00b4 2CE0 b .L431
6708 .LVL453:
6709 .L445:
3130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6710 .loc 1 3130 7 is_stmt 1 view .LVU2378
3130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6711 .loc 1 3130 23 is_stmt 0 view .LVU2379
6712 00b6 4FF40073 mov r3, #512
6713 00ba 6364 str r3, [r4, #68]
3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6714 .loc 1 3131 7 is_stmt 1 view .LVU2380
3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6715 .loc 1 3131 15 is_stmt 0 view .LVU2381
6716 00bc 0125 movs r5, #1
6717 00be 27E0 b .L431
6718 .LVL454:
6719 .L433:
3159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6720 .loc 1 3159 7 is_stmt 1 view .LVU2382
3159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6721 .loc 1 3159 28 is_stmt 0 view .LVU2383
6722 00c0 638D ldrh r3, [r4, #42]
3159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6723 .loc 1 3159 22 view .LVU2384
6724 00c2 2385 strh r3, [r4, #40] @ movhi
6725 00c4 CDE7 b .L434
6726 .L446:
3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6727 .loc 1 3166 7 is_stmt 1 view .LVU2385
3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6728 .loc 1 3166 30 is_stmt 0 view .LVU2386
6729 00c6 D2B2 uxtb r2, r2
6730 .LVL455:
3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6731 .loc 1 3166 28 view .LVU2387
ARM GAS /tmp/ccN54YTb.s page 290
6732 00c8 8A62 str r2, [r1, #40]
3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6733 .loc 1 3169 7 is_stmt 1 view .LVU2388
3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6734 .loc 1 3169 24 is_stmt 0 view .LVU2389
6735 00ca 4FF0FF33 mov r3, #-1
6736 00ce 2365 str r3, [r4, #80]
6737 00d0 CDE7 b .L436
6738 .L437:
3200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6739 .loc 1 3200 7 is_stmt 1 view .LVU2390
3200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6740 .loc 1 3200 23 is_stmt 0 view .LVU2391
6741 00d2 2023 movs r3, #32
6742 00d4 84F84130 strb r3, [r4, #65]
3201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6743 .loc 1 3201 7 is_stmt 1 view .LVU2392
3201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6744 .loc 1 3201 23 is_stmt 0 view .LVU2393
6745 00d8 0022 movs r2, #0
6746 00da 84F84220 strb r2, [r4, #66]
3204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6747 .loc 1 3204 7 is_stmt 1 view .LVU2394
3204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6748 .loc 1 3204 11 is_stmt 0 view .LVU2395
6749 00de 636C ldr r3, [r4, #68]
3204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6750 .loc 1 3204 23 view .LVU2396
6751 00e0 43F08003 orr r3, r3, #128
6752 00e4 6364 str r3, [r4, #68]
3207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6753 .loc 1 3207 7 is_stmt 1 view .LVU2397
3207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6754 .loc 1 3207 7 view .LVU2398
6755 00e6 84F84020 strb r2, [r4, #64]
3207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6756 .loc 1 3207 7 view .LVU2399
3209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6757 .loc 1 3209 7 view .LVU2400
3209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6758 .loc 1 3209 14 is_stmt 0 view .LVU2401
6759 00ea 0125 movs r5, #1
6760 00ec 10E0 b .L431
6761 .LVL456:
6762 .L447:
3215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6763 .loc 1 3215 7 is_stmt 1 view .LVU2402
6764 00ee 104B ldr r3, .L448+16
6765 00f0 0093 str r3, [sp]
6766 00f2 0023 movs r3, #0
6767 00f4 FAB2 uxtb r2, r7
6768 00f6 3146 mov r1, r6
6769 00f8 2046 mov r0, r4
6770 .LVL457:
3215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6771 .loc 1 3215 7 is_stmt 0 view .LVU2403
6772 00fa FFF7FEFF bl I2C_TransferConfig
ARM GAS /tmp/ccN54YTb.s page 291
6773 .LVL458:
3218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6774 .loc 1 3218 7 is_stmt 1 view .LVU2404
3218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6775 .loc 1 3218 7 view .LVU2405
6776 00fe 0023 movs r3, #0
6777 0100 84F84030 strb r3, [r4, #64]
3218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6778 .loc 1 3218 7 view .LVU2406
3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6779 .loc 1 3227 7 view .LVU2407
6780 0104 0121 movs r1, #1
6781 0106 2046 mov r0, r4
6782 0108 FFF7FEFF bl I2C_Enable_IRQ
6783 .LVL459:
3244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6784 .loc 1 3244 5 view .LVU2408
3244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6785 .loc 1 3244 12 is_stmt 0 view .LVU2409
6786 010c 00E0 b .L431
6787 .LVL460:
6788 .L440:
3248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6789 .loc 1 3248 12 view .LVU2410
6790 010e 0225 movs r5, #2
6791 .LVL461:
6792 .L431:
3250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6793 .loc 1 3250 1 view .LVU2411
6794 0110 2846 mov r0, r5
6795 0112 03B0 add sp, sp, #12
6796 .cfi_remember_state
6797 .cfi_def_cfa_offset 20
6798 @ sp needed
6799 0114 F0BD pop {r4, r5, r6, r7, pc}
6800 .LVL462:
6801 .L441:
6802 .cfi_restore_state
3136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6803 .loc 1 3136 14 view .LVU2412
6804 0116 0225 movs r5, #2
6805 0118 FAE7 b .L431
6806 .L442:
3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6807 .loc 1 3140 5 discriminator 1 view .LVU2413
6808 011a 0225 movs r5, #2
6809 011c F8E7 b .L431
6810 .L449:
6811 011e 00BF .align 2
6812 .L448:
6813 0120 0000FFFF .word -65536
6814 0124 00000000 .word I2C_Mem_ISR_DMA
6815 0128 00000000 .word I2C_DMAMasterReceiveCplt
6816 012c 00000000 .word I2C_DMAError
6817 0130 00200080 .word -2147475456
6818 .cfi_endproc
6819 .LFE356:
ARM GAS /tmp/ccN54YTb.s page 292
6821 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits
6822 .align 1
6823 .global HAL_I2C_IsDeviceReady
6824 .syntax unified
6825 .thumb
6826 .thumb_func
6828 HAL_I2C_IsDeviceReady:
6829 .LVL463:
6830 .LFB357:
3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
6831 .loc 1 3265 1 is_stmt 1 view -0
6832 .cfi_startproc
6833 @ args = 0, pretend = 0, frame = 8
6834 @ frame_needed = 0, uses_anonymous_args = 0
3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
6835 .loc 1 3265 1 is_stmt 0 view .LVU2415
6836 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
6837 .cfi_def_cfa_offset 32
6838 .cfi_offset 4, -32
6839 .cfi_offset 5, -28
6840 .cfi_offset 6, -24
6841 .cfi_offset 7, -20
6842 .cfi_offset 8, -16
6843 .cfi_offset 9, -12
6844 .cfi_offset 10, -8
6845 .cfi_offset 14, -4
6846 0004 84B0 sub sp, sp, #16
6847 .cfi_def_cfa_offset 48
6848 0006 1D46 mov r5, r3
3266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6849 .loc 1 3266 3 is_stmt 1 view .LVU2416
3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6850 .loc 1 3268 3 view .LVU2417
3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6851 .loc 1 3268 17 is_stmt 0 view .LVU2418
6852 0008 0023 movs r3, #0
6853 .LVL464:
3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6854 .loc 1 3268 17 view .LVU2419
6855 000a 0393 str r3, [sp, #12]
3270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6856 .loc 1 3270 3 is_stmt 1 view .LVU2420
6857 .LVL465:
3272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp2;
6858 .loc 1 3272 3 view .LVU2421
3273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6859 .loc 1 3273 3 view .LVU2422
3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6860 .loc 1 3275 3 view .LVU2423
3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6861 .loc 1 3275 11 is_stmt 0 view .LVU2424
6862 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6863 .loc 1 3275 6 view .LVU2425
6864 0010 202B cmp r3, #32
6865 0012 40F09F80 bne .L463
6866 0016 0646 mov r6, r0
ARM GAS /tmp/ccN54YTb.s page 293
6867 0018 8946 mov r9, r1
6868 001a 9046 mov r8, r2
3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6869 .loc 1 3277 5 is_stmt 1 view .LVU2426
3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6870 .loc 1 3277 9 is_stmt 0 view .LVU2427
6871 001c 0368 ldr r3, [r0]
6872 001e 9B69 ldr r3, [r3, #24]
3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6873 .loc 1 3277 8 view .LVU2428
6874 0020 13F4004F tst r3, #32768
6875 0024 40F09880 bne .L464
3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6876 .loc 1 3283 5 is_stmt 1 view .LVU2429
3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6877 .loc 1 3283 5 view .LVU2430
6878 0028 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
6879 002c 012B cmp r3, #1
6880 002e 00F09580 beq .L465
3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6881 .loc 1 3283 5 discriminator 2 view .LVU2431
6882 0032 0123 movs r3, #1
6883 0034 80F84030 strb r3, [r0, #64]
3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6884 .loc 1 3283 5 view .LVU2432
3285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6885 .loc 1 3285 5 view .LVU2433
3285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6886 .loc 1 3285 17 is_stmt 0 view .LVU2434
6887 0038 2423 movs r3, #36
6888 003a 80F84130 strb r3, [r0, #65]
3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6889 .loc 1 3286 5 is_stmt 1 view .LVU2435
3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6890 .loc 1 3286 21 is_stmt 0 view .LVU2436
6891 003e 0023 movs r3, #0
6892 0040 4364 str r3, [r0, #68]
3270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6893 .loc 1 3270 21 view .LVU2437
6894 0042 9A46 mov r10, r3
6895 .LVL466:
6896 .L462:
3288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6897 .loc 1 3288 5 is_stmt 1 view .LVU2438
3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6898 .loc 1 3291 7 view .LVU2439
3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6899 .loc 1 3291 29 is_stmt 0 view .LVU2440
6900 0044 F368 ldr r3, [r6, #12]
6901 0046 012B cmp r3, #1
6902 0048 10D0 beq .L470
3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6903 .loc 1 3291 29 discriminator 2 view .LVU2441
6904 004a C9F30902 ubfx r2, r9, #0, #10
6905 004e 444B ldr r3, .L474
6906 0050 1343 orrs r3, r3, r2
6907 .L453:
ARM GAS /tmp/ccN54YTb.s page 294
3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6908 .loc 1 3291 11 discriminator 4 view .LVU2442
6909 0052 3268 ldr r2, [r6]
3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6910 .loc 1 3291 27 discriminator 4 view .LVU2443
6911 0054 5360 str r3, [r2, #4]
3295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6912 .loc 1 3295 7 is_stmt 1 view .LVU2444
3295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6913 .loc 1 3295 19 is_stmt 0 view .LVU2445
6914 0056 FFF7FEFF bl HAL_GetTick
6915 .LVL467:
6916 005a 0746 mov r7, r0
6917 .LVL468:
3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6918 .loc 1 3297 7 is_stmt 1 view .LVU2446
3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6919 .loc 1 3297 14 is_stmt 0 view .LVU2447
6920 005c 3268 ldr r2, [r6]
6921 005e 9369 ldr r3, [r2, #24]
6922 0060 C3F3401C ubfx ip, r3, #5, #1
6923 .LVL469:
3298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6924 .loc 1 3298 7 is_stmt 1 view .LVU2448
3298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6925 .loc 1 3298 14 is_stmt 0 view .LVU2449
6926 0064 9369 ldr r3, [r2, #24]
6927 0066 C3F30013 ubfx r3, r3, #4, #1
6928 .LVL470:
3300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6929 .loc 1 3300 7 is_stmt 1 view .LVU2450
3300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6930 .loc 1 3300 13 is_stmt 0 view .LVU2451
6931 006a 0BE0 b .L454
6932 .LVL471:
6933 .L470:
3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6934 .loc 1 3291 29 discriminator 1 view .LVU2452
6935 006c C9F30902 ubfx r2, r9, #0, #10
6936 0070 3C4B ldr r3, .L474+4
6937 0072 1343 orrs r3, r3, r2
6938 0074 EDE7 b .L453
6939 .LVL472:
6940 .L455:
3319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6941 .loc 1 3319 9 is_stmt 1 view .LVU2453
3319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6942 .loc 1 3319 16 is_stmt 0 view .LVU2454
6943 0076 3368 ldr r3, [r6]
6944 0078 9C69 ldr r4, [r3, #24]
6945 007a C4F3401C ubfx ip, r4, #5, #1
6946 .LVL473:
3320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6947 .loc 1 3320 9 is_stmt 1 view .LVU2455
3320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6948 .loc 1 3320 16 is_stmt 0 view .LVU2456
6949 007e 9B69 ldr r3, [r3, #24]
ARM GAS /tmp/ccN54YTb.s page 295
6950 0080 C3F30013 ubfx r3, r3, #4, #1
6951 .LVL474:
6952 .L454:
3300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6953 .loc 1 3300 30 is_stmt 1 view .LVU2457
6954 0084 5CEA030C orrs ip, ip, r3
6955 .LVL475:
3300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6956 .loc 1 3300 30 is_stmt 0 view .LVU2458
6957 0088 17D1 bne .L471
3302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6958 .loc 1 3302 9 is_stmt 1 view .LVU2459
3302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6959 .loc 1 3302 12 is_stmt 0 view .LVU2460
6960 008a B5F1FF3F cmp r5, #-1
6961 008e F2D0 beq .L455
3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6962 .loc 1 3304 11 is_stmt 1 view .LVU2461
3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6963 .loc 1 3304 17 is_stmt 0 view .LVU2462
6964 0090 FFF7FEFF bl HAL_GetTick
6965 .LVL476:
3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6966 .loc 1 3304 31 discriminator 1 view .LVU2463
6967 0094 C01B subs r0, r0, r7
3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6968 .loc 1 3304 14 discriminator 1 view .LVU2464
6969 0096 A842 cmp r0, r5
6970 0098 01D8 bhi .L456
3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6971 .loc 1 3304 55 discriminator 1 view .LVU2465
6972 009a 002D cmp r5, #0
6973 009c EBD1 bne .L455
6974 .L456:
3307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6975 .loc 1 3307 13 is_stmt 1 view .LVU2466
3307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6976 .loc 1 3307 25 is_stmt 0 view .LVU2467
6977 009e 2023 movs r3, #32
6978 00a0 86F84130 strb r3, [r6, #65]
3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6979 .loc 1 3310 13 is_stmt 1 view .LVU2468
3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6980 .loc 1 3310 17 is_stmt 0 view .LVU2469
6981 00a4 736C ldr r3, [r6, #68]
3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6982 .loc 1 3310 29 view .LVU2470
6983 00a6 43F02003 orr r3, r3, #32
6984 00aa 7364 str r3, [r6, #68]
3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6985 .loc 1 3313 13 is_stmt 1 view .LVU2471
3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6986 .loc 1 3313 13 view .LVU2472
6987 00ac 0023 movs r3, #0
6988 00ae 86F84030 strb r3, [r6, #64]
3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6989 .loc 1 3313 13 view .LVU2473
ARM GAS /tmp/ccN54YTb.s page 296
3315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6990 .loc 1 3315 13 view .LVU2474
3315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6991 .loc 1 3315 20 is_stmt 0 view .LVU2475
6992 00b2 0120 movs r0, #1
6993 .LVL477:
6994 .L451:
3404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6995 .loc 1 3404 1 view .LVU2476
6996 00b4 04B0 add sp, sp, #16
6997 .cfi_remember_state
6998 .cfi_def_cfa_offset 32
6999 @ sp needed
7000 00b6 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
7001 .LVL478:
7002 .L471:
7003 .cfi_restore_state
3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7004 .loc 1 3324 7 is_stmt 1 view .LVU2477
3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7005 .loc 1 3324 11 is_stmt 0 view .LVU2478
7006 00ba 3368 ldr r3, [r6]
7007 .LVL479:
3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7008 .loc 1 3324 11 view .LVU2479
7009 00bc 9A69 ldr r2, [r3, #24]
3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7010 .loc 1 3324 10 view .LVU2480
7011 00be 12F0100F tst r2, #16
7012 00c2 33D1 bne .L458
3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7013 .loc 1 3327 9 is_stmt 1 view .LVU2481
3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7014 .loc 1 3327 13 is_stmt 0 view .LVU2482
7015 00c4 0097 str r7, [sp]
7016 00c6 2B46 mov r3, r5
7017 00c8 0022 movs r2, #0
7018 00ca 2021 movs r1, #32
7019 00cc 3046 mov r0, r6
7020 00ce FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
7021 .LVL480:
3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7022 .loc 1 3327 12 discriminator 1 view .LVU2483
7023 00d2 10B3 cbz r0, .L459
3330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7024 .loc 1 3330 11 is_stmt 1 view .LVU2484
3330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7025 .loc 1 3330 19 is_stmt 0 view .LVU2485
7026 00d4 736C ldr r3, [r6, #68]
3330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7027 .loc 1 3330 14 view .LVU2486
7028 00d6 042B cmp r3, #4
7029 00d8 19D0 beq .L472
3340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7030 .loc 1 3340 20 view .LVU2487
7031 00da 4FF0010A mov r10, #1
7032 .LVL481:
ARM GAS /tmp/ccN54YTb.s page 297
7033 .L460:
3380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7034 .loc 1 3380 7 is_stmt 1 view .LVU2488
3380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7035 .loc 1 3380 17 is_stmt 0 view .LVU2489
7036 00de 039B ldr r3, [sp, #12]
7037 00e0 0133 adds r3, r3, #1
7038 00e2 0393 str r3, [sp, #12]
3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7039 .loc 1 3382 7 is_stmt 1 view .LVU2490
3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7040 .loc 1 3382 23 is_stmt 0 view .LVU2491
7041 00e4 039B ldr r3, [sp, #12]
3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7042 .loc 1 3382 10 view .LVU2492
7043 00e6 4345 cmp r3, r8
7044 00e8 02D2 bcs .L461
3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7045 .loc 1 3382 33 discriminator 1 view .LVU2493
7046 00ea BAF1000F cmp r10, #0
7047 00ee 2ED1 bne .L473
7048 .LVL482:
7049 .L461:
3387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7050 .loc 1 3387 25 is_stmt 1 view .LVU2494
7051 00f0 039B ldr r3, [sp, #12]
7052 00f2 4345 cmp r3, r8
7053 00f4 A6D3 bcc .L462
3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7054 .loc 1 3390 5 view .LVU2495
3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7055 .loc 1 3390 17 is_stmt 0 view .LVU2496
7056 00f6 2023 movs r3, #32
7057 00f8 86F84130 strb r3, [r6, #65]
3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7058 .loc 1 3393 5 is_stmt 1 view .LVU2497
3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7059 .loc 1 3393 9 is_stmt 0 view .LVU2498
7060 00fc 736C ldr r3, [r6, #68]
3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7061 .loc 1 3393 21 view .LVU2499
7062 00fe 43F02003 orr r3, r3, #32
7063 0102 7364 str r3, [r6, #68]
3396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7064 .loc 1 3396 5 is_stmt 1 view .LVU2500
3396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7065 .loc 1 3396 5 view .LVU2501
7066 0104 0023 movs r3, #0
7067 0106 86F84030 strb r3, [r6, #64]
3396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7068 .loc 1 3396 5 view .LVU2502
3398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7069 .loc 1 3398 5 view .LVU2503
3398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7070 .loc 1 3398 12 is_stmt 0 view .LVU2504
7071 010a 0120 movs r0, #1
7072 010c D2E7 b .L451
ARM GAS /tmp/ccN54YTb.s page 298
7073 .L472:
3333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7074 .loc 1 3333 13 is_stmt 1 view .LVU2505
7075 010e 3368 ldr r3, [r6]
7076 0110 2022 movs r2, #32
7077 0112 DA61 str r2, [r3, #28]
3336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7078 .loc 1 3336 13 view .LVU2506
3336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7079 .loc 1 3336 29 is_stmt 0 view .LVU2507
7080 0114 0023 movs r3, #0
7081 0116 7364 str r3, [r6, #68]
7082 0118 E1E7 b .L460
7083 .L459:
3348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7084 .loc 1 3348 11 is_stmt 1 view .LVU2508
7085 011a 3268 ldr r2, [r6]
7086 011c 2023 movs r3, #32
7087 011e D361 str r3, [r2, #28]
3351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7088 .loc 1 3351 11 view .LVU2509
3351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7089 .loc 1 3351 23 is_stmt 0 view .LVU2510
7090 0120 86F84130 strb r3, [r6, #65]
3354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7091 .loc 1 3354 11 is_stmt 1 view .LVU2511
3354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7092 .loc 1 3354 11 view .LVU2512
7093 0124 0023 movs r3, #0
7094 0126 86F84030 strb r3, [r6, #64]
3354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7095 .loc 1 3354 11 view .LVU2513
3356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7096 .loc 1 3356 11 view .LVU2514
3356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7097 .loc 1 3356 18 is_stmt 0 view .LVU2515
7098 012a C3E7 b .L451
7099 .L458:
3365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7100 .loc 1 3365 9 is_stmt 1 view .LVU2516
7101 012c 1022 movs r2, #16
7102 012e DA61 str r2, [r3, #28]
3368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7103 .loc 1 3368 9 view .LVU2517
3368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7104 .loc 1 3368 13 is_stmt 0 view .LVU2518
7105 0130 0097 str r7, [sp]
7106 0132 2B46 mov r3, r5
7107 0134 0022 movs r2, #0
7108 0136 2021 movs r1, #32
7109 0138 3046 mov r0, r6
7110 013a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
7111 .LVL483:
3368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7112 .loc 1 3368 12 discriminator 1 view .LVU2519
7113 013e 18B9 cbnz r0, .L467
3375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 299
7114 .loc 1 3375 11 is_stmt 1 view .LVU2520
7115 0140 3368 ldr r3, [r6]
7116 0142 2022 movs r2, #32
7117 0144 DA61 str r2, [r3, #28]
7118 0146 CAE7 b .L460
7119 .L467:
3370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7120 .loc 1 3370 18 is_stmt 0 view .LVU2521
7121 0148 4FF0010A mov r10, #1
7122 .LVL484:
3370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7123 .loc 1 3370 18 view .LVU2522
7124 014c C7E7 b .L460
7125 .LVL485:
7126 .L473:
3384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7127 .loc 1 3384 16 view .LVU2523
7128 014e 4FF0000A mov r10, #0
7129 .LVL486:
3384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7130 .loc 1 3384 16 view .LVU2524
7131 0152 CDE7 b .L461
7132 .LVL487:
7133 .L463:
3402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7134 .loc 1 3402 12 view .LVU2525
7135 0154 0220 movs r0, #2
7136 .LVL488:
3402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7137 .loc 1 3402 12 view .LVU2526
7138 0156 ADE7 b .L451
7139 .LVL489:
7140 .L464:
3279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7141 .loc 1 3279 14 view .LVU2527
7142 0158 0220 movs r0, #2
7143 .LVL490:
3279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7144 .loc 1 3279 14 view .LVU2528
7145 015a ABE7 b .L451
7146 .LVL491:
7147 .L465:
3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7148 .loc 1 3283 5 discriminator 1 view .LVU2529
7149 015c 0220 movs r0, #2
7150 .LVL492:
3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7151 .loc 1 3283 5 discriminator 1 view .LVU2530
7152 015e A9E7 b .L451
7153 .L475:
7154 .align 2
7155 .L474:
7156 0160 00280002 .word 33564672
7157 0164 00200002 .word 33562624
7158 .cfi_endproc
7159 .LFE357:
7161 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits
ARM GAS /tmp/ccN54YTb.s page 300
7162 .align 1
7163 .global HAL_I2C_Master_Seq_Transmit_IT
7164 .syntax unified
7165 .thumb
7166 .thumb_func
7168 HAL_I2C_Master_Seq_Transmit_IT:
7169 .LVL493:
7170 .LFB358:
3420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7171 .loc 1 3420 1 is_stmt 1 view -0
7172 .cfi_startproc
7173 @ args = 4, pretend = 0, frame = 0
7174 @ frame_needed = 0, uses_anonymous_args = 0
3420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7175 .loc 1 3420 1 is_stmt 0 view .LVU2532
7176 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
7177 .cfi_def_cfa_offset 24
7178 .cfi_offset 4, -24
7179 .cfi_offset 5, -20
7180 .cfi_offset 6, -16
7181 .cfi_offset 7, -12
7182 .cfi_offset 8, -8
7183 .cfi_offset 14, -4
7184 0004 82B0 sub sp, sp, #8
7185 .cfi_def_cfa_offset 32
7186 0006 0446 mov r4, r0
7187 0008 089E ldr r6, [sp, #32]
3421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
7188 .loc 1 3421 3 is_stmt 1 view .LVU2533
3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
7189 .loc 1 3422 3 view .LVU2534
7190 .LVL494:
3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7191 .loc 1 3423 3 view .LVU2535
3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7192 .loc 1 3426 3 view .LVU2536
3428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7193 .loc 1 3428 3 view .LVU2537
3428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7194 .loc 1 3428 11 is_stmt 0 view .LVU2538
7195 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7196 .LVL495:
3428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7197 .loc 1 3428 6 view .LVU2539
7198 000e 2028 cmp r0, #32
7199 0010 73D1 bne .L485
7200 0012 0D46 mov r5, r1
3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7201 .loc 1 3431 5 is_stmt 1 view .LVU2540
3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7202 .loc 1 3431 5 view .LVU2541
7203 0014 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
7204 .LVL496:
3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7205 .loc 1 3431 5 is_stmt 0 view .LVU2542
7206 0018 0129 cmp r1, #1
7207 001a 70D0 beq .L486
ARM GAS /tmp/ccN54YTb.s page 301
3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7208 .loc 1 3431 5 is_stmt 1 discriminator 2 view .LVU2543
7209 001c 0121 movs r1, #1
7210 001e 84F84010 strb r1, [r4, #64]
3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7211 .loc 1 3431 5 view .LVU2544
3433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7212 .loc 1 3433 5 view .LVU2545
3433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7213 .loc 1 3433 21 is_stmt 0 view .LVU2546
7214 0022 2121 movs r1, #33
7215 0024 84F84110 strb r1, [r4, #65]
3434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7216 .loc 1 3434 5 is_stmt 1 view .LVU2547
3434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7217 .loc 1 3434 21 is_stmt 0 view .LVU2548
7218 0028 1021 movs r1, #16
7219 002a 84F84210 strb r1, [r4, #66]
3435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7220 .loc 1 3435 5 is_stmt 1 view .LVU2549
3435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7221 .loc 1 3435 21 is_stmt 0 view .LVU2550
7222 002e 0021 movs r1, #0
7223 0030 6164 str r1, [r4, #68]
3438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7224 .loc 1 3438 5 is_stmt 1 view .LVU2551
3438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7225 .loc 1 3438 23 is_stmt 0 view .LVU2552
7226 0032 6262 str r2, [r4, #36]
3439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7227 .loc 1 3439 5 is_stmt 1 view .LVU2553
3439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7228 .loc 1 3439 23 is_stmt 0 view .LVU2554
7229 0034 6385 strh r3, [r4, #42] @ movhi
3440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7230 .loc 1 3440 5 is_stmt 1 view .LVU2555
3440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7231 .loc 1 3440 23 is_stmt 0 view .LVU2556
7232 0036 E662 str r6, [r4, #44]
3441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7233 .loc 1 3441 5 is_stmt 1 view .LVU2557
3441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7234 .loc 1 3441 23 is_stmt 0 view .LVU2558
7235 0038 324B ldr r3, .L492
7236 .LVL497:
3441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7237 .loc 1 3441 23 view .LVU2559
7238 003a 6363 str r3, [r4, #52]
3444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7239 .loc 1 3444 5 is_stmt 1 view .LVU2560
3444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7240 .loc 1 3444 13 is_stmt 0 view .LVU2561
7241 003c 638D ldrh r3, [r4, #42]
7242 003e 9BB2 uxth r3, r3
3444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7243 .loc 1 3444 8 view .LVU2562
7244 0040 FF2B cmp r3, #255
ARM GAS /tmp/ccN54YTb.s page 302
7245 0042 1BD9 bls .L478
3446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7246 .loc 1 3446 7 is_stmt 1 view .LVU2563
3446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7247 .loc 1 3446 22 is_stmt 0 view .LVU2564
7248 0044 FF23 movs r3, #255
7249 0046 2385 strh r3, [r4, #40] @ movhi
3447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7250 .loc 1 3447 7 is_stmt 1 view .LVU2565
7251 .LVL498:
3447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7252 .loc 1 3447 16 is_stmt 0 view .LVU2566
7253 0048 4FF08077 mov r7, #16777216
7254 .LVL499:
7255 .L479:
3455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7256 .loc 1 3455 5 is_stmt 1 view .LVU2567
3455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7257 .loc 1 3455 14 is_stmt 0 view .LVU2568
7258 004c 238D ldrh r3, [r4, #40]
3455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7259 .loc 1 3455 8 view .LVU2569
7260 004e CBB1 cbz r3, .L487
3455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7261 .loc 1 3455 31 discriminator 1 view .LVU2570
7262 0050 B6F1007F cmp r6, #33554432
7263 0054 18BF it ne
7264 0056 002E cmpne r6, #0
7265 0058 3FD1 bne .L488
3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7266 .loc 1 3460 7 is_stmt 1 view .LVU2571
3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7267 .loc 1 3460 11 is_stmt 0 view .LVU2572
7268 005a 2368 ldr r3, [r4]
3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7269 .loc 1 3460 30 view .LVU2573
7270 005c 1278 ldrb r2, [r2] @ zero_extendqisi2
7271 .LVL500:
3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7272 .loc 1 3460 28 view .LVU2574
7273 005e 9A62 str r2, [r3, #40]
7274 .LVL501:
3463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7275 .loc 1 3463 7 is_stmt 1 view .LVU2575
3463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7276 .loc 1 3463 11 is_stmt 0 view .LVU2576
7277 0060 636A ldr r3, [r4, #36]
3463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7278 .loc 1 3463 21 view .LVU2577
7279 0062 0133 adds r3, r3, #1
7280 0064 6362 str r3, [r4, #36]
3465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
7281 .loc 1 3465 7 is_stmt 1 view .LVU2578
3465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
7282 .loc 1 3465 24 is_stmt 0 view .LVU2579
7283 0066 B4F82880 ldrh r8, [r4, #40]
7284 .LVL502:
ARM GAS /tmp/ccN54YTb.s page 303
3466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
7285 .loc 1 3466 7 is_stmt 1 view .LVU2580
3466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
7286 .loc 1 3466 11 is_stmt 0 view .LVU2581
7287 006a 638D ldrh r3, [r4, #42]
7288 006c 9BB2 uxth r3, r3
3466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
7289 .loc 1 3466 22 view .LVU2582
7290 006e 013B subs r3, r3, #1
7291 0070 9BB2 uxth r3, r3
7292 0072 6385 strh r3, [r4, #42] @ movhi
3467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7293 .loc 1 3467 7 is_stmt 1 view .LVU2583
3467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7294 .loc 1 3467 21 is_stmt 0 view .LVU2584
7295 0074 08F1FF33 add r3, r8, #-1
7296 0078 2385 strh r3, [r4, #40] @ movhi
7297 007a 05E0 b .L480
7298 .LVL503:
7299 .L478:
3451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7300 .loc 1 3451 7 is_stmt 1 view .LVU2585
3451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7301 .loc 1 3451 28 is_stmt 0 view .LVU2586
7302 007c 638D ldrh r3, [r4, #42]
3451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7303 .loc 1 3451 22 view .LVU2587
7304 007e 2385 strh r3, [r4, #40] @ movhi
3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7305 .loc 1 3452 7 is_stmt 1 view .LVU2588
3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7306 .loc 1 3452 16 is_stmt 0 view .LVU2589
7307 0080 E76A ldr r7, [r4, #44]
7308 0082 E3E7 b .L479
7309 .LVL504:
7310 .L487:
3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7311 .loc 1 3423 12 view .LVU2590
7312 0084 4FF00008 mov r8, #0
7313 .LVL505:
7314 .L480:
3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7315 .loc 1 3473 5 is_stmt 1 view .LVU2591
3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7316 .loc 1 3473 14 is_stmt 0 view .LVU2592
7317 0088 236B ldr r3, [r4, #48]
3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7318 .loc 1 3473 8 view .LVU2593
7319 008a 112B cmp r3, #17
7320 008c 04D1 bne .L481
3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7321 .loc 1 3473 59 discriminator 1 view .LVU2594
7322 008e B6F52A4F cmp r6, #43520
7323 0092 18BF it ne
7324 0094 AA2E cmpne r6, #170
7325 0096 23D1 bne .L489
7326 .L481:
ARM GAS /tmp/ccN54YTb.s page 304
3481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7327 .loc 1 3481 7 is_stmt 1 view .LVU2595
7328 0098 2046 mov r0, r4
7329 009a FFF7FEFF bl I2C_ConvertOtherXferOptions
7330 .LVL506:
3484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7331 .loc 1 3484 7 view .LVU2596
3484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7332 .loc 1 3484 15 is_stmt 0 view .LVU2597
7333 009e 638D ldrh r3, [r4, #42]
7334 00a0 9BB2 uxth r3, r3
3484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7335 .loc 1 3484 10 view .LVU2598
7336 00a2 FF2B cmp r3, #255
7337 00a4 1ED8 bhi .L490
3486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7338 .loc 1 3486 9 is_stmt 1 view .LVU2599
3486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7339 .loc 1 3486 18 is_stmt 0 view .LVU2600
7340 00a6 E76A ldr r7, [r4, #44]
7341 .LVL507:
3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
7342 .loc 1 3422 12 view .LVU2601
7343 00a8 174B ldr r3, .L492+4
7344 .L482:
7345 .LVL508:
3491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7346 .loc 1 3491 5 is_stmt 1 view .LVU2602
3491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7347 .loc 1 3491 8 is_stmt 0 view .LVU2603
7348 00aa B6F1007F cmp r6, #33554432
7349 00ae 18BF it ne
7350 00b0 002E cmpne r6, #0
7351 00b2 19D1 bne .L483
3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7352 .loc 1 3493 7 is_stmt 1 view .LVU2604
7353 00b4 0093 str r3, [sp]
7354 00b6 3B46 mov r3, r7
7355 .LVL509:
3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7356 .loc 1 3493 7 is_stmt 0 view .LVU2605
7357 00b8 5FFA88F2 uxtb r2, r8
7358 00bc 2946 mov r1, r5
7359 00be 2046 mov r0, r4
7360 00c0 FFF7FEFF bl I2C_TransferConfig
7361 .LVL510:
7362 .L484:
3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7363 .loc 1 3501 5 is_stmt 1 view .LVU2606
3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7364 .loc 1 3501 5 view .LVU2607
7365 00c4 0025 movs r5, #0
7366 .LVL511:
3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7367 .loc 1 3501 5 is_stmt 0 view .LVU2608
7368 00c6 84F84050 strb r5, [r4, #64]
3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 305
7369 .loc 1 3501 5 is_stmt 1 view .LVU2609
3510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7370 .loc 1 3510 5 view .LVU2610
7371 00ca 0121 movs r1, #1
7372 00cc 2046 mov r0, r4
7373 00ce FFF7FEFF bl I2C_Enable_IRQ
7374 .LVL512:
3512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7375 .loc 1 3512 5 view .LVU2611
3512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7376 .loc 1 3512 12 is_stmt 0 view .LVU2612
7377 00d2 2846 mov r0, r5
7378 .LVL513:
7379 .L477:
3518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7380 .loc 1 3518 1 view .LVU2613
7381 00d4 02B0 add sp, sp, #8
7382 .cfi_remember_state
7383 .cfi_def_cfa_offset 24
7384 @ sp needed
7385 00d6 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
7386 .LVL514:
7387 .L488:
7388 .cfi_restore_state
3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7389 .loc 1 3423 12 view .LVU2614
7390 00da 4FF00008 mov r8, #0
7391 00de D3E7 b .L480
7392 .LVL515:
7393 .L489:
3476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7394 .loc 1 3476 19 view .LVU2615
7395 00e0 0023 movs r3, #0
7396 00e2 E2E7 b .L482
7397 .L490:
3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
7398 .loc 1 3422 12 view .LVU2616
7399 00e4 084B ldr r3, .L492+4
7400 00e6 E0E7 b .L482
7401 .LVL516:
7402 .L483:
3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7403 .loc 1 3497 7 is_stmt 1 view .LVU2617
7404 00e8 0093 str r3, [sp]
7405 00ea 3B46 mov r3, r7
7406 .LVL517:
3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7407 .loc 1 3497 7 is_stmt 0 view .LVU2618
7408 00ec 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
7409 00f0 2946 mov r1, r5
7410 00f2 2046 mov r0, r4
7411 00f4 FFF7FEFF bl I2C_TransferConfig
7412 .LVL518:
3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7413 .loc 1 3497 7 view .LVU2619
7414 00f8 E4E7 b .L484
7415 .LVL519:
ARM GAS /tmp/ccN54YTb.s page 306
7416 .L485:
3516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7417 .loc 1 3516 12 view .LVU2620
7418 00fa 0220 movs r0, #2
7419 00fc EAE7 b .L477
7420 .LVL520:
7421 .L486:
3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7422 .loc 1 3431 5 discriminator 1 view .LVU2621
7423 00fe 0220 movs r0, #2
7424 0100 E8E7 b .L477
7425 .L493:
7426 0102 00BF .align 2
7427 .L492:
7428 0104 00000000 .word I2C_Master_ISR_IT
7429 0108 00200080 .word -2147475456
7430 .cfi_endproc
7431 .LFE358:
7433 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits
7434 .align 1
7435 .global HAL_I2C_Master_Seq_Transmit_DMA
7436 .syntax unified
7437 .thumb
7438 .thumb_func
7440 HAL_I2C_Master_Seq_Transmit_DMA:
7441 .LVL521:
7442 .LFB359:
3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7443 .loc 1 3534 1 is_stmt 1 view -0
7444 .cfi_startproc
7445 @ args = 4, pretend = 0, frame = 0
7446 @ frame_needed = 0, uses_anonymous_args = 0
3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7447 .loc 1 3534 1 is_stmt 0 view .LVU2623
7448 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr}
7449 .cfi_def_cfa_offset 28
7450 .cfi_offset 4, -28
7451 .cfi_offset 5, -24
7452 .cfi_offset 6, -20
7453 .cfi_offset 7, -16
7454 .cfi_offset 8, -12
7455 .cfi_offset 9, -8
7456 .cfi_offset 14, -4
7457 0004 83B0 sub sp, sp, #12
7458 .cfi_def_cfa_offset 40
7459 0006 0446 mov r4, r0
7460 0008 0A9E ldr r6, [sp, #40]
3535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
7461 .loc 1 3535 3 is_stmt 1 view .LVU2624
3536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7462 .loc 1 3536 3 view .LVU2625
7463 .LVL522:
3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
7464 .loc 1 3537 3 view .LVU2626
3538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7465 .loc 1 3538 3 view .LVU2627
3541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 307
7466 .loc 1 3541 3 view .LVU2628
3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7467 .loc 1 3543 3 view .LVU2629
3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7468 .loc 1 3543 11 is_stmt 0 view .LVU2630
7469 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7470 .LVL523:
3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7471 .loc 1 3543 6 view .LVU2631
7472 000e 2028 cmp r0, #32
7473 0010 40F0D780 bne .L510
7474 0014 0D46 mov r5, r1
3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7475 .loc 1 3546 5 is_stmt 1 view .LVU2632
3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7476 .loc 1 3546 5 view .LVU2633
7477 0016 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
7478 .LVL524:
3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7479 .loc 1 3546 5 is_stmt 0 view .LVU2634
7480 001a 0129 cmp r1, #1
7481 001c 00F0D580 beq .L511
3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7482 .loc 1 3546 5 is_stmt 1 discriminator 2 view .LVU2635
7483 0020 0121 movs r1, #1
7484 0022 84F84010 strb r1, [r4, #64]
3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7485 .loc 1 3546 5 view .LVU2636
3548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7486 .loc 1 3548 5 view .LVU2637
3548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7487 .loc 1 3548 21 is_stmt 0 view .LVU2638
7488 0026 2121 movs r1, #33
7489 0028 84F84110 strb r1, [r4, #65]
3549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7490 .loc 1 3549 5 is_stmt 1 view .LVU2639
3549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7491 .loc 1 3549 21 is_stmt 0 view .LVU2640
7492 002c 1021 movs r1, #16
7493 002e 84F84210 strb r1, [r4, #66]
3550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7494 .loc 1 3550 5 is_stmt 1 view .LVU2641
3550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7495 .loc 1 3550 21 is_stmt 0 view .LVU2642
7496 0032 0021 movs r1, #0
7497 0034 6164 str r1, [r4, #68]
3553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7498 .loc 1 3553 5 is_stmt 1 view .LVU2643
3553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7499 .loc 1 3553 23 is_stmt 0 view .LVU2644
7500 0036 6262 str r2, [r4, #36]
3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7501 .loc 1 3554 5 is_stmt 1 view .LVU2645
3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7502 .loc 1 3554 23 is_stmt 0 view .LVU2646
7503 0038 6385 strh r3, [r4, #42] @ movhi
3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
ARM GAS /tmp/ccN54YTb.s page 308
7504 .loc 1 3555 5 is_stmt 1 view .LVU2647
3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
7505 .loc 1 3555 23 is_stmt 0 view .LVU2648
7506 003a E662 str r6, [r4, #44]
3556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7507 .loc 1 3556 5 is_stmt 1 view .LVU2649
3556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7508 .loc 1 3556 23 is_stmt 0 view .LVU2650
7509 003c 644B ldr r3, .L518
7510 .LVL525:
3556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7511 .loc 1 3556 23 view .LVU2651
7512 003e 6363 str r3, [r4, #52]
3559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7513 .loc 1 3559 5 is_stmt 1 view .LVU2652
3559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7514 .loc 1 3559 13 is_stmt 0 view .LVU2653
7515 0040 638D ldrh r3, [r4, #42]
7516 0042 9BB2 uxth r3, r3
3559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7517 .loc 1 3559 8 view .LVU2654
7518 0044 FF2B cmp r3, #255
7519 0046 1BD9 bls .L496
3561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7520 .loc 1 3561 7 is_stmt 1 view .LVU2655
3561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7521 .loc 1 3561 22 is_stmt 0 view .LVU2656
7522 0048 FF23 movs r3, #255
7523 004a 2385 strh r3, [r4, #40] @ movhi
3562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7524 .loc 1 3562 7 is_stmt 1 view .LVU2657
7525 .LVL526:
3562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7526 .loc 1 3562 16 is_stmt 0 view .LVU2658
7527 004c 4FF08077 mov r7, #16777216
7528 .LVL527:
7529 .L497:
3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7530 .loc 1 3570 5 is_stmt 1 view .LVU2659
3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7531 .loc 1 3570 14 is_stmt 0 view .LVU2660
7532 0050 238D ldrh r3, [r4, #40]
3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7533 .loc 1 3570 8 view .LVU2661
7534 0052 CBB1 cbz r3, .L512
3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7535 .loc 1 3570 31 discriminator 1 view .LVU2662
7536 0054 B6F1007F cmp r6, #33554432
7537 0058 18BF it ne
7538 005a 002E cmpne r6, #0
7539 005c 29D1 bne .L513
3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7540 .loc 1 3575 7 is_stmt 1 view .LVU2663
3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7541 .loc 1 3575 11 is_stmt 0 view .LVU2664
7542 005e 2368 ldr r3, [r4]
3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 309
7543 .loc 1 3575 30 view .LVU2665
7544 0060 1278 ldrb r2, [r2] @ zero_extendqisi2
7545 .LVL528:
3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7546 .loc 1 3575 28 view .LVU2666
7547 0062 9A62 str r2, [r3, #40]
7548 .LVL529:
3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7549 .loc 1 3578 7 is_stmt 1 view .LVU2667
3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7550 .loc 1 3578 11 is_stmt 0 view .LVU2668
7551 0064 636A ldr r3, [r4, #36]
3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7552 .loc 1 3578 21 view .LVU2669
7553 0066 0133 adds r3, r3, #1
7554 0068 6362 str r3, [r4, #36]
3580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
7555 .loc 1 3580 7 is_stmt 1 view .LVU2670
3580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
7556 .loc 1 3580 24 is_stmt 0 view .LVU2671
7557 006a B4F82880 ldrh r8, [r4, #40]
7558 .LVL530:
3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
7559 .loc 1 3581 7 is_stmt 1 view .LVU2672
3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
7560 .loc 1 3581 11 is_stmt 0 view .LVU2673
7561 006e 638D ldrh r3, [r4, #42]
7562 0070 9BB2 uxth r3, r3
3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
7563 .loc 1 3581 22 view .LVU2674
7564 0072 013B subs r3, r3, #1
7565 0074 9BB2 uxth r3, r3
7566 0076 6385 strh r3, [r4, #42] @ movhi
3582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7567 .loc 1 3582 7 is_stmt 1 view .LVU2675
3582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7568 .loc 1 3582 21 is_stmt 0 view .LVU2676
7569 0078 08F1FF33 add r3, r8, #-1
7570 007c 2385 strh r3, [r4, #40] @ movhi
7571 007e 05E0 b .L498
7572 .LVL531:
7573 .L496:
3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7574 .loc 1 3566 7 is_stmt 1 view .LVU2677
3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7575 .loc 1 3566 28 is_stmt 0 view .LVU2678
7576 0080 638D ldrh r3, [r4, #42]
3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7577 .loc 1 3566 22 view .LVU2679
7578 0082 2385 strh r3, [r4, #40] @ movhi
3567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7579 .loc 1 3567 7 is_stmt 1 view .LVU2680
3567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7580 .loc 1 3567 16 is_stmt 0 view .LVU2681
7581 0084 E76A ldr r7, [r4, #44]
7582 0086 E3E7 b .L497
7583 .LVL532:
ARM GAS /tmp/ccN54YTb.s page 310
7584 .L512:
3538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7585 .loc 1 3538 12 view .LVU2682
7586 0088 4FF00008 mov r8, #0
7587 .LVL533:
7588 .L498:
3588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7589 .loc 1 3588 5 is_stmt 1 view .LVU2683
3588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7590 .loc 1 3588 14 is_stmt 0 view .LVU2684
7591 008c 236B ldr r3, [r4, #48]
3588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7592 .loc 1 3588 8 view .LVU2685
7593 008e 112B cmp r3, #17
7594 0090 04D1 bne .L499
3588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7595 .loc 1 3588 59 discriminator 1 view .LVU2686
7596 0092 B6F52A4F cmp r6, #43520
7597 0096 18BF it ne
7598 0098 AA2E cmpne r6, #170
7599 009a 0DD1 bne .L514
7600 .L499:
3596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7601 .loc 1 3596 7 is_stmt 1 view .LVU2687
7602 009c 2046 mov r0, r4
7603 009e FFF7FEFF bl I2C_ConvertOtherXferOptions
7604 .LVL534:
3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7605 .loc 1 3599 7 view .LVU2688
3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7606 .loc 1 3599 15 is_stmt 0 view .LVU2689
7607 00a2 638D ldrh r3, [r4, #42]
7608 00a4 9BB2 uxth r3, r3
3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7609 .loc 1 3599 10 view .LVU2690
7610 00a6 FF2B cmp r3, #255
7611 00a8 09D8 bhi .L515
3601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7612 .loc 1 3601 9 is_stmt 1 view .LVU2691
3601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7613 .loc 1 3601 18 is_stmt 0 view .LVU2692
7614 00aa E76A ldr r7, [r4, #44]
7615 .LVL535:
3536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7616 .loc 1 3536 12 view .LVU2693
7617 00ac DFF83091 ldr r9, .L518+16
7618 00b0 07E0 b .L500
7619 .LVL536:
7620 .L513:
3538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7621 .loc 1 3538 12 view .LVU2694
7622 00b2 4FF00008 mov r8, #0
7623 00b6 E9E7 b .L498
7624 .LVL537:
7625 .L514:
3591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7626 .loc 1 3591 19 view .LVU2695
ARM GAS /tmp/ccN54YTb.s page 311
7627 00b8 4FF00009 mov r9, #0
7628 00bc 01E0 b .L500
7629 .L515:
3536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7630 .loc 1 3536 12 view .LVU2696
7631 00be DFF82091 ldr r9, .L518+16
7632 .L500:
7633 .LVL538:
3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7634 .loc 1 3605 5 is_stmt 1 view .LVU2697
3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7635 .loc 1 3605 13 is_stmt 0 view .LVU2698
7636 00c2 228D ldrh r2, [r4, #40]
3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7637 .loc 1 3605 8 view .LVU2699
7638 00c4 002A cmp r2, #0
7639 00c6 5AD0 beq .L501
3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7640 .loc 1 3607 7 is_stmt 1 view .LVU2700
3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7641 .loc 1 3607 15 is_stmt 0 view .LVU2701
7642 00c8 A36B ldr r3, [r4, #56]
3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7643 .loc 1 3607 10 view .LVU2702
7644 00ca FBB1 cbz r3, .L502
3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7645 .loc 1 3610 9 is_stmt 1 view .LVU2703
3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7646 .loc 1 3610 40 is_stmt 0 view .LVU2704
7647 00cc 414A ldr r2, .L518+4
7648 00ce DA63 str r2, [r3, #60]
3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7649 .loc 1 3613 9 is_stmt 1 view .LVU2705
3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7650 .loc 1 3613 13 is_stmt 0 view .LVU2706
7651 00d0 A36B ldr r3, [r4, #56]
3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7652 .loc 1 3613 41 view .LVU2707
7653 00d2 414A ldr r2, .L518+8
7654 00d4 DA64 str r2, [r3, #76]
3616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7655 .loc 1 3616 9 is_stmt 1 view .LVU2708
3616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7656 .loc 1 3616 13 is_stmt 0 view .LVU2709
7657 00d6 A26B ldr r2, [r4, #56]
3616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7658 .loc 1 3616 44 view .LVU2710
7659 00d8 0023 movs r3, #0
7660 00da 1364 str r3, [r2, #64]
3617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7661 .loc 1 3617 9 is_stmt 1 view .LVU2711
3617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7662 .loc 1 3617 13 is_stmt 0 view .LVU2712
7663 00dc A26B ldr r2, [r4, #56]
3617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7664 .loc 1 3617 41 view .LVU2713
7665 00de 1365 str r3, [r2, #80]
ARM GAS /tmp/ccN54YTb.s page 312
3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
7666 .loc 1 3620 9 is_stmt 1 view .LVU2714
3621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7667 .loc 1 3621 57 is_stmt 0 view .LVU2715
7668 00e0 2268 ldr r2, [r4]
3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
7669 .loc 1 3620 25 view .LVU2716
7670 00e2 238D ldrh r3, [r4, #40]
7671 00e4 2832 adds r2, r2, #40
7672 00e6 616A ldr r1, [r4, #36]
7673 00e8 A06B ldr r0, [r4, #56]
7674 00ea FFF7FEFF bl HAL_DMA_Start_IT
7675 .LVL539:
3638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7676 .loc 1 3638 7 is_stmt 1 view .LVU2717
3638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7677 .loc 1 3638 10 is_stmt 0 view .LVU2718
7678 00ee D8B1 cbz r0, .L503
3668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7679 .loc 1 3668 9 is_stmt 1 view .LVU2719
3668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7680 .loc 1 3668 25 is_stmt 0 view .LVU2720
7681 00f0 2023 movs r3, #32
7682 00f2 84F84130 strb r3, [r4, #65]
3669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7683 .loc 1 3669 9 is_stmt 1 view .LVU2721
3669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7684 .loc 1 3669 25 is_stmt 0 view .LVU2722
7685 00f6 0022 movs r2, #0
7686 00f8 84F84220 strb r2, [r4, #66]
3672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7687 .loc 1 3672 9 is_stmt 1 view .LVU2723
3672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7688 .loc 1 3672 13 is_stmt 0 view .LVU2724
7689 00fc 636C ldr r3, [r4, #68]
3672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7690 .loc 1 3672 25 view .LVU2725
7691 00fe 43F01003 orr r3, r3, #16
7692 0102 6364 str r3, [r4, #68]
3675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7693 .loc 1 3675 9 is_stmt 1 view .LVU2726
3675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7694 .loc 1 3675 9 view .LVU2727
7695 0104 84F84020 strb r2, [r4, #64]
3675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7696 .loc 1 3675 9 view .LVU2728
3677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7697 .loc 1 3677 9 view .LVU2729
3677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7698 .loc 1 3677 16 is_stmt 0 view .LVU2730
7699 0108 0120 movs r0, #1
7700 .LVL540:
3677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7701 .loc 1 3677 16 view .LVU2731
7702 010a 5BE0 b .L495
7703 .LVL541:
7704 .L502:
ARM GAS /tmp/ccN54YTb.s page 313
3626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7705 .loc 1 3626 9 is_stmt 1 view .LVU2732
3626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7706 .loc 1 3626 25 is_stmt 0 view .LVU2733
7707 010c 2023 movs r3, #32
7708 010e 84F84130 strb r3, [r4, #65]
3627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7709 .loc 1 3627 9 is_stmt 1 view .LVU2734
3627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7710 .loc 1 3627 25 is_stmt 0 view .LVU2735
7711 0112 0022 movs r2, #0
7712 0114 84F84220 strb r2, [r4, #66]
3630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7713 .loc 1 3630 9 is_stmt 1 view .LVU2736
3630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7714 .loc 1 3630 13 is_stmt 0 view .LVU2737
7715 0118 636C ldr r3, [r4, #68]
3630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7716 .loc 1 3630 25 view .LVU2738
7717 011a 43F08003 orr r3, r3, #128
7718 011e 6364 str r3, [r4, #68]
3633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7719 .loc 1 3633 9 is_stmt 1 view .LVU2739
3633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7720 .loc 1 3633 9 view .LVU2740
7721 0120 84F84020 strb r2, [r4, #64]
3633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7722 .loc 1 3633 9 view .LVU2741
3635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7723 .loc 1 3635 9 view .LVU2742
3635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7724 .loc 1 3635 16 is_stmt 0 view .LVU2743
7725 0124 0120 movs r0, #1
7726 0126 4DE0 b .L495
7727 .LVL542:
7728 .L503:
3641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7729 .loc 1 3641 9 is_stmt 1 view .LVU2744
3641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7730 .loc 1 3641 12 is_stmt 0 view .LVU2745
7731 0128 B6F1007F cmp r6, #33554432
7732 012c 18BF it ne
7733 012e 002E cmpne r6, #0
7734 0130 1BD1 bne .L505
3643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7735 .loc 1 3643 11 is_stmt 1 view .LVU2746
7736 0132 CDF80090 str r9, [sp]
7737 0136 3B46 mov r3, r7
7738 0138 5FFA88F2 uxtb r2, r8
7739 013c 2946 mov r1, r5
7740 013e 2046 mov r0, r4
7741 .LVL543:
3643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7742 .loc 1 3643 11 is_stmt 0 view .LVU2747
7743 0140 FFF7FEFF bl I2C_TransferConfig
7744 .LVL544:
7745 .L506:
ARM GAS /tmp/ccN54YTb.s page 314
3651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7746 .loc 1 3651 9 is_stmt 1 view .LVU2748
3651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7747 .loc 1 3651 13 is_stmt 0 view .LVU2749
7748 0144 638D ldrh r3, [r4, #42]
7749 0146 9BB2 uxth r3, r3
3651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7750 .loc 1 3651 32 view .LVU2750
7751 0148 228D ldrh r2, [r4, #40]
3651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7752 .loc 1 3651 25 view .LVU2751
7753 014a 9B1A subs r3, r3, r2
7754 014c 9BB2 uxth r3, r3
7755 014e 6385 strh r3, [r4, #42] @ movhi
3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7756 .loc 1 3654 9 is_stmt 1 view .LVU2752
3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7757 .loc 1 3654 9 view .LVU2753
7758 0150 0023 movs r3, #0
7759 0152 84F84030 strb r3, [r4, #64]
3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7760 .loc 1 3654 9 view .LVU2754
3660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7761 .loc 1 3660 9 view .LVU2755
7762 0156 1021 movs r1, #16
7763 0158 2046 mov r0, r4
7764 015a FFF7FEFF bl I2C_Enable_IRQ
7765 .LVL545:
3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7766 .loc 1 3663 9 view .LVU2756
3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7767 .loc 1 3663 13 is_stmt 0 view .LVU2757
7768 015e 2268 ldr r2, [r4]
3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7769 .loc 1 3663 23 view .LVU2758
7770 0160 1368 ldr r3, [r2]
3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7771 .loc 1 3663 29 view .LVU2759
7772 0162 43F48043 orr r3, r3, #16384
7773 0166 1360 str r3, [r2]
7774 0168 20E0 b .L507
7775 .LVL546:
7776 .L505:
3647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7777 .loc 1 3647 11 is_stmt 1 view .LVU2760
7778 016a CDF80090 str r9, [sp]
7779 016e 3B46 mov r3, r7
7780 0170 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
7781 0174 2946 mov r1, r5
7782 0176 2046 mov r0, r4
7783 .LVL547:
3647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7784 .loc 1 3647 11 is_stmt 0 view .LVU2761
7785 0178 FFF7FEFF bl I2C_TransferConfig
7786 .LVL548:
7787 017c E2E7 b .L506
7788 .LVL549:
ARM GAS /tmp/ccN54YTb.s page 315
7789 .L501:
3683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7790 .loc 1 3683 7 is_stmt 1 view .LVU2762
3683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7791 .loc 1 3683 21 is_stmt 0 view .LVU2763
7792 017e 174B ldr r3, .L518+12
7793 0180 6363 str r3, [r4, #52]
3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7794 .loc 1 3687 7 is_stmt 1 view .LVU2764
3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7795 .loc 1 3687 10 is_stmt 0 view .LVU2765
7796 0182 B6F1007F cmp r6, #33554432
7797 0186 18BF it ne
7798 0188 002E cmpne r6, #0
7799 018a 11D1 bne .L508
3689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7800 .loc 1 3689 9 is_stmt 1 view .LVU2766
7801 018c CDF80090 str r9, [sp]
7802 0190 3B46 mov r3, r7
7803 0192 5FFA88F2 uxtb r2, r8
7804 0196 2946 mov r1, r5
7805 0198 2046 mov r0, r4
7806 019a FFF7FEFF bl I2C_TransferConfig
7807 .LVL550:
7808 .L509:
3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7809 .loc 1 3697 7 view .LVU2767
3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7810 .loc 1 3697 7 view .LVU2768
7811 019e 0023 movs r3, #0
7812 01a0 84F84030 strb r3, [r4, #64]
3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7813 .loc 1 3697 7 view .LVU2769
3706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7814 .loc 1 3706 7 view .LVU2770
7815 01a4 0121 movs r1, #1
7816 01a6 2046 mov r0, r4
7817 01a8 FFF7FEFF bl I2C_Enable_IRQ
7818 .LVL551:
7819 .L507:
3709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7820 .loc 1 3709 5 view .LVU2771
3709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7821 .loc 1 3709 12 is_stmt 0 view .LVU2772
7822 01ac 0020 movs r0, #0
7823 01ae 09E0 b .L495
7824 .L508:
3693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7825 .loc 1 3693 9 is_stmt 1 view .LVU2773
7826 01b0 CDF80090 str r9, [sp]
7827 01b4 3B46 mov r3, r7
7828 01b6 D2B2 uxtb r2, r2
7829 01b8 2946 mov r1, r5
7830 01ba 2046 mov r0, r4
7831 01bc FFF7FEFF bl I2C_TransferConfig
7832 .LVL552:
7833 01c0 EDE7 b .L509
ARM GAS /tmp/ccN54YTb.s page 316
7834 .LVL553:
7835 .L510:
3713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7836 .loc 1 3713 12 is_stmt 0 view .LVU2774
7837 01c2 0220 movs r0, #2
7838 .LVL554:
7839 .L495:
3715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7840 .loc 1 3715 1 view .LVU2775
7841 01c4 03B0 add sp, sp, #12
7842 .cfi_remember_state
7843 .cfi_def_cfa_offset 28
7844 @ sp needed
7845 01c6 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc}
7846 .LVL555:
7847 .L511:
7848 .cfi_restore_state
3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7849 .loc 1 3546 5 discriminator 1 view .LVU2776
7850 01ca 0220 movs r0, #2
7851 01cc FAE7 b .L495
7852 .L519:
7853 01ce 00BF .align 2
7854 .L518:
7855 01d0 00000000 .word I2C_Master_ISR_DMA
7856 01d4 00000000 .word I2C_DMAMasterTransmitCplt
7857 01d8 00000000 .word I2C_DMAError
7858 01dc 00000000 .word I2C_Master_ISR_IT
7859 01e0 00200080 .word -2147475456
7860 .cfi_endproc
7861 .LFE359:
7863 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits
7864 .align 1
7865 .global HAL_I2C_Master_Seq_Receive_IT
7866 .syntax unified
7867 .thumb
7868 .thumb_func
7870 HAL_I2C_Master_Seq_Receive_IT:
7871 .LVL556:
7872 .LFB360:
3731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7873 .loc 1 3731 1 is_stmt 1 view -0
7874 .cfi_startproc
7875 @ args = 4, pretend = 0, frame = 0
7876 @ frame_needed = 0, uses_anonymous_args = 0
3731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7877 .loc 1 3731 1 is_stmt 0 view .LVU2778
7878 0000 70B5 push {r4, r5, r6, lr}
7879 .cfi_def_cfa_offset 16
7880 .cfi_offset 4, -16
7881 .cfi_offset 5, -12
7882 .cfi_offset 6, -8
7883 .cfi_offset 14, -4
7884 0002 82B0 sub sp, sp, #8
7885 .cfi_def_cfa_offset 24
7886 0004 0446 mov r4, r0
7887 0006 0D46 mov r5, r1
ARM GAS /tmp/ccN54YTb.s page 317
7888 0008 0699 ldr r1, [sp, #24]
7889 .LVL557:
3732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
7890 .loc 1 3732 3 is_stmt 1 view .LVU2779
3733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7891 .loc 1 3733 3 view .LVU2780
3736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7892 .loc 1 3736 3 view .LVU2781
3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7893 .loc 1 3738 3 view .LVU2782
3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7894 .loc 1 3738 11 is_stmt 0 view .LVU2783
7895 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7896 .LVL558:
3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7897 .loc 1 3738 6 view .LVU2784
7898 000e 2028 cmp r0, #32
7899 0010 46D1 bne .L526
3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7900 .loc 1 3741 5 is_stmt 1 view .LVU2785
3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7901 .loc 1 3741 5 view .LVU2786
7902 0012 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2
7903 0016 0128 cmp r0, #1
7904 0018 44D0 beq .L527
3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7905 .loc 1 3741 5 discriminator 2 view .LVU2787
7906 001a 0120 movs r0, #1
7907 001c 84F84000 strb r0, [r4, #64]
3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7908 .loc 1 3741 5 view .LVU2788
3743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7909 .loc 1 3743 5 view .LVU2789
3743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7910 .loc 1 3743 21 is_stmt 0 view .LVU2790
7911 0020 2220 movs r0, #34
7912 0022 84F84100 strb r0, [r4, #65]
3744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7913 .loc 1 3744 5 is_stmt 1 view .LVU2791
3744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7914 .loc 1 3744 21 is_stmt 0 view .LVU2792
7915 0026 1020 movs r0, #16
7916 0028 84F84200 strb r0, [r4, #66]
3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7917 .loc 1 3745 5 is_stmt 1 view .LVU2793
3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7918 .loc 1 3745 21 is_stmt 0 view .LVU2794
7919 002c 0020 movs r0, #0
7920 002e 6064 str r0, [r4, #68]
3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7921 .loc 1 3748 5 is_stmt 1 view .LVU2795
3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7922 .loc 1 3748 23 is_stmt 0 view .LVU2796
7923 0030 6262 str r2, [r4, #36]
3749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7924 .loc 1 3749 5 is_stmt 1 view .LVU2797
3749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
ARM GAS /tmp/ccN54YTb.s page 318
7925 .loc 1 3749 23 is_stmt 0 view .LVU2798
7926 0032 6385 strh r3, [r4, #42] @ movhi
3750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7927 .loc 1 3750 5 is_stmt 1 view .LVU2799
3750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7928 .loc 1 3750 23 is_stmt 0 view .LVU2800
7929 0034 E162 str r1, [r4, #44]
3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7930 .loc 1 3751 5 is_stmt 1 view .LVU2801
3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7931 .loc 1 3751 23 is_stmt 0 view .LVU2802
7932 0036 1C4B ldr r3, .L531
7933 .LVL559:
3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7934 .loc 1 3751 23 view .LVU2803
7935 0038 6363 str r3, [r4, #52]
3754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7936 .loc 1 3754 5 is_stmt 1 view .LVU2804
3754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7937 .loc 1 3754 13 is_stmt 0 view .LVU2805
7938 003a 638D ldrh r3, [r4, #42]
7939 003c 9BB2 uxth r3, r3
3754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7940 .loc 1 3754 8 view .LVU2806
7941 003e FF2B cmp r3, #255
7942 0040 26D9 bls .L522
3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7943 .loc 1 3756 7 is_stmt 1 view .LVU2807
3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7944 .loc 1 3756 22 is_stmt 0 view .LVU2808
7945 0042 FF23 movs r3, #255
7946 0044 2385 strh r3, [r4, #40] @ movhi
3757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7947 .loc 1 3757 7 is_stmt 1 view .LVU2809
7948 .LVL560:
3757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7949 .loc 1 3757 16 is_stmt 0 view .LVU2810
7950 0046 4FF08076 mov r6, #16777216
7951 .LVL561:
7952 .L523:
3768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7953 .loc 1 3768 5 is_stmt 1 view .LVU2811
3768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7954 .loc 1 3768 14 is_stmt 0 view .LVU2812
7955 004a 236B ldr r3, [r4, #48]
3768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7956 .loc 1 3768 8 view .LVU2813
7957 004c 122B cmp r3, #18
7958 004e 04D1 bne .L524
3768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7959 .loc 1 3768 59 discriminator 1 view .LVU2814
7960 0050 B1F52A4F cmp r1, #43520
7961 0054 18BF it ne
7962 0056 AA29 cmpne r1, #170
7963 0058 1ED1 bne .L528
7964 .L524:
3776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 319
7965 .loc 1 3776 7 is_stmt 1 view .LVU2815
7966 005a 2046 mov r0, r4
7967 005c FFF7FEFF bl I2C_ConvertOtherXferOptions
7968 .LVL562:
3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7969 .loc 1 3779 7 view .LVU2816
3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7970 .loc 1 3779 15 is_stmt 0 view .LVU2817
7971 0060 638D ldrh r3, [r4, #42]
7972 0062 9BB2 uxth r3, r3
3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7973 .loc 1 3779 10 view .LVU2818
7974 0064 FF2B cmp r3, #255
7975 0066 19D8 bhi .L529
3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7976 .loc 1 3781 9 is_stmt 1 view .LVU2819
3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7977 .loc 1 3781 18 is_stmt 0 view .LVU2820
7978 0068 E66A ldr r6, [r4, #44]
7979 .LVL563:
3733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7980 .loc 1 3733 12 view .LVU2821
7981 006a 104B ldr r3, .L531+4
7982 .L525:
7983 .LVL564:
3786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7984 .loc 1 3786 5 is_stmt 1 view .LVU2822
7985 006c 0093 str r3, [sp]
7986 006e 3346 mov r3, r6
7987 .LVL565:
3786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7988 .loc 1 3786 5 is_stmt 0 view .LVU2823
7989 0070 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
7990 0074 2946 mov r1, r5
7991 0076 2046 mov r0, r4
7992 0078 FFF7FEFF bl I2C_TransferConfig
7993 .LVL566:
3789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7994 .loc 1 3789 5 is_stmt 1 view .LVU2824
3789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7995 .loc 1 3789 5 view .LVU2825
7996 007c 0025 movs r5, #0
7997 .LVL567:
3789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7998 .loc 1 3789 5 is_stmt 0 view .LVU2826
7999 007e 84F84050 strb r5, [r4, #64]
3789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8000 .loc 1 3789 5 is_stmt 1 view .LVU2827
3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8001 .loc 1 3794 5 view .LVU2828
8002 0082 0221 movs r1, #2
8003 0084 2046 mov r0, r4
8004 0086 FFF7FEFF bl I2C_Enable_IRQ
8005 .LVL568:
3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8006 .loc 1 3796 5 view .LVU2829
3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 320
8007 .loc 1 3796 12 is_stmt 0 view .LVU2830
8008 008a 2846 mov r0, r5
8009 .LVL569:
8010 .L521:
3802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8011 .loc 1 3802 1 view .LVU2831
8012 008c 02B0 add sp, sp, #8
8013 .cfi_remember_state
8014 .cfi_def_cfa_offset 16
8015 @ sp needed
8016 008e 70BD pop {r4, r5, r6, pc}
8017 .LVL570:
8018 .L522:
8019 .cfi_restore_state
3761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
8020 .loc 1 3761 7 is_stmt 1 view .LVU2832
3761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
8021 .loc 1 3761 28 is_stmt 0 view .LVU2833
8022 0090 638D ldrh r3, [r4, #42]
3761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
8023 .loc 1 3761 22 view .LVU2834
8024 0092 2385 strh r3, [r4, #40] @ movhi
3762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8025 .loc 1 3762 7 is_stmt 1 view .LVU2835
3762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8026 .loc 1 3762 16 is_stmt 0 view .LVU2836
8027 0094 E66A ldr r6, [r4, #44]
8028 0096 D8E7 b .L523
8029 .LVL571:
8030 .L528:
3771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8031 .loc 1 3771 19 view .LVU2837
8032 0098 0023 movs r3, #0
8033 009a E7E7 b .L525
8034 .LVL572:
8035 .L529:
3733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8036 .loc 1 3733 12 view .LVU2838
8037 009c 034B ldr r3, .L531+4
8038 009e E5E7 b .L525
8039 .LVL573:
8040 .L526:
3800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8041 .loc 1 3800 12 view .LVU2839
8042 00a0 0220 movs r0, #2
8043 00a2 F3E7 b .L521
8044 .L527:
3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8045 .loc 1 3741 5 discriminator 1 view .LVU2840
8046 00a4 0220 movs r0, #2
8047 00a6 F1E7 b .L521
8048 .L532:
8049 .align 2
8050 .L531:
8051 00a8 00000000 .word I2C_Master_ISR_IT
8052 00ac 00240080 .word -2147474432
8053 .cfi_endproc
ARM GAS /tmp/ccN54YTb.s page 321
8054 .LFE360:
8056 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits
8057 .align 1
8058 .global HAL_I2C_Master_Seq_Receive_DMA
8059 .syntax unified
8060 .thumb
8061 .thumb_func
8063 HAL_I2C_Master_Seq_Receive_DMA:
8064 .LVL574:
8065 .LFB361:
3818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
8066 .loc 1 3818 1 is_stmt 1 view -0
8067 .cfi_startproc
8068 @ args = 4, pretend = 0, frame = 0
8069 @ frame_needed = 0, uses_anonymous_args = 0
3818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
8070 .loc 1 3818 1 is_stmt 0 view .LVU2842
8071 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
8072 .cfi_def_cfa_offset 24
8073 .cfi_offset 4, -24
8074 .cfi_offset 5, -20
8075 .cfi_offset 6, -16
8076 .cfi_offset 7, -12
8077 .cfi_offset 8, -8
8078 .cfi_offset 14, -4
8079 0004 82B0 sub sp, sp, #8
8080 .cfi_def_cfa_offset 32
8081 0006 0E46 mov r6, r1
8082 0008 1546 mov r5, r2
8083 000a 089A ldr r2, [sp, #32]
8084 .LVL575:
3819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
8085 .loc 1 3819 3 is_stmt 1 view .LVU2843
3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8086 .loc 1 3820 3 view .LVU2844
3821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8087 .loc 1 3821 3 view .LVU2845
3824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8088 .loc 1 3824 3 view .LVU2846
3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8089 .loc 1 3826 3 view .LVU2847
3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8090 .loc 1 3826 11 is_stmt 0 view .LVU2848
8091 000c 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
8092 .LVL576:
3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8093 .loc 1 3826 6 view .LVU2849
8094 0010 2029 cmp r1, #32
8095 0012 40F09D80 bne .L544
8096 0016 0446 mov r4, r0
3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8097 .loc 1 3829 5 is_stmt 1 view .LVU2850
3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8098 .loc 1 3829 5 view .LVU2851
8099 0018 90F84010 ldrb r1, [r0, #64] @ zero_extendqisi2
8100 001c 0129 cmp r1, #1
8101 001e 00F09B80 beq .L545
ARM GAS /tmp/ccN54YTb.s page 322
3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8102 .loc 1 3829 5 discriminator 2 view .LVU2852
8103 0022 0121 movs r1, #1
8104 0024 80F84010 strb r1, [r0, #64]
3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8105 .loc 1 3829 5 view .LVU2853
3831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
8106 .loc 1 3831 5 view .LVU2854
3831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
8107 .loc 1 3831 21 is_stmt 0 view .LVU2855
8108 0028 2221 movs r1, #34
8109 002a 80F84110 strb r1, [r0, #65]
3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8110 .loc 1 3832 5 is_stmt 1 view .LVU2856
3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8111 .loc 1 3832 21 is_stmt 0 view .LVU2857
8112 002e 1021 movs r1, #16
8113 0030 80F84210 strb r1, [r0, #66]
3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8114 .loc 1 3833 5 is_stmt 1 view .LVU2858
3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8115 .loc 1 3833 21 is_stmt 0 view .LVU2859
8116 0034 0021 movs r1, #0
8117 0036 4164 str r1, [r0, #68]
3836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8118 .loc 1 3836 5 is_stmt 1 view .LVU2860
3836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8119 .loc 1 3836 23 is_stmt 0 view .LVU2861
8120 0038 4562 str r5, [r0, #36]
3837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8121 .loc 1 3837 5 is_stmt 1 view .LVU2862
3837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8122 .loc 1 3837 23 is_stmt 0 view .LVU2863
8123 003a 4385 strh r3, [r0, #42] @ movhi
3838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
8124 .loc 1 3838 5 is_stmt 1 view .LVU2864
3838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
8125 .loc 1 3838 23 is_stmt 0 view .LVU2865
8126 003c C262 str r2, [r0, #44]
3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8127 .loc 1 3839 5 is_stmt 1 view .LVU2866
3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8128 .loc 1 3839 23 is_stmt 0 view .LVU2867
8129 003e 474B ldr r3, .L551
8130 .LVL577:
3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8131 .loc 1 3839 23 view .LVU2868
8132 0040 4363 str r3, [r0, #52]
3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8133 .loc 1 3842 5 is_stmt 1 view .LVU2869
3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8134 .loc 1 3842 13 is_stmt 0 view .LVU2870
8135 0042 438D ldrh r3, [r0, #42]
8136 0044 9BB2 uxth r3, r3
3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8137 .loc 1 3842 8 view .LVU2871
8138 0046 FF2B cmp r3, #255
ARM GAS /tmp/ccN54YTb.s page 323
8139 0048 3AD9 bls .L535
3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
8140 .loc 1 3844 7 is_stmt 1 view .LVU2872
3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
8141 .loc 1 3844 22 is_stmt 0 view .LVU2873
8142 004a FF23 movs r3, #255
8143 004c 0385 strh r3, [r0, #40] @ movhi
3845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8144 .loc 1 3845 7 is_stmt 1 view .LVU2874
8145 .LVL578:
3845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8146 .loc 1 3845 16 is_stmt 0 view .LVU2875
8147 004e 4FF08077 mov r7, #16777216
8148 .LVL579:
8149 .L536:
3856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
8150 .loc 1 3856 5 is_stmt 1 view .LVU2876
3856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
8151 .loc 1 3856 14 is_stmt 0 view .LVU2877
8152 0052 236B ldr r3, [r4, #48]
3856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
8153 .loc 1 3856 8 view .LVU2878
8154 0054 122B cmp r3, #18
8155 0056 04D1 bne .L537
3856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
8156 .loc 1 3856 59 discriminator 1 view .LVU2879
8157 0058 B2F52A4F cmp r2, #43520
8158 005c 18BF it ne
8159 005e AA2A cmpne r2, #170
8160 0060 32D1 bne .L546
8161 .L537:
3864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8162 .loc 1 3864 7 is_stmt 1 view .LVU2880
8163 0062 2046 mov r0, r4
8164 .LVL580:
3864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8165 .loc 1 3864 7 is_stmt 0 view .LVU2881
8166 0064 FFF7FEFF bl I2C_ConvertOtherXferOptions
8167 .LVL581:
3867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8168 .loc 1 3867 7 is_stmt 1 view .LVU2882
3867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8169 .loc 1 3867 15 is_stmt 0 view .LVU2883
8170 0068 638D ldrh r3, [r4, #42]
8171 006a 9BB2 uxth r3, r3
3867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8172 .loc 1 3867 10 view .LVU2884
8173 006c FF2B cmp r3, #255
8174 006e 2ED8 bhi .L547
3869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8175 .loc 1 3869 9 is_stmt 1 view .LVU2885
3869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8176 .loc 1 3869 18 is_stmt 0 view .LVU2886
8177 0070 E76A ldr r7, [r4, #44]
8178 .LVL582:
3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8179 .loc 1 3820 12 view .LVU2887
ARM GAS /tmp/ccN54YTb.s page 324
8180 0072 DFF8F880 ldr r8, .L551+16
8181 .L538:
8182 .LVL583:
3873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8183 .loc 1 3873 5 is_stmt 1 view .LVU2888
3873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8184 .loc 1 3873 13 is_stmt 0 view .LVU2889
8185 0076 228D ldrh r2, [r4, #40]
3873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8186 .loc 1 3873 8 view .LVU2890
8187 0078 002A cmp r2, #0
8188 007a 55D0 beq .L539
3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8189 .loc 1 3875 7 is_stmt 1 view .LVU2891
3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8190 .loc 1 3875 15 is_stmt 0 view .LVU2892
8191 007c E36B ldr r3, [r4, #60]
3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8192 .loc 1 3875 10 view .LVU2893
8193 007e 4BB3 cbz r3, .L540
3878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8194 .loc 1 3878 9 is_stmt 1 view .LVU2894
3878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8195 .loc 1 3878 40 is_stmt 0 view .LVU2895
8196 0080 374A ldr r2, .L551+4
8197 0082 DA63 str r2, [r3, #60]
3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8198 .loc 1 3881 9 is_stmt 1 view .LVU2896
3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8199 .loc 1 3881 13 is_stmt 0 view .LVU2897
8200 0084 E36B ldr r3, [r4, #60]
3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8201 .loc 1 3881 41 view .LVU2898
8202 0086 374A ldr r2, .L551+8
8203 0088 DA64 str r2, [r3, #76]
3884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8204 .loc 1 3884 9 is_stmt 1 view .LVU2899
3884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8205 .loc 1 3884 13 is_stmt 0 view .LVU2900
8206 008a E26B ldr r2, [r4, #60]
3884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8207 .loc 1 3884 44 view .LVU2901
8208 008c 0023 movs r3, #0
8209 008e 1364 str r3, [r2, #64]
3885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8210 .loc 1 3885 9 is_stmt 1 view .LVU2902
3885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8211 .loc 1 3885 13 is_stmt 0 view .LVU2903
8212 0090 E26B ldr r2, [r4, #60]
3885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8213 .loc 1 3885 41 view .LVU2904
8214 0092 1365 str r3, [r2, #80]
3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
8215 .loc 1 3888 9 is_stmt 1 view .LVU2905
3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
8216 .loc 1 3888 71 is_stmt 0 view .LVU2906
8217 0094 2168 ldr r1, [r4]
ARM GAS /tmp/ccN54YTb.s page 325
3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
8218 .loc 1 3888 25 view .LVU2907
8219 0096 238D ldrh r3, [r4, #40]
8220 0098 2A46 mov r2, r5
8221 009a 2431 adds r1, r1, #36
8222 009c E06B ldr r0, [r4, #60]
8223 009e FFF7FEFF bl HAL_DMA_Start_IT
8224 .LVL584:
3906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8225 .loc 1 3906 7 is_stmt 1 view .LVU2908
3906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8226 .loc 1 3906 10 is_stmt 0 view .LVU2909
8227 00a2 28B3 cbz r0, .L550
3929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8228 .loc 1 3929 9 is_stmt 1 view .LVU2910
3929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8229 .loc 1 3929 25 is_stmt 0 view .LVU2911
8230 00a4 2023 movs r3, #32
8231 00a6 84F84130 strb r3, [r4, #65]
3930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8232 .loc 1 3930 9 is_stmt 1 view .LVU2912
3930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8233 .loc 1 3930 25 is_stmt 0 view .LVU2913
8234 00aa 0022 movs r2, #0
8235 00ac 84F84220 strb r2, [r4, #66]
3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8236 .loc 1 3933 9 is_stmt 1 view .LVU2914
3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8237 .loc 1 3933 13 is_stmt 0 view .LVU2915
8238 00b0 636C ldr r3, [r4, #68]
3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8239 .loc 1 3933 25 view .LVU2916
8240 00b2 43F01003 orr r3, r3, #16
8241 00b6 6364 str r3, [r4, #68]
3936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8242 .loc 1 3936 9 is_stmt 1 view .LVU2917
3936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8243 .loc 1 3936 9 view .LVU2918
8244 00b8 84F84020 strb r2, [r4, #64]
3936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8245 .loc 1 3936 9 view .LVU2919
3938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8246 .loc 1 3938 9 view .LVU2920
3938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8247 .loc 1 3938 16 is_stmt 0 view .LVU2921
8248 00bc 0120 movs r0, #1
8249 .LVL585:
3938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8250 .loc 1 3938 16 view .LVU2922
8251 00be 48E0 b .L534
8252 .LVL586:
8253 .L535:
3849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
8254 .loc 1 3849 7 is_stmt 1 view .LVU2923
3849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
8255 .loc 1 3849 28 is_stmt 0 view .LVU2924
8256 00c0 438D ldrh r3, [r0, #42]
ARM GAS /tmp/ccN54YTb.s page 326
3849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
8257 .loc 1 3849 22 view .LVU2925
8258 00c2 0385 strh r3, [r0, #40] @ movhi
3850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8259 .loc 1 3850 7 is_stmt 1 view .LVU2926
3850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8260 .loc 1 3850 16 is_stmt 0 view .LVU2927
8261 00c4 C76A ldr r7, [r0, #44]
8262 00c6 C4E7 b .L536
8263 .LVL587:
8264 .L546:
3859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8265 .loc 1 3859 19 view .LVU2928
8266 00c8 4FF00008 mov r8, #0
8267 00cc D3E7 b .L538
8268 .LVL588:
8269 .L547:
3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8270 .loc 1 3820 12 view .LVU2929
8271 00ce DFF89C80 ldr r8, .L551+16
8272 00d2 D0E7 b .L538
8273 .LVL589:
8274 .L540:
3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8275 .loc 1 3894 9 is_stmt 1 view .LVU2930
3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8276 .loc 1 3894 25 is_stmt 0 view .LVU2931
8277 00d4 2023 movs r3, #32
8278 00d6 84F84130 strb r3, [r4, #65]
3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8279 .loc 1 3895 9 is_stmt 1 view .LVU2932
3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8280 .loc 1 3895 25 is_stmt 0 view .LVU2933
8281 00da 0022 movs r2, #0
8282 00dc 84F84220 strb r2, [r4, #66]
3898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8283 .loc 1 3898 9 is_stmt 1 view .LVU2934
3898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8284 .loc 1 3898 13 is_stmt 0 view .LVU2935
8285 00e0 636C ldr r3, [r4, #68]
3898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8286 .loc 1 3898 25 view .LVU2936
8287 00e2 43F08003 orr r3, r3, #128
8288 00e6 6364 str r3, [r4, #68]
3901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8289 .loc 1 3901 9 is_stmt 1 view .LVU2937
3901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8290 .loc 1 3901 9 view .LVU2938
8291 00e8 84F84020 strb r2, [r4, #64]
3901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8292 .loc 1 3901 9 view .LVU2939
3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8293 .loc 1 3903 9 view .LVU2940
3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8294 .loc 1 3903 16 is_stmt 0 view .LVU2941
8295 00ec 0120 movs r0, #1
8296 00ee 30E0 b .L534
ARM GAS /tmp/ccN54YTb.s page 327
8297 .LVL590:
8298 .L550:
3909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8299 .loc 1 3909 9 is_stmt 1 view .LVU2942
8300 00f0 CDF80080 str r8, [sp]
8301 00f4 3B46 mov r3, r7
8302 00f6 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
8303 00fa 3146 mov r1, r6
8304 00fc 2046 mov r0, r4
8305 .LVL591:
3909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8306 .loc 1 3909 9 is_stmt 0 view .LVU2943
8307 00fe FFF7FEFF bl I2C_TransferConfig
8308 .LVL592:
3912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8309 .loc 1 3912 9 is_stmt 1 view .LVU2944
3912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8310 .loc 1 3912 13 is_stmt 0 view .LVU2945
8311 0102 638D ldrh r3, [r4, #42]
8312 0104 9BB2 uxth r3, r3
3912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8313 .loc 1 3912 32 view .LVU2946
8314 0106 228D ldrh r2, [r4, #40]
3912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8315 .loc 1 3912 25 view .LVU2947
8316 0108 9B1A subs r3, r3, r2
8317 010a 9BB2 uxth r3, r3
8318 010c 6385 strh r3, [r4, #42] @ movhi
3915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8319 .loc 1 3915 9 is_stmt 1 view .LVU2948
3915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8320 .loc 1 3915 9 view .LVU2949
8321 010e 0023 movs r3, #0
8322 0110 84F84030 strb r3, [r4, #64]
3915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8323 .loc 1 3915 9 view .LVU2950
3921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8324 .loc 1 3921 9 view .LVU2951
8325 0114 1021 movs r1, #16
8326 0116 2046 mov r0, r4
8327 0118 FFF7FEFF bl I2C_Enable_IRQ
8328 .LVL593:
3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8329 .loc 1 3924 9 view .LVU2952
3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8330 .loc 1 3924 13 is_stmt 0 view .LVU2953
8331 011c 2268 ldr r2, [r4]
3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8332 .loc 1 3924 23 view .LVU2954
8333 011e 1368 ldr r3, [r2]
3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8334 .loc 1 3924 29 view .LVU2955
8335 0120 43F40043 orr r3, r3, #32768
8336 0124 1360 str r3, [r2]
8337 0126 11E0 b .L543
8338 .LVL594:
8339 .L539:
ARM GAS /tmp/ccN54YTb.s page 328
3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8340 .loc 1 3944 7 is_stmt 1 view .LVU2956
3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8341 .loc 1 3944 21 is_stmt 0 view .LVU2957
8342 0128 0F4B ldr r3, .L551+12
8343 012a 6363 str r3, [r4, #52]
3948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
8344 .loc 1 3948 7 is_stmt 1 view .LVU2958
8345 012c 0F4B ldr r3, .L551+16
8346 012e 0093 str r3, [sp]
8347 0130 4FF00073 mov r3, #33554432
8348 0134 D2B2 uxtb r2, r2
8349 0136 3146 mov r1, r6
8350 0138 2046 mov r0, r4
8351 013a FFF7FEFF bl I2C_TransferConfig
8352 .LVL595:
3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8353 .loc 1 3952 7 view .LVU2959
3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8354 .loc 1 3952 7 view .LVU2960
8355 013e 0023 movs r3, #0
8356 0140 84F84030 strb r3, [r4, #64]
3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8357 .loc 1 3952 7 view .LVU2961
3961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8358 .loc 1 3961 7 view .LVU2962
8359 0144 0221 movs r1, #2
8360 0146 2046 mov r0, r4
8361 0148 FFF7FEFF bl I2C_Enable_IRQ
8362 .LVL596:
8363 .L543:
3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8364 .loc 1 3964 5 view .LVU2963
3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8365 .loc 1 3964 12 is_stmt 0 view .LVU2964
8366 014c 0020 movs r0, #0
8367 014e 00E0 b .L534
8368 .LVL597:
8369 .L544:
3968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8370 .loc 1 3968 12 view .LVU2965
8371 0150 0220 movs r0, #2
8372 .LVL598:
8373 .L534:
3970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8374 .loc 1 3970 1 view .LVU2966
8375 0152 02B0 add sp, sp, #8
8376 .cfi_remember_state
8377 .cfi_def_cfa_offset 24
8378 @ sp needed
8379 0154 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
8380 .LVL599:
8381 .L545:
8382 .cfi_restore_state
3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8383 .loc 1 3829 5 discriminator 1 view .LVU2967
8384 0158 0220 movs r0, #2
ARM GAS /tmp/ccN54YTb.s page 329
8385 .LVL600:
3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8386 .loc 1 3829 5 discriminator 1 view .LVU2968
8387 015a FAE7 b .L534
8388 .L552:
8389 .align 2
8390 .L551:
8391 015c 00000000 .word I2C_Master_ISR_DMA
8392 0160 00000000 .word I2C_DMAMasterReceiveCplt
8393 0164 00000000 .word I2C_DMAError
8394 0168 00000000 .word I2C_Master_ISR_IT
8395 016c 00240080 .word -2147474432
8396 .cfi_endproc
8397 .LFE361:
8399 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits
8400 .align 1
8401 .global HAL_I2C_Slave_Seq_Transmit_IT
8402 .syntax unified
8403 .thumb
8404 .thumb_func
8406 HAL_I2C_Slave_Seq_Transmit_IT:
8407 .LVL601:
8408 .LFB362:
3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
8409 .loc 1 3984 1 is_stmt 1 view -0
8410 .cfi_startproc
8411 @ args = 0, pretend = 0, frame = 0
8412 @ frame_needed = 0, uses_anonymous_args = 0
3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
8413 .loc 1 3984 1 is_stmt 0 view .LVU2970
8414 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
8415 .cfi_def_cfa_offset 24
8416 .cfi_offset 3, -24
8417 .cfi_offset 4, -20
8418 .cfi_offset 5, -16
8419 .cfi_offset 6, -12
8420 .cfi_offset 7, -8
8421 .cfi_offset 14, -4
8422 0002 0446 mov r4, r0
3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8423 .loc 1 3986 3 is_stmt 1 view .LVU2971
3989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8424 .loc 1 3989 3 view .LVU2972
3991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8425 .loc 1 3991 3 view .LVU2973
3991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8426 .loc 1 3991 22 is_stmt 0 view .LVU2974
8427 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
8428 .LVL602:
3991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8429 .loc 1 3991 6 view .LVU2975
8430 0008 00F02800 and r0, r0, #40
8431 000c 2828 cmp r0, #40
8432 000e 5FD1 bne .L558
8433 0010 0F46 mov r7, r1
8434 0012 1646 mov r6, r2
8435 0014 1D46 mov r5, r3
ARM GAS /tmp/ccN54YTb.s page 330
3993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8436 .loc 1 3993 5 is_stmt 1 view .LVU2976
3993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8437 .loc 1 3993 8 is_stmt 0 view .LVU2977
8438 0016 002A cmp r2, #0
8439 0018 18BF it ne
8440 001a 0029 cmpne r1, #0
8441 001c 04D1 bne .L555
3995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8442 .loc 1 3995 7 is_stmt 1 view .LVU2978
3995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8443 .loc 1 3995 23 is_stmt 0 view .LVU2979
8444 001e 4FF40073 mov r3, #512
8445 .LVL603:
3995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8446 .loc 1 3995 23 view .LVU2980
8447 0022 6364 str r3, [r4, #68]
3996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8448 .loc 1 3996 7 is_stmt 1 view .LVU2981
3996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8449 .loc 1 3996 15 is_stmt 0 view .LVU2982
8450 0024 0120 movs r0, #1
8451 0026 54E0 b .L554
8452 .LVL604:
8453 .L555:
4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8454 .loc 1 4000 5 is_stmt 1 view .LVU2983
8455 0028 48F20101 movw r1, #32769
8456 .LVL605:
4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8457 .loc 1 4000 5 is_stmt 0 view .LVU2984
8458 002c 2046 mov r0, r4
8459 002e FFF7FEFF bl I2C_Disable_IRQ
8460 .LVL606:
4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8461 .loc 1 4003 5 is_stmt 1 view .LVU2985
4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8462 .loc 1 4003 5 view .LVU2986
8463 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
8464 0036 012B cmp r3, #1
8465 0038 4CD0 beq .L559
4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8466 .loc 1 4003 5 discriminator 2 view .LVU2987
8467 003a 0123 movs r3, #1
8468 003c 84F84030 strb r3, [r4, #64]
4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8469 .loc 1 4003 5 view .LVU2988
4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8470 .loc 1 4007 5 view .LVU2989
4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8471 .loc 1 4007 13 is_stmt 0 view .LVU2990
8472 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8473 .loc 1 4007 8 view .LVU2991
8474 0044 2A2B cmp r3, #42
8475 0046 28D0 beq .L561
8476 .L556:
ARM GAS /tmp/ccN54YTb.s page 331
4033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8477 .loc 1 4033 5 is_stmt 1 view .LVU2992
4033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8478 .loc 1 4033 21 is_stmt 0 view .LVU2993
8479 0048 2923 movs r3, #41
8480 004a 84F84130 strb r3, [r4, #65]
4034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8481 .loc 1 4034 5 is_stmt 1 view .LVU2994
4034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8482 .loc 1 4034 21 is_stmt 0 view .LVU2995
8483 004e 2023 movs r3, #32
8484 0050 84F84230 strb r3, [r4, #66]
4035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8485 .loc 1 4035 5 is_stmt 1 view .LVU2996
4035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8486 .loc 1 4035 21 is_stmt 0 view .LVU2997
8487 0054 0023 movs r3, #0
8488 0056 6364 str r3, [r4, #68]
4038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8489 .loc 1 4038 5 is_stmt 1 view .LVU2998
4038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8490 .loc 1 4038 9 is_stmt 0 view .LVU2999
8491 0058 2268 ldr r2, [r4]
4038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8492 .loc 1 4038 19 view .LVU3000
8493 005a 5368 ldr r3, [r2, #4]
4038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8494 .loc 1 4038 25 view .LVU3001
8495 005c 23F40043 bic r3, r3, #32768
8496 0060 5360 str r3, [r2, #4]
4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8497 .loc 1 4041 5 is_stmt 1 view .LVU3002
4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8498 .loc 1 4041 23 is_stmt 0 view .LVU3003
8499 0062 6762 str r7, [r4, #36]
4042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8500 .loc 1 4042 5 is_stmt 1 view .LVU3004
4042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8501 .loc 1 4042 23 is_stmt 0 view .LVU3005
8502 0064 6685 strh r6, [r4, #42] @ movhi
4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8503 .loc 1 4043 5 is_stmt 1 view .LVU3006
4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8504 .loc 1 4043 29 is_stmt 0 view .LVU3007
8505 0066 638D ldrh r3, [r4, #42]
4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8506 .loc 1 4043 23 view .LVU3008
8507 0068 2385 strh r3, [r4, #40] @ movhi
4044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
8508 .loc 1 4044 5 is_stmt 1 view .LVU3009
4044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
8509 .loc 1 4044 23 is_stmt 0 view .LVU3010
8510 006a E562 str r5, [r4, #44]
4045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8511 .loc 1 4045 5 is_stmt 1 view .LVU3011
4045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8512 .loc 1 4045 23 is_stmt 0 view .LVU3012
ARM GAS /tmp/ccN54YTb.s page 332
8513 006c 1A4B ldr r3, .L562
8514 006e 6363 str r3, [r4, #52]
4047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
8515 .loc 1 4047 5 is_stmt 1 view .LVU3013
4047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
8516 .loc 1 4047 11 is_stmt 0 view .LVU3014
8517 0070 2268 ldr r2, [r4]
8518 0072 9369 ldr r3, [r2, #24]
8519 0074 03F00803 and r3, r3, #8
8520 .LVL607:
4048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8521 .loc 1 4048 5 is_stmt 1 view .LVU3015
4048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8522 .loc 1 4048 10 is_stmt 0 view .LVU3016
8523 0078 9169 ldr r1, [r2, #24]
4048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8524 .loc 1 4048 8 view .LVU3017
8525 007a 11F4803F tst r1, #65536
8526 007e 02D0 beq .L557
4048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8527 .loc 1 4048 54 discriminator 1 view .LVU3018
8528 0080 0BB1 cbz r3, .L557
4052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8529 .loc 1 4052 7 is_stmt 1 view .LVU3019
8530 0082 0823 movs r3, #8
8531 .LVL608:
4052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8532 .loc 1 4052 7 is_stmt 0 view .LVU3020
8533 0084 D361 str r3, [r2, #28]
8534 .L557:
4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8535 .loc 1 4056 5 is_stmt 1 view .LVU3021
4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8536 .loc 1 4056 5 view .LVU3022
8537 0086 0025 movs r5, #0
8538 .LVL609:
4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8539 .loc 1 4056 5 is_stmt 0 view .LVU3023
8540 0088 84F84050 strb r5, [r4, #64]
4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8541 .loc 1 4056 5 is_stmt 1 view .LVU3024
4062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8542 .loc 1 4062 5 view .LVU3025
8543 008c 48F20101 movw r1, #32769
8544 0090 2046 mov r0, r4
8545 0092 FFF7FEFF bl I2C_Enable_IRQ
8546 .LVL610:
4064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8547 .loc 1 4064 5 view .LVU3026
4064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8548 .loc 1 4064 12 is_stmt 0 view .LVU3027
8549 0096 2846 mov r0, r5
8550 0098 1BE0 b .L554
8551 .LVL611:
8552 .L561:
4010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8553 .loc 1 4010 7 is_stmt 1 view .LVU3028
ARM GAS /tmp/ccN54YTb.s page 333
8554 009a 0221 movs r1, #2
8555 009c 2046 mov r0, r4
8556 009e FFF7FEFF bl I2C_Disable_IRQ
8557 .LVL612:
4013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8558 .loc 1 4013 7 view .LVU3029
4013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8559 .loc 1 4013 16 is_stmt 0 view .LVU3030
8560 00a2 2368 ldr r3, [r4]
4013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8561 .loc 1 4013 26 view .LVU3031
8562 00a4 1A68 ldr r2, [r3]
4013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8563 .loc 1 4013 10 view .LVU3032
8564 00a6 12F4004F tst r2, #32768
8565 00aa CDD0 beq .L556
4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8566 .loc 1 4015 9 is_stmt 1 view .LVU3033
4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8567 .loc 1 4015 23 is_stmt 0 view .LVU3034
8568 00ac 1A68 ldr r2, [r3]
4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8569 .loc 1 4015 29 view .LVU3035
8570 00ae 22F40042 bic r2, r2, #32768
8571 00b2 1A60 str r2, [r3]
4017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8572 .loc 1 4017 9 is_stmt 1 view .LVU3036
4017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8573 .loc 1 4017 17 is_stmt 0 view .LVU3037
8574 00b4 E36B ldr r3, [r4, #60]
4017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8575 .loc 1 4017 12 view .LVU3038
8576 00b6 002B cmp r3, #0
8577 00b8 C6D0 beq .L556
4021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8578 .loc 1 4021 11 is_stmt 1 view .LVU3039
4021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8579 .loc 1 4021 43 is_stmt 0 view .LVU3040
8580 00ba 084A ldr r2, .L562+4
8581 00bc 1A65 str r2, [r3, #80]
4024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8582 .loc 1 4024 11 is_stmt 1 view .LVU3041
4024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8583 .loc 1 4024 15 is_stmt 0 view .LVU3042
8584 00be E06B ldr r0, [r4, #60]
8585 00c0 FFF7FEFF bl HAL_DMA_Abort_IT
8586 .LVL613:
4024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8587 .loc 1 4024 14 discriminator 1 view .LVU3043
8588 00c4 0028 cmp r0, #0
8589 00c6 BFD0 beq .L556
4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8590 .loc 1 4027 13 is_stmt 1 view .LVU3044
4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8591 .loc 1 4027 17 is_stmt 0 view .LVU3045
8592 00c8 E06B ldr r0, [r4, #60]
4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 334
8593 .loc 1 4027 25 view .LVU3046
8594 00ca 036D ldr r3, [r0, #80]
4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8595 .loc 1 4027 13 view .LVU3047
8596 00cc 9847 blx r3
8597 .LVL614:
8598 00ce BBE7 b .L556
8599 .LVL615:
8600 .L558:
4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8601 .loc 1 4068 12 view .LVU3048
8602 00d0 0120 movs r0, #1
8603 .LVL616:
8604 .L554:
4070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8605 .loc 1 4070 1 view .LVU3049
8606 00d2 F8BD pop {r3, r4, r5, r6, r7, pc}
8607 .LVL617:
8608 .L559:
4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8609 .loc 1 4003 5 discriminator 1 view .LVU3050
8610 00d4 0220 movs r0, #2
8611 00d6 FCE7 b .L554
8612 .L563:
8613 .align 2
8614 .L562:
8615 00d8 00000000 .word I2C_Slave_ISR_IT
8616 00dc 00000000 .word I2C_DMAAbort
8617 .cfi_endproc
8618 .LFE362:
8620 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits
8621 .align 1
8622 .global HAL_I2C_Slave_Seq_Transmit_DMA
8623 .syntax unified
8624 .thumb
8625 .thumb_func
8627 HAL_I2C_Slave_Seq_Transmit_DMA:
8628 .LVL618:
8629 .LFB363:
4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
8630 .loc 1 4084 1 is_stmt 1 view -0
8631 .cfi_startproc
8632 @ args = 0, pretend = 0, frame = 0
8633 @ frame_needed = 0, uses_anonymous_args = 0
4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
8634 .loc 1 4084 1 is_stmt 0 view .LVU3052
8635 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
8636 .cfi_def_cfa_offset 24
8637 .cfi_offset 3, -24
8638 .cfi_offset 4, -20
8639 .cfi_offset 5, -16
8640 .cfi_offset 6, -12
8641 .cfi_offset 7, -8
8642 .cfi_offset 14, -4
8643 0002 0446 mov r4, r0
4086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8644 .loc 1 4086 3 is_stmt 1 view .LVU3053
ARM GAS /tmp/ccN54YTb.s page 335
4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8645 .loc 1 4087 3 view .LVU3054
4090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8646 .loc 1 4090 3 view .LVU3055
4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8647 .loc 1 4092 3 view .LVU3056
4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8648 .loc 1 4092 22 is_stmt 0 view .LVU3057
8649 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
8650 .LVL619:
4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8651 .loc 1 4092 6 view .LVU3058
8652 0008 00F02800 and r0, r0, #40
8653 000c 2828 cmp r0, #40
8654 000e 40F0BE80 bne .L574
8655 0012 0F46 mov r7, r1
8656 0014 1646 mov r6, r2
8657 0016 1D46 mov r5, r3
4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8658 .loc 1 4094 5 is_stmt 1 view .LVU3059
4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8659 .loc 1 4094 8 is_stmt 0 view .LVU3060
8660 0018 002A cmp r2, #0
8661 001a 18BF it ne
8662 001c 0029 cmpne r1, #0
8663 001e 4DD0 beq .L578
4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8664 .loc 1 4101 5 is_stmt 1 view .LVU3061
4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8665 .loc 1 4101 5 view .LVU3062
8666 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
8667 .LVL620:
4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8668 .loc 1 4101 5 is_stmt 0 view .LVU3063
8669 0024 012B cmp r3, #1
8670 0026 00F0B580 beq .L575
4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8671 .loc 1 4101 5 is_stmt 1 discriminator 2 view .LVU3064
8672 002a 0123 movs r3, #1
8673 002c 84F84030 strb r3, [r4, #64]
4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8674 .loc 1 4101 5 view .LVU3065
4104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8675 .loc 1 4104 5 view .LVU3066
8676 0030 48F20101 movw r1, #32769
8677 .LVL621:
4104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8678 .loc 1 4104 5 is_stmt 0 view .LVU3067
8679 0034 2046 mov r0, r4
8680 0036 FFF7FEFF bl I2C_Disable_IRQ
8681 .LVL622:
4108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8682 .loc 1 4108 5 is_stmt 1 view .LVU3068
4108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8683 .loc 1 4108 13 is_stmt 0 view .LVU3069
8684 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
4108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 336
8685 .loc 1 4108 8 view .LVU3070
8686 003e 2A2B cmp r3, #42
8687 0040 41D0 beq .L579
4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8688 .loc 1 4133 10 is_stmt 1 view .LVU3071
4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8689 .loc 1 4133 18 is_stmt 0 view .LVU3072
8690 0042 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8691 .loc 1 4133 13 view .LVU3073
8692 0046 292B cmp r3, #41
8693 0048 59D0 beq .L580
8694 .L568:
4158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8695 .loc 1 4158 5 is_stmt 1 view .LVU3074
4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8696 .loc 1 4160 5 view .LVU3075
4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8697 .loc 1 4160 21 is_stmt 0 view .LVU3076
8698 004a 2923 movs r3, #41
8699 004c 84F84130 strb r3, [r4, #65]
4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8700 .loc 1 4161 5 is_stmt 1 view .LVU3077
4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8701 .loc 1 4161 21 is_stmt 0 view .LVU3078
8702 0050 2023 movs r3, #32
8703 0052 84F84230 strb r3, [r4, #66]
4162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8704 .loc 1 4162 5 is_stmt 1 view .LVU3079
4162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8705 .loc 1 4162 21 is_stmt 0 view .LVU3080
8706 0056 0023 movs r3, #0
8707 0058 6364 str r3, [r4, #68]
4165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8708 .loc 1 4165 5 is_stmt 1 view .LVU3081
4165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8709 .loc 1 4165 9 is_stmt 0 view .LVU3082
8710 005a 2268 ldr r2, [r4]
4165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8711 .loc 1 4165 19 view .LVU3083
8712 005c 5368 ldr r3, [r2, #4]
4165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8713 .loc 1 4165 25 view .LVU3084
8714 005e 23F40043 bic r3, r3, #32768
8715 0062 5360 str r3, [r2, #4]
4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8716 .loc 1 4168 5 is_stmt 1 view .LVU3085
4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8717 .loc 1 4168 23 is_stmt 0 view .LVU3086
8718 0064 6762 str r7, [r4, #36]
4169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8719 .loc 1 4169 5 is_stmt 1 view .LVU3087
4169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8720 .loc 1 4169 23 is_stmt 0 view .LVU3088
8721 0066 6685 strh r6, [r4, #42] @ movhi
4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8722 .loc 1 4170 5 is_stmt 1 view .LVU3089
ARM GAS /tmp/ccN54YTb.s page 337
4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8723 .loc 1 4170 29 is_stmt 0 view .LVU3090
8724 0068 638D ldrh r3, [r4, #42]
4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8725 .loc 1 4170 23 view .LVU3091
8726 006a 2385 strh r3, [r4, #40] @ movhi
4171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
8727 .loc 1 4171 5 is_stmt 1 view .LVU3092
4171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
8728 .loc 1 4171 23 is_stmt 0 view .LVU3093
8729 006c E562 str r5, [r4, #44]
4172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8730 .loc 1 4172 5 is_stmt 1 view .LVU3094
4172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8731 .loc 1 4172 23 is_stmt 0 view .LVU3095
8732 006e 4A4B ldr r3, .L581
8733 0070 6363 str r3, [r4, #52]
4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8734 .loc 1 4174 5 is_stmt 1 view .LVU3096
4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8735 .loc 1 4174 13 is_stmt 0 view .LVU3097
8736 0072 A36B ldr r3, [r4, #56]
4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8737 .loc 1 4174 8 view .LVU3098
8738 0074 002B cmp r3, #0
8739 0076 59D0 beq .L569
4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8740 .loc 1 4177 7 is_stmt 1 view .LVU3099
4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8741 .loc 1 4177 38 is_stmt 0 view .LVU3100
8742 0078 484A ldr r2, .L581+4
8743 007a DA63 str r2, [r3, #60]
4180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8744 .loc 1 4180 7 is_stmt 1 view .LVU3101
4180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8745 .loc 1 4180 11 is_stmt 0 view .LVU3102
8746 007c A36B ldr r3, [r4, #56]
4180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8747 .loc 1 4180 39 view .LVU3103
8748 007e 484A ldr r2, .L581+8
8749 0080 DA64 str r2, [r3, #76]
4183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8750 .loc 1 4183 7 is_stmt 1 view .LVU3104
4183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8751 .loc 1 4183 11 is_stmt 0 view .LVU3105
8752 0082 A26B ldr r2, [r4, #56]
4183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8753 .loc 1 4183 42 view .LVU3106
8754 0084 0023 movs r3, #0
8755 0086 1364 str r3, [r2, #64]
4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8756 .loc 1 4184 7 is_stmt 1 view .LVU3107
4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8757 .loc 1 4184 11 is_stmt 0 view .LVU3108
8758 0088 A26B ldr r2, [r4, #56]
4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8759 .loc 1 4184 39 view .LVU3109
ARM GAS /tmp/ccN54YTb.s page 338
8760 008a 1365 str r3, [r2, #80]
4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
8761 .loc 1 4187 7 is_stmt 1 view .LVU3110
4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
8762 .loc 1 4187 86 is_stmt 0 view .LVU3111
8763 008c 2268 ldr r2, [r4]
4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
8764 .loc 1 4187 23 view .LVU3112
8765 008e 238D ldrh r3, [r4, #40]
8766 0090 2832 adds r2, r2, #40
8767 0092 3946 mov r1, r7
8768 0094 A06B ldr r0, [r4, #56]
8769 0096 FFF7FEFF bl HAL_DMA_Start_IT
8770 .LVL623:
4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8771 .loc 1 4205 5 is_stmt 1 view .LVU3113
4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8772 .loc 1 4205 8 is_stmt 0 view .LVU3114
8773 009a 0546 mov r5, r0
8774 .LVL624:
4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8775 .loc 1 4205 8 view .LVU3115
8776 009c 0028 cmp r0, #0
8777 009e 53D0 beq .L570
4216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8778 .loc 1 4216 7 is_stmt 1 view .LVU3116
4216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8779 .loc 1 4216 23 is_stmt 0 view .LVU3117
8780 00a0 2823 movs r3, #40
8781 00a2 84F84130 strb r3, [r4, #65]
4217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8782 .loc 1 4217 7 is_stmt 1 view .LVU3118
4217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8783 .loc 1 4217 23 is_stmt 0 view .LVU3119
8784 00a6 0022 movs r2, #0
8785 00a8 84F84220 strb r2, [r4, #66]
4220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8786 .loc 1 4220 7 is_stmt 1 view .LVU3120
4220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8787 .loc 1 4220 11 is_stmt 0 view .LVU3121
8788 00ac 636C ldr r3, [r4, #68]
4220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8789 .loc 1 4220 23 view .LVU3122
8790 00ae 43F01003 orr r3, r3, #16
8791 00b2 6364 str r3, [r4, #68]
4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8792 .loc 1 4223 7 is_stmt 1 view .LVU3123
4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8793 .loc 1 4223 7 view .LVU3124
8794 00b4 84F84020 strb r2, [r4, #64]
4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8795 .loc 1 4223 7 view .LVU3125
4225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8796 .loc 1 4225 7 view .LVU3126
4225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8797 .loc 1 4225 14 is_stmt 0 view .LVU3127
8798 00b8 0125 movs r5, #1
ARM GAS /tmp/ccN54YTb.s page 339
8799 00ba 69E0 b .L565
8800 .LVL625:
8801 .L578:
4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8802 .loc 1 4096 7 is_stmt 1 view .LVU3128
4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8803 .loc 1 4096 23 is_stmt 0 view .LVU3129
8804 00bc 4FF40073 mov r3, #512
8805 .LVL626:
4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8806 .loc 1 4096 23 view .LVU3130
8807 00c0 6364 str r3, [r4, #68]
4097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8808 .loc 1 4097 7 is_stmt 1 view .LVU3131
4097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8809 .loc 1 4097 15 is_stmt 0 view .LVU3132
8810 00c2 0125 movs r5, #1
8811 .LVL627:
4097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8812 .loc 1 4097 15 view .LVU3133
8813 00c4 64E0 b .L565
8814 .LVL628:
8815 .L579:
4111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8816 .loc 1 4111 7 is_stmt 1 view .LVU3134
8817 00c6 0221 movs r1, #2
8818 00c8 2046 mov r0, r4
8819 00ca FFF7FEFF bl I2C_Disable_IRQ
8820 .LVL629:
4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8821 .loc 1 4113 7 view .LVU3135
4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8822 .loc 1 4113 16 is_stmt 0 view .LVU3136
8823 00ce 2368 ldr r3, [r4]
4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8824 .loc 1 4113 26 view .LVU3137
8825 00d0 1A68 ldr r2, [r3]
4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8826 .loc 1 4113 10 view .LVU3138
8827 00d2 12F4004F tst r2, #32768
8828 00d6 B8D0 beq .L568
4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8829 .loc 1 4116 9 is_stmt 1 view .LVU3139
4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8830 .loc 1 4116 17 is_stmt 0 view .LVU3140
8831 00d8 E26B ldr r2, [r4, #60]
4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8832 .loc 1 4116 12 view .LVU3141
8833 00da 002A cmp r2, #0
8834 00dc B5D0 beq .L568
4118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8835 .loc 1 4118 11 is_stmt 1 view .LVU3142
4118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8836 .loc 1 4118 25 is_stmt 0 view .LVU3143
8837 00de 1A68 ldr r2, [r3]
4118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8838 .loc 1 4118 31 view .LVU3144
ARM GAS /tmp/ccN54YTb.s page 340
8839 00e0 22F40042 bic r2, r2, #32768
8840 00e4 1A60 str r2, [r3]
4122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8841 .loc 1 4122 11 is_stmt 1 view .LVU3145
4122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8842 .loc 1 4122 15 is_stmt 0 view .LVU3146
8843 00e6 E36B ldr r3, [r4, #60]
4122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8844 .loc 1 4122 43 view .LVU3147
8845 00e8 2E4A ldr r2, .L581+12
8846 00ea 1A65 str r2, [r3, #80]
4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8847 .loc 1 4125 11 is_stmt 1 view .LVU3148
4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8848 .loc 1 4125 15 is_stmt 0 view .LVU3149
8849 00ec E06B ldr r0, [r4, #60]
8850 00ee FFF7FEFF bl HAL_DMA_Abort_IT
8851 .LVL630:
4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8852 .loc 1 4125 14 discriminator 1 view .LVU3150
8853 00f2 0028 cmp r0, #0
8854 00f4 A9D0 beq .L568
4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8855 .loc 1 4128 13 is_stmt 1 view .LVU3151
4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8856 .loc 1 4128 17 is_stmt 0 view .LVU3152
8857 00f6 E06B ldr r0, [r4, #60]
4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8858 .loc 1 4128 25 view .LVU3153
8859 00f8 036D ldr r3, [r0, #80]
4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8860 .loc 1 4128 13 view .LVU3154
8861 00fa 9847 blx r3
8862 .LVL631:
8863 00fc A5E7 b .L568
8864 .L580:
4135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8865 .loc 1 4135 7 is_stmt 1 view .LVU3155
4135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8866 .loc 1 4135 16 is_stmt 0 view .LVU3156
8867 00fe 2368 ldr r3, [r4]
4135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8868 .loc 1 4135 26 view .LVU3157
8869 0100 1A68 ldr r2, [r3]
4135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8870 .loc 1 4135 10 view .LVU3158
8871 0102 12F4804F tst r2, #16384
8872 0106 A0D0 beq .L568
4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8873 .loc 1 4137 9 is_stmt 1 view .LVU3159
4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8874 .loc 1 4137 23 is_stmt 0 view .LVU3160
8875 0108 1A68 ldr r2, [r3]
4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8876 .loc 1 4137 29 view .LVU3161
8877 010a 22F48042 bic r2, r2, #16384
8878 010e 1A60 str r2, [r3]
ARM GAS /tmp/ccN54YTb.s page 341
4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8879 .loc 1 4140 9 is_stmt 1 view .LVU3162
4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8880 .loc 1 4140 17 is_stmt 0 view .LVU3163
8881 0110 A36B ldr r3, [r4, #56]
4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8882 .loc 1 4140 12 view .LVU3164
8883 0112 002B cmp r3, #0
8884 0114 99D0 beq .L568
4144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8885 .loc 1 4144 11 is_stmt 1 view .LVU3165
4144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8886 .loc 1 4144 43 is_stmt 0 view .LVU3166
8887 0116 234A ldr r2, .L581+12
8888 0118 1A65 str r2, [r3, #80]
4147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8889 .loc 1 4147 11 is_stmt 1 view .LVU3167
4147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8890 .loc 1 4147 15 is_stmt 0 view .LVU3168
8891 011a A06B ldr r0, [r4, #56]
8892 011c FFF7FEFF bl HAL_DMA_Abort_IT
8893 .LVL632:
4147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8894 .loc 1 4147 14 discriminator 1 view .LVU3169
8895 0120 0028 cmp r0, #0
8896 0122 92D0 beq .L568
4150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8897 .loc 1 4150 13 is_stmt 1 view .LVU3170
4150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8898 .loc 1 4150 17 is_stmt 0 view .LVU3171
8899 0124 A06B ldr r0, [r4, #56]
4150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8900 .loc 1 4150 25 view .LVU3172
8901 0126 036D ldr r3, [r0, #80]
4150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8902 .loc 1 4150 13 view .LVU3173
8903 0128 9847 blx r3
8904 .LVL633:
8905 012a 8EE7 b .L568
8906 .L569:
4193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8907 .loc 1 4193 7 is_stmt 1 view .LVU3174
4193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8908 .loc 1 4193 23 is_stmt 0 view .LVU3175
8909 012c 2823 movs r3, #40
8910 012e 84F84130 strb r3, [r4, #65]
4194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8911 .loc 1 4194 7 is_stmt 1 view .LVU3176
4194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8912 .loc 1 4194 23 is_stmt 0 view .LVU3177
8913 0132 0022 movs r2, #0
8914 0134 84F84220 strb r2, [r4, #66]
4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8915 .loc 1 4197 7 is_stmt 1 view .LVU3178
4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8916 .loc 1 4197 11 is_stmt 0 view .LVU3179
8917 0138 636C ldr r3, [r4, #68]
ARM GAS /tmp/ccN54YTb.s page 342
4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8918 .loc 1 4197 23 view .LVU3180
8919 013a 43F08003 orr r3, r3, #128
8920 013e 6364 str r3, [r4, #68]
4200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8921 .loc 1 4200 7 is_stmt 1 view .LVU3181
4200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8922 .loc 1 4200 7 view .LVU3182
8923 0140 84F84020 strb r2, [r4, #64]
4200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8924 .loc 1 4200 7 view .LVU3183
4202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8925 .loc 1 4202 7 view .LVU3184
4202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8926 .loc 1 4202 14 is_stmt 0 view .LVU3185
8927 0144 0125 movs r5, #1
8928 .LVL634:
4202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8929 .loc 1 4202 14 view .LVU3186
8930 0146 23E0 b .L565
8931 .LVL635:
8932 .L570:
4208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8933 .loc 1 4208 7 is_stmt 1 view .LVU3187
4208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8934 .loc 1 4208 11 is_stmt 0 view .LVU3188
8935 0148 638D ldrh r3, [r4, #42]
8936 014a 9BB2 uxth r3, r3
4208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8937 .loc 1 4208 30 view .LVU3189
8938 014c 228D ldrh r2, [r4, #40]
4208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8939 .loc 1 4208 23 view .LVU3190
8940 014e 9B1A subs r3, r3, r2
8941 0150 9BB2 uxth r3, r3
8942 0152 6385 strh r3, [r4, #42] @ movhi
4211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8943 .loc 1 4211 7 is_stmt 1 view .LVU3191
4211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8944 .loc 1 4211 22 is_stmt 0 view .LVU3192
8945 0154 0023 movs r3, #0
8946 0156 2385 strh r3, [r4, #40] @ movhi
4228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
8947 .loc 1 4228 5 is_stmt 1 view .LVU3193
4228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
8948 .loc 1 4228 11 is_stmt 0 view .LVU3194
8949 0158 2268 ldr r2, [r4]
8950 015a 9369 ldr r3, [r2, #24]
8951 015c 03F00803 and r3, r3, #8
8952 .LVL636:
4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8953 .loc 1 4229 5 is_stmt 1 view .LVU3195
4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8954 .loc 1 4229 10 is_stmt 0 view .LVU3196
8955 0160 9169 ldr r1, [r2, #24]
4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8956 .loc 1 4229 8 view .LVU3197
ARM GAS /tmp/ccN54YTb.s page 343
8957 0162 11F4803F tst r1, #65536
8958 0166 0DD1 bne .L572
8959 .LVL637:
8960 .L573:
4237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8961 .loc 1 4237 5 is_stmt 1 view .LVU3198
4237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8962 .loc 1 4237 5 view .LVU3199
8963 0168 0023 movs r3, #0
8964 016a 84F84030 strb r3, [r4, #64]
4237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8965 .loc 1 4237 5 view .LVU3200
4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8966 .loc 1 4240 5 view .LVU3201
4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8967 .loc 1 4240 9 is_stmt 0 view .LVU3202
8968 016e 2268 ldr r2, [r4]
4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8969 .loc 1 4240 19 view .LVU3203
8970 0170 1368 ldr r3, [r2]
4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8971 .loc 1 4240 25 view .LVU3204
8972 0172 43F48043 orr r3, r3, #16384
8973 0176 1360 str r3, [r2]
4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8974 .loc 1 4246 5 is_stmt 1 view .LVU3205
8975 0178 4FF40041 mov r1, #32768
8976 017c 2046 mov r0, r4
8977 .LVL638:
4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8978 .loc 1 4246 5 is_stmt 0 view .LVU3206
8979 017e FFF7FEFF bl I2C_Enable_IRQ
8980 .LVL639:
4248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8981 .loc 1 4248 5 is_stmt 1 view .LVU3207
4248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8982 .loc 1 4248 12 is_stmt 0 view .LVU3208
8983 0182 05E0 b .L565
8984 .LVL640:
8985 .L572:
4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8986 .loc 1 4229 54 discriminator 1 view .LVU3209
8987 0184 002B cmp r3, #0
8988 0186 EFD0 beq .L573
4233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8989 .loc 1 4233 7 is_stmt 1 view .LVU3210
8990 0188 0823 movs r3, #8
8991 .LVL641:
4233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8992 .loc 1 4233 7 is_stmt 0 view .LVU3211
8993 018a D361 str r3, [r2, #28]
8994 018c ECE7 b .L573
8995 .LVL642:
8996 .L574:
4252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8997 .loc 1 4252 12 view .LVU3212
8998 018e 0125 movs r5, #1
ARM GAS /tmp/ccN54YTb.s page 344
8999 .LVL643:
9000 .L565:
4254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9001 .loc 1 4254 1 view .LVU3213
9002 0190 2846 mov r0, r5
9003 0192 F8BD pop {r3, r4, r5, r6, r7, pc}
9004 .LVL644:
9005 .L575:
4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9006 .loc 1 4101 5 discriminator 1 view .LVU3214
9007 0194 0225 movs r5, #2
9008 .LVL645:
4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9009 .loc 1 4101 5 discriminator 1 view .LVU3215
9010 0196 FBE7 b .L565
9011 .L582:
9012 .align 2
9013 .L581:
9014 0198 00000000 .word I2C_Slave_ISR_DMA
9015 019c 00000000 .word I2C_DMASlaveTransmitCplt
9016 01a0 00000000 .word I2C_DMAError
9017 01a4 00000000 .word I2C_DMAAbort
9018 .cfi_endproc
9019 .LFE363:
9021 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits
9022 .align 1
9023 .global HAL_I2C_Slave_Seq_Receive_IT
9024 .syntax unified
9025 .thumb
9026 .thumb_func
9028 HAL_I2C_Slave_Seq_Receive_IT:
9029 .LVL646:
9030 .LFB364:
4268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9031 .loc 1 4268 1 is_stmt 1 view -0
9032 .cfi_startproc
9033 @ args = 0, pretend = 0, frame = 0
9034 @ frame_needed = 0, uses_anonymous_args = 0
4268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9035 .loc 1 4268 1 is_stmt 0 view .LVU3217
9036 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
9037 .cfi_def_cfa_offset 24
9038 .cfi_offset 3, -24
9039 .cfi_offset 4, -20
9040 .cfi_offset 5, -16
9041 .cfi_offset 6, -12
9042 .cfi_offset 7, -8
9043 .cfi_offset 14, -4
9044 0002 0446 mov r4, r0
4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9045 .loc 1 4270 3 is_stmt 1 view .LVU3218
4273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9046 .loc 1 4273 3 view .LVU3219
4275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9047 .loc 1 4275 3 view .LVU3220
4275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9048 .loc 1 4275 22 is_stmt 0 view .LVU3221
ARM GAS /tmp/ccN54YTb.s page 345
9049 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
9050 .LVL647:
4275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9051 .loc 1 4275 6 view .LVU3222
9052 0008 00F02800 and r0, r0, #40
9053 000c 2828 cmp r0, #40
9054 000e 5FD1 bne .L588
9055 0010 0F46 mov r7, r1
9056 0012 1646 mov r6, r2
9057 0014 1D46 mov r5, r3
4277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9058 .loc 1 4277 5 is_stmt 1 view .LVU3223
4277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9059 .loc 1 4277 8 is_stmt 0 view .LVU3224
9060 0016 002A cmp r2, #0
9061 0018 18BF it ne
9062 001a 0029 cmpne r1, #0
9063 001c 04D1 bne .L585
4279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
9064 .loc 1 4279 7 is_stmt 1 view .LVU3225
4279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
9065 .loc 1 4279 23 is_stmt 0 view .LVU3226
9066 001e 4FF40073 mov r3, #512
9067 .LVL648:
4279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
9068 .loc 1 4279 23 view .LVU3227
9069 0022 6364 str r3, [r4, #68]
4280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9070 .loc 1 4280 7 is_stmt 1 view .LVU3228
4280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9071 .loc 1 4280 15 is_stmt 0 view .LVU3229
9072 0024 0120 movs r0, #1
9073 0026 54E0 b .L584
9074 .LVL649:
9075 .L585:
4284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9076 .loc 1 4284 5 is_stmt 1 view .LVU3230
9077 0028 48F20201 movw r1, #32770
9078 .LVL650:
4284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9079 .loc 1 4284 5 is_stmt 0 view .LVU3231
9080 002c 2046 mov r0, r4
9081 002e FFF7FEFF bl I2C_Disable_IRQ
9082 .LVL651:
4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9083 .loc 1 4287 5 is_stmt 1 view .LVU3232
4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9084 .loc 1 4287 5 view .LVU3233
9085 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
9086 0036 012B cmp r3, #1
9087 0038 4CD0 beq .L589
4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9088 .loc 1 4287 5 discriminator 2 view .LVU3234
9089 003a 0123 movs r3, #1
9090 003c 84F84030 strb r3, [r4, #64]
4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9091 .loc 1 4287 5 view .LVU3235
ARM GAS /tmp/ccN54YTb.s page 346
4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9092 .loc 1 4291 5 view .LVU3236
4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9093 .loc 1 4291 13 is_stmt 0 view .LVU3237
9094 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9095 .loc 1 4291 8 view .LVU3238
9096 0044 292B cmp r3, #41
9097 0046 28D0 beq .L591
9098 .L586:
4317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
9099 .loc 1 4317 5 is_stmt 1 view .LVU3239
4317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
9100 .loc 1 4317 21 is_stmt 0 view .LVU3240
9101 0048 2A23 movs r3, #42
9102 004a 84F84130 strb r3, [r4, #65]
4318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
9103 .loc 1 4318 5 is_stmt 1 view .LVU3241
4318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
9104 .loc 1 4318 21 is_stmt 0 view .LVU3242
9105 004e 2023 movs r3, #32
9106 0050 84F84230 strb r3, [r4, #66]
4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9107 .loc 1 4319 5 is_stmt 1 view .LVU3243
4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9108 .loc 1 4319 21 is_stmt 0 view .LVU3244
9109 0054 0023 movs r3, #0
9110 0056 6364 str r3, [r4, #68]
4322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9111 .loc 1 4322 5 is_stmt 1 view .LVU3245
4322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9112 .loc 1 4322 9 is_stmt 0 view .LVU3246
9113 0058 2268 ldr r2, [r4]
4322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9114 .loc 1 4322 19 view .LVU3247
9115 005a 5368 ldr r3, [r2, #4]
4322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9116 .loc 1 4322 25 view .LVU3248
9117 005c 23F40043 bic r3, r3, #32768
9118 0060 5360 str r3, [r2, #4]
4325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
9119 .loc 1 4325 5 is_stmt 1 view .LVU3249
4325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
9120 .loc 1 4325 23 is_stmt 0 view .LVU3250
9121 0062 6762 str r7, [r4, #36]
4326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
9122 .loc 1 4326 5 is_stmt 1 view .LVU3251
4326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
9123 .loc 1 4326 23 is_stmt 0 view .LVU3252
9124 0064 6685 strh r6, [r4, #42] @ movhi
4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9125 .loc 1 4327 5 is_stmt 1 view .LVU3253
4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9126 .loc 1 4327 29 is_stmt 0 view .LVU3254
9127 0066 638D ldrh r3, [r4, #42]
4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9128 .loc 1 4327 23 view .LVU3255
ARM GAS /tmp/ccN54YTb.s page 347
9129 0068 2385 strh r3, [r4, #40] @ movhi
4328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9130 .loc 1 4328 5 is_stmt 1 view .LVU3256
4328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9131 .loc 1 4328 23 is_stmt 0 view .LVU3257
9132 006a E562 str r5, [r4, #44]
4329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9133 .loc 1 4329 5 is_stmt 1 view .LVU3258
4329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9134 .loc 1 4329 23 is_stmt 0 view .LVU3259
9135 006c 1A4B ldr r3, .L592
9136 006e 6363 str r3, [r4, #52]
4331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
9137 .loc 1 4331 5 is_stmt 1 view .LVU3260
4331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
9138 .loc 1 4331 11 is_stmt 0 view .LVU3261
9139 0070 2268 ldr r2, [r4]
9140 0072 9369 ldr r3, [r2, #24]
9141 0074 03F00803 and r3, r3, #8
9142 .LVL652:
4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9143 .loc 1 4332 5 is_stmt 1 view .LVU3262
4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9144 .loc 1 4332 10 is_stmt 0 view .LVU3263
9145 0078 9169 ldr r1, [r2, #24]
4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9146 .loc 1 4332 8 view .LVU3264
9147 007a 11F4803F tst r1, #65536
9148 007e 02D1 bne .L587
4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9149 .loc 1 4332 55 discriminator 1 view .LVU3265
9150 0080 0BB1 cbz r3, .L587
4336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9151 .loc 1 4336 7 is_stmt 1 view .LVU3266
9152 0082 0823 movs r3, #8
9153 .LVL653:
4336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9154 .loc 1 4336 7 is_stmt 0 view .LVU3267
9155 0084 D361 str r3, [r2, #28]
9156 .L587:
4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9157 .loc 1 4340 5 is_stmt 1 view .LVU3268
4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9158 .loc 1 4340 5 view .LVU3269
9159 0086 0025 movs r5, #0
9160 .LVL654:
4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9161 .loc 1 4340 5 is_stmt 0 view .LVU3270
9162 0088 84F84050 strb r5, [r4, #64]
4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9163 .loc 1 4340 5 is_stmt 1 view .LVU3271
4346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9164 .loc 1 4346 5 view .LVU3272
9165 008c 48F20201 movw r1, #32770
9166 0090 2046 mov r0, r4
9167 0092 FFF7FEFF bl I2C_Enable_IRQ
9168 .LVL655:
ARM GAS /tmp/ccN54YTb.s page 348
4348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9169 .loc 1 4348 5 view .LVU3273
4348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9170 .loc 1 4348 12 is_stmt 0 view .LVU3274
9171 0096 2846 mov r0, r5
9172 0098 1BE0 b .L584
9173 .LVL656:
9174 .L591:
4294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9175 .loc 1 4294 7 is_stmt 1 view .LVU3275
9176 009a 0121 movs r1, #1
9177 009c 2046 mov r0, r4
9178 009e FFF7FEFF bl I2C_Disable_IRQ
9179 .LVL657:
4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9180 .loc 1 4296 7 view .LVU3276
4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9181 .loc 1 4296 16 is_stmt 0 view .LVU3277
9182 00a2 2368 ldr r3, [r4]
4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9183 .loc 1 4296 26 view .LVU3278
9184 00a4 1A68 ldr r2, [r3]
4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9185 .loc 1 4296 10 view .LVU3279
9186 00a6 12F4804F tst r2, #16384
9187 00aa CDD0 beq .L586
4298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9188 .loc 1 4298 9 is_stmt 1 view .LVU3280
4298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9189 .loc 1 4298 23 is_stmt 0 view .LVU3281
9190 00ac 1A68 ldr r2, [r3]
4298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9191 .loc 1 4298 29 view .LVU3282
9192 00ae 22F48042 bic r2, r2, #16384
9193 00b2 1A60 str r2, [r3]
4301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9194 .loc 1 4301 9 is_stmt 1 view .LVU3283
4301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9195 .loc 1 4301 17 is_stmt 0 view .LVU3284
9196 00b4 A36B ldr r3, [r4, #56]
4301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9197 .loc 1 4301 12 view .LVU3285
9198 00b6 002B cmp r3, #0
9199 00b8 C6D0 beq .L586
4305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9200 .loc 1 4305 11 is_stmt 1 view .LVU3286
4305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9201 .loc 1 4305 43 is_stmt 0 view .LVU3287
9202 00ba 084A ldr r2, .L592+4
9203 00bc 1A65 str r2, [r3, #80]
4308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9204 .loc 1 4308 11 is_stmt 1 view .LVU3288
4308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9205 .loc 1 4308 15 is_stmt 0 view .LVU3289
9206 00be A06B ldr r0, [r4, #56]
9207 00c0 FFF7FEFF bl HAL_DMA_Abort_IT
9208 .LVL658:
ARM GAS /tmp/ccN54YTb.s page 349
4308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9209 .loc 1 4308 14 discriminator 1 view .LVU3290
9210 00c4 0028 cmp r0, #0
9211 00c6 BFD0 beq .L586
4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9212 .loc 1 4311 13 is_stmt 1 view .LVU3291
4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9213 .loc 1 4311 17 is_stmt 0 view .LVU3292
9214 00c8 A06B ldr r0, [r4, #56]
4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9215 .loc 1 4311 25 view .LVU3293
9216 00ca 036D ldr r3, [r0, #80]
4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9217 .loc 1 4311 13 view .LVU3294
9218 00cc 9847 blx r3
9219 .LVL659:
9220 00ce BBE7 b .L586
9221 .LVL660:
9222 .L588:
4352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9223 .loc 1 4352 12 view .LVU3295
9224 00d0 0120 movs r0, #1
9225 .LVL661:
9226 .L584:
4354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9227 .loc 1 4354 1 view .LVU3296
9228 00d2 F8BD pop {r3, r4, r5, r6, r7, pc}
9229 .LVL662:
9230 .L589:
4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9231 .loc 1 4287 5 discriminator 1 view .LVU3297
9232 00d4 0220 movs r0, #2
9233 00d6 FCE7 b .L584
9234 .L593:
9235 .align 2
9236 .L592:
9237 00d8 00000000 .word I2C_Slave_ISR_IT
9238 00dc 00000000 .word I2C_DMAAbort
9239 .cfi_endproc
9240 .LFE364:
9242 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits
9243 .align 1
9244 .global HAL_I2C_Slave_Seq_Receive_DMA
9245 .syntax unified
9246 .thumb
9247 .thumb_func
9249 HAL_I2C_Slave_Seq_Receive_DMA:
9250 .LVL663:
9251 .LFB365:
4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9252 .loc 1 4368 1 is_stmt 1 view -0
9253 .cfi_startproc
9254 @ args = 0, pretend = 0, frame = 0
9255 @ frame_needed = 0, uses_anonymous_args = 0
4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9256 .loc 1 4368 1 is_stmt 0 view .LVU3299
9257 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
ARM GAS /tmp/ccN54YTb.s page 350
9258 .cfi_def_cfa_offset 24
9259 .cfi_offset 3, -24
9260 .cfi_offset 4, -20
9261 .cfi_offset 5, -16
9262 .cfi_offset 6, -12
9263 .cfi_offset 7, -8
9264 .cfi_offset 14, -4
9265 0002 0446 mov r4, r0
4370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
9266 .loc 1 4370 3 is_stmt 1 view .LVU3300
4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9267 .loc 1 4371 3 view .LVU3301
4374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9268 .loc 1 4374 3 view .LVU3302
4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9269 .loc 1 4376 3 view .LVU3303
4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9270 .loc 1 4376 22 is_stmt 0 view .LVU3304
9271 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
9272 .LVL664:
4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9273 .loc 1 4376 6 view .LVU3305
9274 0008 00F02800 and r0, r0, #40
9275 000c 2828 cmp r0, #40
9276 000e 40F0BE80 bne .L604
9277 0012 0F46 mov r7, r1
9278 0014 1646 mov r6, r2
9279 0016 1D46 mov r5, r3
4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9280 .loc 1 4378 5 is_stmt 1 view .LVU3306
4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9281 .loc 1 4378 8 is_stmt 0 view .LVU3307
9282 0018 002A cmp r2, #0
9283 001a 18BF it ne
9284 001c 0029 cmpne r1, #0
9285 001e 04D1 bne .L596
4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
9286 .loc 1 4380 7 is_stmt 1 view .LVU3308
4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
9287 .loc 1 4380 23 is_stmt 0 view .LVU3309
9288 0020 4FF40073 mov r3, #512
9289 .LVL665:
4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
9290 .loc 1 4380 23 view .LVU3310
9291 0024 6364 str r3, [r4, #68]
4381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9292 .loc 1 4381 7 is_stmt 1 view .LVU3311
4381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9293 .loc 1 4381 15 is_stmt 0 view .LVU3312
9294 0026 0125 movs r5, #1
9295 .LVL666:
4381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9296 .loc 1 4381 15 view .LVU3313
9297 0028 B2E0 b .L595
9298 .LVL667:
9299 .L596:
4385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 351
9300 .loc 1 4385 5 is_stmt 1 view .LVU3314
9301 002a 48F20201 movw r1, #32770
9302 .LVL668:
4385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9303 .loc 1 4385 5 is_stmt 0 view .LVU3315
9304 002e 2046 mov r0, r4
9305 0030 FFF7FEFF bl I2C_Disable_IRQ
9306 .LVL669:
4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9307 .loc 1 4388 5 is_stmt 1 view .LVU3316
4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9308 .loc 1 4388 5 view .LVU3317
9309 0034 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
9310 0038 012B cmp r3, #1
9311 003a 00F0AB80 beq .L605
4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9312 .loc 1 4388 5 discriminator 2 view .LVU3318
9313 003e 0123 movs r3, #1
9314 0040 84F84030 strb r3, [r4, #64]
4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9315 .loc 1 4388 5 view .LVU3319
4392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9316 .loc 1 4392 5 view .LVU3320
4392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9317 .loc 1 4392 13 is_stmt 0 view .LVU3321
9318 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
4392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9319 .loc 1 4392 8 view .LVU3322
9320 0048 292B cmp r3, #41
9321 004a 3CD0 beq .L608
4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9322 .loc 1 4417 10 is_stmt 1 view .LVU3323
4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9323 .loc 1 4417 18 is_stmt 0 view .LVU3324
9324 004c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9325 .loc 1 4417 13 view .LVU3325
9326 0050 2A2B cmp r3, #42
9327 0052 54D0 beq .L609
9328 .L598:
4442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9329 .loc 1 4442 5 is_stmt 1 view .LVU3326
4444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
9330 .loc 1 4444 5 view .LVU3327
4444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
9331 .loc 1 4444 21 is_stmt 0 view .LVU3328
9332 0054 2A23 movs r3, #42
9333 0056 84F84130 strb r3, [r4, #65]
4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
9334 .loc 1 4445 5 is_stmt 1 view .LVU3329
4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
9335 .loc 1 4445 21 is_stmt 0 view .LVU3330
9336 005a 2023 movs r3, #32
9337 005c 84F84230 strb r3, [r4, #66]
4446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9338 .loc 1 4446 5 is_stmt 1 view .LVU3331
4446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 352
9339 .loc 1 4446 21 is_stmt 0 view .LVU3332
9340 0060 0023 movs r3, #0
9341 0062 6364 str r3, [r4, #68]
4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9342 .loc 1 4449 5 is_stmt 1 view .LVU3333
4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9343 .loc 1 4449 9 is_stmt 0 view .LVU3334
9344 0064 2268 ldr r2, [r4]
4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9345 .loc 1 4449 19 view .LVU3335
9346 0066 5368 ldr r3, [r2, #4]
4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9347 .loc 1 4449 25 view .LVU3336
9348 0068 23F40043 bic r3, r3, #32768
9349 006c 5360 str r3, [r2, #4]
4452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
9350 .loc 1 4452 5 is_stmt 1 view .LVU3337
4452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
9351 .loc 1 4452 23 is_stmt 0 view .LVU3338
9352 006e 6762 str r7, [r4, #36]
4453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
9353 .loc 1 4453 5 is_stmt 1 view .LVU3339
4453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
9354 .loc 1 4453 23 is_stmt 0 view .LVU3340
9355 0070 6685 strh r6, [r4, #42] @ movhi
4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9356 .loc 1 4454 5 is_stmt 1 view .LVU3341
4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9357 .loc 1 4454 29 is_stmt 0 view .LVU3342
9358 0072 638D ldrh r3, [r4, #42]
4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9359 .loc 1 4454 23 view .LVU3343
9360 0074 2385 strh r3, [r4, #40] @ movhi
4455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
9361 .loc 1 4455 5 is_stmt 1 view .LVU3344
4455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
9362 .loc 1 4455 23 is_stmt 0 view .LVU3345
9363 0076 E562 str r5, [r4, #44]
4456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9364 .loc 1 4456 5 is_stmt 1 view .LVU3346
4456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9365 .loc 1 4456 23 is_stmt 0 view .LVU3347
9366 0078 474B ldr r3, .L610
9367 007a 6363 str r3, [r4, #52]
4458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9368 .loc 1 4458 5 is_stmt 1 view .LVU3348
4458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9369 .loc 1 4458 13 is_stmt 0 view .LVU3349
9370 007c E36B ldr r3, [r4, #60]
4458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9371 .loc 1 4458 8 view .LVU3350
9372 007e 002B cmp r3, #0
9373 0080 54D0 beq .L599
4461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9374 .loc 1 4461 7 is_stmt 1 view .LVU3351
4461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9375 .loc 1 4461 38 is_stmt 0 view .LVU3352
ARM GAS /tmp/ccN54YTb.s page 353
9376 0082 464A ldr r2, .L610+4
9377 0084 DA63 str r2, [r3, #60]
4464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9378 .loc 1 4464 7 is_stmt 1 view .LVU3353
4464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9379 .loc 1 4464 11 is_stmt 0 view .LVU3354
9380 0086 E36B ldr r3, [r4, #60]
4464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9381 .loc 1 4464 39 view .LVU3355
9382 0088 454A ldr r2, .L610+8
9383 008a DA64 str r2, [r3, #76]
4467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
9384 .loc 1 4467 7 is_stmt 1 view .LVU3356
4467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
9385 .loc 1 4467 11 is_stmt 0 view .LVU3357
9386 008c E26B ldr r2, [r4, #60]
4467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
9387 .loc 1 4467 42 view .LVU3358
9388 008e 0023 movs r3, #0
9389 0090 1364 str r3, [r2, #64]
4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9390 .loc 1 4468 7 is_stmt 1 view .LVU3359
4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9391 .loc 1 4468 11 is_stmt 0 view .LVU3360
9392 0092 E26B ldr r2, [r4, #60]
4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9393 .loc 1 4468 39 view .LVU3361
9394 0094 1365 str r3, [r2, #80]
4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
9395 .loc 1 4471 7 is_stmt 1 view .LVU3362
4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
9396 .loc 1 4471 69 is_stmt 0 view .LVU3363
9397 0096 2168 ldr r1, [r4]
4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
9398 .loc 1 4471 23 view .LVU3364
9399 0098 238D ldrh r3, [r4, #40]
9400 009a 3A46 mov r2, r7
9401 009c 2431 adds r1, r1, #36
9402 009e E06B ldr r0, [r4, #60]
9403 00a0 FFF7FEFF bl HAL_DMA_Start_IT
9404 .LVL670:
4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9405 .loc 1 4489 5 is_stmt 1 view .LVU3365
4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9406 .loc 1 4489 8 is_stmt 0 view .LVU3366
9407 00a4 0546 mov r5, r0
9408 .LVL671:
4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9409 .loc 1 4489 8 view .LVU3367
9410 00a6 0028 cmp r0, #0
9411 00a8 4ED0 beq .L600
4500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9412 .loc 1 4500 7 is_stmt 1 view .LVU3368
4500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9413 .loc 1 4500 23 is_stmt 0 view .LVU3369
9414 00aa 2823 movs r3, #40
9415 00ac 84F84130 strb r3, [r4, #65]
ARM GAS /tmp/ccN54YTb.s page 354
4501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9416 .loc 1 4501 7 is_stmt 1 view .LVU3370
4501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9417 .loc 1 4501 23 is_stmt 0 view .LVU3371
9418 00b0 0022 movs r2, #0
9419 00b2 84F84220 strb r2, [r4, #66]
4504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9420 .loc 1 4504 7 is_stmt 1 view .LVU3372
4504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9421 .loc 1 4504 11 is_stmt 0 view .LVU3373
9422 00b6 636C ldr r3, [r4, #68]
4504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9423 .loc 1 4504 23 view .LVU3374
9424 00b8 43F01003 orr r3, r3, #16
9425 00bc 6364 str r3, [r4, #68]
4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9426 .loc 1 4507 7 is_stmt 1 view .LVU3375
4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9427 .loc 1 4507 7 view .LVU3376
9428 00be 84F84020 strb r2, [r4, #64]
4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9429 .loc 1 4507 7 view .LVU3377
4509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9430 .loc 1 4509 7 view .LVU3378
4509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9431 .loc 1 4509 14 is_stmt 0 view .LVU3379
9432 00c2 0125 movs r5, #1
9433 00c4 64E0 b .L595
9434 .LVL672:
9435 .L608:
4395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9436 .loc 1 4395 7 is_stmt 1 view .LVU3380
9437 00c6 0121 movs r1, #1
9438 00c8 2046 mov r0, r4
9439 00ca FFF7FEFF bl I2C_Disable_IRQ
9440 .LVL673:
4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9441 .loc 1 4397 7 view .LVU3381
4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9442 .loc 1 4397 16 is_stmt 0 view .LVU3382
9443 00ce 2368 ldr r3, [r4]
4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9444 .loc 1 4397 26 view .LVU3383
9445 00d0 1A68 ldr r2, [r3]
4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9446 .loc 1 4397 10 view .LVU3384
9447 00d2 12F4804F tst r2, #16384
9448 00d6 BDD0 beq .L598
4400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9449 .loc 1 4400 9 is_stmt 1 view .LVU3385
4400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9450 .loc 1 4400 17 is_stmt 0 view .LVU3386
9451 00d8 A26B ldr r2, [r4, #56]
4400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9452 .loc 1 4400 12 view .LVU3387
9453 00da 002A cmp r2, #0
9454 00dc BAD0 beq .L598
ARM GAS /tmp/ccN54YTb.s page 355
4402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9455 .loc 1 4402 11 is_stmt 1 view .LVU3388
4402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9456 .loc 1 4402 25 is_stmt 0 view .LVU3389
9457 00de 1A68 ldr r2, [r3]
4402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9458 .loc 1 4402 31 view .LVU3390
9459 00e0 22F48042 bic r2, r2, #16384
9460 00e4 1A60 str r2, [r3]
4406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9461 .loc 1 4406 11 is_stmt 1 view .LVU3391
4406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9462 .loc 1 4406 15 is_stmt 0 view .LVU3392
9463 00e6 A36B ldr r3, [r4, #56]
4406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9464 .loc 1 4406 43 view .LVU3393
9465 00e8 2E4A ldr r2, .L610+12
9466 00ea 1A65 str r2, [r3, #80]
4409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9467 .loc 1 4409 11 is_stmt 1 view .LVU3394
4409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9468 .loc 1 4409 15 is_stmt 0 view .LVU3395
9469 00ec A06B ldr r0, [r4, #56]
9470 00ee FFF7FEFF bl HAL_DMA_Abort_IT
9471 .LVL674:
4409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9472 .loc 1 4409 14 discriminator 1 view .LVU3396
9473 00f2 0028 cmp r0, #0
9474 00f4 AED0 beq .L598
4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9475 .loc 1 4412 13 is_stmt 1 view .LVU3397
4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9476 .loc 1 4412 17 is_stmt 0 view .LVU3398
9477 00f6 A06B ldr r0, [r4, #56]
4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9478 .loc 1 4412 25 view .LVU3399
9479 00f8 036D ldr r3, [r0, #80]
4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9480 .loc 1 4412 13 view .LVU3400
9481 00fa 9847 blx r3
9482 .LVL675:
9483 00fc AAE7 b .L598
9484 .L609:
4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9485 .loc 1 4419 7 is_stmt 1 view .LVU3401
4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9486 .loc 1 4419 16 is_stmt 0 view .LVU3402
9487 00fe 2368 ldr r3, [r4]
4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9488 .loc 1 4419 26 view .LVU3403
9489 0100 1A68 ldr r2, [r3]
4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9490 .loc 1 4419 10 view .LVU3404
9491 0102 12F4004F tst r2, #32768
9492 0106 A5D0 beq .L598
4421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9493 .loc 1 4421 9 is_stmt 1 view .LVU3405
ARM GAS /tmp/ccN54YTb.s page 356
4421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9494 .loc 1 4421 23 is_stmt 0 view .LVU3406
9495 0108 1A68 ldr r2, [r3]
4421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9496 .loc 1 4421 29 view .LVU3407
9497 010a 22F40042 bic r2, r2, #32768
9498 010e 1A60 str r2, [r3]
4424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9499 .loc 1 4424 9 is_stmt 1 view .LVU3408
4424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9500 .loc 1 4424 17 is_stmt 0 view .LVU3409
9501 0110 E36B ldr r3, [r4, #60]
4424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9502 .loc 1 4424 12 view .LVU3410
9503 0112 002B cmp r3, #0
9504 0114 9ED0 beq .L598
4428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9505 .loc 1 4428 11 is_stmt 1 view .LVU3411
4428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9506 .loc 1 4428 43 is_stmt 0 view .LVU3412
9507 0116 234A ldr r2, .L610+12
9508 0118 1A65 str r2, [r3, #80]
4431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9509 .loc 1 4431 11 is_stmt 1 view .LVU3413
4431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9510 .loc 1 4431 15 is_stmt 0 view .LVU3414
9511 011a E06B ldr r0, [r4, #60]
9512 011c FFF7FEFF bl HAL_DMA_Abort_IT
9513 .LVL676:
4431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9514 .loc 1 4431 14 discriminator 1 view .LVU3415
9515 0120 0028 cmp r0, #0
9516 0122 97D0 beq .L598
4434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9517 .loc 1 4434 13 is_stmt 1 view .LVU3416
4434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9518 .loc 1 4434 17 is_stmt 0 view .LVU3417
9519 0124 E06B ldr r0, [r4, #60]
4434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9520 .loc 1 4434 25 view .LVU3418
9521 0126 036D ldr r3, [r0, #80]
4434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9522 .loc 1 4434 13 view .LVU3419
9523 0128 9847 blx r3
9524 .LVL677:
9525 012a 93E7 b .L598
9526 .L599:
4477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9527 .loc 1 4477 7 is_stmt 1 view .LVU3420
4477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9528 .loc 1 4477 23 is_stmt 0 view .LVU3421
9529 012c 2823 movs r3, #40
9530 012e 84F84130 strb r3, [r4, #65]
4478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9531 .loc 1 4478 7 is_stmt 1 view .LVU3422
4478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9532 .loc 1 4478 23 is_stmt 0 view .LVU3423
ARM GAS /tmp/ccN54YTb.s page 357
9533 0132 0022 movs r2, #0
9534 0134 84F84220 strb r2, [r4, #66]
4481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9535 .loc 1 4481 7 is_stmt 1 view .LVU3424
4481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9536 .loc 1 4481 11 is_stmt 0 view .LVU3425
9537 0138 636C ldr r3, [r4, #68]
4481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9538 .loc 1 4481 23 view .LVU3426
9539 013a 43F08003 orr r3, r3, #128
9540 013e 6364 str r3, [r4, #68]
4484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9541 .loc 1 4484 7 is_stmt 1 view .LVU3427
4484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9542 .loc 1 4484 7 view .LVU3428
9543 0140 84F84020 strb r2, [r4, #64]
4484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9544 .loc 1 4484 7 view .LVU3429
4486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9545 .loc 1 4486 7 view .LVU3430
4486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9546 .loc 1 4486 14 is_stmt 0 view .LVU3431
9547 0144 0125 movs r5, #1
9548 .LVL678:
4486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9549 .loc 1 4486 14 view .LVU3432
9550 0146 23E0 b .L595
9551 .LVL679:
9552 .L600:
4492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9553 .loc 1 4492 7 is_stmt 1 view .LVU3433
4492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9554 .loc 1 4492 11 is_stmt 0 view .LVU3434
9555 0148 638D ldrh r3, [r4, #42]
9556 014a 9BB2 uxth r3, r3
4492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9557 .loc 1 4492 30 view .LVU3435
9558 014c 228D ldrh r2, [r4, #40]
4492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9559 .loc 1 4492 23 view .LVU3436
9560 014e 9B1A subs r3, r3, r2
9561 0150 9BB2 uxth r3, r3
9562 0152 6385 strh r3, [r4, #42] @ movhi
4495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9563 .loc 1 4495 7 is_stmt 1 view .LVU3437
4495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9564 .loc 1 4495 22 is_stmt 0 view .LVU3438
9565 0154 0023 movs r3, #0
9566 0156 2385 strh r3, [r4, #40] @ movhi
4512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
9567 .loc 1 4512 5 is_stmt 1 view .LVU3439
4512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
9568 .loc 1 4512 11 is_stmt 0 view .LVU3440
9569 0158 2268 ldr r2, [r4]
9570 015a 9369 ldr r3, [r2, #24]
9571 015c 03F00803 and r3, r3, #8
9572 .LVL680:
ARM GAS /tmp/ccN54YTb.s page 358
4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9573 .loc 1 4513 5 is_stmt 1 view .LVU3441
4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9574 .loc 1 4513 10 is_stmt 0 view .LVU3442
9575 0160 9169 ldr r1, [r2, #24]
4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9576 .loc 1 4513 8 view .LVU3443
9577 0162 11F4803F tst r1, #65536
9578 0166 0DD0 beq .L602
9579 .LVL681:
9580 .L603:
4521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9581 .loc 1 4521 5 is_stmt 1 view .LVU3444
4521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9582 .loc 1 4521 5 view .LVU3445
9583 0168 0023 movs r3, #0
9584 016a 84F84030 strb r3, [r4, #64]
4521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9585 .loc 1 4521 5 view .LVU3446
4524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9586 .loc 1 4524 5 view .LVU3447
4524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9587 .loc 1 4524 9 is_stmt 0 view .LVU3448
9588 016e 2268 ldr r2, [r4]
4524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9589 .loc 1 4524 19 view .LVU3449
9590 0170 1368 ldr r3, [r2]
4524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9591 .loc 1 4524 25 view .LVU3450
9592 0172 43F40043 orr r3, r3, #32768
9593 0176 1360 str r3, [r2]
4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9594 .loc 1 4530 5 is_stmt 1 view .LVU3451
9595 0178 48F20201 movw r1, #32770
9596 017c 2046 mov r0, r4
9597 .LVL682:
4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9598 .loc 1 4530 5 is_stmt 0 view .LVU3452
9599 017e FFF7FEFF bl I2C_Enable_IRQ
9600 .LVL683:
4532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9601 .loc 1 4532 5 is_stmt 1 view .LVU3453
4532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9602 .loc 1 4532 12 is_stmt 0 view .LVU3454
9603 0182 05E0 b .L595
9604 .LVL684:
9605 .L602:
4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9606 .loc 1 4513 55 discriminator 1 view .LVU3455
9607 0184 002B cmp r3, #0
9608 0186 EFD0 beq .L603
4517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9609 .loc 1 4517 7 is_stmt 1 view .LVU3456
9610 0188 0823 movs r3, #8
9611 .LVL685:
4517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9612 .loc 1 4517 7 is_stmt 0 view .LVU3457
ARM GAS /tmp/ccN54YTb.s page 359
9613 018a D361 str r3, [r2, #28]
9614 018c ECE7 b .L603
9615 .LVL686:
9616 .L604:
4536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9617 .loc 1 4536 12 view .LVU3458
9618 018e 0125 movs r5, #1
9619 .LVL687:
9620 .L595:
4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9621 .loc 1 4538 1 view .LVU3459
9622 0190 2846 mov r0, r5
9623 0192 F8BD pop {r3, r4, r5, r6, r7, pc}
9624 .LVL688:
9625 .L605:
4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9626 .loc 1 4388 5 discriminator 1 view .LVU3460
9627 0194 0225 movs r5, #2
9628 .LVL689:
4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9629 .loc 1 4388 5 discriminator 1 view .LVU3461
9630 0196 FBE7 b .L595
9631 .L611:
9632 .align 2
9633 .L610:
9634 0198 00000000 .word I2C_Slave_ISR_DMA
9635 019c 00000000 .word I2C_DMASlaveReceiveCplt
9636 01a0 00000000 .word I2C_DMAError
9637 01a4 00000000 .word I2C_DMAAbort
9638 .cfi_endproc
9639 .LFE365:
9641 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits
9642 .align 1
9643 .global HAL_I2C_EnableListen_IT
9644 .syntax unified
9645 .thumb
9646 .thumb_func
9648 HAL_I2C_EnableListen_IT:
9649 .LVL690:
9650 .LFB366:
4547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
9651 .loc 1 4547 1 is_stmt 1 view -0
9652 .cfi_startproc
9653 @ args = 0, pretend = 0, frame = 0
9654 @ frame_needed = 0, uses_anonymous_args = 0
4547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
9655 .loc 1 4547 1 is_stmt 0 view .LVU3463
9656 0000 08B5 push {r3, lr}
9657 .cfi_def_cfa_offset 8
9658 .cfi_offset 3, -8
9659 .cfi_offset 14, -4
4548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9660 .loc 1 4548 3 is_stmt 1 view .LVU3464
4548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9661 .loc 1 4548 11 is_stmt 0 view .LVU3465
9662 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
4548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 360
9663 .loc 1 4548 6 view .LVU3466
9664 0006 202B cmp r3, #32
9665 0008 01D0 beq .L616
4560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9666 .loc 1 4560 12 view .LVU3467
9667 000a 0220 movs r0, #2
9668 .LVL691:
9669 .L613:
4562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9670 .loc 1 4562 1 view .LVU3468
9671 000c 08BD pop {r3, pc}
9672 .LVL692:
9673 .L616:
4550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9674 .loc 1 4550 5 is_stmt 1 view .LVU3469
4550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9675 .loc 1 4550 17 is_stmt 0 view .LVU3470
9676 000e 2823 movs r3, #40
9677 0010 80F84130 strb r3, [r0, #65]
4551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9678 .loc 1 4551 5 is_stmt 1 view .LVU3471
4551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9679 .loc 1 4551 19 is_stmt 0 view .LVU3472
9680 0014 034B ldr r3, .L617
9681 0016 4363 str r3, [r0, #52]
4554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9682 .loc 1 4554 5 is_stmt 1 view .LVU3473
9683 0018 4FF40041 mov r1, #32768
9684 001c FFF7FEFF bl I2C_Enable_IRQ
9685 .LVL693:
4556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9686 .loc 1 4556 5 view .LVU3474
4556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9687 .loc 1 4556 12 is_stmt 0 view .LVU3475
9688 0020 0020 movs r0, #0
9689 0022 F3E7 b .L613
9690 .L618:
9691 .align 2
9692 .L617:
9693 0024 00000000 .word I2C_Slave_ISR_IT
9694 .cfi_endproc
9695 .LFE366:
9697 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits
9698 .align 1
9699 .global HAL_I2C_DisableListen_IT
9700 .syntax unified
9701 .thumb
9702 .thumb_func
9704 HAL_I2C_DisableListen_IT:
9705 .LVL694:
9706 .LFB367:
4571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9707 .loc 1 4571 1 is_stmt 1 view -0
9708 .cfi_startproc
9709 @ args = 0, pretend = 0, frame = 0
9710 @ frame_needed = 0, uses_anonymous_args = 0
4573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 361
9711 .loc 1 4573 3 view .LVU3477
4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9712 .loc 1 4576 3 view .LVU3478
4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9713 .loc 1 4576 11 is_stmt 0 view .LVU3479
9714 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9715 .loc 1 4576 6 view .LVU3480
9716 0004 282B cmp r3, #40
9717 0006 01D0 beq .L626
4591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9718 .loc 1 4591 12 view .LVU3481
9719 0008 0220 movs r0, #2
9720 .LVL695:
4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9721 .loc 1 4593 1 view .LVU3482
9722 000a 7047 bx lr
9723 .LVL696:
9724 .L626:
4571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9725 .loc 1 4571 1 view .LVU3483
9726 000c 10B5 push {r4, lr}
9727 .cfi_def_cfa_offset 8
9728 .cfi_offset 4, -8
9729 .cfi_offset 14, -4
4578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
9730 .loc 1 4578 5 is_stmt 1 view .LVU3484
4578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
9731 .loc 1 4578 26 is_stmt 0 view .LVU3485
9732 000e 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2
9733 .LVL697:
4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9734 .loc 1 4579 5 is_stmt 1 view .LVU3486
4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9735 .loc 1 4579 48 is_stmt 0 view .LVU3487
9736 0012 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2
4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9737 .loc 1 4579 31 view .LVU3488
9738 0016 02F00302 and r2, r2, #3
9739 .LVL698:
4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9740 .loc 1 4579 31 view .LVU3489
9741 001a 1343 orrs r3, r3, r2
4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9742 .loc 1 4579 25 view .LVU3490
9743 001c 0363 str r3, [r0, #48]
4580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9744 .loc 1 4580 5 is_stmt 1 view .LVU3491
4580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9745 .loc 1 4580 17 is_stmt 0 view .LVU3492
9746 001e 2023 movs r3, #32
9747 0020 80F84130 strb r3, [r0, #65]
4581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
9748 .loc 1 4581 5 is_stmt 1 view .LVU3493
4581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
9749 .loc 1 4581 16 is_stmt 0 view .LVU3494
9750 0024 0024 movs r4, #0
ARM GAS /tmp/ccN54YTb.s page 362
9751 0026 80F84240 strb r4, [r0, #66]
4582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9752 .loc 1 4582 5 is_stmt 1 view .LVU3495
4582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9753 .loc 1 4582 19 is_stmt 0 view .LVU3496
9754 002a 4463 str r4, [r0, #52]
4585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9755 .loc 1 4585 5 is_stmt 1 view .LVU3497
9756 002c 4FF40041 mov r1, #32768
9757 0030 FFF7FEFF bl I2C_Disable_IRQ
9758 .LVL699:
4587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9759 .loc 1 4587 5 view .LVU3498
4587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9760 .loc 1 4587 12 is_stmt 0 view .LVU3499
9761 0034 2046 mov r0, r4
4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9762 .loc 1 4593 1 view .LVU3500
9763 0036 10BD pop {r4, pc}
9764 .cfi_endproc
9765 .LFE367:
9767 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits
9768 .align 1
9769 .global HAL_I2C_Master_Abort_IT
9770 .syntax unified
9771 .thumb
9772 .thumb_func
9774 HAL_I2C_Master_Abort_IT:
9775 .LVL700:
9776 .LFB368:
4604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode;
9777 .loc 1 4604 1 is_stmt 1 view -0
9778 .cfi_startproc
9779 @ args = 0, pretend = 0, frame = 0
9780 @ frame_needed = 0, uses_anonymous_args = 0
4605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9781 .loc 1 4605 3 view .LVU3502
4605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9782 .loc 1 4605 23 is_stmt 0 view .LVU3503
9783 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2
9784 .LVL701:
4607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9785 .loc 1 4607 3 is_stmt 1 view .LVU3504
4607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9786 .loc 1 4607 6 is_stmt 0 view .LVU3505
9787 0004 402B cmp r3, #64
9788 0006 18BF it ne
9789 0008 102B cmpne r3, #16
9790 000a 34D1 bne .L631
4604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode;
9791 .loc 1 4604 1 view .LVU3506
9792 000c 30B5 push {r4, r5, lr}
9793 .cfi_def_cfa_offset 12
9794 .cfi_offset 4, -12
9795 .cfi_offset 5, -8
9796 .cfi_offset 14, -4
9797 000e 83B0 sub sp, sp, #12
ARM GAS /tmp/ccN54YTb.s page 363
9798 .cfi_def_cfa_offset 24
9799 0010 0446 mov r4, r0
9800 0012 0D46 mov r5, r1
4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9801 .loc 1 4610 5 is_stmt 1 view .LVU3507
4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9802 .loc 1 4610 5 view .LVU3508
9803 0014 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
9804 .LVL702:
4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9805 .loc 1 4610 5 is_stmt 0 view .LVU3509
9806 0018 012B cmp r3, #1
9807 001a 2ED0 beq .L632
4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9808 .loc 1 4610 5 is_stmt 1 discriminator 2 view .LVU3510
9809 001c 0123 movs r3, #1
9810 001e 80F84030 strb r3, [r0, #64]
4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9811 .loc 1 4610 5 view .LVU3511
4613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9812 .loc 1 4613 5 view .LVU3512
4613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9813 .loc 1 4613 13 is_stmt 0 view .LVU3513
9814 0022 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
4613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9815 .loc 1 4613 8 view .LVU3514
9816 0026 212B cmp r3, #33
9817 0028 19D0 beq .L637
4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9818 .loc 1 4618 10 is_stmt 1 view .LVU3515
4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9819 .loc 1 4618 18 is_stmt 0 view .LVU3516
9820 002a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9821 .loc 1 4618 13 view .LVU3517
9822 002e 222B cmp r3, #34
9823 0030 1BD0 beq .L638
9824 .LVL703:
9825 .L630:
4626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9826 .loc 1 4626 5 is_stmt 1 view .LVU3518
4629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9827 .loc 1 4629 5 view .LVU3519
4629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9828 .loc 1 4629 17 is_stmt 0 view .LVU3520
9829 0032 6023 movs r3, #96
9830 0034 84F84130 strb r3, [r4, #65]
4633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9831 .loc 1 4633 5 is_stmt 1 view .LVU3521
9832 0038 114B ldr r3, .L639
9833 003a 0093 str r3, [sp]
9834 003c 4FF00073 mov r3, #33554432
9835 0040 0122 movs r2, #1
9836 0042 2946 mov r1, r5
9837 0044 2046 mov r0, r4
9838 0046 FFF7FEFF bl I2C_TransferConfig
9839 .LVL704:
ARM GAS /tmp/ccN54YTb.s page 364
4636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9840 .loc 1 4636 5 view .LVU3522
4636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9841 .loc 1 4636 5 view .LVU3523
9842 004a 0025 movs r5, #0
9843 .LVL705:
4636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9844 .loc 1 4636 5 is_stmt 0 view .LVU3524
9845 004c 84F84050 strb r5, [r4, #64]
4636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9846 .loc 1 4636 5 is_stmt 1 view .LVU3525
4641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9847 .loc 1 4641 5 view .LVU3526
9848 0050 2021 movs r1, #32
9849 0052 2046 mov r0, r4
9850 0054 FFF7FEFF bl I2C_Enable_IRQ
9851 .LVL706:
4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9852 .loc 1 4643 5 view .LVU3527
4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9853 .loc 1 4643 12 is_stmt 0 view .LVU3528
9854 0058 2846 mov r0, r5
9855 .L628:
4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9856 .loc 1 4651 1 view .LVU3529
9857 005a 03B0 add sp, sp, #12
9858 .cfi_remember_state
9859 .cfi_def_cfa_offset 12
9860 @ sp needed
9861 005c 30BD pop {r4, r5, pc}
9862 .LVL707:
9863 .L637:
9864 .cfi_restore_state
4615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9865 .loc 1 4615 7 is_stmt 1 view .LVU3530
9866 005e 0121 movs r1, #1
9867 .LVL708:
4615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9868 .loc 1 4615 7 is_stmt 0 view .LVU3531
9869 0060 FFF7FEFF bl I2C_Disable_IRQ
9870 .LVL709:
4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9871 .loc 1 4616 7 is_stmt 1 view .LVU3532
4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9872 .loc 1 4616 27 is_stmt 0 view .LVU3533
9873 0064 1123 movs r3, #17
9874 0066 2363 str r3, [r4, #48]
9875 0068 E3E7 b .L630
9876 .LVL710:
9877 .L638:
4620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9878 .loc 1 4620 7 is_stmt 1 view .LVU3534
9879 006a 0221 movs r1, #2
9880 .LVL711:
4620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9881 .loc 1 4620 7 is_stmt 0 view .LVU3535
9882 006c FFF7FEFF bl I2C_Disable_IRQ
ARM GAS /tmp/ccN54YTb.s page 365
9883 .LVL712:
4621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9884 .loc 1 4621 7 is_stmt 1 view .LVU3536
4621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9885 .loc 1 4621 27 is_stmt 0 view .LVU3537
9886 0070 1223 movs r3, #18
9887 0072 2363 str r3, [r4, #48]
9888 0074 DDE7 b .L630
9889 .LVL713:
9890 .L631:
9891 .cfi_def_cfa_offset 0
9892 .cfi_restore 4
9893 .cfi_restore 5
9894 .cfi_restore 14
4649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9895 .loc 1 4649 12 view .LVU3538
9896 0076 0120 movs r0, #1
9897 .LVL714:
4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9898 .loc 1 4651 1 view .LVU3539
9899 0078 7047 bx lr
9900 .LVL715:
9901 .L632:
9902 .cfi_def_cfa_offset 24
9903 .cfi_offset 4, -12
9904 .cfi_offset 5, -8
9905 .cfi_offset 14, -4
4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9906 .loc 1 4610 5 discriminator 1 view .LVU3540
9907 007a 0220 movs r0, #2
9908 .LVL716:
4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9909 .loc 1 4610 5 discriminator 1 view .LVU3541
9910 007c EDE7 b .L628
9911 .L640:
9912 007e 00BF .align 2
9913 .L639:
9914 0080 00400080 .word -2147467264
9915 .cfi_endproc
9916 .LFE368:
9918 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits
9919 .align 1
9920 .global HAL_I2C_EV_IRQHandler
9921 .syntax unified
9922 .thumb
9923 .thumb_func
9925 HAL_I2C_EV_IRQHandler:
9926 .LVL717:
9927 .LFB369:
4668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
9928 .loc 1 4668 1 is_stmt 1 view -0
9929 .cfi_startproc
9930 @ args = 0, pretend = 0, frame = 0
9931 @ frame_needed = 0, uses_anonymous_args = 0
4668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
9932 .loc 1 4668 1 is_stmt 0 view .LVU3543
9933 0000 08B5 push {r3, lr}
ARM GAS /tmp/ccN54YTb.s page 366
9934 .cfi_def_cfa_offset 8
9935 .cfi_offset 3, -8
9936 .cfi_offset 14, -4
4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
9937 .loc 1 4670 3 is_stmt 1 view .LVU3544
4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
9938 .loc 1 4670 24 is_stmt 0 view .LVU3545
9939 0002 0368 ldr r3, [r0]
4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
9940 .loc 1 4670 12 view .LVU3546
9941 0004 9969 ldr r1, [r3, #24]
9942 .LVL718:
4671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9943 .loc 1 4671 3 is_stmt 1 view .LVU3547
4671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9944 .loc 1 4671 12 is_stmt 0 view .LVU3548
9945 0006 1A68 ldr r2, [r3]
9946 .LVL719:
4674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9947 .loc 1 4674 3 is_stmt 1 view .LVU3549
4674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9948 .loc 1 4674 11 is_stmt 0 view .LVU3550
9949 0008 436B ldr r3, [r0, #52]
4674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9950 .loc 1 4674 6 view .LVU3551
9951 000a 03B1 cbz r3, .L641
4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9952 .loc 1 4676 5 is_stmt 1 view .LVU3552
9953 000c 9847 blx r3
9954 .LVL720:
9955 .L641:
4678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9956 .loc 1 4678 1 is_stmt 0 view .LVU3553
9957 000e 08BD pop {r3, pc}
9958 .cfi_endproc
9959 .LFE369:
9961 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits
9962 .align 1
9963 .weak HAL_I2C_MasterTxCpltCallback
9964 .syntax unified
9965 .thumb
9966 .thumb_func
9968 HAL_I2C_MasterTxCpltCallback:
9969 .LVL721:
9970 .LFB371:
4739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9971 .loc 1 4739 1 is_stmt 1 view -0
9972 .cfi_startproc
9973 @ args = 0, pretend = 0, frame = 0
9974 @ frame_needed = 0, uses_anonymous_args = 0
9975 @ link register save eliminated.
4741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9976 .loc 1 4741 3 view .LVU3555
4746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9977 .loc 1 4746 1 is_stmt 0 view .LVU3556
9978 0000 7047 bx lr
9979 .cfi_endproc
ARM GAS /tmp/ccN54YTb.s page 367
9980 .LFE371:
9982 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits
9983 .align 1
9984 .weak HAL_I2C_MasterRxCpltCallback
9985 .syntax unified
9986 .thumb
9987 .thumb_func
9989 HAL_I2C_MasterRxCpltCallback:
9990 .LVL722:
9991 .LFB372:
4755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9992 .loc 1 4755 1 is_stmt 1 view -0
9993 .cfi_startproc
9994 @ args = 0, pretend = 0, frame = 0
9995 @ frame_needed = 0, uses_anonymous_args = 0
9996 @ link register save eliminated.
4757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9997 .loc 1 4757 3 view .LVU3558
4762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9998 .loc 1 4762 1 is_stmt 0 view .LVU3559
9999 0000 7047 bx lr
10000 .cfi_endproc
10001 .LFE372:
10003 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits
10004 .align 1
10005 .syntax unified
10006 .thumb
10007 .thumb_func
10009 I2C_ITMasterSeqCplt:
10010 .LVL723:
10011 .LFB393:
6034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */
10012 .loc 1 6034 1 is_stmt 1 view -0
10013 .cfi_startproc
10014 @ args = 0, pretend = 0, frame = 0
10015 @ frame_needed = 0, uses_anonymous_args = 0
6034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */
10016 .loc 1 6034 1 is_stmt 0 view .LVU3561
10017 0000 38B5 push {r3, r4, r5, lr}
10018 .cfi_def_cfa_offset 16
10019 .cfi_offset 3, -16
10020 .cfi_offset 4, -12
10021 .cfi_offset 5, -8
10022 .cfi_offset 14, -4
10023 0002 0446 mov r4, r0
6036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10024 .loc 1 6036 3 is_stmt 1 view .LVU3562
6036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10025 .loc 1 6036 14 is_stmt 0 view .LVU3563
10026 0004 0023 movs r3, #0
10027 0006 80F84230 strb r3, [r0, #66]
6040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10028 .loc 1 6040 3 is_stmt 1 view .LVU3564
6040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10029 .loc 1 6040 11 is_stmt 0 view .LVU3565
10030 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
6040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 368
10031 .loc 1 6040 6 view .LVU3566
10032 000e 212B cmp r3, #33
10033 0010 0FD0 beq .L650
6062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
10034 .loc 1 6062 5 is_stmt 1 view .LVU3567
6062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
10035 .loc 1 6062 25 is_stmt 0 view .LVU3568
10036 0012 2023 movs r3, #32
10037 0014 80F84130 strb r3, [r0, #65]
6063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
10038 .loc 1 6063 5 is_stmt 1 view .LVU3569
6063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
10039 .loc 1 6063 25 is_stmt 0 view .LVU3570
10040 0018 1223 movs r3, #18
10041 001a 0363 str r3, [r0, #48]
6064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10042 .loc 1 6064 5 is_stmt 1 view .LVU3571
6064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10043 .loc 1 6064 25 is_stmt 0 view .LVU3572
10044 001c 0025 movs r5, #0
10045 001e 4563 str r5, [r0, #52]
6067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10046 .loc 1 6067 5 is_stmt 1 view .LVU3573
10047 0020 0221 movs r1, #2
10048 0022 FFF7FEFF bl I2C_Disable_IRQ
10049 .LVL724:
6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10050 .loc 1 6070 5 view .LVU3574
6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10051 .loc 1 6070 5 view .LVU3575
10052 0026 84F84050 strb r5, [r4, #64]
6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10053 .loc 1 6070 5 view .LVU3576
6076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10054 .loc 1 6076 5 view .LVU3577
10055 002a 2046 mov r0, r4
10056 002c FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
10057 .LVL725:
10058 .L646:
6079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10059 .loc 1 6079 1 is_stmt 0 view .LVU3578
10060 0030 38BD pop {r3, r4, r5, pc}
10061 .LVL726:
10062 .L650:
6042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
10063 .loc 1 6042 5 is_stmt 1 view .LVU3579
6042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
10064 .loc 1 6042 25 is_stmt 0 view .LVU3580
10065 0032 2023 movs r3, #32
10066 0034 80F84130 strb r3, [r0, #65]
6043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
10067 .loc 1 6043 5 is_stmt 1 view .LVU3581
6043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
10068 .loc 1 6043 25 is_stmt 0 view .LVU3582
10069 0038 1123 movs r3, #17
10070 003a 0363 str r3, [r0, #48]
6044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 369
10071 .loc 1 6044 5 is_stmt 1 view .LVU3583
6044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10072 .loc 1 6044 25 is_stmt 0 view .LVU3584
10073 003c 0025 movs r5, #0
10074 003e 4563 str r5, [r0, #52]
6047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10075 .loc 1 6047 5 is_stmt 1 view .LVU3585
10076 0040 0121 movs r1, #1
10077 0042 FFF7FEFF bl I2C_Disable_IRQ
10078 .LVL727:
6050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10079 .loc 1 6050 5 view .LVU3586
6050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10080 .loc 1 6050 5 view .LVU3587
10081 0046 84F84050 strb r5, [r4, #64]
6050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10082 .loc 1 6050 5 view .LVU3588
6056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10083 .loc 1 6056 5 view .LVU3589
10084 004a 2046 mov r0, r4
10085 004c FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
10086 .LVL728:
10087 0050 EEE7 b .L646
10088 .cfi_endproc
10089 .LFE393:
10091 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits
10092 .align 1
10093 .weak HAL_I2C_SlaveTxCpltCallback
10094 .syntax unified
10095 .thumb
10096 .thumb_func
10098 HAL_I2C_SlaveTxCpltCallback:
10099 .LVL729:
10100 .LFB373:
4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10101 .loc 1 4770 1 view -0
10102 .cfi_startproc
10103 @ args = 0, pretend = 0, frame = 0
10104 @ frame_needed = 0, uses_anonymous_args = 0
10105 @ link register save eliminated.
4772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10106 .loc 1 4772 3 view .LVU3591
4777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10107 .loc 1 4777 1 is_stmt 0 view .LVU3592
10108 0000 7047 bx lr
10109 .cfi_endproc
10110 .LFE373:
10112 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits
10113 .align 1
10114 .weak HAL_I2C_SlaveRxCpltCallback
10115 .syntax unified
10116 .thumb
10117 .thumb_func
10119 HAL_I2C_SlaveRxCpltCallback:
10120 .LVL730:
10121 .LFB374:
4786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
ARM GAS /tmp/ccN54YTb.s page 370
10122 .loc 1 4786 1 is_stmt 1 view -0
10123 .cfi_startproc
10124 @ args = 0, pretend = 0, frame = 0
10125 @ frame_needed = 0, uses_anonymous_args = 0
10126 @ link register save eliminated.
4788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10127 .loc 1 4788 3 view .LVU3594
4793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10128 .loc 1 4793 1 is_stmt 0 view .LVU3595
10129 0000 7047 bx lr
10130 .cfi_endproc
10131 .LFE374:
10133 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits
10134 .align 1
10135 .syntax unified
10136 .thumb
10137 .thumb_func
10139 I2C_ITSlaveSeqCplt:
10140 .LVL731:
10141 .LFB394:
6087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
10142 .loc 1 6087 1 is_stmt 1 view -0
10143 .cfi_startproc
10144 @ args = 0, pretend = 0, frame = 0
10145 @ frame_needed = 0, uses_anonymous_args = 0
6087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
10146 .loc 1 6087 1 is_stmt 0 view .LVU3597
10147 0000 10B5 push {r4, lr}
10148 .cfi_def_cfa_offset 8
10149 .cfi_offset 4, -8
10150 .cfi_offset 14, -4
10151 0002 0446 mov r4, r0
6088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10152 .loc 1 6088 3 is_stmt 1 view .LVU3598
6088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10153 .loc 1 6088 26 is_stmt 0 view .LVU3599
10154 0004 0368 ldr r3, [r0]
6088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10155 .loc 1 6088 12 view .LVU3600
10156 0006 1A68 ldr r2, [r3]
10157 .LVL732:
6091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10158 .loc 1 6091 3 is_stmt 1 view .LVU3601
6091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10159 .loc 1 6091 14 is_stmt 0 view .LVU3602
10160 0008 0021 movs r1, #0
10161 000a 80F84210 strb r1, [r0, #66]
6094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10162 .loc 1 6094 3 is_stmt 1 view .LVU3603
6094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10163 .loc 1 6094 6 is_stmt 0 view .LVU3604
10164 000e 12F4804F tst r2, #16384
10165 0012 0CD0 beq .L654
6097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10166 .loc 1 6097 5 is_stmt 1 view .LVU3605
6097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10167 .loc 1 6097 19 is_stmt 0 view .LVU3606
ARM GAS /tmp/ccN54YTb.s page 371
10168 0014 1A68 ldr r2, [r3]
10169 .LVL733:
6097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10170 .loc 1 6097 25 view .LVU3607
10171 0016 22F48042 bic r2, r2, #16384
10172 001a 1A60 str r2, [r3]
10173 .L655:
6107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10174 .loc 1 6107 3 is_stmt 1 view .LVU3608
6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10175 .loc 1 6109 3 view .LVU3609
6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10176 .loc 1 6109 11 is_stmt 0 view .LVU3610
10177 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10178 .loc 1 6109 6 view .LVU3611
10179 0020 292B cmp r3, #41
10180 0022 0CD0 beq .L659
6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10181 .loc 1 6129 8 is_stmt 1 view .LVU3612
6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10182 .loc 1 6129 16 is_stmt 0 view .LVU3613
10183 0024 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10184 .loc 1 6129 11 view .LVU3614
10185 0028 2A2B cmp r3, #42
10186 002a 18D0 beq .L660
10187 .LVL734:
10188 .L653:
6152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10189 .loc 1 6152 1 view .LVU3615
10190 002c 10BD pop {r4, pc}
10191 .LVL735:
10192 .L654:
6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10193 .loc 1 6099 8 is_stmt 1 view .LVU3616
6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10194 .loc 1 6099 11 is_stmt 0 view .LVU3617
10195 002e 12F4004F tst r2, #32768
10196 0032 F3D0 beq .L655
6102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10197 .loc 1 6102 5 is_stmt 1 view .LVU3618
6102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10198 .loc 1 6102 19 is_stmt 0 view .LVU3619
10199 0034 1A68 ldr r2, [r3]
10200 .LVL736:
6102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10201 .loc 1 6102 25 view .LVU3620
10202 0036 22F40042 bic r2, r2, #32768
10203 003a 1A60 str r2, [r3]
10204 003c EEE7 b .L655
10205 .L659:
6112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
10206 .loc 1 6112 5 is_stmt 1 view .LVU3621
6112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
10207 .loc 1 6112 25 is_stmt 0 view .LVU3622
10208 003e 2823 movs r3, #40
ARM GAS /tmp/ccN54YTb.s page 372
10209 0040 84F84130 strb r3, [r4, #65]
6113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10210 .loc 1 6113 5 is_stmt 1 view .LVU3623
6113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10211 .loc 1 6113 25 is_stmt 0 view .LVU3624
10212 0044 2123 movs r3, #33
10213 0046 2363 str r3, [r4, #48]
6116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10214 .loc 1 6116 5 is_stmt 1 view .LVU3625
10215 0048 0121 movs r1, #1
10216 004a 2046 mov r0, r4
10217 .LVL737:
6116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10218 .loc 1 6116 5 is_stmt 0 view .LVU3626
10219 004c FFF7FEFF bl I2C_Disable_IRQ
10220 .LVL738:
6119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10221 .loc 1 6119 5 is_stmt 1 view .LVU3627
6119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10222 .loc 1 6119 5 view .LVU3628
10223 0050 0023 movs r3, #0
10224 0052 84F84030 strb r3, [r4, #64]
6119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10225 .loc 1 6119 5 view .LVU3629
6125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10226 .loc 1 6125 5 view .LVU3630
10227 0056 2046 mov r0, r4
10228 0058 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
10229 .LVL739:
10230 005c E6E7 b .L653
10231 .LVL740:
10232 .L660:
6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
10233 .loc 1 6132 5 view .LVU3631
6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
10234 .loc 1 6132 25 is_stmt 0 view .LVU3632
10235 005e 2823 movs r3, #40
10236 0060 84F84130 strb r3, [r4, #65]
6133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10237 .loc 1 6133 5 is_stmt 1 view .LVU3633
6133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10238 .loc 1 6133 25 is_stmt 0 view .LVU3634
10239 0064 2223 movs r3, #34
10240 0066 2363 str r3, [r4, #48]
6136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10241 .loc 1 6136 5 is_stmt 1 view .LVU3635
10242 0068 0221 movs r1, #2
10243 006a 2046 mov r0, r4
10244 .LVL741:
6136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10245 .loc 1 6136 5 is_stmt 0 view .LVU3636
10246 006c FFF7FEFF bl I2C_Disable_IRQ
10247 .LVL742:
6139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10248 .loc 1 6139 5 is_stmt 1 view .LVU3637
6139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10249 .loc 1 6139 5 view .LVU3638
ARM GAS /tmp/ccN54YTb.s page 373
10250 0070 0023 movs r3, #0
10251 0072 84F84030 strb r3, [r4, #64]
6139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10252 .loc 1 6139 5 view .LVU3639
6145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10253 .loc 1 6145 5 view .LVU3640
10254 0076 2046 mov r0, r4
10255 0078 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
10256 .LVL743:
6151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10257 .loc 1 6151 3 view .LVU3641
6152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10258 .loc 1 6152 1 is_stmt 0 view .LVU3642
10259 007c D6E7 b .L653
10260 .cfi_endproc
10261 .LFE394:
10263 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits
10264 .align 1
10265 .syntax unified
10266 .thumb
10267 .thumb_func
10269 I2C_DMASlaveTransmitCplt:
10270 .LVL744:
10271 .LFB402:
6812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
10272 .loc 1 6812 1 is_stmt 1 view -0
10273 .cfi_startproc
10274 @ args = 0, pretend = 0, frame = 0
10275 @ frame_needed = 0, uses_anonymous_args = 0
6812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
10276 .loc 1 6812 1 is_stmt 0 view .LVU3644
10277 0000 08B5 push {r3, lr}
10278 .cfi_def_cfa_offset 8
10279 .cfi_offset 3, -8
10280 .cfi_offset 14, -4
6814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10281 .loc 1 6814 3 is_stmt 1 view .LVU3645
6814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10282 .loc 1 6814 22 is_stmt 0 view .LVU3646
10283 0002 806B ldr r0, [r0, #56]
10284 .LVL745:
6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10285 .loc 1 6815 3 is_stmt 1 view .LVU3647
6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10286 .loc 1 6815 12 is_stmt 0 view .LVU3648
10287 0004 C36A ldr r3, [r0, #44]
10288 .LVL746:
6817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10289 .loc 1 6817 3 is_stmt 1 view .LVU3649
6817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10290 .loc 1 6817 6 is_stmt 0 view .LVU3650
10291 0006 002B cmp r3, #0
10292 0008 18BF it ne
10293 000a B3F1807F cmpne r3, #16777216
10294 000e 00D0 beq .L664
10295 .LVL747:
10296 .L661:
ARM GAS /tmp/ccN54YTb.s page 374
6832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10297 .loc 1 6832 1 view .LVU3651
10298 0010 08BD pop {r3, pc}
10299 .LVL748:
10300 .L664:
6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10301 .loc 1 6820 5 is_stmt 1 view .LVU3652
6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10302 .loc 1 6820 9 is_stmt 0 view .LVU3653
10303 0012 0268 ldr r2, [r0]
6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10304 .loc 1 6820 19 view .LVU3654
10305 0014 1368 ldr r3, [r2]
10306 .LVL749:
6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10307 .loc 1 6820 25 view .LVU3655
10308 0016 23F48043 bic r3, r3, #16384
10309 001a 1360 str r3, [r2]
6824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10310 .loc 1 6824 5 is_stmt 1 view .LVU3656
10311 001c FFF7FEFF bl I2C_ITSlaveSeqCplt
10312 .LVL750:
6831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10313 .loc 1 6831 3 view .LVU3657
6832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10314 .loc 1 6832 1 is_stmt 0 view .LVU3658
10315 0020 F6E7 b .L661
10316 .cfi_endproc
10317 .LFE402:
10319 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits
10320 .align 1
10321 .syntax unified
10322 .thumb
10323 .thumb_func
10325 I2C_DMASlaveReceiveCplt:
10326 .LVL751:
10327 .LFB404:
6892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
10328 .loc 1 6892 1 is_stmt 1 view -0
10329 .cfi_startproc
10330 @ args = 0, pretend = 0, frame = 0
10331 @ frame_needed = 0, uses_anonymous_args = 0
6892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
10332 .loc 1 6892 1 is_stmt 0 view .LVU3660
10333 0000 10B5 push {r4, lr}
10334 .cfi_def_cfa_offset 8
10335 .cfi_offset 4, -8
10336 .cfi_offset 14, -4
6894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10337 .loc 1 6894 3 is_stmt 1 view .LVU3661
6894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10338 .loc 1 6894 22 is_stmt 0 view .LVU3662
10339 0002 806B ldr r0, [r0, #56]
10340 .LVL752:
6895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10341 .loc 1 6895 3 is_stmt 1 view .LVU3663
6895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 375
10342 .loc 1 6895 12 is_stmt 0 view .LVU3664
10343 0004 C46A ldr r4, [r0, #44]
10344 .LVL753:
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10345 .loc 1 6897 3 is_stmt 1 view .LVU3665
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10346 .loc 1 6897 8 is_stmt 0 view .LVU3666
10347 0006 C36B ldr r3, [r0, #60]
10348 0008 1B68 ldr r3, [r3]
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10349 .loc 1 6897 46 view .LVU3667
10350 000a 2349 ldr r1, .L672
10351 000c 234A ldr r2, .L672+4
10352 000e 9342 cmp r3, r2
10353 0010 18BF it ne
10354 0012 8B42 cmpne r3, r1
10355 0014 2FD0 beq .L666
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10356 .loc 1 6897 8 discriminator 2 view .LVU3668
10357 0016 1832 adds r2, r2, #24
10358 0018 9342 cmp r3, r2
10359 001a 2CD0 beq .L666
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10360 .loc 1 6897 8 discriminator 4 view .LVU3669
10361 001c 1832 adds r2, r2, #24
10362 001e 9342 cmp r3, r2
10363 0020 29D0 beq .L666
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10364 .loc 1 6897 8 discriminator 6 view .LVU3670
10365 0022 1832 adds r2, r2, #24
10366 0024 9342 cmp r3, r2
10367 0026 26D0 beq .L666
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10368 .loc 1 6897 8 discriminator 8 view .LVU3671
10369 0028 1832 adds r2, r2, #24
10370 002a 9342 cmp r3, r2
10371 002c 23D0 beq .L666
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10372 .loc 1 6897 8 discriminator 10 view .LVU3672
10373 002e 1832 adds r2, r2, #24
10374 0030 9342 cmp r3, r2
10375 0032 20D0 beq .L666
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10376 .loc 1 6897 8 discriminator 12 view .LVU3673
10377 0034 1832 adds r2, r2, #24
10378 0036 9342 cmp r3, r2
10379 0038 1DD0 beq .L666
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10380 .loc 1 6897 8 discriminator 14 view .LVU3674
10381 003a 02F55672 add r2, r2, #856
10382 003e 9342 cmp r3, r2
10383 0040 19D0 beq .L666
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10384 .loc 1 6897 8 discriminator 16 view .LVU3675
10385 0042 1832 adds r2, r2, #24
10386 0044 9342 cmp r3, r2
10387 0046 16D0 beq .L666
ARM GAS /tmp/ccN54YTb.s page 376
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10388 .loc 1 6897 8 discriminator 18 view .LVU3676
10389 0048 1832 adds r2, r2, #24
10390 004a 9342 cmp r3, r2
10391 004c 13D0 beq .L666
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10392 .loc 1 6897 8 discriminator 20 view .LVU3677
10393 004e 1832 adds r2, r2, #24
10394 0050 9342 cmp r3, r2
10395 0052 10D0 beq .L666
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10396 .loc 1 6897 8 discriminator 22 view .LVU3678
10397 0054 1832 adds r2, r2, #24
10398 0056 9342 cmp r3, r2
10399 0058 0DD0 beq .L666
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10400 .loc 1 6897 8 discriminator 24 view .LVU3679
10401 005a 1832 adds r2, r2, #24
10402 005c 9342 cmp r3, r2
10403 005e 0AD0 beq .L666
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10404 .loc 1 6897 8 discriminator 26 view .LVU3680
10405 0060 1832 adds r2, r2, #24
10406 0062 9342 cmp r3, r2
10407 0064 07D0 beq .L666
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10408 .loc 1 6897 8 discriminator 28 view .LVU3681
10409 0066 1832 adds r2, r2, #24
10410 0068 9342 cmp r3, r2
10411 006a 04D0 beq .L666
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10412 .loc 1 6897 8 discriminator 30 view .LVU3682
10413 006c 5B68 ldr r3, [r3, #4]
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10414 .loc 1 6897 46 discriminator 30 view .LVU3683
10415 006e B3FA83F3 clz r3, r3
10416 0072 5B09 lsrs r3, r3, #5
10417 0074 03E0 b .L668
10418 .L666:
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10419 .loc 1 6897 8 discriminator 29 view .LVU3684
10420 0076 5B68 ldr r3, [r3, #4]
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10421 .loc 1 6897 46 discriminator 29 view .LVU3685
10422 0078 B3FA83F3 clz r3, r3
10423 007c 5B09 lsrs r3, r3, #5
10424 .L668:
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10425 .loc 1 6897 6 discriminator 32 view .LVU3686
10426 007e 13B1 cbz r3, .L665
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10427 .loc 1 6897 53 discriminator 33 view .LVU3687
10428 0080 14F5803F cmn r4, #65536
10429 0084 00D1 bne .L671
10430 .LVL754:
10431 .L665:
6912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 377
10432 .loc 1 6912 1 view .LVU3688
10433 0086 10BD pop {r4, pc}
10434 .LVL755:
10435 .L671:
6901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10436 .loc 1 6901 5 is_stmt 1 view .LVU3689
6901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10437 .loc 1 6901 9 is_stmt 0 view .LVU3690
10438 0088 0268 ldr r2, [r0]
6901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10439 .loc 1 6901 19 view .LVU3691
10440 008a 1368 ldr r3, [r2]
6901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10441 .loc 1 6901 25 view .LVU3692
10442 008c 23F40043 bic r3, r3, #32768
10443 0090 1360 str r3, [r2]
6904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10444 .loc 1 6904 5 is_stmt 1 view .LVU3693
10445 0092 FFF7FEFF bl I2C_ITSlaveSeqCplt
10446 .LVL756:
6911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10447 .loc 1 6911 3 view .LVU3694
6912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10448 .loc 1 6912 1 is_stmt 0 view .LVU3695
10449 0096 F6E7 b .L665
10450 .L673:
10451 .align 2
10452 .L672:
10453 0098 10000240 .word 1073872912
10454 009c 28000240 .word 1073872936
10455 .cfi_endproc
10456 .LFE404:
10458 .section .text.HAL_I2C_AddrCallback,"ax",%progbits
10459 .align 1
10460 .weak HAL_I2C_AddrCallback
10461 .syntax unified
10462 .thumb
10463 .thumb_func
10465 HAL_I2C_AddrCallback:
10466 .LVL757:
10467 .LFB375:
4804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10468 .loc 1 4804 1 is_stmt 1 view -0
10469 .cfi_startproc
10470 @ args = 0, pretend = 0, frame = 0
10471 @ frame_needed = 0, uses_anonymous_args = 0
10472 @ link register save eliminated.
4806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(TransferDirection);
10473 .loc 1 4806 3 view .LVU3697
4807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(AddrMatchCode);
10474 .loc 1 4807 3 view .LVU3698
4808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10475 .loc 1 4808 3 view .LVU3699
4813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10476 .loc 1 4813 1 is_stmt 0 view .LVU3700
10477 0000 7047 bx lr
10478 .cfi_endproc
ARM GAS /tmp/ccN54YTb.s page 378
10479 .LFE375:
10481 .section .text.I2C_ITAddrCplt,"ax",%progbits
10482 .align 1
10483 .syntax unified
10484 .thumb
10485 .thumb_func
10487 I2C_ITAddrCplt:
10488 .LVL758:
10489 .LFB392:
5939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection;
10490 .loc 1 5939 1 is_stmt 1 view -0
10491 .cfi_startproc
10492 @ args = 0, pretend = 0, frame = 0
10493 @ frame_needed = 0, uses_anonymous_args = 0
5939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection;
10494 .loc 1 5939 1 is_stmt 0 view .LVU3702
10495 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
10496 .cfi_def_cfa_offset 24
10497 .cfi_offset 3, -24
10498 .cfi_offset 4, -20
10499 .cfi_offset 5, -16
10500 .cfi_offset 6, -12
10501 .cfi_offset 7, -8
10502 .cfi_offset 14, -4
10503 0002 0446 mov r4, r0
5940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t slaveaddrcode;
10504 .loc 1 5940 3 is_stmt 1 view .LVU3703
5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd1code;
10505 .loc 1 5941 3 view .LVU3704
5942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd2code;
10506 .loc 1 5942 3 view .LVU3705
5943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10507 .loc 1 5943 3 view .LVU3706
5946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10508 .loc 1 5946 3 view .LVU3707
5949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10509 .loc 1 5949 3 view .LVU3708
5949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10510 .loc 1 5949 22 is_stmt 0 view .LVU3709
10511 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
5949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10512 .loc 1 5949 6 view .LVU3710
10513 0008 03F02803 and r3, r3, #40
10514 000c 282B cmp r3, #40
10515 000e 06D0 beq .L681
6021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10516 .loc 1 6021 5 is_stmt 1 view .LVU3711
10517 0010 0368 ldr r3, [r0]
10518 0012 0822 movs r2, #8
10519 0014 DA61 str r2, [r3, #28]
6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10520 .loc 1 6024 5 view .LVU3712
6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10521 .loc 1 6024 5 view .LVU3713
10522 0016 0023 movs r3, #0
10523 0018 80F84030 strb r3, [r0, #64]
6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 379
10524 .loc 1 6024 5 discriminator 1 view .LVU3714
10525 .LVL759:
10526 .L675:
6026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10527 .loc 1 6026 1 is_stmt 0 view .LVU3715
10528 001c F8BD pop {r3, r4, r5, r6, r7, pc}
10529 .LVL760:
10530 .L681:
5951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
10531 .loc 1 5951 5 is_stmt 1 view .LVU3716
5951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
10532 .loc 1 5951 25 is_stmt 0 view .LVU3717
10533 001e 0368 ldr r3, [r0]
10534 0020 9E69 ldr r6, [r3, #24]
5951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
10535 .loc 1 5951 23 view .LVU3718
10536 0022 C6F30046 ubfx r6, r6, #16, #1
10537 .LVL761:
5952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
10538 .loc 1 5952 5 is_stmt 1 view .LVU3719
5952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
10539 .loc 1 5952 25 is_stmt 0 view .LVU3720
10540 0026 9A69 ldr r2, [r3, #24]
10541 0028 120C lsrs r2, r2, #16
5952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
10542 .loc 1 5952 23 view .LVU3721
10543 002a 02F0FE05 and r5, r2, #254
10544 .LVL762:
5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
10545 .loc 1 5953 5 is_stmt 1 view .LVU3722
5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
10546 .loc 1 5953 25 is_stmt 0 view .LVU3723
10547 002e 9A68 ldr r2, [r3, #8]
5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
10548 .loc 1 5953 23 view .LVU3724
10549 0030 C2F30902 ubfx r2, r2, #0, #10
10550 .LVL763:
5954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10551 .loc 1 5954 5 is_stmt 1 view .LVU3725
5954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10552 .loc 1 5954 25 is_stmt 0 view .LVU3726
10553 0034 DF68 ldr r7, [r3, #12]
5954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10554 .loc 1 5954 23 view .LVU3727
10555 0036 07F0FE07 and r7, r7, #254
10556 .LVL764:
5957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10557 .loc 1 5957 5 is_stmt 1 view .LVU3728
5957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10558 .loc 1 5957 19 is_stmt 0 view .LVU3729
10559 003a C168 ldr r1, [r0, #12]
10560 .LVL765:
5957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10561 .loc 1 5957 8 view .LVU3730
10562 003c 0229 cmp r1, #2
10563 003e 22D1 bne .L677
5959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 380
10564 .loc 1 5959 7 is_stmt 1 view .LVU3731
5959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10565 .loc 1 5959 44 is_stmt 0 view .LVU3732
10566 0040 85EAD215 eor r5, r5, r2, lsr #7
10567 .LVL766:
5959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10568 .loc 1 5959 10 view .LVU3733
10569 0044 15F0060F tst r5, #6
10570 0048 10D1 bne .L678
5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount++;
10571 .loc 1 5961 9 is_stmt 1 view .LVU3734
10572 .LVL767:
5962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
10573 .loc 1 5962 9 view .LVU3735
5962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
10574 .loc 1 5962 13 is_stmt 0 view .LVU3736
10575 004a 816C ldr r1, [r0, #72]
5962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
10576 .loc 1 5962 29 view .LVU3737
10577 004c 0131 adds r1, r1, #1
10578 004e 8164 str r1, [r0, #72]
5963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10579 .loc 1 5963 9 is_stmt 1 view .LVU3738
5963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10580 .loc 1 5963 17 is_stmt 0 view .LVU3739
10581 0050 816C ldr r1, [r0, #72]
5963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10582 .loc 1 5963 12 view .LVU3740
10583 0052 0229 cmp r1, #2
10584 0054 E2D1 bne .L675
5966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10585 .loc 1 5966 11 is_stmt 1 view .LVU3741
5966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10586 .loc 1 5966 32 is_stmt 0 view .LVU3742
10587 0056 0021 movs r1, #0
10588 0058 8164 str r1, [r0, #72]
5969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10589 .loc 1 5969 11 is_stmt 1 view .LVU3743
10590 005a 0820 movs r0, #8
10591 .LVL768:
5969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10592 .loc 1 5969 11 is_stmt 0 view .LVU3744
10593 005c D861 str r0, [r3, #28]
5972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10594 .loc 1 5972 11 is_stmt 1 view .LVU3745
5972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10595 .loc 1 5972 11 view .LVU3746
10596 005e 84F84010 strb r1, [r4, #64]
5972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10597 .loc 1 5972 11 view .LVU3747
5978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10598 .loc 1 5978 11 view .LVU3748
10599 0062 3146 mov r1, r6
10600 0064 2046 mov r0, r4
10601 0066 FFF7FEFF bl HAL_I2C_AddrCallback
10602 .LVL769:
5978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
ARM GAS /tmp/ccN54YTb.s page 381
10603 .loc 1 5978 11 is_stmt 0 view .LVU3749
10604 006a D7E7 b .L675
10605 .LVL770:
10606 .L678:
5984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10607 .loc 1 5984 9 is_stmt 1 view .LVU3750
5987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10608 .loc 1 5987 9 view .LVU3751
10609 006c 4FF40041 mov r1, #32768
10610 0070 FFF7FEFF bl I2C_Disable_IRQ
10611 .LVL771:
5990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10612 .loc 1 5990 9 view .LVU3752
5990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10613 .loc 1 5990 9 view .LVU3753
10614 0074 0023 movs r3, #0
10615 0076 84F84030 strb r3, [r4, #64]
5990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10616 .loc 1 5990 9 view .LVU3754
5996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10617 .loc 1 5996 9 view .LVU3755
10618 007a 3A46 mov r2, r7
10619 007c 3146 mov r1, r6
10620 007e 2046 mov r0, r4
10621 0080 FFF7FEFF bl HAL_I2C_AddrCallback
10622 .LVL772:
10623 0084 CAE7 b .L675
10624 .LVL773:
10625 .L677:
6004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10626 .loc 1 6004 7 view .LVU3756
10627 0086 4FF40041 mov r1, #32768
10628 008a FFF7FEFF bl I2C_Disable_IRQ
10629 .LVL774:
6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10630 .loc 1 6007 7 view .LVU3757
6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10631 .loc 1 6007 7 view .LVU3758
10632 008e 0023 movs r3, #0
10633 0090 84F84030 strb r3, [r4, #64]
6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10634 .loc 1 6007 7 view .LVU3759
6013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10635 .loc 1 6013 7 view .LVU3760
10636 0094 2A46 mov r2, r5
10637 0096 3146 mov r1, r6
10638 0098 2046 mov r0, r4
10639 009a FFF7FEFF bl HAL_I2C_AddrCallback
10640 .LVL775:
10641 009e BDE7 b .L675
10642 .cfi_endproc
10643 .LFE392:
10645 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits
10646 .align 1
10647 .weak HAL_I2C_ListenCpltCallback
10648 .syntax unified
10649 .thumb
ARM GAS /tmp/ccN54YTb.s page 382
10650 .thumb_func
10652 HAL_I2C_ListenCpltCallback:
10653 .LVL776:
10654 .LFB376:
4822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10655 .loc 1 4822 1 view -0
10656 .cfi_startproc
10657 @ args = 0, pretend = 0, frame = 0
10658 @ frame_needed = 0, uses_anonymous_args = 0
10659 @ link register save eliminated.
4824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10660 .loc 1 4824 3 view .LVU3762
4829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10661 .loc 1 4829 1 is_stmt 0 view .LVU3763
10662 0000 7047 bx lr
10663 .cfi_endproc
10664 .LFE376:
10666 .section .text.I2C_ITListenCplt,"ax",%progbits
10667 .align 1
10668 .syntax unified
10669 .thumb
10670 .thumb_func
10672 I2C_ITListenCplt:
10673 .LVL777:
10674 .LFB397:
6520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
10675 .loc 1 6520 1 is_stmt 1 view -0
10676 .cfi_startproc
10677 @ args = 0, pretend = 0, frame = 0
10678 @ frame_needed = 0, uses_anonymous_args = 0
6520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
10679 .loc 1 6520 1 is_stmt 0 view .LVU3765
10680 0000 10B5 push {r4, lr}
10681 .cfi_def_cfa_offset 8
10682 .cfi_offset 4, -8
10683 .cfi_offset 14, -4
10684 0002 0446 mov r4, r0
6522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10685 .loc 1 6522 3 is_stmt 1 view .LVU3766
6522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10686 .loc 1 6522 21 is_stmt 0 view .LVU3767
10687 0004 174B ldr r3, .L686
10688 0006 C362 str r3, [r0, #44]
6523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
10689 .loc 1 6523 3 is_stmt 1 view .LVU3768
6523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
10690 .loc 1 6523 23 is_stmt 0 view .LVU3769
10691 0008 0023 movs r3, #0
10692 000a 0363 str r3, [r0, #48]
6524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
10693 .loc 1 6524 3 is_stmt 1 view .LVU3770
6524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
10694 .loc 1 6524 15 is_stmt 0 view .LVU3771
10695 000c 2022 movs r2, #32
10696 000e 80F84120 strb r2, [r0, #65]
6525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
10697 .loc 1 6525 3 is_stmt 1 view .LVU3772
ARM GAS /tmp/ccN54YTb.s page 383
6525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
10698 .loc 1 6525 14 is_stmt 0 view .LVU3773
10699 0012 80F84230 strb r3, [r0, #66]
6526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10700 .loc 1 6526 3 is_stmt 1 view .LVU3774
6526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10701 .loc 1 6526 17 is_stmt 0 view .LVU3775
10702 0016 4363 str r3, [r0, #52]
6529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10703 .loc 1 6529 3 is_stmt 1 view .LVU3776
6529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10704 .loc 1 6529 6 is_stmt 0 view .LVU3777
10705 0018 11F0040F tst r1, #4
10706 001c 13D0 beq .L684
6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10707 .loc 1 6532 5 is_stmt 1 view .LVU3778
6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10708 .loc 1 6532 36 is_stmt 0 view .LVU3779
10709 001e 0368 ldr r3, [r0]
6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10710 .loc 1 6532 46 view .LVU3780
10711 0020 5A6A ldr r2, [r3, #36]
6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10712 .loc 1 6532 10 view .LVU3781
10713 0022 436A ldr r3, [r0, #36]
6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10714 .loc 1 6532 21 view .LVU3782
10715 0024 1A70 strb r2, [r3]
6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10716 .loc 1 6535 5 is_stmt 1 view .LVU3783
6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10717 .loc 1 6535 9 is_stmt 0 view .LVU3784
10718 0026 436A ldr r3, [r0, #36]
6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10719 .loc 1 6535 19 view .LVU3785
10720 0028 0133 adds r3, r3, #1
10721 002a 4362 str r3, [r0, #36]
6537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10722 .loc 1 6537 5 is_stmt 1 view .LVU3786
6537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10723 .loc 1 6537 14 is_stmt 0 view .LVU3787
10724 002c 038D ldrh r3, [r0, #40]
6537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10725 .loc 1 6537 8 view .LVU3788
10726 002e 53B1 cbz r3, .L684
6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
10727 .loc 1 6539 7 is_stmt 1 view .LVU3789
6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
10728 .loc 1 6539 21 is_stmt 0 view .LVU3790
10729 0030 013B subs r3, r3, #1
10730 0032 0385 strh r3, [r0, #40] @ movhi
6540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10731 .loc 1 6540 7 is_stmt 1 view .LVU3791
6540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10732 .loc 1 6540 11 is_stmt 0 view .LVU3792
10733 0034 438D ldrh r3, [r0, #42]
10734 0036 9BB2 uxth r3, r3
ARM GAS /tmp/ccN54YTb.s page 384
6540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10735 .loc 1 6540 22 view .LVU3793
10736 0038 013B subs r3, r3, #1
10737 003a 9BB2 uxth r3, r3
10738 003c 4385 strh r3, [r0, #42] @ movhi
6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10739 .loc 1 6543 7 is_stmt 1 view .LVU3794
6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10740 .loc 1 6543 11 is_stmt 0 view .LVU3795
10741 003e 436C ldr r3, [r0, #68]
6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10742 .loc 1 6543 23 view .LVU3796
10743 0040 43F00403 orr r3, r3, #4
10744 0044 4364 str r3, [r0, #68]
10745 .L684:
6548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10746 .loc 1 6548 3 is_stmt 1 view .LVU3797
10747 0046 48F20301 movw r1, #32771
10748 .LVL778:
6548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10749 .loc 1 6548 3 is_stmt 0 view .LVU3798
10750 004a 2046 mov r0, r4
10751 .LVL779:
6548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10752 .loc 1 6548 3 view .LVU3799
10753 004c FFF7FEFF bl I2C_Disable_IRQ
10754 .LVL780:
6551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10755 .loc 1 6551 3 is_stmt 1 view .LVU3800
10756 0050 2368 ldr r3, [r4]
10757 0052 1022 movs r2, #16
10758 0054 DA61 str r2, [r3, #28]
6554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10759 .loc 1 6554 3 view .LVU3801
6554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10760 .loc 1 6554 3 view .LVU3802
10761 0056 0023 movs r3, #0
10762 0058 84F84030 strb r3, [r4, #64]
6554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10763 .loc 1 6554 3 view .LVU3803
6560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10764 .loc 1 6560 3 view .LVU3804
10765 005c 2046 mov r0, r4
10766 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback
10767 .LVL781:
6562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10768 .loc 1 6562 1 is_stmt 0 view .LVU3805
10769 0062 10BD pop {r4, pc}
10770 .LVL782:
10771 .L687:
6562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10772 .loc 1 6562 1 view .LVU3806
10773 .align 2
10774 .L686:
10775 0064 0000FFFF .word -65536
10776 .cfi_endproc
10777 .LFE397:
ARM GAS /tmp/ccN54YTb.s page 385
10779 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits
10780 .align 1
10781 .weak HAL_I2C_MemTxCpltCallback
10782 .syntax unified
10783 .thumb
10784 .thumb_func
10786 HAL_I2C_MemTxCpltCallback:
10787 .LVL783:
10788 .LFB377:
4838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10789 .loc 1 4838 1 is_stmt 1 view -0
10790 .cfi_startproc
10791 @ args = 0, pretend = 0, frame = 0
10792 @ frame_needed = 0, uses_anonymous_args = 0
10793 @ link register save eliminated.
4840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10794 .loc 1 4840 3 view .LVU3808
4845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10795 .loc 1 4845 1 is_stmt 0 view .LVU3809
10796 0000 7047 bx lr
10797 .cfi_endproc
10798 .LFE377:
10800 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits
10801 .align 1
10802 .weak HAL_I2C_MemRxCpltCallback
10803 .syntax unified
10804 .thumb
10805 .thumb_func
10807 HAL_I2C_MemRxCpltCallback:
10808 .LVL784:
10809 .LFB378:
4854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10810 .loc 1 4854 1 is_stmt 1 view -0
10811 .cfi_startproc
10812 @ args = 0, pretend = 0, frame = 0
10813 @ frame_needed = 0, uses_anonymous_args = 0
10814 @ link register save eliminated.
4856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10815 .loc 1 4856 3 view .LVU3811
4861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10816 .loc 1 4861 1 is_stmt 0 view .LVU3812
10817 0000 7047 bx lr
10818 .cfi_endproc
10819 .LFE378:
10821 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits
10822 .align 1
10823 .weak HAL_I2C_ErrorCallback
10824 .syntax unified
10825 .thumb
10826 .thumb_func
10828 HAL_I2C_ErrorCallback:
10829 .LVL785:
10830 .LFB379:
4870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10831 .loc 1 4870 1 is_stmt 1 view -0
10832 .cfi_startproc
10833 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/ccN54YTb.s page 386
10834 @ frame_needed = 0, uses_anonymous_args = 0
10835 @ link register save eliminated.
4872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10836 .loc 1 4872 3 view .LVU3814
4877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10837 .loc 1 4877 1 is_stmt 0 view .LVU3815
10838 0000 7047 bx lr
10839 .cfi_endproc
10840 .LFE379:
10842 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits
10843 .align 1
10844 .weak HAL_I2C_AbortCpltCallback
10845 .syntax unified
10846 .thumb
10847 .thumb_func
10849 HAL_I2C_AbortCpltCallback:
10850 .LVL786:
10851 .LFB380:
4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10852 .loc 1 4886 1 is_stmt 1 view -0
10853 .cfi_startproc
10854 @ args = 0, pretend = 0, frame = 0
10855 @ frame_needed = 0, uses_anonymous_args = 0
10856 @ link register save eliminated.
4888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10857 .loc 1 4888 3 view .LVU3817
4893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10858 .loc 1 4893 1 is_stmt 0 view .LVU3818
10859 0000 7047 bx lr
10860 .cfi_endproc
10861 .LFE380:
10863 .section .text.I2C_TreatErrorCallback,"ax",%progbits
10864 .align 1
10865 .syntax unified
10866 .thumb
10867 .thumb_func
10869 I2C_TreatErrorCallback:
10870 .LVL787:
10871 .LFB399:
6702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
10872 .loc 1 6702 1 is_stmt 1 view -0
10873 .cfi_startproc
10874 @ args = 0, pretend = 0, frame = 0
10875 @ frame_needed = 0, uses_anonymous_args = 0
6702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
10876 .loc 1 6702 1 is_stmt 0 view .LVU3820
10877 0000 08B5 push {r3, lr}
10878 .cfi_def_cfa_offset 8
10879 .cfi_offset 3, -8
10880 .cfi_offset 14, -4
6703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10881 .loc 1 6703 3 is_stmt 1 view .LVU3821
6703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10882 .loc 1 6703 11 is_stmt 0 view .LVU3822
10883 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
6703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10884 .loc 1 6703 6 view .LVU3823
ARM GAS /tmp/ccN54YTb.s page 387
10885 0006 602B cmp r3, #96
10886 0008 06D0 beq .L696
6720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10887 .loc 1 6720 5 is_stmt 1 view .LVU3824
6720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10888 .loc 1 6720 25 is_stmt 0 view .LVU3825
10889 000a 0023 movs r3, #0
10890 000c 0363 str r3, [r0, #48]
6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10891 .loc 1 6723 5 is_stmt 1 view .LVU3826
6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10892 .loc 1 6723 5 view .LVU3827
10893 000e 80F84030 strb r3, [r0, #64]
6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10894 .loc 1 6723 5 view .LVU3828
6729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10895 .loc 1 6729 5 view .LVU3829
10896 0012 FFF7FEFF bl HAL_I2C_ErrorCallback
10897 .LVL788:
10898 .L692:
6732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10899 .loc 1 6732 1 is_stmt 0 view .LVU3830
10900 0016 08BD pop {r3, pc}
10901 .LVL789:
10902 .L696:
6705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10903 .loc 1 6705 5 is_stmt 1 view .LVU3831
6705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10904 .loc 1 6705 17 is_stmt 0 view .LVU3832
10905 0018 2023 movs r3, #32
10906 001a 80F84130 strb r3, [r0, #65]
6706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10907 .loc 1 6706 5 is_stmt 1 view .LVU3833
6706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10908 .loc 1 6706 25 is_stmt 0 view .LVU3834
10909 001e 0023 movs r3, #0
10910 0020 0363 str r3, [r0, #48]
6709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10911 .loc 1 6709 5 is_stmt 1 view .LVU3835
6709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10912 .loc 1 6709 5 view .LVU3836
10913 0022 80F84030 strb r3, [r0, #64]
6709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10914 .loc 1 6709 5 view .LVU3837
6715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10915 .loc 1 6715 5 view .LVU3838
10916 0026 FFF7FEFF bl HAL_I2C_AbortCpltCallback
10917 .LVL790:
6715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10918 .loc 1 6715 5 is_stmt 0 view .LVU3839
10919 002a F4E7 b .L692
10920 .cfi_endproc
10921 .LFE399:
10923 .section .text.I2C_ITError,"ax",%progbits
10924 .align 1
10925 .syntax unified
10926 .thumb
ARM GAS /tmp/ccN54YTb.s page 388
10927 .thumb_func
10929 I2C_ITError:
10930 .LVL791:
10931 .LFB398:
6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
10932 .loc 1 6571 1 is_stmt 1 view -0
10933 .cfi_startproc
10934 @ args = 0, pretend = 0, frame = 0
10935 @ frame_needed = 0, uses_anonymous_args = 0
6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
10936 .loc 1 6571 1 is_stmt 0 view .LVU3841
10937 0000 10B5 push {r4, lr}
10938 .cfi_def_cfa_offset 8
10939 .cfi_offset 4, -8
10940 .cfi_offset 14, -4
10941 0002 0446 mov r4, r0
6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10942 .loc 1 6572 3 is_stmt 1 view .LVU3842
6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10943 .loc 1 6572 24 is_stmt 0 view .LVU3843
10944 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
10945 .LVL792:
6574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10946 .loc 1 6574 3 is_stmt 1 view .LVU3844
6577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
10947 .loc 1 6577 3 view .LVU3845
6577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
10948 .loc 1 6577 23 is_stmt 0 view .LVU3846
10949 0008 0022 movs r2, #0
10950 000a 80F84220 strb r2, [r0, #66]
6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U;
10951 .loc 1 6578 3 is_stmt 1 view .LVU3847
6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U;
10952 .loc 1 6578 23 is_stmt 0 view .LVU3848
10953 000e 4548 ldr r0, .L710
10954 .LVL793:
6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U;
10955 .loc 1 6578 23 view .LVU3849
10956 0010 E062 str r0, [r4, #44]
6579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10957 .loc 1 6579 3 is_stmt 1 view .LVU3850
6579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10958 .loc 1 6579 23 is_stmt 0 view .LVU3851
10959 0012 6285 strh r2, [r4, #42] @ movhi
6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10960 .loc 1 6582 3 is_stmt 1 view .LVU3852
6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10961 .loc 1 6582 7 is_stmt 0 view .LVU3853
10962 0014 626C ldr r2, [r4, #68]
6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10963 .loc 1 6582 19 view .LVU3854
10964 0016 0A43 orrs r2, r2, r1
10965 0018 6264 str r2, [r4, #68]
6585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
10966 .loc 1 6585 3 is_stmt 1 view .LVU3855
6586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
10967 .loc 1 6586 50 is_stmt 0 view .LVU3856
ARM GAS /tmp/ccN54YTb.s page 389
10968 001a 283B subs r3, r3, #40
10969 .LVL794:
6586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
10970 .loc 1 6586 50 view .LVU3857
10971 001c DBB2 uxtb r3, r3
10972 .LVL795:
6585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
10973 .loc 1 6585 6 view .LVU3858
10974 001e 022B cmp r3, #2
10975 0020 2DD8 bhi .L698
6590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10976 .loc 1 6590 5 is_stmt 1 view .LVU3859
10977 0022 0321 movs r1, #3
10978 .LVL796:
6590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10979 .loc 1 6590 5 is_stmt 0 view .LVU3860
10980 0024 2046 mov r0, r4
10981 0026 FFF7FEFF bl I2C_Disable_IRQ
10982 .LVL797:
6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
10983 .loc 1 6593 5 is_stmt 1 view .LVU3861
6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
10984 .loc 1 6593 25 is_stmt 0 view .LVU3862
10985 002a 2823 movs r3, #40
10986 002c 84F84130 strb r3, [r4, #65]
6594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10987 .loc 1 6594 5 is_stmt 1 view .LVU3863
6594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10988 .loc 1 6594 25 is_stmt 0 view .LVU3864
10989 0030 3D4B ldr r3, .L710+4
10990 0032 6363 str r3, [r4, #52]
10991 .L699:
6629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10992 .loc 1 6629 3 is_stmt 1 view .LVU3865
6629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10993 .loc 1 6629 20 is_stmt 0 view .LVU3866
10994 0034 236B ldr r3, [r4, #48]
10995 .LVL798:
6631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10996 .loc 1 6631 3 is_stmt 1 view .LVU3867
6631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10997 .loc 1 6631 12 is_stmt 0 view .LVU3868
10998 0036 A26B ldr r2, [r4, #56]
6631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10999 .loc 1 6631 6 view .LVU3869
11000 0038 002A cmp r2, #0
11001 003a 48D0 beq .L702
6631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
11002 .loc 1 6631 30 discriminator 1 view .LVU3870
11003 003c 212B cmp r3, #33
11004 003e 18BF it ne
11005 0040 112B cmpne r3, #17
11006 0042 44D1 bne .L702
6634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11007 .loc 1 6634 5 is_stmt 1 view .LVU3871
6634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11008 .loc 1 6634 14 is_stmt 0 view .LVU3872
ARM GAS /tmp/ccN54YTb.s page 390
11009 0044 2368 ldr r3, [r4]
11010 .LVL799:
6634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11011 .loc 1 6634 24 view .LVU3873
11012 0046 1A68 ldr r2, [r3]
6634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11013 .loc 1 6634 8 view .LVU3874
11014 0048 12F4804F tst r2, #16384
11015 004c 03D0 beq .L703
6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11016 .loc 1 6636 7 is_stmt 1 view .LVU3875
6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11017 .loc 1 6636 21 is_stmt 0 view .LVU3876
11018 004e 1A68 ldr r2, [r3]
6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11019 .loc 1 6636 27 view .LVU3877
11020 0050 22F48042 bic r2, r2, #16384
11021 0054 1A60 str r2, [r3]
11022 .L703:
6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11023 .loc 1 6639 5 is_stmt 1 view .LVU3878
6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11024 .loc 1 6639 9 is_stmt 0 view .LVU3879
11025 0056 A06B ldr r0, [r4, #56]
11026 0058 FFF7FEFF bl HAL_DMA_GetState
11027 .LVL800:
6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11028 .loc 1 6639 8 discriminator 1 view .LVU3880
11029 005c 0128 cmp r0, #1
11030 005e 32D0 beq .L704
6643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11031 .loc 1 6643 7 is_stmt 1 view .LVU3881
6643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11032 .loc 1 6643 11 is_stmt 0 view .LVU3882
11033 0060 A36B ldr r3, [r4, #56]
6643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11034 .loc 1 6643 39 view .LVU3883
11035 0062 324A ldr r2, .L710+8
11036 0064 1A65 str r2, [r3, #80]
6646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11037 .loc 1 6646 7 is_stmt 1 view .LVU3884
6646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11038 .loc 1 6646 7 view .LVU3885
11039 0066 0023 movs r3, #0
11040 0068 84F84030 strb r3, [r4, #64]
6646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11041 .loc 1 6646 7 view .LVU3886
6649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11042 .loc 1 6649 7 view .LVU3887
6649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11043 .loc 1 6649 11 is_stmt 0 view .LVU3888
11044 006c A06B ldr r0, [r4, #56]
11045 006e FFF7FEFF bl HAL_DMA_Abort_IT
11046 .LVL801:
6649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11047 .loc 1 6649 10 discriminator 1 view .LVU3889
11048 0072 0028 cmp r0, #0
ARM GAS /tmp/ccN54YTb.s page 391
11049 0074 54D0 beq .L697
6652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11050 .loc 1 6652 9 is_stmt 1 view .LVU3890
6652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11051 .loc 1 6652 13 is_stmt 0 view .LVU3891
11052 0076 A06B ldr r0, [r4, #56]
6652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11053 .loc 1 6652 21 view .LVU3892
11054 0078 036D ldr r3, [r0, #80]
6652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11055 .loc 1 6652 9 view .LVU3893
11056 007a 9847 blx r3
11057 .LVL802:
11058 007c 50E0 b .L697
11059 .LVL803:
11060 .L698:
6599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11061 .loc 1 6599 5 is_stmt 1 view .LVU3894
11062 007e 48F20301 movw r1, #32771
11063 .LVL804:
6599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11064 .loc 1 6599 5 is_stmt 0 view .LVU3895
11065 0082 2046 mov r0, r4
11066 0084 FFF7FEFF bl I2C_Disable_IRQ
11067 .LVL805:
6602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11068 .loc 1 6602 5 is_stmt 1 view .LVU3896
11069 0088 2046 mov r0, r4
11070 008a FFF7FEFF bl I2C_Flush_TXDR
11071 .LVL806:
6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11072 .loc 1 6606 5 view .LVU3897
6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11073 .loc 1 6606 13 is_stmt 0 view .LVU3898
11074 008e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11075 .loc 1 6606 8 view .LVU3899
11076 0092 602B cmp r3, #96
11077 0094 14D0 beq .L700
6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11078 .loc 1 6609 7 is_stmt 1 view .LVU3900
6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11079 .loc 1 6609 27 is_stmt 0 view .LVU3901
11080 0096 2023 movs r3, #32
11081 0098 84F84130 strb r3, [r4, #65]
6612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11082 .loc 1 6612 7 is_stmt 1 view .LVU3902
6612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11083 .loc 1 6612 11 is_stmt 0 view .LVU3903
11084 009c 2368 ldr r3, [r4]
11085 009e 9A69 ldr r2, [r3, #24]
6612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11086 .loc 1 6612 10 view .LVU3904
11087 00a0 12F0200F tst r2, #32
11088 00a4 0CD0 beq .L700
6614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11089 .loc 1 6614 9 is_stmt 1 view .LVU3905
ARM GAS /tmp/ccN54YTb.s page 392
6614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11090 .loc 1 6614 13 is_stmt 0 view .LVU3906
11091 00a6 9A69 ldr r2, [r3, #24]
6614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11092 .loc 1 6614 12 view .LVU3907
11093 00a8 12F0100F tst r2, #16
11094 00ac 05D0 beq .L701
6616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
11095 .loc 1 6616 11 is_stmt 1 view .LVU3908
11096 00ae 1022 movs r2, #16
11097 00b0 DA61 str r2, [r3, #28]
6617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11098 .loc 1 6617 11 view .LVU3909
6617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11099 .loc 1 6617 15 is_stmt 0 view .LVU3910
11100 00b2 636C ldr r3, [r4, #68]
6617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11101 .loc 1 6617 27 view .LVU3911
11102 00b4 43F00403 orr r3, r3, #4
11103 00b8 6364 str r3, [r4, #68]
11104 .L701:
6621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11105 .loc 1 6621 9 is_stmt 1 view .LVU3912
11106 00ba 2368 ldr r3, [r4]
11107 00bc 2022 movs r2, #32
11108 00be DA61 str r2, [r3, #28]
11109 .L700:
6625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11110 .loc 1 6625 5 view .LVU3913
6625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11111 .loc 1 6625 25 is_stmt 0 view .LVU3914
11112 00c0 0023 movs r3, #0
11113 00c2 6363 str r3, [r4, #52]
11114 00c4 B6E7 b .L699
11115 .LVL807:
11116 .L704:
6657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11117 .loc 1 6657 7 is_stmt 1 view .LVU3915
11118 00c6 2046 mov r0, r4
11119 00c8 FFF7FEFF bl I2C_TreatErrorCallback
11120 .LVL808:
11121 00cc 28E0 b .L697
11122 .LVL809:
11123 .L702:
6661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
11124 .loc 1 6661 8 view .LVU3916
6661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
11125 .loc 1 6661 17 is_stmt 0 view .LVU3917
11126 00ce E26B ldr r2, [r4, #60]
6661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
11127 .loc 1 6661 11 view .LVU3918
11128 00d0 1AB3 cbz r2, .L706
6661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
11129 .loc 1 6661 35 discriminator 1 view .LVU3919
11130 00d2 222B cmp r3, #34
11131 00d4 18BF it ne
11132 00d6 122B cmpne r3, #18
ARM GAS /tmp/ccN54YTb.s page 393
11133 00d8 1FD1 bne .L706
6664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11134 .loc 1 6664 5 is_stmt 1 view .LVU3920
6664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11135 .loc 1 6664 14 is_stmt 0 view .LVU3921
11136 00da 2368 ldr r3, [r4]
11137 .LVL810:
6664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11138 .loc 1 6664 24 view .LVU3922
11139 00dc 1A68 ldr r2, [r3]
6664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11140 .loc 1 6664 8 view .LVU3923
11141 00de 12F4004F tst r2, #32768
11142 00e2 03D0 beq .L707
6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11143 .loc 1 6666 7 is_stmt 1 view .LVU3924
6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11144 .loc 1 6666 21 is_stmt 0 view .LVU3925
11145 00e4 1A68 ldr r2, [r3]
6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11146 .loc 1 6666 27 view .LVU3926
11147 00e6 22F40042 bic r2, r2, #32768
11148 00ea 1A60 str r2, [r3]
11149 .L707:
6669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11150 .loc 1 6669 5 is_stmt 1 view .LVU3927
6669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11151 .loc 1 6669 9 is_stmt 0 view .LVU3928
11152 00ec E06B ldr r0, [r4, #60]
11153 00ee FFF7FEFF bl HAL_DMA_GetState
11154 .LVL811:
6669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11155 .loc 1 6669 8 discriminator 1 view .LVU3929
11156 00f2 0128 cmp r0, #1
11157 00f4 0DD0 beq .L708
6673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11158 .loc 1 6673 7 is_stmt 1 view .LVU3930
6673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11159 .loc 1 6673 11 is_stmt 0 view .LVU3931
11160 00f6 E36B ldr r3, [r4, #60]
6673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11161 .loc 1 6673 39 view .LVU3932
11162 00f8 0C4A ldr r2, .L710+8
11163 00fa 1A65 str r2, [r3, #80]
6676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11164 .loc 1 6676 7 is_stmt 1 view .LVU3933
6676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11165 .loc 1 6676 7 view .LVU3934
11166 00fc 0023 movs r3, #0
11167 00fe 84F84030 strb r3, [r4, #64]
6676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11168 .loc 1 6676 7 view .LVU3935
6679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11169 .loc 1 6679 7 view .LVU3936
6679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11170 .loc 1 6679 11 is_stmt 0 view .LVU3937
11171 0102 E06B ldr r0, [r4, #60]
ARM GAS /tmp/ccN54YTb.s page 394
11172 0104 FFF7FEFF bl HAL_DMA_Abort_IT
11173 .LVL812:
6679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11174 .loc 1 6679 10 discriminator 1 view .LVU3938
11175 0108 50B1 cbz r0, .L697
6682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11176 .loc 1 6682 9 is_stmt 1 view .LVU3939
6682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11177 .loc 1 6682 13 is_stmt 0 view .LVU3940
11178 010a E06B ldr r0, [r4, #60]
6682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11179 .loc 1 6682 21 view .LVU3941
11180 010c 036D ldr r3, [r0, #80]
6682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11181 .loc 1 6682 9 view .LVU3942
11182 010e 9847 blx r3
11183 .LVL813:
11184 0110 06E0 b .L697
11185 .L708:
6687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11186 .loc 1 6687 7 is_stmt 1 view .LVU3943
11187 0112 2046 mov r0, r4
11188 0114 FFF7FEFF bl I2C_TreatErrorCallback
11189 .LVL814:
11190 0118 02E0 b .L697
11191 .LVL815:
11192 .L706:
6692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11193 .loc 1 6692 5 view .LVU3944
11194 011a 2046 mov r0, r4
11195 011c FFF7FEFF bl I2C_TreatErrorCallback
11196 .LVL816:
11197 .L697:
6694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11198 .loc 1 6694 1 is_stmt 0 view .LVU3945
11199 0120 10BD pop {r4, pc}
11200 .LVL817:
11201 .L711:
6694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11202 .loc 1 6694 1 view .LVU3946
11203 0122 00BF .align 2
11204 .L710:
11205 0124 0000FFFF .word -65536
11206 0128 00000000 .word I2C_Slave_ISR_IT
11207 012c 00000000 .word I2C_DMAAbort
11208 .cfi_endproc
11209 .LFE398:
11211 .section .text.I2C_ITSlaveCplt,"ax",%progbits
11212 .align 1
11213 .syntax unified
11214 .thumb
11215 .thumb_func
11217 I2C_ITSlaveCplt:
11218 .LVL818:
11219 .LFB396:
6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
11220 .loc 1 6304 1 is_stmt 1 view -0
ARM GAS /tmp/ccN54YTb.s page 395
11221 .cfi_startproc
11222 @ args = 0, pretend = 0, frame = 0
11223 @ frame_needed = 0, uses_anonymous_args = 0
6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
11224 .loc 1 6304 1 is_stmt 0 view .LVU3948
11225 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
11226 .cfi_def_cfa_offset 24
11227 .cfi_offset 3, -24
11228 .cfi_offset 4, -20
11229 .cfi_offset 5, -16
11230 .cfi_offset 6, -12
11231 .cfi_offset 7, -8
11232 .cfi_offset 14, -4
11233 0002 0446 mov r4, r0
11234 0004 0D46 mov r5, r1
6305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11235 .loc 1 6305 3 is_stmt 1 view .LVU3949
6305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11236 .loc 1 6305 26 is_stmt 0 view .LVU3950
11237 0006 0268 ldr r2, [r0]
6305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11238 .loc 1 6305 12 view .LVU3951
11239 0008 1668 ldr r6, [r2]
11240 .LVL819:
6306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
11241 .loc 1 6306 3 is_stmt 1 view .LVU3952
6307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
11242 .loc 1 6307 3 view .LVU3953
6307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
11243 .loc 1 6307 12 is_stmt 0 view .LVU3954
11244 000a C76A ldr r7, [r0, #44]
11245 .LVL820:
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11246 .loc 1 6308 3 is_stmt 1 view .LVU3955
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11247 .loc 1 6308 24 is_stmt 0 view .LVU3956
11248 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
11249 .LVL821:
6311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11250 .loc 1 6311 3 is_stmt 1 view .LVU3957
11251 0010 2021 movs r1, #32
11252 .LVL822:
6311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11253 .loc 1 6311 3 is_stmt 0 view .LVU3958
11254 0012 D161 str r1, [r2, #28]
6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11255 .loc 1 6314 3 is_stmt 1 view .LVU3959
11256 0014 213B subs r3, r3, #33
11257 .LVL823:
6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11258 .loc 1 6314 3 is_stmt 0 view .LVU3960
11259 0016 092B cmp r3, #9
11260 0018 0CD8 bhi .L713
11261 001a DFE803F0 tbb [pc, r3]
11262 .L715:
11263 001e 05 .byte (.L716-.L715)/2
11264 001f 5F .byte (.L714-.L715)/2
ARM GAS /tmp/ccN54YTb.s page 396
11265 0020 0B .byte (.L713-.L715)/2
11266 0021 0B .byte (.L713-.L715)/2
11267 0022 0B .byte (.L713-.L715)/2
11268 0023 0B .byte (.L713-.L715)/2
11269 0024 0B .byte (.L713-.L715)/2
11270 0025 66 .byte (.L717-.L715)/2
11271 0026 05 .byte (.L716-.L715)/2
11272 0027 5F .byte (.L714-.L715)/2
11273 .p2align 1
11274 .L716:
6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
11275 .loc 1 6316 5 is_stmt 1 view .LVU3961
11276 0028 48F20101 movw r1, #32769
11277 002c FFF7FEFF bl I2C_Disable_IRQ
11278 .LVL824:
6317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11279 .loc 1 6317 5 view .LVU3962
6317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11280 .loc 1 6317 25 is_stmt 0 view .LVU3963
11281 0030 2123 movs r3, #33
11282 0032 2363 str r3, [r4, #48]
11283 .L713:
6332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11284 .loc 1 6332 3 is_stmt 1 view .LVU3964
6335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11285 .loc 1 6335 3 view .LVU3965
6335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11286 .loc 1 6335 7 is_stmt 0 view .LVU3966
11287 0034 2268 ldr r2, [r4]
6335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11288 .loc 1 6335 17 view .LVU3967
11289 0036 5368 ldr r3, [r2, #4]
6335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11290 .loc 1 6335 23 view .LVU3968
11291 0038 43F40043 orr r3, r3, #32768
11292 003c 5360 str r3, [r2, #4]
6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11293 .loc 1 6338 3 is_stmt 1 view .LVU3969
11294 003e 2268 ldr r2, [r4]
11295 0040 5368 ldr r3, [r2, #4]
11296 0042 23F0FF73 bic r3, r3, #33423360
11297 0046 23F48B33 bic r3, r3, #71168
11298 004a 23F4FF73 bic r3, r3, #510
11299 004e 23F00103 bic r3, r3, #1
11300 0052 5360 str r3, [r2, #4]
6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11301 .loc 1 6341 3 view .LVU3970
11302 0054 2046 mov r0, r4
11303 0056 FFF7FEFF bl I2C_Flush_TXDR
11304 .LVL825:
6344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11305 .loc 1 6344 3 view .LVU3971
6344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11306 .loc 1 6344 6 is_stmt 0 view .LVU3972
11307 005a 16F4804F tst r6, #16384
11308 005e 00F09B80 beq .L718
6347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 397
11309 .loc 1 6347 5 is_stmt 1 view .LVU3973
6347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11310 .loc 1 6347 9 is_stmt 0 view .LVU3974
11311 0062 2268 ldr r2, [r4]
6347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11312 .loc 1 6347 19 view .LVU3975
11313 0064 1368 ldr r3, [r2]
6347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11314 .loc 1 6347 25 view .LVU3976
11315 0066 23F48043 bic r3, r3, #16384
11316 006a 1360 str r3, [r2]
6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11317 .loc 1 6349 5 is_stmt 1 view .LVU3977
6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11318 .loc 1 6349 13 is_stmt 0 view .LVU3978
11319 006c A36B ldr r3, [r4, #56]
6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11320 .loc 1 6349 8 view .LVU3979
11321 006e 002B cmp r3, #0
11322 0070 45D0 beq .L719
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11323 .loc 1 6351 7 is_stmt 1 view .LVU3980
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11324 .loc 1 6351 35 is_stmt 0 view .LVU3981
11325 0072 1B68 ldr r3, [r3]
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11326 .loc 1 6351 25 view .LVU3982
11327 0074 9249 ldr r1, .L743
11328 0076 934A ldr r2, .L743+4
11329 0078 9342 cmp r3, r2
11330 007a 18BF it ne
11331 007c 8B42 cmpne r3, r1
11332 007e 3BD0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11333 .loc 1 6351 35 discriminator 2 view .LVU3983
11334 0080 1832 adds r2, r2, #24
11335 0082 9342 cmp r3, r2
11336 0084 38D0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11337 .loc 1 6351 35 discriminator 4 view .LVU3984
11338 0086 1832 adds r2, r2, #24
11339 0088 9342 cmp r3, r2
11340 008a 35D0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11341 .loc 1 6351 35 discriminator 6 view .LVU3985
11342 008c 1832 adds r2, r2, #24
11343 008e 9342 cmp r3, r2
11344 0090 32D0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11345 .loc 1 6351 35 discriminator 8 view .LVU3986
11346 0092 1832 adds r2, r2, #24
11347 0094 9342 cmp r3, r2
11348 0096 2FD0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11349 .loc 1 6351 35 discriminator 10 view .LVU3987
11350 0098 1832 adds r2, r2, #24
11351 009a 9342 cmp r3, r2
ARM GAS /tmp/ccN54YTb.s page 398
11352 009c 2CD0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11353 .loc 1 6351 35 discriminator 12 view .LVU3988
11354 009e 1832 adds r2, r2, #24
11355 00a0 9342 cmp r3, r2
11356 00a2 29D0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11357 .loc 1 6351 35 discriminator 14 view .LVU3989
11358 00a4 02F55672 add r2, r2, #856
11359 00a8 9342 cmp r3, r2
11360 00aa 25D0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11361 .loc 1 6351 35 discriminator 16 view .LVU3990
11362 00ac 1832 adds r2, r2, #24
11363 00ae 9342 cmp r3, r2
11364 00b0 22D0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11365 .loc 1 6351 35 discriminator 18 view .LVU3991
11366 00b2 1832 adds r2, r2, #24
11367 00b4 9342 cmp r3, r2
11368 00b6 1FD0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11369 .loc 1 6351 35 discriminator 20 view .LVU3992
11370 00b8 1832 adds r2, r2, #24
11371 00ba 9342 cmp r3, r2
11372 00bc 1CD0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11373 .loc 1 6351 35 discriminator 22 view .LVU3993
11374 00be 1832 adds r2, r2, #24
11375 00c0 9342 cmp r3, r2
11376 00c2 19D0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11377 .loc 1 6351 35 discriminator 24 view .LVU3994
11378 00c4 1832 adds r2, r2, #24
11379 00c6 9342 cmp r3, r2
11380 00c8 16D0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11381 .loc 1 6351 35 discriminator 26 view .LVU3995
11382 00ca 1832 adds r2, r2, #24
11383 00cc 9342 cmp r3, r2
11384 00ce 13D0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11385 .loc 1 6351 35 discriminator 28 view .LVU3996
11386 00d0 1832 adds r2, r2, #24
11387 00d2 9342 cmp r3, r2
11388 00d4 10D0 beq .L720
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11389 .loc 1 6351 35 discriminator 30 view .LVU3997
11390 00d6 5B68 ldr r3, [r3, #4]
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11391 .loc 1 6351 25 discriminator 30 view .LVU3998
11392 00d8 9BB2 uxth r3, r3
11393 00da 0FE0 b .L722
11394 .LVL826:
11395 .L714:
6321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
11396 .loc 1 6321 5 is_stmt 1 view .LVU3999
ARM GAS /tmp/ccN54YTb.s page 399
11397 00dc 48F20201 movw r1, #32770
11398 00e0 FFF7FEFF bl I2C_Disable_IRQ
11399 .LVL827:
6322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11400 .loc 1 6322 5 view .LVU4000
6322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11401 .loc 1 6322 25 is_stmt 0 view .LVU4001
11402 00e4 2223 movs r3, #34
11403 00e6 2363 str r3, [r4, #48]
11404 00e8 A4E7 b .L713
11405 .LVL828:
11406 .L717:
6326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11407 .loc 1 6326 5 is_stmt 1 view .LVU4002
11408 00ea 48F20301 movw r1, #32771
11409 00ee FFF7FEFF bl I2C_Disable_IRQ
11410 .LVL829:
6327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11411 .loc 1 6327 5 view .LVU4003
6327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11412 .loc 1 6327 25 is_stmt 0 view .LVU4004
11413 00f2 0023 movs r3, #0
11414 00f4 2363 str r3, [r4, #48]
11415 00f6 9DE7 b .L713
11416 .L720:
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11417 .loc 1 6351 35 discriminator 29 view .LVU4005
11418 00f8 5B68 ldr r3, [r3, #4]
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11419 .loc 1 6351 25 discriminator 29 view .LVU4006
11420 00fa 9BB2 uxth r3, r3
11421 .L722:
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11422 .loc 1 6351 23 discriminator 32 view .LVU4007
11423 00fc 6385 strh r3, [r4, #42] @ movhi
11424 .L719:
6367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11425 .loc 1 6367 3 is_stmt 1 view .LVU4008
6370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11426 .loc 1 6370 3 view .LVU4009
6370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11427 .loc 1 6370 6 is_stmt 0 view .LVU4010
11428 00fe 15F0040F tst r5, #4
11429 0102 11D0 beq .L726
6373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11430 .loc 1 6373 5 is_stmt 1 view .LVU4011
6373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11431 .loc 1 6373 16 is_stmt 0 view .LVU4012
11432 0104 25F00405 bic r5, r5, #4
11433 .LVL830:
6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11434 .loc 1 6376 5 is_stmt 1 view .LVU4013
6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11435 .loc 1 6376 36 is_stmt 0 view .LVU4014
11436 0108 2368 ldr r3, [r4]
6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11437 .loc 1 6376 46 view .LVU4015
ARM GAS /tmp/ccN54YTb.s page 400
11438 010a 5A6A ldr r2, [r3, #36]
6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11439 .loc 1 6376 10 view .LVU4016
11440 010c 636A ldr r3, [r4, #36]
6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11441 .loc 1 6376 21 view .LVU4017
11442 010e 1A70 strb r2, [r3]
6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11443 .loc 1 6379 5 is_stmt 1 view .LVU4018
6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11444 .loc 1 6379 9 is_stmt 0 view .LVU4019
11445 0110 636A ldr r3, [r4, #36]
6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11446 .loc 1 6379 19 view .LVU4020
11447 0112 0133 adds r3, r3, #1
11448 0114 6362 str r3, [r4, #36]
6381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11449 .loc 1 6381 5 is_stmt 1 view .LVU4021
6381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11450 .loc 1 6381 14 is_stmt 0 view .LVU4022
11451 0116 238D ldrh r3, [r4, #40]
6381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11452 .loc 1 6381 8 view .LVU4023
11453 0118 33B1 cbz r3, .L726
6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11454 .loc 1 6383 7 is_stmt 1 view .LVU4024
6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11455 .loc 1 6383 21 is_stmt 0 view .LVU4025
11456 011a 013B subs r3, r3, #1
11457 011c 2385 strh r3, [r4, #40] @ movhi
6384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11458 .loc 1 6384 7 is_stmt 1 view .LVU4026
6384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11459 .loc 1 6384 11 is_stmt 0 view .LVU4027
11460 011e 638D ldrh r3, [r4, #42]
11461 0120 9BB2 uxth r3, r3
6384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11462 .loc 1 6384 22 view .LVU4028
11463 0122 013B subs r3, r3, #1
11464 0124 9BB2 uxth r3, r3
11465 0126 6385 strh r3, [r4, #42] @ movhi
11466 .L726:
6389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11467 .loc 1 6389 3 is_stmt 1 view .LVU4029
6389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11468 .loc 1 6389 11 is_stmt 0 view .LVU4030
11469 0128 638D ldrh r3, [r4, #42]
11470 012a 9BB2 uxth r3, r3
6389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11471 .loc 1 6389 6 view .LVU4031
11472 012c 1BB1 cbz r3, .L727
6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11473 .loc 1 6392 5 is_stmt 1 view .LVU4032
6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11474 .loc 1 6392 9 is_stmt 0 view .LVU4033
11475 012e 636C ldr r3, [r4, #68]
6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 401
11476 .loc 1 6392 21 view .LVU4034
11477 0130 43F00403 orr r3, r3, #4
11478 0134 6364 str r3, [r4, #68]
11479 .L727:
6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
11480 .loc 1 6395 3 is_stmt 1 view .LVU4035
6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
11481 .loc 1 6395 6 is_stmt 0 view .LVU4036
11482 0136 15F0100F tst r5, #16
11483 013a 11D0 beq .L728
6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
11484 .loc 1 6395 58 discriminator 1 view .LVU4037
11485 013c 16F0100F tst r6, #16
11486 0140 0ED0 beq .L728
6402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11487 .loc 1 6402 5 is_stmt 1 view .LVU4038
6402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11488 .loc 1 6402 13 is_stmt 0 view .LVU4039
11489 0142 638D ldrh r3, [r4, #42]
11490 0144 9BB2 uxth r3, r3
6402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11491 .loc 1 6402 8 view .LVU4040
11492 0146 002B cmp r3, #0
11493 0148 7FD1 bne .L729
6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11494 .loc 1 6404 7 is_stmt 1 view .LVU4041
6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11495 .loc 1 6404 16 is_stmt 0 view .LVU4042
11496 014a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11497 .loc 1 6404 10 view .LVU4043
11498 014e 282B cmp r3, #40
11499 0150 66D0 beq .L738
11500 .L730:
6411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11501 .loc 1 6411 12 is_stmt 1 view .LVU4044
6411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11502 .loc 1 6411 21 is_stmt 0 view .LVU4045
11503 0152 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11504 .loc 1 6411 15 view .LVU4046
11505 0156 292B cmp r3, #41
11506 0158 6AD0 beq .L739
11507 .L731:
6426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11508 .loc 1 6426 9 is_stmt 1 view .LVU4047
11509 015a 2368 ldr r3, [r4]
11510 015c 1022 movs r2, #16
11511 015e DA61 str r2, [r3, #28]
11512 .L728:
6446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
11513 .loc 1 6446 3 view .LVU4048
6446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
11514 .loc 1 6446 14 is_stmt 0 view .LVU4049
11515 0160 0023 movs r3, #0
11516 0162 84F84230 strb r3, [r4, #66]
6447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 402
11517 .loc 1 6447 3 is_stmt 1 view .LVU4050
6447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11518 .loc 1 6447 17 is_stmt 0 view .LVU4051
11519 0166 6363 str r3, [r4, #52]
6449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11520 .loc 1 6449 3 is_stmt 1 view .LVU4052
6449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11521 .loc 1 6449 11 is_stmt 0 view .LVU4053
11522 0168 636C ldr r3, [r4, #68]
6449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11523 .loc 1 6449 6 view .LVU4054
11524 016a 002B cmp r3, #0
11525 016c 7FD1 bne .L740
6461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11526 .loc 1 6461 8 is_stmt 1 view .LVU4055
6461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11527 .loc 1 6461 16 is_stmt 0 view .LVU4056
11528 016e E36A ldr r3, [r4, #44]
6461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11529 .loc 1 6461 11 view .LVU4057
11530 0170 13F5803F cmn r3, #65536
11531 0174 40F08880 bne .L741
6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11532 .loc 1 6481 8 is_stmt 1 view .LVU4058
6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11533 .loc 1 6481 16 is_stmt 0 view .LVU4059
11534 0178 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11535 .loc 1 6481 11 view .LVU4060
11536 017c 222B cmp r3, #34
11537 017e 00F09380 beq .L742
6498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11538 .loc 1 6498 5 is_stmt 1 view .LVU4061
6498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11539 .loc 1 6498 17 is_stmt 0 view .LVU4062
11540 0182 2023 movs r3, #32
11541 0184 84F84130 strb r3, [r4, #65]
6499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11542 .loc 1 6499 5 is_stmt 1 view .LVU4063
6499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11543 .loc 1 6499 25 is_stmt 0 view .LVU4064
11544 0188 0023 movs r3, #0
11545 018a 2363 str r3, [r4, #48]
6502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11546 .loc 1 6502 5 is_stmt 1 view .LVU4065
6502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11547 .loc 1 6502 5 view .LVU4066
11548 018c 84F84030 strb r3, [r4, #64]
6502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11549 .loc 1 6502 5 view .LVU4067
6508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11550 .loc 1 6508 5 view .LVU4068
11551 0190 2046 mov r0, r4
11552 0192 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
11553 .LVL831:
6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11554 .loc 1 6511 1 is_stmt 0 view .LVU4069
ARM GAS /tmp/ccN54YTb.s page 403
11555 0196 86E0 b .L712
11556 .LVL832:
11557 .L718:
6354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11558 .loc 1 6354 8 is_stmt 1 view .LVU4070
6354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11559 .loc 1 6354 11 is_stmt 0 view .LVU4071
11560 0198 16F4004F tst r6, #32768
11561 019c AFD0 beq .L719
6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11562 .loc 1 6357 5 is_stmt 1 view .LVU4072
6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11563 .loc 1 6357 9 is_stmt 0 view .LVU4073
11564 019e 2268 ldr r2, [r4]
6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11565 .loc 1 6357 19 view .LVU4074
11566 01a0 1368 ldr r3, [r2]
6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11567 .loc 1 6357 25 view .LVU4075
11568 01a2 23F40043 bic r3, r3, #32768
11569 01a6 1360 str r3, [r2]
6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11570 .loc 1 6359 5 is_stmt 1 view .LVU4076
6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11571 .loc 1 6359 13 is_stmt 0 view .LVU4077
11572 01a8 E36B ldr r3, [r4, #60]
6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11573 .loc 1 6359 8 view .LVU4078
11574 01aa 002B cmp r3, #0
11575 01ac A7D0 beq .L719
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11576 .loc 1 6361 7 is_stmt 1 view .LVU4079
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11577 .loc 1 6361 35 is_stmt 0 view .LVU4080
11578 01ae 1B68 ldr r3, [r3]
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11579 .loc 1 6361 25 view .LVU4081
11580 01b0 4349 ldr r1, .L743
11581 01b2 444A ldr r2, .L743+4
11582 01b4 9342 cmp r3, r2
11583 01b6 18BF it ne
11584 01b8 8B42 cmpne r3, r1
11585 01ba 2DD0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11586 .loc 1 6361 35 discriminator 2 view .LVU4082
11587 01bc 1832 adds r2, r2, #24
11588 01be 9342 cmp r3, r2
11589 01c0 2AD0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11590 .loc 1 6361 35 discriminator 4 view .LVU4083
11591 01c2 1832 adds r2, r2, #24
11592 01c4 9342 cmp r3, r2
11593 01c6 27D0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11594 .loc 1 6361 35 discriminator 6 view .LVU4084
11595 01c8 1832 adds r2, r2, #24
11596 01ca 9342 cmp r3, r2
ARM GAS /tmp/ccN54YTb.s page 404
11597 01cc 24D0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11598 .loc 1 6361 35 discriminator 8 view .LVU4085
11599 01ce 1832 adds r2, r2, #24
11600 01d0 9342 cmp r3, r2
11601 01d2 21D0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11602 .loc 1 6361 35 discriminator 10 view .LVU4086
11603 01d4 1832 adds r2, r2, #24
11604 01d6 9342 cmp r3, r2
11605 01d8 1ED0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11606 .loc 1 6361 35 discriminator 12 view .LVU4087
11607 01da 1832 adds r2, r2, #24
11608 01dc 9342 cmp r3, r2
11609 01de 1BD0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11610 .loc 1 6361 35 discriminator 14 view .LVU4088
11611 01e0 02F55672 add r2, r2, #856
11612 01e4 9342 cmp r3, r2
11613 01e6 17D0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11614 .loc 1 6361 35 discriminator 16 view .LVU4089
11615 01e8 1832 adds r2, r2, #24
11616 01ea 9342 cmp r3, r2
11617 01ec 14D0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11618 .loc 1 6361 35 discriminator 18 view .LVU4090
11619 01ee 1832 adds r2, r2, #24
11620 01f0 9342 cmp r3, r2
11621 01f2 11D0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11622 .loc 1 6361 35 discriminator 20 view .LVU4091
11623 01f4 1832 adds r2, r2, #24
11624 01f6 9342 cmp r3, r2
11625 01f8 0ED0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11626 .loc 1 6361 35 discriminator 22 view .LVU4092
11627 01fa 1832 adds r2, r2, #24
11628 01fc 9342 cmp r3, r2
11629 01fe 0BD0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11630 .loc 1 6361 35 discriminator 24 view .LVU4093
11631 0200 1832 adds r2, r2, #24
11632 0202 9342 cmp r3, r2
11633 0204 08D0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11634 .loc 1 6361 35 discriminator 26 view .LVU4094
11635 0206 1832 adds r2, r2, #24
11636 0208 9342 cmp r3, r2
11637 020a 05D0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11638 .loc 1 6361 35 discriminator 28 view .LVU4095
11639 020c 1832 adds r2, r2, #24
11640 020e 9342 cmp r3, r2
11641 0210 02D0 beq .L723
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 405
11642 .loc 1 6361 35 discriminator 30 view .LVU4096
11643 0212 5B68 ldr r3, [r3, #4]
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11644 .loc 1 6361 25 discriminator 30 view .LVU4097
11645 0214 9BB2 uxth r3, r3
11646 0216 01E0 b .L725
11647 .L723:
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11648 .loc 1 6361 35 discriminator 29 view .LVU4098
11649 0218 5B68 ldr r3, [r3, #4]
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11650 .loc 1 6361 25 discriminator 29 view .LVU4099
11651 021a 9BB2 uxth r3, r3
11652 .L725:
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11653 .loc 1 6361 23 discriminator 32 view .LVU4100
11654 021c 6385 strh r3, [r4, #42] @ movhi
11655 021e 6EE7 b .L719
11656 .LVL833:
11657 .L738:
6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11658 .loc 1 6404 49 discriminator 1 view .LVU4101
11659 0220 B7F1007F cmp r7, #33554432
11660 0224 95D1 bne .L730
6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11661 .loc 1 6409 9 is_stmt 1 view .LVU4102
11662 0226 2946 mov r1, r5
11663 0228 2046 mov r0, r4
11664 022a FFF7FEFF bl I2C_ITListenCplt
11665 .LVL834:
11666 022e 97E7 b .L728
11667 .L739:
6411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11668 .loc 1 6411 62 is_stmt 0 discriminator 1 view .LVU4103
11669 0230 17F5803F cmn r7, #65536
11670 0234 91D0 beq .L731
6414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11671 .loc 1 6414 9 is_stmt 1 view .LVU4104
11672 0236 2368 ldr r3, [r4]
11673 0238 1022 movs r2, #16
11674 023a DA61 str r2, [r3, #28]
6417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11675 .loc 1 6417 9 view .LVU4105
11676 023c 2046 mov r0, r4
11677 023e FFF7FEFF bl I2C_Flush_TXDR
11678 .LVL835:
6421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11679 .loc 1 6421 9 view .LVU4106
11680 0242 2046 mov r0, r4
11681 0244 FFF7FEFF bl I2C_ITSlaveSeqCplt
11682 .LVL836:
11683 0248 8AE7 b .L728
11684 .L729:
6433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11685 .loc 1 6433 7 view .LVU4107
11686 024a 2368 ldr r3, [r4]
11687 024c 1022 movs r2, #16
ARM GAS /tmp/ccN54YTb.s page 406
11688 024e DA61 str r2, [r3, #28]
6436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11689 .loc 1 6436 7 view .LVU4108
6436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11690 .loc 1 6436 11 is_stmt 0 view .LVU4109
11691 0250 636C ldr r3, [r4, #68]
6436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11692 .loc 1 6436 23 view .LVU4110
11693 0252 43F00403 orr r3, r3, #4
11694 0256 6364 str r3, [r4, #68]
6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11695 .loc 1 6438 7 is_stmt 1 view .LVU4111
6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11696 .loc 1 6438 10 is_stmt 0 view .LVU4112
11697 0258 B7F1807F cmp r7, #16777216
11698 025c 18BF it ne
11699 025e 002F cmpne r7, #0
11700 0260 7FF47EAF bne .L728
6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11701 .loc 1 6441 9 is_stmt 1 view .LVU4113
6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11702 .loc 1 6441 31 is_stmt 0 view .LVU4114
11703 0264 616C ldr r1, [r4, #68]
6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11704 .loc 1 6441 9 view .LVU4115
11705 0266 2046 mov r0, r4
11706 0268 FFF7FEFF bl I2C_ITError
11707 .LVL837:
11708 026c 78E7 b .L728
11709 .L740:
6452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11710 .loc 1 6452 5 is_stmt 1 view .LVU4116
6452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11711 .loc 1 6452 27 is_stmt 0 view .LVU4117
11712 026e 616C ldr r1, [r4, #68]
6452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11713 .loc 1 6452 5 view .LVU4118
11714 0270 2046 mov r0, r4
11715 0272 FFF7FEFF bl I2C_ITError
11716 .LVL838:
6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11717 .loc 1 6455 5 is_stmt 1 view .LVU4119
6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11718 .loc 1 6455 13 is_stmt 0 view .LVU4120
11719 0276 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11720 .loc 1 6455 8 view .LVU4121
11721 027a 282B cmp r3, #40
11722 027c 13D1 bne .L712
6458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11723 .loc 1 6458 7 is_stmt 1 view .LVU4122
11724 027e 2946 mov r1, r5
11725 0280 2046 mov r0, r4
11726 0282 FFF7FEFF bl I2C_ITListenCplt
11727 .LVL839:
11728 0286 0EE0 b .L712
11729 .L741:
ARM GAS /tmp/ccN54YTb.s page 407
6464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11730 .loc 1 6464 5 view .LVU4123
11731 0288 2046 mov r0, r4
11732 028a FFF7FEFF bl I2C_ITSlaveSeqCplt
11733 .LVL840:
6466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
11734 .loc 1 6466 5 view .LVU4124
6466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
11735 .loc 1 6466 23 is_stmt 0 view .LVU4125
11736 028e 0E4B ldr r3, .L743+8
11737 0290 E362 str r3, [r4, #44]
6467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11738 .loc 1 6467 5 is_stmt 1 view .LVU4126
6467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11739 .loc 1 6467 17 is_stmt 0 view .LVU4127
11740 0292 2023 movs r3, #32
11741 0294 84F84130 strb r3, [r4, #65]
6468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11742 .loc 1 6468 5 is_stmt 1 view .LVU4128
6468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11743 .loc 1 6468 25 is_stmt 0 view .LVU4129
11744 0298 0023 movs r3, #0
11745 029a 2363 str r3, [r4, #48]
6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11746 .loc 1 6471 5 is_stmt 1 view .LVU4130
6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11747 .loc 1 6471 5 view .LVU4131
11748 029c 84F84030 strb r3, [r4, #64]
6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11749 .loc 1 6471 5 view .LVU4132
6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11750 .loc 1 6477 5 view .LVU4133
11751 02a0 2046 mov r0, r4
11752 02a2 FFF7FEFF bl HAL_I2C_ListenCpltCallback
11753 .LVL841:
11754 .L712:
6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11755 .loc 1 6511 1 is_stmt 0 view .LVU4134
11756 02a6 F8BD pop {r3, r4, r5, r6, r7, pc}
11757 .LVL842:
11758 .L742:
6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11759 .loc 1 6483 5 is_stmt 1 view .LVU4135
6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11760 .loc 1 6483 17 is_stmt 0 view .LVU4136
11761 02a8 2023 movs r3, #32
11762 02aa 84F84130 strb r3, [r4, #65]
6484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11763 .loc 1 6484 5 is_stmt 1 view .LVU4137
6484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11764 .loc 1 6484 25 is_stmt 0 view .LVU4138
11765 02ae 0023 movs r3, #0
11766 02b0 2363 str r3, [r4, #48]
6487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11767 .loc 1 6487 5 is_stmt 1 view .LVU4139
6487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11768 .loc 1 6487 5 view .LVU4140
ARM GAS /tmp/ccN54YTb.s page 408
11769 02b2 84F84030 strb r3, [r4, #64]
6487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11770 .loc 1 6487 5 view .LVU4141
6493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11771 .loc 1 6493 5 view .LVU4142
11772 02b6 2046 mov r0, r4
11773 02b8 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
11774 .LVL843:
11775 02bc F3E7 b .L712
11776 .L744:
11777 02be 00BF .align 2
11778 .L743:
11779 02c0 10000240 .word 1073872912
11780 02c4 28000240 .word 1073872936
11781 02c8 0000FFFF .word -65536
11782 .cfi_endproc
11783 .LFE396:
11785 .section .text.I2C_Slave_ISR_IT,"ax",%progbits
11786 .align 1
11787 .syntax unified
11788 .thumb
11789 .thumb_func
11791 I2C_Slave_ISR_IT:
11792 .LVL844:
11793 .LFB386:
5264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
11794 .loc 1 5264 1 view -0
11795 .cfi_startproc
11796 @ args = 0, pretend = 0, frame = 0
11797 @ frame_needed = 0, uses_anonymous_args = 0
5264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
11798 .loc 1 5264 1 is_stmt 0 view .LVU4144
11799 0000 10B5 push {r4, lr}
11800 .cfi_def_cfa_offset 8
11801 .cfi_offset 4, -8
11802 .cfi_offset 14, -4
11803 0002 0446 mov r4, r0
5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11804 .loc 1 5265 3 is_stmt 1 view .LVU4145
5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11805 .loc 1 5265 12 is_stmt 0 view .LVU4146
11806 0004 C06A ldr r0, [r0, #44]
11807 .LVL845:
5266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11808 .loc 1 5266 3 is_stmt 1 view .LVU4147
5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11809 .loc 1 5269 3 view .LVU4148
5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11810 .loc 1 5269 3 view .LVU4149
11811 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
11812 000a 012B cmp r3, #1
11813 000c 00F09980 beq .L757
5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11814 .loc 1 5269 3 discriminator 2 view .LVU4150
11815 0010 0123 movs r3, #1
11816 0012 84F84030 strb r3, [r4, #64]
5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 409
11817 .loc 1 5269 3 view .LVU4151
5272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11818 .loc 1 5272 3 view .LVU4152
5272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11819 .loc 1 5272 6 is_stmt 0 view .LVU4153
11820 0016 11F0200F tst r1, #32
11821 001a 02D0 beq .L747
5272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11822 .loc 1 5272 61 discriminator 1 view .LVU4154
11823 001c 12F0200F tst r2, #32
11824 0020 14D1 bne .L759
11825 .L747:
5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
11826 .loc 1 5278 8 is_stmt 1 view .LVU4155
5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
11827 .loc 1 5278 11 is_stmt 0 view .LVU4156
11828 0022 11F0100F tst r1, #16
11829 0026 3DD0 beq .L749
5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
11830 .loc 1 5278 63 discriminator 1 view .LVU4157
11831 0028 12F0100F tst r2, #16
11832 002c 3AD0 beq .L749
5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11833 .loc 1 5285 5 is_stmt 1 view .LVU4158
5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11834 .loc 1 5285 13 is_stmt 0 view .LVU4159
11835 002e 638D ldrh r3, [r4, #42]
11836 0030 9BB2 uxth r3, r3
5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11837 .loc 1 5285 8 view .LVU4160
11838 0032 33BB cbnz r3, .L750
5287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11839 .loc 1 5287 7 is_stmt 1 view .LVU4161
5287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11840 .loc 1 5287 16 is_stmt 0 view .LVU4162
11841 0034 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11842 .loc 1 5287 10 view .LVU4163
11843 0038 282B cmp r3, #40
11844 003a 0ED0 beq .L760
11845 .L751:
5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11846 .loc 1 5294 12 is_stmt 1 view .LVU4164
5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11847 .loc 1 5294 21 is_stmt 0 view .LVU4165
11848 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11849 .loc 1 5294 15 view .LVU4166
11850 0040 292B cmp r3, #41
11851 0042 11D0 beq .L761
11852 .L752:
5309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11853 .loc 1 5309 9 is_stmt 1 view .LVU4167
11854 0044 2368 ldr r3, [r4]
11855 0046 1022 movs r2, #16
11856 .LVL846:
5309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 410
11857 .loc 1 5309 9 is_stmt 0 view .LVU4168
11858 0048 DA61 str r2, [r3, #28]
11859 004a 02E0 b .L748
11860 .LVL847:
11861 .L759:
5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11862 .loc 1 5276 5 is_stmt 1 view .LVU4169
11863 004c 2046 mov r0, r4
11864 .LVL848:
5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11865 .loc 1 5276 5 is_stmt 0 view .LVU4170
11866 004e FFF7FEFF bl I2C_ITSlaveCplt
11867 .LVL849:
11868 .L748:
5386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11869 .loc 1 5386 3 is_stmt 1 view .LVU4171
5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11870 .loc 1 5389 3 view .LVU4172
5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11871 .loc 1 5389 3 view .LVU4173
11872 0052 0020 movs r0, #0
11873 0054 84F84000 strb r0, [r4, #64]
5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11874 .loc 1 5389 3 view .LVU4174
5391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11875 .loc 1 5391 3 view .LVU4175
11876 .L746:
5392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11877 .loc 1 5392 1 is_stmt 0 view .LVU4176
11878 0058 10BD pop {r4, pc}
11879 .LVL850:
11880 .L760:
5287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11881 .loc 1 5287 49 discriminator 1 view .LVU4177
11882 005a B0F1007F cmp r0, #33554432
11883 005e EDD1 bne .L751
5292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11884 .loc 1 5292 9 is_stmt 1 view .LVU4178
11885 0060 2046 mov r0, r4
11886 .LVL851:
5292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11887 .loc 1 5292 9 is_stmt 0 view .LVU4179
11888 0062 FFF7FEFF bl I2C_ITListenCplt
11889 .LVL852:
5292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11890 .loc 1 5292 9 view .LVU4180
11891 0066 F4E7 b .L748
11892 .LVL853:
11893 .L761:
5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11894 .loc 1 5294 62 discriminator 1 view .LVU4181
11895 0068 10F5803F cmn r0, #65536
11896 006c EAD0 beq .L752
5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11897 .loc 1 5297 9 is_stmt 1 view .LVU4182
11898 006e 2368 ldr r3, [r4]
11899 0070 1022 movs r2, #16
ARM GAS /tmp/ccN54YTb.s page 411
11900 .LVL854:
5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11901 .loc 1 5297 9 is_stmt 0 view .LVU4183
11902 0072 DA61 str r2, [r3, #28]
5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11903 .loc 1 5300 9 is_stmt 1 view .LVU4184
11904 0074 2046 mov r0, r4
11905 .LVL855:
5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11906 .loc 1 5300 9 is_stmt 0 view .LVU4185
11907 0076 FFF7FEFF bl I2C_Flush_TXDR
11908 .LVL856:
5304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11909 .loc 1 5304 9 is_stmt 1 view .LVU4186
11910 007a 2046 mov r0, r4
11911 007c FFF7FEFF bl I2C_ITSlaveSeqCplt
11912 .LVL857:
11913 0080 E7E7 b .L748
11914 .LVL858:
11915 .L750:
5316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11916 .loc 1 5316 7 view .LVU4187
11917 0082 2368 ldr r3, [r4]
11918 0084 1022 movs r2, #16
11919 .LVL859:
5316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11920 .loc 1 5316 7 is_stmt 0 view .LVU4188
11921 0086 DA61 str r2, [r3, #28]
5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11922 .loc 1 5319 7 is_stmt 1 view .LVU4189
5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11923 .loc 1 5319 11 is_stmt 0 view .LVU4190
11924 0088 636C ldr r3, [r4, #68]
5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11925 .loc 1 5319 23 view .LVU4191
11926 008a 43F00403 orr r3, r3, #4
11927 008e 6364 str r3, [r4, #68]
5321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11928 .loc 1 5321 7 is_stmt 1 view .LVU4192
5321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11929 .loc 1 5321 10 is_stmt 0 view .LVU4193
11930 0090 B0F1807F cmp r0, #16777216
11931 0094 18BF it ne
11932 0096 0028 cmpne r0, #0
11933 0098 DBD1 bne .L748
5324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11934 .loc 1 5324 9 is_stmt 1 view .LVU4194
5324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11935 .loc 1 5324 31 is_stmt 0 view .LVU4195
11936 009a 616C ldr r1, [r4, #68]
11937 .LVL860:
5324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11938 .loc 1 5324 9 view .LVU4196
11939 009c 2046 mov r0, r4
11940 .LVL861:
5324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11941 .loc 1 5324 9 view .LVU4197
ARM GAS /tmp/ccN54YTb.s page 412
11942 009e FFF7FEFF bl I2C_ITError
11943 .LVL862:
11944 00a2 D6E7 b .L748
11945 .LVL863:
11946 .L749:
5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
11947 .loc 1 5328 8 is_stmt 1 view .LVU4198
5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
11948 .loc 1 5328 11 is_stmt 0 view .LVU4199
11949 00a4 11F0040F tst r1, #4
11950 00a8 1FD0 beq .L753
5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
11951 .loc 1 5328 65 discriminator 1 view .LVU4200
11952 00aa 12F0040F tst r2, #4
11953 00ae 1CD0 beq .L753
5331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11954 .loc 1 5331 5 is_stmt 1 view .LVU4201
5331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11955 .loc 1 5331 13 is_stmt 0 view .LVU4202
11956 00b0 638D ldrh r3, [r4, #42]
11957 00b2 9BB2 uxth r3, r3
5331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11958 .loc 1 5331 8 view .LVU4203
11959 00b4 73B1 cbz r3, .L754
5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11960 .loc 1 5334 7 is_stmt 1 view .LVU4204
5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11961 .loc 1 5334 38 is_stmt 0 view .LVU4205
11962 00b6 2368 ldr r3, [r4]
5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11963 .loc 1 5334 48 view .LVU4206
11964 00b8 5A6A ldr r2, [r3, #36]
11965 .LVL864:
5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11966 .loc 1 5334 12 view .LVU4207
11967 00ba 636A ldr r3, [r4, #36]
5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11968 .loc 1 5334 23 view .LVU4208
11969 00bc 1A70 strb r2, [r3]
5337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11970 .loc 1 5337 7 is_stmt 1 view .LVU4209
5337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11971 .loc 1 5337 11 is_stmt 0 view .LVU4210
11972 00be 636A ldr r3, [r4, #36]
5337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11973 .loc 1 5337 21 view .LVU4211
11974 00c0 0133 adds r3, r3, #1
11975 00c2 6362 str r3, [r4, #36]
5339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11976 .loc 1 5339 7 is_stmt 1 view .LVU4212
5339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11977 .loc 1 5339 11 is_stmt 0 view .LVU4213
11978 00c4 238D ldrh r3, [r4, #40]
5339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11979 .loc 1 5339 21 view .LVU4214
11980 00c6 013B subs r3, r3, #1
11981 00c8 2385 strh r3, [r4, #40] @ movhi
ARM GAS /tmp/ccN54YTb.s page 413
5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11982 .loc 1 5340 7 is_stmt 1 view .LVU4215
5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11983 .loc 1 5340 11 is_stmt 0 view .LVU4216
11984 00ca 638D ldrh r3, [r4, #42]
11985 00cc 9BB2 uxth r3, r3
5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11986 .loc 1 5340 22 view .LVU4217
11987 00ce 013B subs r3, r3, #1
11988 00d0 9BB2 uxth r3, r3
11989 00d2 6385 strh r3, [r4, #42] @ movhi
11990 .L754:
5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11991 .loc 1 5343 5 is_stmt 1 view .LVU4218
5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11992 .loc 1 5343 14 is_stmt 0 view .LVU4219
11993 00d4 638D ldrh r3, [r4, #42]
11994 00d6 9BB2 uxth r3, r3
5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11995 .loc 1 5343 8 view .LVU4220
11996 00d8 002B cmp r3, #0
11997 00da BAD1 bne .L748
5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11998 .loc 1 5343 33 discriminator 1 view .LVU4221
11999 00dc 10F5803F cmn r0, #65536
12000 00e0 B7D0 beq .L748
5347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12001 .loc 1 5347 7 is_stmt 1 view .LVU4222
12002 00e2 2046 mov r0, r4
12003 .LVL865:
5347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12004 .loc 1 5347 7 is_stmt 0 view .LVU4223
12005 00e4 FFF7FEFF bl I2C_ITSlaveSeqCplt
12006 .LVL866:
5347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12007 .loc 1 5347 7 view .LVU4224
12008 00e8 B3E7 b .L748
12009 .LVL867:
12010 .L753:
5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
12011 .loc 1 5350 8 is_stmt 1 view .LVU4225
5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
12012 .loc 1 5350 11 is_stmt 0 view .LVU4226
12013 00ea 11F0080F tst r1, #8
12014 00ee 02D0 beq .L755
5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
12015 .loc 1 5350 65 discriminator 1 view .LVU4227
12016 00f0 12F0080F tst r2, #8
12017 00f4 18D1 bne .L762
12018 .L755:
5355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
12019 .loc 1 5355 8 is_stmt 1 view .LVU4228
5355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
12020 .loc 1 5355 11 is_stmt 0 view .LVU4229
12021 00f6 11F0020F tst r1, #2
12022 00fa AAD0 beq .L748
5355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
ARM GAS /tmp/ccN54YTb.s page 414
12023 .loc 1 5355 65 discriminator 1 view .LVU4230
12024 00fc 12F0020F tst r2, #2
12025 0100 A7D0 beq .L748
5362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12026 .loc 1 5362 5 is_stmt 1 view .LVU4231
5362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12027 .loc 1 5362 13 is_stmt 0 view .LVU4232
12028 0102 638D ldrh r3, [r4, #42]
12029 0104 9BB2 uxth r3, r3
5362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12030 .loc 1 5362 8 view .LVU4233
12031 0106 9BB1 cbz r3, .L756
5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12032 .loc 1 5365 7 is_stmt 1 view .LVU4234
5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12033 .loc 1 5365 35 is_stmt 0 view .LVU4235
12034 0108 626A ldr r2, [r4, #36]
12035 .LVL868:
5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12036 .loc 1 5365 11 view .LVU4236
12037 010a 2368 ldr r3, [r4]
5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12038 .loc 1 5365 30 view .LVU4237
12039 010c 1278 ldrb r2, [r2] @ zero_extendqisi2
5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12040 .loc 1 5365 28 view .LVU4238
12041 010e 9A62 str r2, [r3, #40]
5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12042 .loc 1 5368 7 is_stmt 1 view .LVU4239
5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12043 .loc 1 5368 11 is_stmt 0 view .LVU4240
12044 0110 636A ldr r3, [r4, #36]
5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12045 .loc 1 5368 21 view .LVU4241
12046 0112 0133 adds r3, r3, #1
12047 0114 6362 str r3, [r4, #36]
5370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
12048 .loc 1 5370 7 is_stmt 1 view .LVU4242
5370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
12049 .loc 1 5370 11 is_stmt 0 view .LVU4243
12050 0116 638D ldrh r3, [r4, #42]
12051 0118 9BB2 uxth r3, r3
5370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
12052 .loc 1 5370 22 view .LVU4244
12053 011a 013B subs r3, r3, #1
12054 011c 9BB2 uxth r3, r3
12055 011e 6385 strh r3, [r4, #42] @ movhi
5371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12056 .loc 1 5371 7 is_stmt 1 view .LVU4245
5371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12057 .loc 1 5371 11 is_stmt 0 view .LVU4246
12058 0120 238D ldrh r3, [r4, #40]
5371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12059 .loc 1 5371 21 view .LVU4247
12060 0122 013B subs r3, r3, #1
12061 0124 2385 strh r3, [r4, #40] @ movhi
12062 0126 94E7 b .L748
ARM GAS /tmp/ccN54YTb.s page 415
12063 .LVL869:
12064 .L762:
5353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12065 .loc 1 5353 5 is_stmt 1 view .LVU4248
12066 0128 2046 mov r0, r4
12067 .LVL870:
5353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12068 .loc 1 5353 5 is_stmt 0 view .LVU4249
12069 012a FFF7FEFF bl I2C_ITAddrCplt
12070 .LVL871:
5353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12071 .loc 1 5353 5 view .LVU4250
12072 012e 90E7 b .L748
12073 .LVL872:
12074 .L756:
5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12075 .loc 1 5375 7 is_stmt 1 view .LVU4251
5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12076 .loc 1 5375 10 is_stmt 0 view .LVU4252
12077 0130 0028 cmp r0, #0
12078 0132 18BF it ne
12079 0134 B0F1807F cmpne r0, #16777216
12080 0138 8BD1 bne .L748
5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12081 .loc 1 5379 9 is_stmt 1 view .LVU4253
12082 013a 2046 mov r0, r4
12083 .LVL873:
5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12084 .loc 1 5379 9 is_stmt 0 view .LVU4254
12085 013c FFF7FEFF bl I2C_ITSlaveSeqCplt
12086 .LVL874:
5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12087 .loc 1 5379 9 view .LVU4255
12088 0140 87E7 b .L748
12089 .LVL875:
12090 .L757:
5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12091 .loc 1 5269 3 discriminator 1 view .LVU4256
12092 0142 0220 movs r0, #2
12093 .LVL876:
5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12094 .loc 1 5269 3 discriminator 1 view .LVU4257
12095 0144 88E7 b .L746
12096 .cfi_endproc
12097 .LFE386:
12099 .section .text.I2C_ITMasterCplt,"ax",%progbits
12100 .align 1
12101 .syntax unified
12102 .thumb
12103 .thumb_func
12105 I2C_ITMasterCplt:
12106 .LVL877:
12107 .LFB395:
6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
12108 .loc 1 6161 1 is_stmt 1 view -0
12109 .cfi_startproc
12110 @ args = 0, pretend = 0, frame = 8
ARM GAS /tmp/ccN54YTb.s page 416
12111 @ frame_needed = 0, uses_anonymous_args = 0
6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
12112 .loc 1 6161 1 is_stmt 0 view .LVU4259
12113 0000 30B5 push {r4, r5, lr}
12114 .cfi_def_cfa_offset 12
12115 .cfi_offset 4, -12
12116 .cfi_offset 5, -8
12117 .cfi_offset 14, -4
12118 0002 83B0 sub sp, sp, #12
12119 .cfi_def_cfa_offset 24
12120 0004 0446 mov r4, r0
12121 0006 0D46 mov r5, r1
6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
12122 .loc 1 6162 3 is_stmt 1 view .LVU4260
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t tmpreg;
12123 .loc 1 6163 3 view .LVU4261
12124 .LVL878:
6164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12125 .loc 1 6164 3 view .LVU4262
6167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12126 .loc 1 6167 3 view .LVU4263
12127 0008 0368 ldr r3, [r0]
12128 000a 2022 movs r2, #32
12129 000c DA61 str r2, [r3, #28]
6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12130 .loc 1 6170 3 view .LVU4264
6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12131 .loc 1 6170 11 is_stmt 0 view .LVU4265
12132 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12133 .loc 1 6170 6 view .LVU4266
12134 0012 212B cmp r3, #33
12135 0014 30D0 beq .L775
6175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12136 .loc 1 6175 8 is_stmt 1 view .LVU4267
6175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12137 .loc 1 6175 16 is_stmt 0 view .LVU4268
12138 0016 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
6175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12139 .loc 1 6175 11 view .LVU4269
12140 001a 222B cmp r3, #34
12141 001c 32D0 beq .L776
12142 .LVL879:
12143 .L765:
6183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12144 .loc 1 6183 3 is_stmt 1 view .LVU4270
6186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12145 .loc 1 6186 3 view .LVU4271
12146 001e 2268 ldr r2, [r4]
12147 0020 5368 ldr r3, [r2, #4]
12148 0022 23F0FF73 bic r3, r3, #33423360
12149 0026 23F48B33 bic r3, r3, #71168
12150 002a 23F4FF73 bic r3, r3, #510
12151 002e 23F00103 bic r3, r3, #1
12152 0032 5360 str r3, [r2, #4]
6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
12153 .loc 1 6189 3 view .LVU4272
ARM GAS /tmp/ccN54YTb.s page 417
6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
12154 .loc 1 6189 23 is_stmt 0 view .LVU4273
12155 0034 0023 movs r3, #0
12156 0036 6363 str r3, [r4, #52]
6190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12157 .loc 1 6190 3 is_stmt 1 view .LVU4274
6190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12158 .loc 1 6190 23 is_stmt 0 view .LVU4275
12159 0038 A3F58033 sub r3, r3, #65536
12160 003c E362 str r3, [r4, #44]
6192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12161 .loc 1 6192 3 is_stmt 1 view .LVU4276
6192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12162 .loc 1 6192 6 is_stmt 0 view .LVU4277
12163 003e 15F0100F tst r5, #16
12164 0042 06D0 beq .L766
6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12165 .loc 1 6195 5 is_stmt 1 view .LVU4278
12166 0044 2368 ldr r3, [r4]
12167 0046 1022 movs r2, #16
12168 0048 DA61 str r2, [r3, #28]
6198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12169 .loc 1 6198 5 view .LVU4279
6198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12170 .loc 1 6198 9 is_stmt 0 view .LVU4280
12171 004a 636C ldr r3, [r4, #68]
6198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12172 .loc 1 6198 21 view .LVU4281
12173 004c 43F00403 orr r3, r3, #4
12174 0050 6364 str r3, [r4, #68]
12175 .L766:
6202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12176 .loc 1 6202 3 is_stmt 1 view .LVU4282
6202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12177 .loc 1 6202 12 is_stmt 0 view .LVU4283
12178 0052 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12179 .loc 1 6202 6 view .LVU4284
12180 0056 602B cmp r3, #96
12181 0058 1AD0 beq .L777
12182 .L767:
6210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12183 .loc 1 6210 3 is_stmt 1 view .LVU4285
12184 005a 2046 mov r0, r4
12185 005c FFF7FEFF bl I2C_Flush_TXDR
12186 .LVL880:
6213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12187 .loc 1 6213 3 view .LVU4286
6213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12188 .loc 1 6213 12 is_stmt 0 view .LVU4287
12189 0060 626C ldr r2, [r4, #68]
12190 .LVL881:
6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12191 .loc 1 6216 3 is_stmt 1 view .LVU4288
6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12192 .loc 1 6216 12 is_stmt 0 view .LVU4289
12193 0062 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
ARM GAS /tmp/ccN54YTb.s page 418
6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12194 .loc 1 6216 6 view .LVU4290
12195 0066 602B cmp r3, #96
12196 0068 00D0 beq .L768
6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12197 .loc 1 6216 44 discriminator 1 view .LVU4291
12198 006a D2B1 cbz r2, .L769
12199 .L768:
6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12200 .loc 1 6219 5 is_stmt 1 view .LVU4292
6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12201 .loc 1 6219 27 is_stmt 0 view .LVU4293
12202 006c 616C ldr r1, [r4, #68]
6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12203 .loc 1 6219 5 view .LVU4294
12204 006e 2046 mov r0, r4
12205 0070 FFF7FEFF bl I2C_ITError
12206 .LVL882:
12207 .L763:
6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12208 .loc 1 6295 1 view .LVU4295
12209 0074 03B0 add sp, sp, #12
12210 .cfi_remember_state
12211 .cfi_def_cfa_offset 12
12212 @ sp needed
12213 0076 30BD pop {r4, r5, pc}
12214 .LVL883:
12215 .L775:
12216 .cfi_restore_state
6172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
12217 .loc 1 6172 5 is_stmt 1 view .LVU4296
12218 0078 0121 movs r1, #1
12219 .LVL884:
6172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
12220 .loc 1 6172 5 is_stmt 0 view .LVU4297
12221 007a FFF7FEFF bl I2C_Disable_IRQ
12222 .LVL885:
6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12223 .loc 1 6173 5 is_stmt 1 view .LVU4298
6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12224 .loc 1 6173 25 is_stmt 0 view .LVU4299
12225 007e 1123 movs r3, #17
12226 0080 2363 str r3, [r4, #48]
12227 0082 CCE7 b .L765
12228 .LVL886:
12229 .L776:
6177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
12230 .loc 1 6177 5 is_stmt 1 view .LVU4300
12231 0084 0221 movs r1, #2
12232 .LVL887:
6177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
12233 .loc 1 6177 5 is_stmt 0 view .LVU4301
12234 0086 FFF7FEFF bl I2C_Disable_IRQ
12235 .LVL888:
6178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12236 .loc 1 6178 5 is_stmt 1 view .LVU4302
6178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 419
12237 .loc 1 6178 25 is_stmt 0 view .LVU4303
12238 008a 1223 movs r3, #18
12239 008c 2363 str r3, [r4, #48]
12240 008e C6E7 b .L765
12241 .L777:
6202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12242 .loc 1 6202 44 discriminator 1 view .LVU4304
12243 0090 15F0040F tst r5, #4
12244 0094 E1D0 beq .L767
6205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
12245 .loc 1 6205 5 is_stmt 1 view .LVU4305
6205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
12246 .loc 1 6205 27 is_stmt 0 view .LVU4306
12247 0096 2368 ldr r3, [r4]
6205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
12248 .loc 1 6205 37 view .LVU4307
12249 0098 5B6A ldr r3, [r3, #36]
12250 009a DBB2 uxtb r3, r3
6205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
12251 .loc 1 6205 12 view .LVU4308
12252 009c 0193 str r3, [sp, #4]
6206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12253 .loc 1 6206 5 is_stmt 1 view .LVU4309
12254 009e 019B ldr r3, [sp, #4]
12255 00a0 DBE7 b .L767
12256 .LVL889:
12257 .L769:
6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12258 .loc 1 6222 8 view .LVU4310
6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12259 .loc 1 6222 16 is_stmt 0 view .LVU4311
12260 00a2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12261 .loc 1 6222 11 view .LVU4312
12262 00a6 212B cmp r3, #33
12263 00a8 15D0 beq .L778
6257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12264 .loc 1 6257 8 is_stmt 1 view .LVU4313
6257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12265 .loc 1 6257 16 is_stmt 0 view .LVU4314
12266 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12267 .loc 1 6257 11 view .LVU4315
12268 00ae 222B cmp r3, #34
12269 00b0 E0D1 bne .L763
6259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
12270 .loc 1 6259 5 is_stmt 1 view .LVU4316
6259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
12271 .loc 1 6259 17 is_stmt 0 view .LVU4317
12272 00b2 2023 movs r3, #32
12273 00b4 84F84130 strb r3, [r4, #65]
6260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12274 .loc 1 6260 5 is_stmt 1 view .LVU4318
6260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12275 .loc 1 6260 25 is_stmt 0 view .LVU4319
12276 00b8 0023 movs r3, #0
12277 00ba 2363 str r3, [r4, #48]
ARM GAS /tmp/ccN54YTb.s page 420
6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12278 .loc 1 6262 5 is_stmt 1 view .LVU4320
6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12279 .loc 1 6262 13 is_stmt 0 view .LVU4321
12280 00bc 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2
6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12281 .loc 1 6262 8 view .LVU4322
12282 00c0 402B cmp r3, #64
12283 00c2 23D0 beq .L779
6278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12284 .loc 1 6278 7 is_stmt 1 view .LVU4323
6278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12285 .loc 1 6278 18 is_stmt 0 view .LVU4324
12286 00c4 0023 movs r3, #0
12287 00c6 84F84230 strb r3, [r4, #66]
6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12288 .loc 1 6281 7 is_stmt 1 view .LVU4325
6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12289 .loc 1 6281 7 view .LVU4326
12290 00ca 84F84030 strb r3, [r4, #64]
6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12291 .loc 1 6281 7 view .LVU4327
6287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12292 .loc 1 6287 7 view .LVU4328
12293 00ce 2046 mov r0, r4
12294 00d0 FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
12295 .LVL890:
6294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12296 .loc 1 6294 3 view .LVU4329
6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12297 .loc 1 6295 1 is_stmt 0 view .LVU4330
12298 00d4 CEE7 b .L763
12299 .LVL891:
12300 .L778:
6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
12301 .loc 1 6224 5 is_stmt 1 view .LVU4331
6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
12302 .loc 1 6224 17 is_stmt 0 view .LVU4332
12303 00d6 2023 movs r3, #32
12304 00d8 84F84130 strb r3, [r4, #65]
6225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12305 .loc 1 6225 5 is_stmt 1 view .LVU4333
6225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12306 .loc 1 6225 25 is_stmt 0 view .LVU4334
12307 00dc 0023 movs r3, #0
12308 00de 2363 str r3, [r4, #48]
6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12309 .loc 1 6227 5 is_stmt 1 view .LVU4335
6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12310 .loc 1 6227 13 is_stmt 0 view .LVU4336
12311 00e0 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2
6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12312 .loc 1 6227 8 view .LVU4337
12313 00e4 402B cmp r3, #64
12314 00e6 08D0 beq .L780
6243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12315 .loc 1 6243 7 is_stmt 1 view .LVU4338
ARM GAS /tmp/ccN54YTb.s page 421
6243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12316 .loc 1 6243 18 is_stmt 0 view .LVU4339
12317 00e8 0023 movs r3, #0
12318 00ea 84F84230 strb r3, [r4, #66]
6246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12319 .loc 1 6246 7 is_stmt 1 view .LVU4340
6246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12320 .loc 1 6246 7 view .LVU4341
12321 00ee 84F84030 strb r3, [r4, #64]
6246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12322 .loc 1 6246 7 view .LVU4342
6252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12323 .loc 1 6252 7 view .LVU4343
12324 00f2 2046 mov r0, r4
12325 00f4 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
12326 .LVL892:
6252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12327 .loc 1 6252 7 is_stmt 0 view .LVU4344
12328 00f8 BCE7 b .L763
12329 .LVL893:
12330 .L780:
6229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12331 .loc 1 6229 7 is_stmt 1 view .LVU4345
6229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12332 .loc 1 6229 18 is_stmt 0 view .LVU4346
12333 00fa 0023 movs r3, #0
12334 00fc 84F84230 strb r3, [r4, #66]
6232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12335 .loc 1 6232 7 is_stmt 1 view .LVU4347
6232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12336 .loc 1 6232 7 view .LVU4348
12337 0100 84F84030 strb r3, [r4, #64]
6232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12338 .loc 1 6232 7 view .LVU4349
6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12339 .loc 1 6238 7 view .LVU4350
12340 0104 2046 mov r0, r4
12341 0106 FFF7FEFF bl HAL_I2C_MemTxCpltCallback
12342 .LVL894:
6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12343 .loc 1 6238 7 is_stmt 0 view .LVU4351
12344 010a B3E7 b .L763
12345 .LVL895:
12346 .L779:
6264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12347 .loc 1 6264 7 is_stmt 1 view .LVU4352
6264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12348 .loc 1 6264 18 is_stmt 0 view .LVU4353
12349 010c 0023 movs r3, #0
12350 010e 84F84230 strb r3, [r4, #66]
6267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12351 .loc 1 6267 7 is_stmt 1 view .LVU4354
6267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12352 .loc 1 6267 7 view .LVU4355
12353 0112 84F84030 strb r3, [r4, #64]
6267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12354 .loc 1 6267 7 view .LVU4356
ARM GAS /tmp/ccN54YTb.s page 422
6273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12355 .loc 1 6273 7 view .LVU4357
12356 0116 2046 mov r0, r4
12357 0118 FFF7FEFF bl HAL_I2C_MemRxCpltCallback
12358 .LVL896:
6273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12359 .loc 1 6273 7 is_stmt 0 view .LVU4358
12360 011c AAE7 b .L763
12361 .cfi_endproc
12362 .LFE395:
12364 .section .text.I2C_Master_ISR_IT,"ax",%progbits
12365 .align 1
12366 .syntax unified
12367 .thumb
12368 .thumb_func
12370 I2C_Master_ISR_IT:
12371 .LVL897:
12372 .LFB384:
4970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
12373 .loc 1 4970 1 is_stmt 1 view -0
12374 .cfi_startproc
12375 @ args = 0, pretend = 0, frame = 0
12376 @ frame_needed = 0, uses_anonymous_args = 0
4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
12377 .loc 1 4971 3 view .LVU4360
4972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12378 .loc 1 4972 3 view .LVU4361
4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12379 .loc 1 4975 3 view .LVU4362
4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12380 .loc 1 4975 3 view .LVU4363
12381 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
12382 0004 012B cmp r3, #1
12383 0006 00F0C280 beq .L795
4970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
12384 .loc 1 4970 1 is_stmt 0 view .LVU4364
12385 000a 70B5 push {r4, r5, r6, lr}
12386 .cfi_def_cfa_offset 16
12387 .cfi_offset 4, -16
12388 .cfi_offset 5, -12
12389 .cfi_offset 6, -8
12390 .cfi_offset 14, -4
12391 000c 82B0 sub sp, sp, #8
12392 .cfi_def_cfa_offset 24
12393 000e 0446 mov r4, r0
12394 0010 0D46 mov r5, r1
12395 0012 1646 mov r6, r2
4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12396 .loc 1 4975 3 is_stmt 1 discriminator 2 view .LVU4365
12397 0014 0123 movs r3, #1
12398 0016 80F84030 strb r3, [r0, #64]
4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12399 .loc 1 4975 3 view .LVU4366
4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12400 .loc 1 4977 3 view .LVU4367
4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12401 .loc 1 4977 6 is_stmt 0 view .LVU4368
ARM GAS /tmp/ccN54YTb.s page 423
12402 001a 11F0100F tst r1, #16
12403 001e 02D0 beq .L783
4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12404 .loc 1 4977 58 discriminator 1 view .LVU4369
12405 0020 12F0100F tst r2, #16
12406 0024 22D1 bne .L800
12407 .L783:
4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
12408 .loc 1 4991 8 is_stmt 1 view .LVU4370
4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
12409 .loc 1 4991 11 is_stmt 0 view .LVU4371
12410 0026 15F0040F tst r5, #4
12411 002a 29D0 beq .L785
4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
12412 .loc 1 4991 65 discriminator 1 view .LVU4372
12413 002c 16F0040F tst r6, #4
12414 0030 26D0 beq .L785
4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12415 .loc 1 4995 5 is_stmt 1 view .LVU4373
4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12416 .loc 1 4995 16 is_stmt 0 view .LVU4374
12417 0032 25F00405 bic r5, r5, #4
12418 .LVL898:
4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12419 .loc 1 4998 5 is_stmt 1 view .LVU4375
4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12420 .loc 1 4998 36 is_stmt 0 view .LVU4376
12421 0036 2368 ldr r3, [r4]
4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12422 .loc 1 4998 46 view .LVU4377
12423 0038 5A6A ldr r2, [r3, #36]
12424 .LVL899:
4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12425 .loc 1 4998 10 view .LVU4378
12426 003a 636A ldr r3, [r4, #36]
4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12427 .loc 1 4998 21 view .LVU4379
12428 003c 1A70 strb r2, [r3]
5001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12429 .loc 1 5001 5 is_stmt 1 view .LVU4380
5001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12430 .loc 1 5001 9 is_stmt 0 view .LVU4381
12431 003e 636A ldr r3, [r4, #36]
5001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12432 .loc 1 5001 19 view .LVU4382
12433 0040 0133 adds r3, r3, #1
12434 0042 6362 str r3, [r4, #36]
5003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
12435 .loc 1 5003 5 is_stmt 1 view .LVU4383
5003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
12436 .loc 1 5003 9 is_stmt 0 view .LVU4384
12437 0044 238D ldrh r3, [r4, #40]
5003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
12438 .loc 1 5003 19 view .LVU4385
12439 0046 013B subs r3, r3, #1
12440 0048 2385 strh r3, [r4, #40] @ movhi
5004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 424
12441 .loc 1 5004 5 is_stmt 1 view .LVU4386
5004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12442 .loc 1 5004 9 is_stmt 0 view .LVU4387
12443 004a 638D ldrh r3, [r4, #42]
12444 004c 9BB2 uxth r3, r3
5004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12445 .loc 1 5004 20 view .LVU4388
12446 004e 013B subs r3, r3, #1
12447 0050 9BB2 uxth r3, r3
12448 0052 6385 strh r3, [r4, #42] @ movhi
12449 .LVL900:
12450 .L784:
5096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12451 .loc 1 5096 3 is_stmt 1 view .LVU4389
5098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12452 .loc 1 5098 3 view .LVU4390
5098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12453 .loc 1 5098 6 is_stmt 0 view .LVU4391
12454 0054 15F0200F tst r5, #32
12455 0058 03D0 beq .L794
5098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12456 .loc 1 5098 61 discriminator 1 view .LVU4392
12457 005a 16F0200F tst r6, #32
12458 005e 40F09180 bne .L801
12459 .L794:
5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12460 .loc 1 5106 3 is_stmt 1 view .LVU4393
5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12461 .loc 1 5106 3 view .LVU4394
12462 0062 0020 movs r0, #0
12463 0064 84F84000 strb r0, [r4, #64]
5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12464 .loc 1 5106 3 view .LVU4395
5108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12465 .loc 1 5108 3 view .LVU4396
5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12466 .loc 1 5109 1 is_stmt 0 view .LVU4397
12467 0068 02B0 add sp, sp, #8
12468 .cfi_remember_state
12469 .cfi_def_cfa_offset 16
12470 @ sp needed
12471 006a 70BD pop {r4, r5, r6, pc}
12472 .LVL901:
12473 .L800:
12474 .cfi_restore_state
4981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12475 .loc 1 4981 5 is_stmt 1 view .LVU4398
12476 006c 0368 ldr r3, [r0]
12477 006e 1022 movs r2, #16
12478 .LVL902:
4981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12479 .loc 1 4981 5 is_stmt 0 view .LVU4399
12480 0070 DA61 str r2, [r3, #28]
4986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12481 .loc 1 4986 5 is_stmt 1 view .LVU4400
4986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12482 .loc 1 4986 9 is_stmt 0 view .LVU4401
ARM GAS /tmp/ccN54YTb.s page 425
12483 0072 436C ldr r3, [r0, #68]
4986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12484 .loc 1 4986 21 view .LVU4402
12485 0074 43F00403 orr r3, r3, #4
12486 0078 4364 str r3, [r0, #68]
4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12487 .loc 1 4989 5 is_stmt 1 view .LVU4403
12488 007a FFF7FEFF bl I2C_Flush_TXDR
12489 .LVL903:
4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12490 .loc 1 4989 5 is_stmt 0 view .LVU4404
12491 007e E9E7 b .L784
12492 .LVL904:
12493 .L785:
5006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
12494 .loc 1 5006 8 is_stmt 1 view .LVU4405
12495 0080 C5F38013 ubfx r3, r5, #6, #1
5006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
12496 .loc 1 5006 11 is_stmt 0 view .LVU4406
12497 0084 15F0400F tst r5, #64
12498 0088 19D1 bne .L786
5006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
12499 .loc 1 5006 63 discriminator 1 view .LVU4407
12500 008a 15F0020F tst r5, #2
12501 008e 16D0 beq .L786
5007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)))
12502 .loc 1 5007 66 view .LVU4408
12503 0090 16F0020F tst r6, #2
12504 0094 13D0 beq .L786
5011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12505 .loc 1 5011 5 is_stmt 1 view .LVU4409
5011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12506 .loc 1 5011 13 is_stmt 0 view .LVU4410
12507 0096 638D ldrh r3, [r4, #42]
12508 0098 9BB2 uxth r3, r3
5011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12509 .loc 1 5011 8 view .LVU4411
12510 009a 002B cmp r3, #0
12511 009c DAD0 beq .L784
5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12512 .loc 1 5014 7 is_stmt 1 view .LVU4412
5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12513 .loc 1 5014 35 is_stmt 0 view .LVU4413
12514 009e 626A ldr r2, [r4, #36]
12515 .LVL905:
5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12516 .loc 1 5014 11 view .LVU4414
12517 00a0 2368 ldr r3, [r4]
5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12518 .loc 1 5014 30 view .LVU4415
12519 00a2 1278 ldrb r2, [r2] @ zero_extendqisi2
5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12520 .loc 1 5014 28 view .LVU4416
12521 00a4 9A62 str r2, [r3, #40]
5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12522 .loc 1 5017 7 is_stmt 1 view .LVU4417
5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 426
12523 .loc 1 5017 11 is_stmt 0 view .LVU4418
12524 00a6 636A ldr r3, [r4, #36]
5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12525 .loc 1 5017 21 view .LVU4419
12526 00a8 0133 adds r3, r3, #1
12527 00aa 6362 str r3, [r4, #36]
5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
12528 .loc 1 5019 7 is_stmt 1 view .LVU4420
5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
12529 .loc 1 5019 11 is_stmt 0 view .LVU4421
12530 00ac 238D ldrh r3, [r4, #40]
5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
12531 .loc 1 5019 21 view .LVU4422
12532 00ae 013B subs r3, r3, #1
12533 00b0 2385 strh r3, [r4, #40] @ movhi
5020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12534 .loc 1 5020 7 is_stmt 1 view .LVU4423
5020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12535 .loc 1 5020 11 is_stmt 0 view .LVU4424
12536 00b2 638D ldrh r3, [r4, #42]
12537 00b4 9BB2 uxth r3, r3
5020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12538 .loc 1 5020 22 view .LVU4425
12539 00b6 013B subs r3, r3, #1
12540 00b8 9BB2 uxth r3, r3
12541 00ba 6385 strh r3, [r4, #42] @ movhi
12542 00bc CAE7 b .L784
12543 .LVL906:
12544 .L786:
5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12545 .loc 1 5023 8 is_stmt 1 view .LVU4426
5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12546 .loc 1 5023 11 is_stmt 0 view .LVU4427
12547 00be 15F0800F tst r5, #128
12548 00c2 3FD0 beq .L787
5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12549 .loc 1 5023 64 discriminator 1 view .LVU4428
12550 00c4 16F0400F tst r6, #64
12551 00c8 3CD0 beq .L787
5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12552 .loc 1 5026 5 is_stmt 1 view .LVU4429
5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12553 .loc 1 5026 14 is_stmt 0 view .LVU4430
12554 00ca 638D ldrh r3, [r4, #42]
12555 00cc 9BB2 uxth r3, r3
5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12556 .loc 1 5026 8 view .LVU4431
12557 00ce 5BB3 cbz r3, .L788
5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12558 .loc 1 5026 41 discriminator 1 view .LVU4432
12559 00d0 238D ldrh r3, [r4, #40]
5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12560 .loc 1 5026 33 discriminator 1 view .LVU4433
12561 00d2 4BBB cbnz r3, .L788
5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12562 .loc 1 5028 7 is_stmt 1 view .LVU4434
5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 427
12563 .loc 1 5028 35 is_stmt 0 view .LVU4435
12564 00d4 2368 ldr r3, [r4]
5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12565 .loc 1 5028 45 view .LVU4436
12566 00d6 5968 ldr r1, [r3, #4]
12567 .LVL907:
5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12568 .loc 1 5028 18 view .LVU4437
12569 00d8 C1F30901 ubfx r1, r1, #0, #10
12570 .LVL908:
5030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12571 .loc 1 5030 7 is_stmt 1 view .LVU4438
5030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12572 .loc 1 5030 15 is_stmt 0 view .LVU4439
12573 00dc 638D ldrh r3, [r4, #42]
12574 00de 9BB2 uxth r3, r3
5030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12575 .loc 1 5030 10 view .LVU4440
12576 00e0 FF2B cmp r3, #255
12577 00e2 0ED8 bhi .L802
5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12578 .loc 1 5037 9 is_stmt 1 view .LVU4441
5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12579 .loc 1 5037 30 is_stmt 0 view .LVU4442
12580 00e4 628D ldrh r2, [r4, #42]
12581 .LVL909:
5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12582 .loc 1 5037 30 view .LVU4443
12583 00e6 92B2 uxth r2, r2
5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12584 .loc 1 5037 24 view .LVU4444
12585 00e8 2285 strh r2, [r4, #40] @ movhi
5038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12586 .loc 1 5038 9 is_stmt 1 view .LVU4445
5038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12587 .loc 1 5038 17 is_stmt 0 view .LVU4446
12588 00ea E36A ldr r3, [r4, #44]
5038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12589 .loc 1 5038 12 view .LVU4447
12590 00ec 13F5803F cmn r3, #65536
12591 00f0 11D0 beq .L790
5040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
12592 .loc 1 5040 11 is_stmt 1 view .LVU4448
5041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12593 .loc 1 5041 34 is_stmt 0 view .LVU4449
12594 00f2 E36A ldr r3, [r4, #44]
5040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
12595 .loc 1 5040 11 view .LVU4450
12596 00f4 0020 movs r0, #0
12597 .LVL910:
5040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
12598 .loc 1 5040 11 view .LVU4451
12599 00f6 0090 str r0, [sp]
12600 00f8 D2B2 uxtb r2, r2
12601 00fa 2046 mov r0, r4
12602 00fc FFF7FEFF bl I2C_TransferConfig
12603 .LVL911:
ARM GAS /tmp/ccN54YTb.s page 428
5040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
12604 .loc 1 5040 11 view .LVU4452
12605 0100 A8E7 b .L784
12606 .LVL912:
12607 .L802:
5032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
12608 .loc 1 5032 9 is_stmt 1 view .LVU4453
5032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
12609 .loc 1 5032 24 is_stmt 0 view .LVU4454
12610 0102 FF22 movs r2, #255
12611 .LVL913:
5032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
12612 .loc 1 5032 24 view .LVU4455
12613 0104 2285 strh r2, [r4, #40] @ movhi
5033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12614 .loc 1 5033 9 is_stmt 1 view .LVU4456
12615 0106 0023 movs r3, #0
12616 0108 0093 str r3, [sp]
12617 010a 4FF08073 mov r3, #16777216
12618 010e 2046 mov r0, r4
12619 .LVL914:
5033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12620 .loc 1 5033 9 is_stmt 0 view .LVU4457
12621 0110 FFF7FEFF bl I2C_TransferConfig
12622 .LVL915:
5033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12623 .loc 1 5033 9 view .LVU4458
12624 0114 9EE7 b .L784
12625 .LVL916:
12626 .L790:
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12627 .loc 1 5045 11 is_stmt 1 view .LVU4459
12628 0116 0023 movs r3, #0
12629 0118 0093 str r3, [sp]
12630 011a 4FF00073 mov r3, #33554432
12631 011e D2B2 uxtb r2, r2
12632 0120 2046 mov r0, r4
12633 .LVL917:
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12634 .loc 1 5045 11 is_stmt 0 view .LVU4460
12635 0122 FFF7FEFF bl I2C_TransferConfig
12636 .LVL918:
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12637 .loc 1 5045 11 view .LVU4461
12638 0126 95E7 b .L784
12639 .LVL919:
12640 .L788:
5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12641 .loc 1 5053 7 is_stmt 1 view .LVU4462
5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12642 .loc 1 5053 11 is_stmt 0 view .LVU4463
12643 0128 2368 ldr r3, [r4]
12644 012a 5B68 ldr r3, [r3, #4]
5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12645 .loc 1 5053 10 view .LVU4464
12646 012c 13F0007F tst r3, #33554432
12647 0130 03D1 bne .L791
ARM GAS /tmp/ccN54YTb.s page 429
5056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12648 .loc 1 5056 9 is_stmt 1 view .LVU4465
12649 0132 2046 mov r0, r4
12650 .LVL920:
5056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12651 .loc 1 5056 9 is_stmt 0 view .LVU4466
12652 0134 FFF7FEFF bl I2C_ITMasterSeqCplt
12653 .LVL921:
5056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12654 .loc 1 5056 9 view .LVU4467
12655 0138 8CE7 b .L784
12656 .LVL922:
12657 .L791:
5062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12658 .loc 1 5062 9 is_stmt 1 view .LVU4468
12659 013a 4021 movs r1, #64
12660 .LVL923:
5062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12661 .loc 1 5062 9 is_stmt 0 view .LVU4469
12662 013c 2046 mov r0, r4
12663 .LVL924:
5062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12664 .loc 1 5062 9 view .LVU4470
12665 013e FFF7FEFF bl I2C_ITError
12666 .LVL925:
5062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12667 .loc 1 5062 9 view .LVU4471
12668 0142 87E7 b .L784
12669 .LVL926:
12670 .L787:
5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12671 .loc 1 5066 8 is_stmt 1 view .LVU4472
5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12672 .loc 1 5066 11 is_stmt 0 view .LVU4473
12673 0144 002B cmp r3, #0
12674 0146 85D0 beq .L784
5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12675 .loc 1 5066 63 discriminator 1 view .LVU4474
12676 0148 16F0400F tst r6, #64
12677 014c 82D0 beq .L784
5069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12678 .loc 1 5069 5 is_stmt 1 view .LVU4475
5069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12679 .loc 1 5069 13 is_stmt 0 view .LVU4476
12680 014e 638D ldrh r3, [r4, #42]
12681 0150 9BB2 uxth r3, r3
5069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12682 .loc 1 5069 8 view .LVU4477
12683 0152 93B9 cbnz r3, .L792
5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12684 .loc 1 5071 7 is_stmt 1 view .LVU4478
5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12685 .loc 1 5071 11 is_stmt 0 view .LVU4479
12686 0154 2368 ldr r3, [r4]
12687 0156 5A68 ldr r2, [r3, #4]
12688 .LVL927:
5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 430
12689 .loc 1 5071 10 view .LVU4480
12690 0158 12F0007F tst r2, #33554432
12691 015c 7FF47AAF bne .L784
5074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12692 .loc 1 5074 9 is_stmt 1 view .LVU4481
5074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12693 .loc 1 5074 17 is_stmt 0 view .LVU4482
12694 0160 E26A ldr r2, [r4, #44]
5074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12695 .loc 1 5074 12 view .LVU4483
12696 0162 12F5803F cmn r2, #65536
12697 0166 04D1 bne .L793
5077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12698 .loc 1 5077 11 is_stmt 1 view .LVU4484
5077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12699 .loc 1 5077 25 is_stmt 0 view .LVU4485
12700 0168 5A68 ldr r2, [r3, #4]
5077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12701 .loc 1 5077 31 view .LVU4486
12702 016a 42F48042 orr r2, r2, #16384
12703 016e 5A60 str r2, [r3, #4]
12704 0170 70E7 b .L784
12705 .L793:
5082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12706 .loc 1 5082 11 is_stmt 1 view .LVU4487
12707 0172 2046 mov r0, r4
12708 .LVL928:
5082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12709 .loc 1 5082 11 is_stmt 0 view .LVU4488
12710 0174 FFF7FEFF bl I2C_ITMasterSeqCplt
12711 .LVL929:
5082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12712 .loc 1 5082 11 view .LVU4489
12713 0178 6CE7 b .L784
12714 .LVL930:
12715 .L792:
5090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12716 .loc 1 5090 7 is_stmt 1 view .LVU4490
12717 017a 4021 movs r1, #64
12718 .LVL931:
5090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12719 .loc 1 5090 7 is_stmt 0 view .LVU4491
12720 017c 2046 mov r0, r4
12721 .LVL932:
5090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12722 .loc 1 5090 7 view .LVU4492
12723 017e FFF7FEFF bl I2C_ITError
12724 .LVL933:
5090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12725 .loc 1 5090 7 view .LVU4493
12726 0182 67E7 b .L784
12727 .LVL934:
12728 .L801:
5102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12729 .loc 1 5102 5 is_stmt 1 view .LVU4494
12730 0184 2946 mov r1, r5
12731 0186 2046 mov r0, r4
ARM GAS /tmp/ccN54YTb.s page 431
12732 0188 FFF7FEFF bl I2C_ITMasterCplt
12733 .LVL935:
12734 018c 69E7 b .L794
12735 .LVL936:
12736 .L795:
12737 .cfi_def_cfa_offset 0
12738 .cfi_restore 4
12739 .cfi_restore 5
12740 .cfi_restore 6
12741 .cfi_restore 14
4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12742 .loc 1 4975 3 is_stmt 0 discriminator 1 view .LVU4495
12743 018e 0220 movs r0, #2
12744 .LVL937:
5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12745 .loc 1 5109 1 view .LVU4496
12746 0190 7047 bx lr
12747 .cfi_endproc
12748 .LFE384:
12750 .section .text.I2C_Mem_ISR_DMA,"ax",%progbits
12751 .align 1
12752 .syntax unified
12753 .thumb
12754 .thumb_func
12756 I2C_Mem_ISR_DMA:
12757 .LVL938:
12758 .LFB388:
5544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
12759 .loc 1 5544 1 is_stmt 1 view -0
12760 .cfi_startproc
12761 @ args = 0, pretend = 0, frame = 0
12762 @ frame_needed = 0, uses_anonymous_args = 0
5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12763 .loc 1 5545 3 view .LVU4498
5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12764 .loc 1 5548 3 view .LVU4499
5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12765 .loc 1 5548 3 view .LVU4500
12766 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
12767 0004 012B cmp r3, #1
12768 0006 00F0C580 beq .L818
5544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
12769 .loc 1 5544 1 is_stmt 0 view .LVU4501
12770 000a 10B5 push {r4, lr}
12771 .cfi_def_cfa_offset 8
12772 .cfi_offset 4, -8
12773 .cfi_offset 14, -4
12774 000c 82B0 sub sp, sp, #8
12775 .cfi_def_cfa_offset 16
12776 000e 0446 mov r4, r0
5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12777 .loc 1 5548 3 is_stmt 1 discriminator 2 view .LVU4502
12778 0010 0123 movs r3, #1
12779 0012 80F84030 strb r3, [r0, #64]
5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12780 .loc 1 5548 3 view .LVU4503
5550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
ARM GAS /tmp/ccN54YTb.s page 432
12781 .loc 1 5550 3 view .LVU4504
5550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12782 .loc 1 5550 6 is_stmt 0 view .LVU4505
12783 0016 11F0100F tst r1, #16
12784 001a 02D0 beq .L805
5550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12785 .loc 1 5550 55 discriminator 1 view .LVU4506
12786 001c 12F0100F tst r2, #16
12787 0020 10D1 bne .L824
12788 .L805:
5567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
12789 .loc 1 5567 8 is_stmt 1 view .LVU4507
5567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
12790 .loc 1 5567 11 is_stmt 0 view .LVU4508
12791 0022 11F0020F tst r1, #2
12792 0026 1BD0 beq .L807
5567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
12793 .loc 1 5567 62 discriminator 1 view .LVU4509
12794 0028 12F0020F tst r2, #2
12795 002c 18D0 beq .L807
5571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12796 .loc 1 5571 5 is_stmt 1 view .LVU4510
5571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12797 .loc 1 5571 9 is_stmt 0 view .LVU4511
12798 002e 2368 ldr r3, [r4]
5571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12799 .loc 1 5571 32 view .LVU4512
12800 0030 226D ldr r2, [r4, #80]
12801 .LVL939:
5571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12802 .loc 1 5571 26 view .LVU4513
12803 0032 9A62 str r2, [r3, #40]
5574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12804 .loc 1 5574 5 is_stmt 1 view .LVU4514
5574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12805 .loc 1 5574 22 is_stmt 0 view .LVU4515
12806 0034 4FF0FF33 mov r3, #-1
12807 0038 2365 str r3, [r4, #80]
12808 .LVL940:
12809 .L806:
5674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12810 .loc 1 5674 3 is_stmt 1 view .LVU4516
5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12811 .loc 1 5677 3 view .LVU4517
5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12812 .loc 1 5677 3 view .LVU4518
12813 003a 0020 movs r0, #0
12814 003c 84F84000 strb r0, [r4, #64]
5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12815 .loc 1 5677 3 view .LVU4519
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12816 .loc 1 5679 3 view .LVU4520
5680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12817 .loc 1 5680 1 is_stmt 0 view .LVU4521
12818 0040 02B0 add sp, sp, #8
12819 .cfi_remember_state
12820 .cfi_def_cfa_offset 8
ARM GAS /tmp/ccN54YTb.s page 433
12821 @ sp needed
12822 0042 10BD pop {r4, pc}
12823 .LVL941:
12824 .L824:
12825 .cfi_restore_state
5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12826 .loc 1 5554 5 is_stmt 1 view .LVU4522
12827 0044 0368 ldr r3, [r0]
12828 0046 1022 movs r2, #16
12829 .LVL942:
5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12830 .loc 1 5554 5 is_stmt 0 view .LVU4523
12831 0048 DA61 str r2, [r3, #28]
5557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12832 .loc 1 5557 5 is_stmt 1 view .LVU4524
5557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12833 .loc 1 5557 9 is_stmt 0 view .LVU4525
12834 004a 436C ldr r3, [r0, #68]
5557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12835 .loc 1 5557 21 view .LVU4526
12836 004c 43F00403 orr r3, r3, #4
12837 0050 4364 str r3, [r0, #68]
5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12838 .loc 1 5562 5 is_stmt 1 view .LVU4527
12839 0052 2021 movs r1, #32
12840 .LVL943:
5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12841 .loc 1 5562 5 is_stmt 0 view .LVU4528
12842 0054 FFF7FEFF bl I2C_Enable_IRQ
12843 .LVL944:
5565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12844 .loc 1 5565 5 is_stmt 1 view .LVU4529
12845 0058 2046 mov r0, r4
12846 005a FFF7FEFF bl I2C_Flush_TXDR
12847 .LVL945:
12848 005e ECE7 b .L806
12849 .LVL946:
12850 .L807:
5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12851 .loc 1 5576 8 view .LVU4530
5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12852 .loc 1 5576 11 is_stmt 0 view .LVU4531
12853 0060 11F0800F tst r1, #128
12854 0064 02D0 beq .L808
5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12855 .loc 1 5576 61 discriminator 1 view .LVU4532
12856 0066 12F0400F tst r2, #64
12857 006a 0FD1 bne .L825
12858 .L808:
5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12859 .loc 1 5621 8 is_stmt 1 view .LVU4533
5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12860 .loc 1 5621 11 is_stmt 0 view .LVU4534
12861 006c 11F0400F tst r1, #64
12862 0070 02D0 beq .L813
5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12863 .loc 1 5621 60 discriminator 1 view .LVU4535
ARM GAS /tmp/ccN54YTb.s page 434
12864 0072 12F0400F tst r2, #64
12865 0076 4DD1 bne .L826
12866 .L813:
5665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12867 .loc 1 5665 8 is_stmt 1 view .LVU4536
5665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12868 .loc 1 5665 11 is_stmt 0 view .LVU4537
12869 0078 11F0200F tst r1, #32
12870 007c DDD0 beq .L806
5665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12871 .loc 1 5665 63 discriminator 1 view .LVU4538
12872 007e 12F0200F tst r2, #32
12873 0082 DAD0 beq .L806
5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12874 .loc 1 5669 5 is_stmt 1 view .LVU4539
12875 0084 2046 mov r0, r4
12876 .LVL947:
5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12877 .loc 1 5669 5 is_stmt 0 view .LVU4540
12878 0086 FFF7FEFF bl I2C_ITMasterCplt
12879 .LVL948:
5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12880 .loc 1 5669 5 view .LVU4541
12881 008a D6E7 b .L806
12882 .LVL949:
12883 .L825:
5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12884 .loc 1 5580 5 is_stmt 1 view .LVU4542
12885 008c 0121 movs r1, #1
12886 .LVL950:
5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12887 .loc 1 5580 5 is_stmt 0 view .LVU4543
12888 008e 2046 mov r0, r4
12889 .LVL951:
5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12890 .loc 1 5580 5 view .LVU4544
12891 0090 FFF7FEFF bl I2C_Disable_IRQ
12892 .LVL952:
5583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12893 .loc 1 5583 5 is_stmt 1 view .LVU4545
12894 0094 1021 movs r1, #16
12895 0096 2046 mov r0, r4
12896 0098 FFF7FEFF bl I2C_Enable_IRQ
12897 .LVL953:
5585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12898 .loc 1 5585 5 view .LVU4546
5585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12899 .loc 1 5585 13 is_stmt 0 view .LVU4547
12900 009c 638D ldrh r3, [r4, #42]
12901 009e 9BB2 uxth r3, r3
5585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12902 .loc 1 5585 8 view .LVU4548
12903 00a0 002B cmp r3, #0
12904 00a2 32D0 beq .L809
5588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12905 .loc 1 5588 7 is_stmt 1 view .LVU4549
5588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 435
12906 .loc 1 5588 15 is_stmt 0 view .LVU4550
12907 00a4 638D ldrh r3, [r4, #42]
12908 00a6 9BB2 uxth r3, r3
5588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12909 .loc 1 5588 10 view .LVU4551
12910 00a8 FF2B cmp r3, #255
12911 00aa 1AD9 bls .L810
5590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
12912 .loc 1 5590 9 is_stmt 1 view .LVU4552
5590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
12913 .loc 1 5590 24 is_stmt 0 view .LVU4553
12914 00ac FF22 movs r2, #255
12915 00ae 2285 strh r2, [r4, #40] @ movhi
5591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
12916 .loc 1 5591 9 is_stmt 1 view .LVU4554
5591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
12917 .loc 1 5591 48 is_stmt 0 view .LVU4555
12918 00b0 E16C ldr r1, [r4, #76]
5591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
12919 .loc 1 5591 9 view .LVU4556
12920 00b2 0023 movs r3, #0
12921 00b4 0093 str r3, [sp]
12922 00b6 4FF08073 mov r3, #16777216
12923 00ba 89B2 uxth r1, r1
12924 00bc 2046 mov r0, r4
12925 00be FFF7FEFF bl I2C_TransferConfig
12926 .LVL954:
12927 .L811:
5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12928 .loc 1 5602 7 is_stmt 1 view .LVU4557
5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12929 .loc 1 5602 11 is_stmt 0 view .LVU4558
12930 00c2 638D ldrh r3, [r4, #42]
12931 00c4 9BB2 uxth r3, r3
5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12932 .loc 1 5602 30 view .LVU4559
12933 00c6 228D ldrh r2, [r4, #40]
5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12934 .loc 1 5602 23 view .LVU4560
12935 00c8 9B1A subs r3, r3, r2
12936 00ca 9BB2 uxth r3, r3
12937 00cc 6385 strh r3, [r4, #42] @ movhi
5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12938 .loc 1 5605 7 is_stmt 1 view .LVU4561
5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12939 .loc 1 5605 15 is_stmt 0 view .LVU4562
12940 00ce 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12941 .loc 1 5605 10 view .LVU4563
12942 00d2 222B cmp r3, #34
12943 00d4 13D0 beq .L827
5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12944 .loc 1 5611 9 is_stmt 1 view .LVU4564
5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12945 .loc 1 5611 13 is_stmt 0 view .LVU4565
12946 00d6 2268 ldr r2, [r4]
5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 436
12947 .loc 1 5611 23 view .LVU4566
12948 00d8 1368 ldr r3, [r2]
5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12949 .loc 1 5611 29 view .LVU4567
12950 00da 43F48043 orr r3, r3, #16384
12951 00de 1360 str r3, [r2]
12952 00e0 ABE7 b .L806
12953 .L810:
5596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
12954 .loc 1 5596 9 is_stmt 1 view .LVU4568
5596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
12955 .loc 1 5596 30 is_stmt 0 view .LVU4569
12956 00e2 628D ldrh r2, [r4, #42]
12957 00e4 92B2 uxth r2, r2
5596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
12958 .loc 1 5596 24 view .LVU4570
12959 00e6 2285 strh r2, [r4, #40] @ movhi
5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12960 .loc 1 5597 9 is_stmt 1 view .LVU4571
5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12961 .loc 1 5597 48 is_stmt 0 view .LVU4572
12962 00e8 E16C ldr r1, [r4, #76]
5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12963 .loc 1 5597 9 view .LVU4573
12964 00ea 0023 movs r3, #0
12965 00ec 0093 str r3, [sp]
12966 00ee 4FF00073 mov r3, #33554432
12967 00f2 D2B2 uxtb r2, r2
12968 00f4 89B2 uxth r1, r1
12969 00f6 2046 mov r0, r4
12970 00f8 FFF7FEFF bl I2C_TransferConfig
12971 .LVL955:
12972 00fc E1E7 b .L811
12973 .L827:
5607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12974 .loc 1 5607 9 is_stmt 1 view .LVU4574
5607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12975 .loc 1 5607 13 is_stmt 0 view .LVU4575
12976 00fe 2268 ldr r2, [r4]
5607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12977 .loc 1 5607 23 view .LVU4576
12978 0100 1368 ldr r3, [r2]
5607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12979 .loc 1 5607 29 view .LVU4577
12980 0102 43F40043 orr r3, r3, #32768
12981 0106 1360 str r3, [r2]
12982 0108 97E7 b .L806
12983 .L809:
5618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12984 .loc 1 5618 7 is_stmt 1 view .LVU4578
12985 010a 4021 movs r1, #64
12986 010c 2046 mov r0, r4
12987 010e FFF7FEFF bl I2C_ITError
12988 .LVL956:
12989 0112 92E7 b .L806
12990 .LVL957:
12991 .L826:
ARM GAS /tmp/ccN54YTb.s page 437
5625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12992 .loc 1 5625 5 view .LVU4579
12993 0114 0121 movs r1, #1
12994 .LVL958:
5625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12995 .loc 1 5625 5 is_stmt 0 view .LVU4580
12996 0116 2046 mov r0, r4
12997 .LVL959:
5625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12998 .loc 1 5625 5 view .LVU4581
12999 0118 FFF7FEFF bl I2C_Disable_IRQ
13000 .LVL960:
5628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13001 .loc 1 5628 5 is_stmt 1 view .LVU4582
13002 011c 1021 movs r1, #16
13003 011e 2046 mov r0, r4
13004 0120 FFF7FEFF bl I2C_Enable_IRQ
13005 .LVL961:
5630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13006 .loc 1 5630 5 view .LVU4583
5630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13007 .loc 1 5630 13 is_stmt 0 view .LVU4584
13008 0124 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13009 .loc 1 5630 8 view .LVU4585
13010 0128 222B cmp r3, #34
13011 012a 1ED0 beq .L819
5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13012 .loc 1 5545 12 view .LVU4586
13013 012c 1A48 ldr r0, .L829
13014 .L814:
13015 .LVL962:
5635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13016 .loc 1 5635 5 is_stmt 1 view .LVU4587
5635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13017 .loc 1 5635 13 is_stmt 0 view .LVU4588
13018 012e 638D ldrh r3, [r4, #42]
13019 0130 9BB2 uxth r3, r3
5635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13020 .loc 1 5635 8 view .LVU4589
13021 0132 FF2B cmp r3, #255
13022 0134 1BD9 bls .L815
5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13023 .loc 1 5637 7 is_stmt 1 view .LVU4590
5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13024 .loc 1 5637 22 is_stmt 0 view .LVU4591
13025 0136 FF22 movs r2, #255
13026 0138 2285 strh r2, [r4, #40] @ movhi
5640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
13027 .loc 1 5640 7 is_stmt 1 view .LVU4592
5640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
13028 .loc 1 5640 46 is_stmt 0 view .LVU4593
13029 013a E16C ldr r1, [r4, #76]
5640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
13030 .loc 1 5640 7 view .LVU4594
13031 013c 0090 str r0, [sp]
13032 013e 4FF08073 mov r3, #16777216
ARM GAS /tmp/ccN54YTb.s page 438
13033 0142 89B2 uxth r1, r1
13034 0144 2046 mov r0, r4
13035 .LVL963:
5640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
13036 .loc 1 5640 7 view .LVU4595
13037 0146 FFF7FEFF bl I2C_TransferConfig
13038 .LVL964:
13039 .L816:
5653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13040 .loc 1 5653 5 is_stmt 1 view .LVU4596
5653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13041 .loc 1 5653 9 is_stmt 0 view .LVU4597
13042 014a 638D ldrh r3, [r4, #42]
13043 014c 9BB2 uxth r3, r3
5653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13044 .loc 1 5653 28 view .LVU4598
13045 014e 228D ldrh r2, [r4, #40]
5653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13046 .loc 1 5653 21 view .LVU4599
13047 0150 9B1A subs r3, r3, r2
13048 0152 9BB2 uxth r3, r3
13049 0154 6385 strh r3, [r4, #42] @ movhi
5656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13050 .loc 1 5656 5 is_stmt 1 view .LVU4600
5656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13051 .loc 1 5656 13 is_stmt 0 view .LVU4601
13052 0156 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13053 .loc 1 5656 8 view .LVU4602
13054 015a 222B cmp r3, #34
13055 015c 14D0 beq .L828
5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13056 .loc 1 5662 7 is_stmt 1 view .LVU4603
5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13057 .loc 1 5662 11 is_stmt 0 view .LVU4604
13058 015e 2268 ldr r2, [r4]
5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13059 .loc 1 5662 21 view .LVU4605
13060 0160 1368 ldr r3, [r2]
5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13061 .loc 1 5662 27 view .LVU4606
13062 0162 43F48043 orr r3, r3, #16384
13063 0166 1360 str r3, [r2]
13064 0168 67E7 b .L806
13065 .LVL965:
13066 .L819:
5632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13067 .loc 1 5632 17 view .LVU4607
13068 016a 0C48 ldr r0, .L829+4
13069 016c DFE7 b .L814
13070 .LVL966:
13071 .L815:
5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13072 .loc 1 5645 7 is_stmt 1 view .LVU4608
5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13073 .loc 1 5645 28 is_stmt 0 view .LVU4609
13074 016e 628D ldrh r2, [r4, #42]
ARM GAS /tmp/ccN54YTb.s page 439
13075 0170 92B2 uxth r2, r2
5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13076 .loc 1 5645 22 view .LVU4610
13077 0172 2285 strh r2, [r4, #40] @ movhi
5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
13078 .loc 1 5648 7 is_stmt 1 view .LVU4611
5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
13079 .loc 1 5648 46 is_stmt 0 view .LVU4612
13080 0174 E16C ldr r1, [r4, #76]
5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
13081 .loc 1 5648 7 view .LVU4613
13082 0176 0090 str r0, [sp]
13083 0178 4FF00073 mov r3, #33554432
13084 017c D2B2 uxtb r2, r2
13085 017e 89B2 uxth r1, r1
13086 0180 2046 mov r0, r4
13087 .LVL967:
5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
13088 .loc 1 5648 7 view .LVU4614
13089 0182 FFF7FEFF bl I2C_TransferConfig
13090 .LVL968:
5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
13091 .loc 1 5648 7 view .LVU4615
13092 0186 E0E7 b .L816
13093 .L828:
5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13094 .loc 1 5658 7 is_stmt 1 view .LVU4616
5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13095 .loc 1 5658 11 is_stmt 0 view .LVU4617
13096 0188 2268 ldr r2, [r4]
5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13097 .loc 1 5658 21 view .LVU4618
13098 018a 1368 ldr r3, [r2]
5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13099 .loc 1 5658 27 view .LVU4619
13100 018c 43F40043 orr r3, r3, #32768
13101 0190 1360 str r3, [r2]
13102 0192 52E7 b .L806
13103 .LVL969:
13104 .L818:
13105 .cfi_def_cfa_offset 0
13106 .cfi_restore 4
13107 .cfi_restore 14
5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13108 .loc 1 5548 3 discriminator 1 view .LVU4620
13109 0194 0220 movs r0, #2
13110 .LVL970:
5680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13111 .loc 1 5680 1 view .LVU4621
13112 0196 7047 bx lr
13113 .L830:
13114 .align 2
13115 .L829:
13116 0198 00200080 .word -2147475456
13117 019c 00240080 .word -2147474432
13118 .cfi_endproc
13119 .LFE388:
ARM GAS /tmp/ccN54YTb.s page 440
13121 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits
13122 .align 1
13123 .syntax unified
13124 .thumb
13125 .thumb_func
13127 I2C_Slave_ISR_DMA:
13128 .LVL971:
13129 .LFB389:
5692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
13130 .loc 1 5692 1 is_stmt 1 view -0
13131 .cfi_startproc
13132 @ args = 0, pretend = 0, frame = 0
13133 @ frame_needed = 0, uses_anonymous_args = 0
5692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
13134 .loc 1 5692 1 is_stmt 0 view .LVU4623
13135 0000 70B5 push {r4, r5, r6, lr}
13136 .cfi_def_cfa_offset 16
13137 .cfi_offset 4, -16
13138 .cfi_offset 5, -12
13139 .cfi_offset 6, -8
13140 .cfi_offset 14, -4
13141 0002 0446 mov r4, r0
5693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
13142 .loc 1 5693 3 is_stmt 1 view .LVU4624
5693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
13143 .loc 1 5693 12 is_stmt 0 view .LVU4625
13144 0004 C06A ldr r0, [r0, #44]
13145 .LVL972:
5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
13146 .loc 1 5694 3 is_stmt 1 view .LVU4626
5695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13147 .loc 1 5695 3 view .LVU4627
5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13148 .loc 1 5698 3 view .LVU4628
5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13149 .loc 1 5698 3 view .LVU4629
13150 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
13151 000a 012B cmp r3, #1
13152 000c 00F0FF80 beq .L854
5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13153 .loc 1 5698 3 discriminator 2 view .LVU4630
13154 0010 0123 movs r3, #1
13155 0012 84F84030 strb r3, [r4, #64]
5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13156 .loc 1 5698 3 view .LVU4631
5701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13157 .loc 1 5701 3 view .LVU4632
5701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13158 .loc 1 5701 6 is_stmt 0 view .LVU4633
13159 0016 11F0200F tst r1, #32
13160 001a 02D0 beq .L833
5701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13161 .loc 1 5701 58 discriminator 1 view .LVU4634
13162 001c 12F0200F tst r2, #32
13163 0020 4FD1 bne .L859
13164 .L833:
5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
ARM GAS /tmp/ccN54YTb.s page 441
13165 .loc 1 5707 8 is_stmt 1 view .LVU4635
5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13166 .loc 1 5707 11 is_stmt 0 view .LVU4636
13167 0022 11F0100F tst r1, #16
13168 0026 00F0E480 beq .L835
5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13169 .loc 1 5707 60 discriminator 1 view .LVU4637
13170 002a 12F0100F tst r2, #16
13171 002e 00F0E080 beq .L835
5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
13172 .loc 1 5714 5 is_stmt 1 view .LVU4638
13173 0032 C2F38036 ubfx r6, r2, #14, #1
5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
13174 .loc 1 5714 8 is_stmt 0 view .LVU4639
13175 0036 12F4804F tst r2, #16384
13176 003a 03D1 bne .L836
5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
13177 .loc 1 5714 68 discriminator 1 view .LVU4640
13178 003c 12F4004F tst r2, #32768
13179 0040 00F0D380 beq .L837
13180 .L836:
5718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13181 .loc 1 5718 7 is_stmt 1 view .LVU4641
5718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13182 .loc 1 5718 15 is_stmt 0 view .LVU4642
13183 0044 E36B ldr r3, [r4, #60]
5718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13184 .loc 1 5718 10 view .LVU4643
13185 0046 002B cmp r3, #0
13186 0048 47D0 beq .L855
5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13187 .loc 1 5720 9 is_stmt 1 view .LVU4644
13188 004a C2F3C035 ubfx r5, r2, #15, #1
5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13189 .loc 1 5720 12 is_stmt 0 view .LVU4645
13190 004e 12F4004F tst r2, #32768
13191 0052 43D0 beq .L838
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13192 .loc 1 5722 11 is_stmt 1 view .LVU4646
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13193 .loc 1 5722 15 is_stmt 0 view .LVU4647
13194 0054 1B68 ldr r3, [r3]
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13195 .loc 1 5722 53 view .LVU4648
13196 0056 6F4D ldr r5, .L863
13197 0058 6F4A ldr r2, .L863+4
13198 .LVL973:
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13199 .loc 1 5722 53 view .LVU4649
13200 005a 9342 cmp r3, r2
13201 005c 18BF it ne
13202 005e AB42 cmpne r3, r5
13203 0060 33D0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13204 .loc 1 5722 15 discriminator 2 view .LVU4650
13205 0062 1832 adds r2, r2, #24
13206 0064 9342 cmp r3, r2
ARM GAS /tmp/ccN54YTb.s page 442
13207 0066 30D0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13208 .loc 1 5722 15 discriminator 4 view .LVU4651
13209 0068 1832 adds r2, r2, #24
13210 006a 9342 cmp r3, r2
13211 006c 2DD0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13212 .loc 1 5722 15 discriminator 6 view .LVU4652
13213 006e 1832 adds r2, r2, #24
13214 0070 9342 cmp r3, r2
13215 0072 2AD0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13216 .loc 1 5722 15 discriminator 8 view .LVU4653
13217 0074 1832 adds r2, r2, #24
13218 0076 9342 cmp r3, r2
13219 0078 27D0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13220 .loc 1 5722 15 discriminator 10 view .LVU4654
13221 007a 1832 adds r2, r2, #24
13222 007c 9342 cmp r3, r2
13223 007e 24D0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13224 .loc 1 5722 15 discriminator 12 view .LVU4655
13225 0080 1832 adds r2, r2, #24
13226 0082 9342 cmp r3, r2
13227 0084 21D0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13228 .loc 1 5722 15 discriminator 14 view .LVU4656
13229 0086 02F55672 add r2, r2, #856
13230 008a 9342 cmp r3, r2
13231 008c 1DD0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13232 .loc 1 5722 15 discriminator 16 view .LVU4657
13233 008e 1832 adds r2, r2, #24
13234 0090 9342 cmp r3, r2
13235 0092 1AD0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13236 .loc 1 5722 15 discriminator 18 view .LVU4658
13237 0094 1832 adds r2, r2, #24
13238 0096 9342 cmp r3, r2
13239 0098 17D0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13240 .loc 1 5722 15 discriminator 20 view .LVU4659
13241 009a 1832 adds r2, r2, #24
13242 009c 9342 cmp r3, r2
13243 009e 14D0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13244 .loc 1 5722 15 discriminator 22 view .LVU4660
13245 00a0 1832 adds r2, r2, #24
13246 00a2 9342 cmp r3, r2
13247 00a4 11D0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13248 .loc 1 5722 15 discriminator 24 view .LVU4661
13249 00a6 1832 adds r2, r2, #24
13250 00a8 9342 cmp r3, r2
13251 00aa 0ED0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 443
13252 .loc 1 5722 15 discriminator 26 view .LVU4662
13253 00ac 1832 adds r2, r2, #24
13254 00ae 9342 cmp r3, r2
13255 00b0 0BD0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13256 .loc 1 5722 15 discriminator 28 view .LVU4663
13257 00b2 1832 adds r2, r2, #24
13258 00b4 9342 cmp r3, r2
13259 00b6 08D0 beq .L839
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13260 .loc 1 5722 15 discriminator 30 view .LVU4664
13261 00b8 5B68 ldr r3, [r3, #4]
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13262 .loc 1 5722 53 discriminator 30 view .LVU4665
13263 00ba B3FA83F3 clz r3, r3
13264 00be 5B09 lsrs r3, r3, #5
13265 00c0 07E0 b .L841
13266 .LVL974:
13267 .L859:
5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13268 .loc 1 5705 5 is_stmt 1 view .LVU4666
13269 00c2 2046 mov r0, r4
13270 .LVL975:
5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13271 .loc 1 5705 5 is_stmt 0 view .LVU4667
13272 00c4 FFF7FEFF bl I2C_ITSlaveCplt
13273 .LVL976:
5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13274 .loc 1 5705 5 view .LVU4668
13275 00c8 99E0 b .L834
13276 .LVL977:
13277 .L839:
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13278 .loc 1 5722 15 discriminator 29 view .LVU4669
13279 00ca 5B68 ldr r3, [r3, #4]
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13280 .loc 1 5722 53 discriminator 29 view .LVU4670
13281 00cc B3FA83F3 clz r3, r3
13282 00d0 5B09 lsrs r3, r3, #5
13283 .L841:
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13284 .loc 1 5722 14 discriminator 32 view .LVU4671
13285 00d2 002B cmp r3, #0
13286 00d4 3ED1 bne .L856
5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
13287 .loc 1 5694 12 view .LVU4672
13288 00d6 0025 movs r5, #0
13289 00d8 00E0 b .L838
13290 .LVL978:
13291 .L855:
5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
13292 .loc 1 5694 12 view .LVU4673
13293 00da 0025 movs r5, #0
13294 .LVL979:
13295 .L838:
5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13296 .loc 1 5730 7 is_stmt 1 view .LVU4674
ARM GAS /tmp/ccN54YTb.s page 444
5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13297 .loc 1 5730 15 is_stmt 0 view .LVU4675
13298 00dc A36B ldr r3, [r4, #56]
5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13299 .loc 1 5730 10 view .LVU4676
13300 00de 002B cmp r3, #0
13301 00e0 3FD0 beq .L842
5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13302 .loc 1 5732 9 is_stmt 1 view .LVU4677
5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13303 .loc 1 5732 12 is_stmt 0 view .LVU4678
13304 00e2 002E cmp r6, #0
13305 00e4 3DD0 beq .L842
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13306 .loc 1 5734 11 is_stmt 1 view .LVU4679
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13307 .loc 1 5734 15 is_stmt 0 view .LVU4680
13308 00e6 1B68 ldr r3, [r3]
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13309 .loc 1 5734 53 view .LVU4681
13310 00e8 4A4E ldr r6, .L863
13311 00ea 4B4A ldr r2, .L863+4
13312 00ec 9342 cmp r3, r2
13313 00ee 18BF it ne
13314 00f0 B342 cmpne r3, r6
13315 00f2 31D0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13316 .loc 1 5734 15 discriminator 2 view .LVU4682
13317 00f4 1832 adds r2, r2, #24
13318 00f6 9342 cmp r3, r2
13319 00f8 2ED0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13320 .loc 1 5734 15 discriminator 4 view .LVU4683
13321 00fa 1832 adds r2, r2, #24
13322 00fc 9342 cmp r3, r2
13323 00fe 2BD0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13324 .loc 1 5734 15 discriminator 6 view .LVU4684
13325 0100 1832 adds r2, r2, #24
13326 0102 9342 cmp r3, r2
13327 0104 28D0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13328 .loc 1 5734 15 discriminator 8 view .LVU4685
13329 0106 1832 adds r2, r2, #24
13330 0108 9342 cmp r3, r2
13331 010a 25D0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13332 .loc 1 5734 15 discriminator 10 view .LVU4686
13333 010c 1832 adds r2, r2, #24
13334 010e 9342 cmp r3, r2
13335 0110 22D0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13336 .loc 1 5734 15 discriminator 12 view .LVU4687
13337 0112 1832 adds r2, r2, #24
13338 0114 9342 cmp r3, r2
13339 0116 1FD0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 445
13340 .loc 1 5734 15 discriminator 14 view .LVU4688
13341 0118 02F55672 add r2, r2, #856
13342 011c 9342 cmp r3, r2
13343 011e 1BD0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13344 .loc 1 5734 15 discriminator 16 view .LVU4689
13345 0120 1832 adds r2, r2, #24
13346 0122 9342 cmp r3, r2
13347 0124 18D0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13348 .loc 1 5734 15 discriminator 18 view .LVU4690
13349 0126 1832 adds r2, r2, #24
13350 0128 9342 cmp r3, r2
13351 012a 15D0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13352 .loc 1 5734 15 discriminator 20 view .LVU4691
13353 012c 1832 adds r2, r2, #24
13354 012e 9342 cmp r3, r2
13355 0130 12D0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13356 .loc 1 5734 15 discriminator 22 view .LVU4692
13357 0132 1832 adds r2, r2, #24
13358 0134 9342 cmp r3, r2
13359 0136 0FD0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13360 .loc 1 5734 15 discriminator 24 view .LVU4693
13361 0138 1832 adds r2, r2, #24
13362 013a 9342 cmp r3, r2
13363 013c 0CD0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13364 .loc 1 5734 15 discriminator 26 view .LVU4694
13365 013e 1832 adds r2, r2, #24
13366 0140 9342 cmp r3, r2
13367 0142 09D0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13368 .loc 1 5734 15 discriminator 28 view .LVU4695
13369 0144 1832 adds r2, r2, #24
13370 0146 9342 cmp r3, r2
13371 0148 06D0 beq .L843
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13372 .loc 1 5734 15 discriminator 30 view .LVU4696
13373 014a 5B68 ldr r3, [r3, #4]
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13374 .loc 1 5734 53 discriminator 30 view .LVU4697
13375 014c B3FA83F3 clz r3, r3
13376 0150 5B09 lsrs r3, r3, #5
13377 0152 05E0 b .L845
13378 .LVL980:
13379 .L856:
5724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13380 .loc 1 5724 26 view .LVU4698
13381 0154 0125 movs r5, #1
13382 0156 C1E7 b .L838
13383 .LVL981:
13384 .L843:
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13385 .loc 1 5734 15 discriminator 29 view .LVU4699
ARM GAS /tmp/ccN54YTb.s page 446
13386 0158 5B68 ldr r3, [r3, #4]
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13387 .loc 1 5734 53 discriminator 29 view .LVU4700
13388 015a B3FA83F3 clz r3, r3
13389 015e 5B09 lsrs r3, r3, #5
13390 .L845:
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13391 .loc 1 5734 14 discriminator 32 view .LVU4701
13392 0160 CBB9 cbnz r3, .L846
13393 .L842:
5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13394 .loc 1 5741 7 is_stmt 1 view .LVU4702
5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13395 .loc 1 5741 10 is_stmt 0 view .LVU4703
13396 0162 C5B9 cbnz r5, .L846
5772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13397 .loc 1 5772 9 is_stmt 1 view .LVU4704
13398 0164 2368 ldr r3, [r4]
13399 0166 1022 movs r2, #16
13400 0168 DA61 str r2, [r3, #28]
5775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13401 .loc 1 5775 9 view .LVU4705
5775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13402 .loc 1 5775 13 is_stmt 0 view .LVU4706
13403 016a 636C ldr r3, [r4, #68]
5775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13404 .loc 1 5775 25 view .LVU4707
13405 016c 43F00403 orr r3, r3, #4
13406 0170 6364 str r3, [r4, #68]
5778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13407 .loc 1 5778 9 is_stmt 1 view .LVU4708
5778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13408 .loc 1 5778 18 is_stmt 0 view .LVU4709
13409 0172 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
13410 0176 DBB2 uxtb r3, r3
13411 .LVL982:
5780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13412 .loc 1 5780 9 is_stmt 1 view .LVU4710
5780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13413 .loc 1 5780 12 is_stmt 0 view .LVU4711
13414 0178 B0F1807F cmp r0, #16777216
13415 017c 18BF it ne
13416 017e 0028 cmpne r0, #0
13417 0180 3DD1 bne .L834
5782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13418 .loc 1 5782 11 is_stmt 1 view .LVU4712
13419 0182 213B subs r3, r3, #33
13420 .LVL983:
5782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13421 .loc 1 5782 11 is_stmt 0 view .LVU4713
13422 0184 092B cmp r3, #9
13423 0186 28D8 bhi .L850
13424 0188 DFE803F0 tbb [pc, r3]
13425 .L852:
13426 018c 25 .byte (.L853-.L852)/2
13427 018d 2C .byte (.L851-.L852)/2
13428 018e 27 .byte (.L850-.L852)/2
ARM GAS /tmp/ccN54YTb.s page 447
13429 018f 27 .byte (.L850-.L852)/2
13430 0190 27 .byte (.L850-.L852)/2
13431 0191 27 .byte (.L850-.L852)/2
13432 0192 27 .byte (.L850-.L852)/2
13433 0193 27 .byte (.L850-.L852)/2
13434 0194 25 .byte (.L853-.L852)/2
13435 0195 2C .byte (.L851-.L852)/2
13436 .LVL984:
13437 .p2align 1
13438 .L846:
5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
13439 .loc 1 5743 9 is_stmt 1 view .LVU4714
5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
13440 .loc 1 5743 18 is_stmt 0 view .LVU4715
13441 0196 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
13442 .loc 1 5743 12 view .LVU4716
13443 019a 282B cmp r3, #40
13444 019c 07D0 beq .L860
13445 .L848:
5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13446 .loc 1 5750 14 is_stmt 1 view .LVU4717
5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13447 .loc 1 5750 23 is_stmt 0 view .LVU4718
13448 019e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13449 .loc 1 5750 17 view .LVU4719
13450 01a2 292B cmp r3, #41
13451 01a4 0AD0 beq .L861
13452 .L849:
5765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13453 .loc 1 5765 11 is_stmt 1 view .LVU4720
13454 01a6 2368 ldr r3, [r4]
13455 01a8 1022 movs r2, #16
13456 01aa DA61 str r2, [r3, #28]
13457 01ac 27E0 b .L834
13458 .L860:
5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
13459 .loc 1 5743 51 is_stmt 0 discriminator 1 view .LVU4721
13460 01ae B0F1007F cmp r0, #33554432
13461 01b2 F4D1 bne .L848
5748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13462 .loc 1 5748 11 is_stmt 1 view .LVU4722
13463 01b4 2046 mov r0, r4
13464 .LVL985:
5748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13465 .loc 1 5748 11 is_stmt 0 view .LVU4723
13466 01b6 FFF7FEFF bl I2C_ITListenCplt
13467 .LVL986:
5748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13468 .loc 1 5748 11 view .LVU4724
13469 01ba 20E0 b .L834
13470 .LVL987:
13471 .L861:
5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13472 .loc 1 5750 64 discriminator 1 view .LVU4725
13473 01bc 10F5803F cmn r0, #65536
ARM GAS /tmp/ccN54YTb.s page 448
13474 01c0 F1D0 beq .L849
5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13475 .loc 1 5753 11 is_stmt 1 view .LVU4726
13476 01c2 2368 ldr r3, [r4]
13477 01c4 1022 movs r2, #16
13478 01c6 DA61 str r2, [r3, #28]
5756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13479 .loc 1 5756 11 view .LVU4727
13480 01c8 2046 mov r0, r4
13481 .LVL988:
5756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13482 .loc 1 5756 11 is_stmt 0 view .LVU4728
13483 01ca FFF7FEFF bl I2C_Flush_TXDR
13484 .LVL989:
5760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13485 .loc 1 5760 11 is_stmt 1 view .LVU4729
13486 01ce 2046 mov r0, r4
13487 01d0 FFF7FEFF bl I2C_ITSlaveSeqCplt
13488 .LVL990:
13489 01d4 13E0 b .L834
13490 .LVL991:
13491 .L853:
5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13492 .loc 1 5784 13 view .LVU4730
5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13493 .loc 1 5784 33 is_stmt 0 view .LVU4731
13494 01d6 2123 movs r3, #33
13495 .LVL992:
5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13496 .loc 1 5784 33 view .LVU4732
13497 01d8 2363 str r3, [r4, #48]
13498 .L850:
5793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13499 .loc 1 5793 11 is_stmt 1 view .LVU4733
5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13500 .loc 1 5796 11 view .LVU4734
5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13501 .loc 1 5796 33 is_stmt 0 view .LVU4735
13502 01da 616C ldr r1, [r4, #68]
13503 .LVL993:
5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13504 .loc 1 5796 11 view .LVU4736
13505 01dc 2046 mov r0, r4
13506 .LVL994:
5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13507 .loc 1 5796 11 view .LVU4737
13508 01de FFF7FEFF bl I2C_ITError
13509 .LVL995:
13510 01e2 0CE0 b .L834
13511 .LVL996:
13512 .L851:
5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13513 .loc 1 5788 13 is_stmt 1 view .LVU4738
5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13514 .loc 1 5788 33 is_stmt 0 view .LVU4739
13515 01e4 2223 movs r3, #34
13516 .LVL997:
ARM GAS /tmp/ccN54YTb.s page 449
5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13517 .loc 1 5788 33 view .LVU4740
13518 01e6 2363 str r3, [r4, #48]
13519 01e8 F7E7 b .L850
13520 .LVL998:
13521 .L837:
5803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13522 .loc 1 5803 7 is_stmt 1 view .LVU4741
13523 01ea 2368 ldr r3, [r4]
13524 01ec 1022 movs r2, #16
13525 .LVL999:
5803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13526 .loc 1 5803 7 is_stmt 0 view .LVU4742
13527 01ee DA61 str r2, [r3, #28]
13528 01f0 05E0 b .L834
13529 .LVL1000:
13530 .L835:
5806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
13531 .loc 1 5806 8 is_stmt 1 view .LVU4743
5806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
13532 .loc 1 5806 11 is_stmt 0 view .LVU4744
13533 01f2 11F0080F tst r1, #8
13534 01f6 02D0 beq .L834
5806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
13535 .loc 1 5806 62 discriminator 1 view .LVU4745
13536 01f8 12F0080F tst r2, #8
13537 01fc 03D1 bne .L862
13538 .LVL1001:
13539 .L834:
5814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13540 .loc 1 5814 3 is_stmt 1 view .LVU4746
5817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13541 .loc 1 5817 3 view .LVU4747
5817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13542 .loc 1 5817 3 view .LVU4748
13543 01fe 0020 movs r0, #0
13544 0200 84F84000 strb r0, [r4, #64]
5817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13545 .loc 1 5817 3 view .LVU4749
5819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13546 .loc 1 5819 3 view .LVU4750
13547 .L832:
5820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13548 .loc 1 5820 1 is_stmt 0 view .LVU4751
13549 0204 70BD pop {r4, r5, r6, pc}
13550 .LVL1002:
13551 .L862:
5809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13552 .loc 1 5809 5 is_stmt 1 view .LVU4752
13553 0206 2046 mov r0, r4
13554 .LVL1003:
5809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13555 .loc 1 5809 5 is_stmt 0 view .LVU4753
13556 0208 FFF7FEFF bl I2C_ITAddrCplt
13557 .LVL1004:
5809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13558 .loc 1 5809 5 view .LVU4754
ARM GAS /tmp/ccN54YTb.s page 450
13559 020c F7E7 b .L834
13560 .LVL1005:
13561 .L854:
5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13562 .loc 1 5698 3 discriminator 1 view .LVU4755
13563 020e 0220 movs r0, #2
13564 .LVL1006:
5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13565 .loc 1 5698 3 discriminator 1 view .LVU4756
13566 0210 F8E7 b .L832
13567 .L864:
13568 0212 00BF .align 2
13569 .L863:
13570 0214 10000240 .word 1073872912
13571 0218 28000240 .word 1073872936
13572 .cfi_endproc
13573 .LFE389:
13575 .section .text.I2C_Master_ISR_DMA,"ax",%progbits
13576 .align 1
13577 .syntax unified
13578 .thumb
13579 .thumb_func
13581 I2C_Master_ISR_DMA:
13582 .LVL1007:
13583 .LFB387:
5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
13584 .loc 1 5404 1 is_stmt 1 view -0
13585 .cfi_startproc
13586 @ args = 0, pretend = 0, frame = 0
13587 @ frame_needed = 0, uses_anonymous_args = 0
5405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
13588 .loc 1 5405 3 view .LVU4758
5406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13589 .loc 1 5406 3 view .LVU4759
5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13590 .loc 1 5409 3 view .LVU4760
5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13591 .loc 1 5409 3 view .LVU4761
13592 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
13593 0004 012B cmp r3, #1
13594 0006 00F09980 beq .L878
5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
13595 .loc 1 5404 1 is_stmt 0 view .LVU4762
13596 000a 10B5 push {r4, lr}
13597 .cfi_def_cfa_offset 8
13598 .cfi_offset 4, -8
13599 .cfi_offset 14, -4
13600 000c 82B0 sub sp, sp, #8
13601 .cfi_def_cfa_offset 16
13602 000e 0446 mov r4, r0
5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13603 .loc 1 5409 3 is_stmt 1 discriminator 2 view .LVU4763
13604 0010 0123 movs r3, #1
13605 0012 80F84030 strb r3, [r0, #64]
5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13606 .loc 1 5409 3 view .LVU4764
5411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
ARM GAS /tmp/ccN54YTb.s page 451
13607 .loc 1 5411 3 view .LVU4765
5411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13608 .loc 1 5411 6 is_stmt 0 view .LVU4766
13609 0016 11F0100F tst r1, #16
13610 001a 02D0 beq .L867
5411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13611 .loc 1 5411 55 discriminator 1 view .LVU4767
13612 001c 12F0100F tst r2, #16
13613 0020 31D1 bne .L884
13614 .L867:
5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13615 .loc 1 5428 8 is_stmt 1 view .LVU4768
5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13616 .loc 1 5428 11 is_stmt 0 view .LVU4769
13617 0022 11F0800F tst r1, #128
13618 0026 5FD0 beq .L869
5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13619 .loc 1 5428 61 discriminator 1 view .LVU4770
13620 0028 12F0400F tst r2, #64
13621 002c 5CD0 beq .L869
5432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13622 .loc 1 5432 5 is_stmt 1 view .LVU4771
13623 002e 2268 ldr r2, [r4]
13624 .LVL1008:
5432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13625 .loc 1 5432 5 is_stmt 0 view .LVU4772
13626 0030 1368 ldr r3, [r2]
13627 0032 23F04003 bic r3, r3, #64
13628 0036 1360 str r3, [r2]
5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13629 .loc 1 5434 5 is_stmt 1 view .LVU4773
5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13630 .loc 1 5434 13 is_stmt 0 view .LVU4774
13631 0038 638D ldrh r3, [r4, #42]
13632 003a 9BB2 uxth r3, r3
5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13633 .loc 1 5434 8 view .LVU4775
13634 003c 002B cmp r3, #0
13635 003e 45D0 beq .L870
5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13636 .loc 1 5437 7 is_stmt 1 view .LVU4776
5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13637 .loc 1 5437 35 is_stmt 0 view .LVU4777
13638 0040 2368 ldr r3, [r4]
5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13639 .loc 1 5437 45 view .LVU4778
13640 0042 5968 ldr r1, [r3, #4]
13641 .LVL1009:
5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13642 .loc 1 5437 18 view .LVU4779
13643 0044 C1F30901 ubfx r1, r1, #0, #10
13644 .LVL1010:
5440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13645 .loc 1 5440 7 is_stmt 1 view .LVU4780
5440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13646 .loc 1 5440 15 is_stmt 0 view .LVU4781
13647 0048 638D ldrh r3, [r4, #42]
ARM GAS /tmp/ccN54YTb.s page 452
13648 004a 9BB2 uxth r3, r3
5440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13649 .loc 1 5440 10 view .LVU4782
13650 004c FF2B cmp r3, #255
13651 004e 2CD9 bls .L871
5442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
13652 .loc 1 5442 9 is_stmt 1 view .LVU4783
5442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
13653 .loc 1 5442 24 is_stmt 0 view .LVU4784
13654 0050 FF23 movs r3, #255
13655 0052 2385 strh r3, [r4, #40] @ movhi
5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13656 .loc 1 5443 9 is_stmt 1 view .LVU4785
13657 .LVL1011:
5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13658 .loc 1 5443 18 is_stmt 0 view .LVU4786
13659 0054 4FF08073 mov r3, #16777216
13660 .LVL1012:
13661 .L872:
5459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13662 .loc 1 5459 7 is_stmt 1 view .LVU4787
13663 0058 0022 movs r2, #0
13664 005a 0092 str r2, [sp]
13665 005c 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
13666 0060 2046 mov r0, r4
13667 .LVL1013:
5459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13668 .loc 1 5459 7 is_stmt 0 view .LVU4788
13669 0062 FFF7FEFF bl I2C_TransferConfig
13670 .LVL1014:
5462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13671 .loc 1 5462 7 is_stmt 1 view .LVU4789
5462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13672 .loc 1 5462 11 is_stmt 0 view .LVU4790
13673 0066 638D ldrh r3, [r4, #42]
13674 0068 9BB2 uxth r3, r3
5462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13675 .loc 1 5462 30 view .LVU4791
13676 006a 228D ldrh r2, [r4, #40]
5462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13677 .loc 1 5462 23 view .LVU4792
13678 006c 9B1A subs r3, r3, r2
13679 006e 9BB2 uxth r3, r3
13680 0070 6385 strh r3, [r4, #42] @ movhi
5465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13681 .loc 1 5465 7 is_stmt 1 view .LVU4793
5465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13682 .loc 1 5465 15 is_stmt 0 view .LVU4794
13683 0072 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13684 .loc 1 5465 10 view .LVU4795
13685 0076 222B cmp r3, #34
13686 0078 22D0 beq .L885
5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13687 .loc 1 5471 9 is_stmt 1 view .LVU4796
5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13688 .loc 1 5471 13 is_stmt 0 view .LVU4797
ARM GAS /tmp/ccN54YTb.s page 453
13689 007a 2268 ldr r2, [r4]
5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13690 .loc 1 5471 23 view .LVU4798
13691 007c 1368 ldr r3, [r2]
5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13692 .loc 1 5471 29 view .LVU4799
13693 007e 43F48043 orr r3, r3, #16384
13694 0082 1360 str r3, [r2]
13695 0084 0CE0 b .L868
13696 .LVL1015:
13697 .L884:
5415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13698 .loc 1 5415 5 is_stmt 1 view .LVU4800
13699 0086 0368 ldr r3, [r0]
13700 0088 1022 movs r2, #16
13701 .LVL1016:
5415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13702 .loc 1 5415 5 is_stmt 0 view .LVU4801
13703 008a DA61 str r2, [r3, #28]
5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13704 .loc 1 5418 5 is_stmt 1 view .LVU4802
5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13705 .loc 1 5418 9 is_stmt 0 view .LVU4803
13706 008c 436C ldr r3, [r0, #68]
5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13707 .loc 1 5418 21 view .LVU4804
13708 008e 43F00403 orr r3, r3, #4
13709 0092 4364 str r3, [r0, #68]
5423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13710 .loc 1 5423 5 is_stmt 1 view .LVU4805
13711 0094 2021 movs r1, #32
13712 .LVL1017:
5423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13713 .loc 1 5423 5 is_stmt 0 view .LVU4806
13714 0096 FFF7FEFF bl I2C_Enable_IRQ
13715 .LVL1018:
5426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13716 .loc 1 5426 5 is_stmt 1 view .LVU4807
13717 009a 2046 mov r0, r4
13718 009c FFF7FEFF bl I2C_Flush_TXDR
13719 .LVL1019:
13720 .L868:
5526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13721 .loc 1 5526 3 view .LVU4808
5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13722 .loc 1 5529 3 view .LVU4809
5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13723 .loc 1 5529 3 view .LVU4810
13724 00a0 0020 movs r0, #0
13725 00a2 84F84000 strb r0, [r4, #64]
5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13726 .loc 1 5529 3 view .LVU4811
5531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13727 .loc 1 5531 3 view .LVU4812
5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13728 .loc 1 5532 1 is_stmt 0 view .LVU4813
13729 00a6 02B0 add sp, sp, #8
ARM GAS /tmp/ccN54YTb.s page 454
13730 .cfi_remember_state
13731 .cfi_def_cfa_offset 8
13732 @ sp needed
13733 00a8 10BD pop {r4, pc}
13734 .LVL1020:
13735 .L871:
13736 .cfi_restore_state
5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
13737 .loc 1 5447 9 is_stmt 1 view .LVU4814
5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
13738 .loc 1 5447 30 is_stmt 0 view .LVU4815
13739 00aa 638D ldrh r3, [r4, #42]
5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
13740 .loc 1 5447 24 view .LVU4816
13741 00ac 2385 strh r3, [r4, #40] @ movhi
5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13742 .loc 1 5448 9 is_stmt 1 view .LVU4817
5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13743 .loc 1 5448 17 is_stmt 0 view .LVU4818
13744 00ae E36A ldr r3, [r4, #44]
5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13745 .loc 1 5448 12 view .LVU4819
13746 00b0 13F5803F cmn r3, #65536
13747 00b4 01D0 beq .L879
5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13748 .loc 1 5450 11 is_stmt 1 view .LVU4820
5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13749 .loc 1 5450 20 is_stmt 0 view .LVU4821
13750 00b6 E36A ldr r3, [r4, #44]
13751 .LVL1021:
5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13752 .loc 1 5450 20 view .LVU4822
13753 00b8 CEE7 b .L872
13754 .LVL1022:
13755 .L879:
5454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13756 .loc 1 5454 20 view .LVU4823
13757 00ba 4FF00073 mov r3, #33554432
13758 00be CBE7 b .L872
13759 .LVL1023:
13760 .L885:
5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13761 .loc 1 5467 9 is_stmt 1 view .LVU4824
5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13762 .loc 1 5467 13 is_stmt 0 view .LVU4825
13763 00c0 2268 ldr r2, [r4]
5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13764 .loc 1 5467 23 view .LVU4826
13765 00c2 1368 ldr r3, [r2]
5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13766 .loc 1 5467 29 view .LVU4827
13767 00c4 43F40043 orr r3, r3, #32768
13768 00c8 1360 str r3, [r2]
13769 00ca E9E7 b .L868
13770 .LVL1024:
13771 .L870:
5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 455
13772 .loc 1 5477 7 is_stmt 1 view .LVU4828
5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13773 .loc 1 5477 11 is_stmt 0 view .LVU4829
13774 00cc 2368 ldr r3, [r4]
13775 00ce 5B68 ldr r3, [r3, #4]
5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13776 .loc 1 5477 10 view .LVU4830
13777 00d0 13F0007F tst r3, #33554432
13778 00d4 03D1 bne .L874
5480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13779 .loc 1 5480 9 is_stmt 1 view .LVU4831
13780 00d6 2046 mov r0, r4
13781 .LVL1025:
5480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13782 .loc 1 5480 9 is_stmt 0 view .LVU4832
13783 00d8 FFF7FEFF bl I2C_ITMasterSeqCplt
13784 .LVL1026:
5480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13785 .loc 1 5480 9 view .LVU4833
13786 00dc E0E7 b .L868
13787 .LVL1027:
13788 .L874:
5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13789 .loc 1 5486 9 is_stmt 1 view .LVU4834
13790 00de 4021 movs r1, #64
13791 .LVL1028:
5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13792 .loc 1 5486 9 is_stmt 0 view .LVU4835
13793 00e0 2046 mov r0, r4
13794 .LVL1029:
5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13795 .loc 1 5486 9 view .LVU4836
13796 00e2 FFF7FEFF bl I2C_ITError
13797 .LVL1030:
13798 00e6 DBE7 b .L868
13799 .LVL1031:
13800 .L869:
5490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13801 .loc 1 5490 8 is_stmt 1 view .LVU4837
5490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13802 .loc 1 5490 11 is_stmt 0 view .LVU4838
13803 00e8 11F0400F tst r1, #64
13804 00ec 1CD0 beq .L875
5490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13805 .loc 1 5490 60 discriminator 1 view .LVU4839
13806 00ee 12F0400F tst r2, #64
13807 00f2 19D0 beq .L875
5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13808 .loc 1 5493 5 is_stmt 1 view .LVU4840
5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13809 .loc 1 5493 13 is_stmt 0 view .LVU4841
13810 00f4 638D ldrh r3, [r4, #42]
13811 00f6 9BB2 uxth r3, r3
5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13812 .loc 1 5493 8 view .LVU4842
13813 00f8 8BB9 cbnz r3, .L876
5495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccN54YTb.s page 456
13814 .loc 1 5495 7 is_stmt 1 view .LVU4843
5495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13815 .loc 1 5495 11 is_stmt 0 view .LVU4844
13816 00fa 2368 ldr r3, [r4]
13817 00fc 5A68 ldr r2, [r3, #4]
13818 .LVL1032:
5495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13819 .loc 1 5495 10 view .LVU4845
13820 00fe 12F0007F tst r2, #33554432
13821 0102 CDD1 bne .L868
5498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13822 .loc 1 5498 9 is_stmt 1 view .LVU4846
5498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13823 .loc 1 5498 17 is_stmt 0 view .LVU4847
13824 0104 E26A ldr r2, [r4, #44]
5498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13825 .loc 1 5498 12 view .LVU4848
13826 0106 12F5803F cmn r2, #65536
13827 010a 04D1 bne .L877
5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13828 .loc 1 5501 11 is_stmt 1 view .LVU4849
5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13829 .loc 1 5501 25 is_stmt 0 view .LVU4850
13830 010c 5A68 ldr r2, [r3, #4]
5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13831 .loc 1 5501 31 view .LVU4851
13832 010e 42F48042 orr r2, r2, #16384
13833 0112 5A60 str r2, [r3, #4]
13834 0114 C4E7 b .L868
13835 .L877:
5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13836 .loc 1 5506 11 is_stmt 1 view .LVU4852
13837 0116 2046 mov r0, r4
13838 .LVL1033:
5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13839 .loc 1 5506 11 is_stmt 0 view .LVU4853
13840 0118 FFF7FEFF bl I2C_ITMasterSeqCplt
13841 .LVL1034:
5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13842 .loc 1 5506 11 view .LVU4854
13843 011c C0E7 b .L868
13844 .LVL1035:
13845 .L876:
5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13846 .loc 1 5514 7 is_stmt 1 view .LVU4855
13847 011e 4021 movs r1, #64
13848 .LVL1036:
5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13849 .loc 1 5514 7 is_stmt 0 view .LVU4856
13850 0120 2046 mov r0, r4
13851 .LVL1037:
5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13852 .loc 1 5514 7 view .LVU4857
13853 0122 FFF7FEFF bl I2C_ITError
13854 .LVL1038:
5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13855 .loc 1 5514 7 view .LVU4858
ARM GAS /tmp/ccN54YTb.s page 457
13856 0126 BBE7 b .L868
13857 .LVL1039:
13858 .L875:
5517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13859 .loc 1 5517 8 is_stmt 1 view .LVU4859
5517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13860 .loc 1 5517 11 is_stmt 0 view .LVU4860
13861 0128 11F0200F tst r1, #32
13862 012c B8D0 beq .L868
5517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13863 .loc 1 5517 63 discriminator 1 view .LVU4861
13864 012e 12F0200F tst r2, #32
13865 0132 B5D0 beq .L868
5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13866 .loc 1 5521 5 is_stmt 1 view .LVU4862
13867 0134 2046 mov r0, r4
13868 .LVL1040:
5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13869 .loc 1 5521 5 is_stmt 0 view .LVU4863
13870 0136 FFF7FEFF bl I2C_ITMasterCplt
13871 .LVL1041:
5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13872 .loc 1 5521 5 view .LVU4864
13873 013a B1E7 b .L868
13874 .LVL1042:
13875 .L878:
13876 .cfi_def_cfa_offset 0
13877 .cfi_restore 4
13878 .cfi_restore 14
5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13879 .loc 1 5409 3 discriminator 1 view .LVU4865
13880 013c 0220 movs r0, #2
13881 .LVL1043:
5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13882 .loc 1 5532 1 view .LVU4866
13883 013e 7047 bx lr
13884 .cfi_endproc
13885 .LFE387:
13887 .section .text.I2C_DMAError,"ax",%progbits
13888 .align 1
13889 .syntax unified
13890 .thumb
13891 .thumb_func
13893 I2C_DMAError:
13894 .LVL1044:
13895 .LFB405:
6921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U;
13896 .loc 1 6921 1 is_stmt 1 view -0
13897 .cfi_startproc
13898 @ args = 0, pretend = 0, frame = 0
13899 @ frame_needed = 0, uses_anonymous_args = 0
6921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U;
13900 .loc 1 6921 1 is_stmt 0 view .LVU4868
13901 0000 38B5 push {r3, r4, r5, lr}
13902 .cfi_def_cfa_offset 16
13903 .cfi_offset 3, -16
13904 .cfi_offset 4, -12
ARM GAS /tmp/ccN54YTb.s page 458
13905 .cfi_offset 5, -8
13906 .cfi_offset 14, -4
6922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
13907 .loc 1 6922 3 is_stmt 1 view .LVU4869
13908 .LVL1045:
6924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13909 .loc 1 6924 3 view .LVU4870
6924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13910 .loc 1 6924 22 is_stmt 0 view .LVU4871
13911 0002 846B ldr r4, [r0, #56]
13912 .LVL1046:
6926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13913 .loc 1 6926 3 is_stmt 1 view .LVU4872
6926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13914 .loc 1 6926 11 is_stmt 0 view .LVU4873
13915 0004 A36B ldr r3, [r4, #56]
6926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13916 .loc 1 6926 6 view .LVU4874
13917 0006 002B cmp r3, #0
13918 0008 77D0 beq .L896
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13919 .loc 1 6928 5 is_stmt 1 view .LVU4875
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13920 .loc 1 6928 9 is_stmt 0 view .LVU4876
13921 000a 1B68 ldr r3, [r3]
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13922 .loc 1 6928 47 view .LVU4877
13923 000c 4849 ldr r1, .L901
13924 000e 494A ldr r2, .L901+4
13925 0010 9342 cmp r3, r2
13926 0012 18BF it ne
13927 0014 8B42 cmpne r3, r1
13928 0016 2FD0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13929 .loc 1 6928 9 discriminator 2 view .LVU4878
13930 0018 1832 adds r2, r2, #24
13931 001a 9342 cmp r3, r2
13932 001c 2CD0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13933 .loc 1 6928 9 discriminator 4 view .LVU4879
13934 001e 1832 adds r2, r2, #24
13935 0020 9342 cmp r3, r2
13936 0022 29D0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13937 .loc 1 6928 9 discriminator 6 view .LVU4880
13938 0024 1832 adds r2, r2, #24
13939 0026 9342 cmp r3, r2
13940 0028 26D0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13941 .loc 1 6928 9 discriminator 8 view .LVU4881
13942 002a 1832 adds r2, r2, #24
13943 002c 9342 cmp r3, r2
13944 002e 23D0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13945 .loc 1 6928 9 discriminator 10 view .LVU4882
13946 0030 1832 adds r2, r2, #24
13947 0032 9342 cmp r3, r2
ARM GAS /tmp/ccN54YTb.s page 459
13948 0034 20D0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13949 .loc 1 6928 9 discriminator 12 view .LVU4883
13950 0036 1832 adds r2, r2, #24
13951 0038 9342 cmp r3, r2
13952 003a 1DD0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13953 .loc 1 6928 9 discriminator 14 view .LVU4884
13954 003c 02F55672 add r2, r2, #856
13955 0040 9342 cmp r3, r2
13956 0042 19D0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13957 .loc 1 6928 9 discriminator 16 view .LVU4885
13958 0044 1832 adds r2, r2, #24
13959 0046 9342 cmp r3, r2
13960 0048 16D0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13961 .loc 1 6928 9 discriminator 18 view .LVU4886
13962 004a 1832 adds r2, r2, #24
13963 004c 9342 cmp r3, r2
13964 004e 13D0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13965 .loc 1 6928 9 discriminator 20 view .LVU4887
13966 0050 1832 adds r2, r2, #24
13967 0052 9342 cmp r3, r2
13968 0054 10D0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13969 .loc 1 6928 9 discriminator 22 view .LVU4888
13970 0056 1832 adds r2, r2, #24
13971 0058 9342 cmp r3, r2
13972 005a 0DD0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13973 .loc 1 6928 9 discriminator 24 view .LVU4889
13974 005c 1832 adds r2, r2, #24
13975 005e 9342 cmp r3, r2
13976 0060 0AD0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13977 .loc 1 6928 9 discriminator 26 view .LVU4890
13978 0062 1832 adds r2, r2, #24
13979 0064 9342 cmp r3, r2
13980 0066 07D0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13981 .loc 1 6928 9 discriminator 28 view .LVU4891
13982 0068 1832 adds r2, r2, #24
13983 006a 9342 cmp r3, r2
13984 006c 04D0 beq .L888
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13985 .loc 1 6928 9 discriminator 30 view .LVU4892
13986 006e 5B68 ldr r3, [r3, #4]
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13987 .loc 1 6928 47 discriminator 30 view .LVU4893
13988 0070 B3FA83F3 clz r3, r3
13989 0074 5B09 lsrs r3, r3, #5
13990 0076 03E0 b .L890
13991 .L888:
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13992 .loc 1 6928 9 discriminator 29 view .LVU4894
ARM GAS /tmp/ccN54YTb.s page 460
13993 0078 5B68 ldr r3, [r3, #4]
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13994 .loc 1 6928 47 discriminator 29 view .LVU4895
13995 007a B3FA83F3 clz r3, r3
13996 007e 5B09 lsrs r3, r3, #5
13997 .L890:
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13998 .loc 1 6928 8 discriminator 32 view .LVU4896
13999 0080 002B cmp r3, #0
14000 0082 3CD1 bne .L897
6922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14001 .loc 1 6922 12 view .LVU4897
14002 0084 0025 movs r5, #0
14003 .L887:
14004 .LVL1047:
6934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14005 .loc 1 6934 3 is_stmt 1 view .LVU4898
6934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14006 .loc 1 6934 11 is_stmt 0 view .LVU4899
14007 0086 E36B ldr r3, [r4, #60]
6934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14008 .loc 1 6934 6 view .LVU4900
14009 0088 002B cmp r3, #0
14010 008a 40D0 beq .L891
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14011 .loc 1 6936 5 is_stmt 1 view .LVU4901
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14012 .loc 1 6936 9 is_stmt 0 view .LVU4902
14013 008c 1B68 ldr r3, [r3]
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14014 .loc 1 6936 47 view .LVU4903
14015 008e 2849 ldr r1, .L901
14016 0090 284A ldr r2, .L901+4
14017 0092 9342 cmp r3, r2
14018 0094 18BF it ne
14019 0096 8B42 cmpne r3, r1
14020 0098 33D0 beq .L892
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14021 .loc 1 6936 9 discriminator 2 view .LVU4904
14022 009a 1832 adds r2, r2, #24
14023 009c 9342 cmp r3, r2
14024 009e 30D0 beq .L892
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14025 .loc 1 6936 9 discriminator 4 view .LVU4905
14026 00a0 1832 adds r2, r2, #24
14027 00a2 9342 cmp r3, r2
14028 00a4 2DD0 beq .L892
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14029 .loc 1 6936 9 discriminator 6 view .LVU4906
14030 00a6 1832 adds r2, r2, #24
14031 00a8 9342 cmp r3, r2
14032 00aa 2AD0 beq .L892
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14033 .loc 1 6936 9 discriminator 8 view .LVU4907
14034 00ac 1832 adds r2, r2, #24
14035 00ae 9342 cmp r3, r2
14036 00b0 27D0 beq .L892
ARM GAS /tmp/ccN54YTb.s page 461
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14037 .loc 1 6936 9 discriminator 10 view .LVU4908
14038 00b2 1832 adds r2, r2, #24
14039 00b4 9342 cmp r3, r2
14040 00b6 24D0 beq .L892
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14041 .loc 1 6936 9 discriminator 12 view .LVU4909
14042 00b8 1832 adds r2, r2, #24
14043 00ba 9342 cmp r3, r2
14044 00bc 21D0 beq .L892
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14045 .loc 1 6936 9 discriminator 14 view .LVU4910
14046 00be 02F55672 add r2, r2, #856
14047 00c2 9342 cmp r3, r2
14048 00c4 1DD0 beq .L892
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14049 .loc 1 6936 9 discriminator 16 view .LVU4911
14050 00c6 1832 adds r2, r2, #24
14051 00c8 9342 cmp r3, r2
14052 00ca 1AD0 beq .L892
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14053 .loc 1 6936 9 discriminator 18 view .LVU4912
14054 00cc 1832 adds r2, r2, #24
14055 00ce 9342 cmp r3, r2
14056 00d0 17D0 beq .L892
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14057 .loc 1 6936 9 discriminator 20 view .LVU4913
14058 00d2 1832 adds r2, r2, #24
14059 00d4 9342 cmp r3, r2
14060 00d6 14D0 beq .L892
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14061 .loc 1 6936 9 discriminator 22 view .LVU4914
14062 00d8 1832 adds r2, r2, #24
14063 00da 9342 cmp r3, r2
14064 00dc 11D0 beq .L892
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14065 .loc 1 6936 9 discriminator 24 view .LVU4915
14066 00de 1832 adds r2, r2, #24
14067 00e0 9342 cmp r3, r2
14068 00e2 0ED0 beq .L892
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14069 .loc 1 6936 9 discriminator 26 view .LVU4916
14070 00e4 1832 adds r2, r2, #24
14071 00e6 9342 cmp r3, r2
14072 00e8 0BD0 beq .L892
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14073 .loc 1 6936 9 discriminator 28 view .LVU4917
14074 00ea 1832 adds r2, r2, #24
14075 00ec 9342 cmp r3, r2
14076 00ee 08D0 beq .L892
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14077 .loc 1 6936 9 discriminator 30 view .LVU4918
14078 00f0 5B68 ldr r3, [r3, #4]
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14079 .loc 1 6936 47 discriminator 30 view .LVU4919
14080 00f2 B3FA83F3 clz r3, r3
14081 00f6 5B09 lsrs r3, r3, #5
ARM GAS /tmp/ccN54YTb.s page 462
14082 00f8 07E0 b .L894
14083 .LVL1048:
14084 .L896:
6922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14085 .loc 1 6922 12 view .LVU4920
14086 00fa 0025 movs r5, #0
14087 00fc C3E7 b .L887
14088 .L897:
6930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14089 .loc 1 6930 21 view .LVU4921
14090 00fe 0125 movs r5, #1
14091 0100 C1E7 b .L887
14092 .LVL1049:
14093 .L892:
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14094 .loc 1 6936 9 discriminator 29 view .LVU4922
14095 0102 5B68 ldr r3, [r3, #4]
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14096 .loc 1 6936 47 discriminator 29 view .LVU4923
14097 0104 B3FA83F3 clz r3, r3
14098 0108 5B09 lsrs r3, r3, #5
14099 .L894:
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14100 .loc 1 6936 8 discriminator 32 view .LVU4924
14101 010a 03B1 cbz r3, .L891
6938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14102 .loc 1 6938 21 view .LVU4925
14103 010c 0125 movs r5, #1
14104 .LVL1050:
14105 .L891:
6943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14106 .loc 1 6943 3 is_stmt 1 view .LVU4926
6943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14107 .loc 1 6943 10 is_stmt 0 view .LVU4927
14108 010e FFF7FEFF bl HAL_DMA_GetError
14109 .LVL1051:
6943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14110 .loc 1 6943 6 discriminator 1 view .LVU4928
14111 0112 0228 cmp r0, #2
14112 0114 00D0 beq .L886
6943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14113 .loc 1 6943 55 discriminator 1 view .LVU4929
14114 0116 05B9 cbnz r5, .L900
14115 .L886:
6951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14116 .loc 1 6951 1 view .LVU4930
14117 0118 38BD pop {r3, r4, r5, pc}
14118 .LVL1052:
14119 .L900:
6946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14120 .loc 1 6946 5 is_stmt 1 view .LVU4931
6946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14121 .loc 1 6946 9 is_stmt 0 view .LVU4932
14122 011a 2268 ldr r2, [r4]
6946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14123 .loc 1 6946 19 view .LVU4933
14124 011c 5368 ldr r3, [r2, #4]
ARM GAS /tmp/ccN54YTb.s page 463
6946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14125 .loc 1 6946 25 view .LVU4934
14126 011e 43F40043 orr r3, r3, #32768
14127 0122 5360 str r3, [r2, #4]
6949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14128 .loc 1 6949 5 is_stmt 1 view .LVU4935
14129 0124 1021 movs r1, #16
14130 0126 2046 mov r0, r4
14131 0128 FFF7FEFF bl I2C_ITError
14132 .LVL1053:
6951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14133 .loc 1 6951 1 is_stmt 0 view .LVU4936
14134 012c F4E7 b .L886
14135 .L902:
14136 012e 00BF .align 2
14137 .L901:
14138 0130 10000240 .word 1073872912
14139 0134 28000240 .word 1073872936
14140 .cfi_endproc
14141 .LFE405:
14143 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits
14144 .align 1
14145 .syntax unified
14146 .thumb
14147 .thumb_func
14149 I2C_DMAMasterTransmitCplt:
14150 .LVL1054:
14151 .LFB401:
6761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14152 .loc 1 6761 1 is_stmt 1 view -0
14153 .cfi_startproc
14154 @ args = 0, pretend = 0, frame = 0
14155 @ frame_needed = 0, uses_anonymous_args = 0
6761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14156 .loc 1 6761 1 is_stmt 0 view .LVU4938
14157 0000 10B5 push {r4, lr}
14158 .cfi_def_cfa_offset 8
14159 .cfi_offset 4, -8
14160 .cfi_offset 14, -4
6763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14161 .loc 1 6763 3 is_stmt 1 view .LVU4939
6763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14162 .loc 1 6763 22 is_stmt 0 view .LVU4940
14163 0002 846B ldr r4, [r0, #56]
14164 .LVL1055:
6766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14165 .loc 1 6766 3 is_stmt 1 view .LVU4941
6766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14166 .loc 1 6766 7 is_stmt 0 view .LVU4942
14167 0004 2268 ldr r2, [r4]
6766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14168 .loc 1 6766 17 view .LVU4943
14169 0006 1368 ldr r3, [r2]
6766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14170 .loc 1 6766 23 view .LVU4944
14171 0008 23F48043 bic r3, r3, #16384
14172 000c 1360 str r3, [r2]
ARM GAS /tmp/ccN54YTb.s page 464
6769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14173 .loc 1 6769 3 is_stmt 1 view .LVU4945
6769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14174 .loc 1 6769 11 is_stmt 0 view .LVU4946
14175 000e 638D ldrh r3, [r4, #42]
14176 0010 9BB2 uxth r3, r3
6769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14177 .loc 1 6769 6 view .LVU4947
14178 0012 ABB1 cbz r3, .L910
6778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14179 .loc 1 6778 5 is_stmt 1 view .LVU4948
6778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14180 .loc 1 6778 9 is_stmt 0 view .LVU4949
14181 0014 616A ldr r1, [r4, #36]
6778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14182 .loc 1 6778 27 view .LVU4950
14183 0016 238D ldrh r3, [r4, #40]
6778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14184 .loc 1 6778 20 view .LVU4951
14185 0018 1944 add r1, r1, r3
14186 001a 6162 str r1, [r4, #36]
6781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14187 .loc 1 6781 5 is_stmt 1 view .LVU4952
6781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14188 .loc 1 6781 13 is_stmt 0 view .LVU4953
14189 001c 638D ldrh r3, [r4, #42]
14190 001e 9BB2 uxth r3, r3
6781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14191 .loc 1 6781 8 view .LVU4954
14192 0020 FF2B cmp r3, #255
14193 0022 12D9 bls .L906
6783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14194 .loc 1 6783 7 is_stmt 1 view .LVU4955
6783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14195 .loc 1 6783 22 is_stmt 0 view .LVU4956
14196 0024 FF23 movs r3, #255
14197 0026 2385 strh r3, [r4, #40] @ movhi
14198 .L907:
6791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14199 .loc 1 6791 5 is_stmt 1 view .LVU4957
6791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14200 .loc 1 6791 81 is_stmt 0 view .LVU4958
14201 0028 2268 ldr r2, [r4]
6791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14202 .loc 1 6791 9 view .LVU4959
14203 002a 238D ldrh r3, [r4, #40]
14204 002c 2832 adds r2, r2, #40
14205 002e A06B ldr r0, [r4, #56]
14206 .LVL1056:
6791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14207 .loc 1 6791 9 view .LVU4960
14208 0030 FFF7FEFF bl HAL_DMA_Start_IT
14209 .LVL1057:
6791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14210 .loc 1 6791 8 discriminator 1 view .LVU4961
14211 0034 60B1 cbz r0, .L908
6795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 465
14212 .loc 1 6795 7 is_stmt 1 view .LVU4962
14213 0036 1021 movs r1, #16
14214 0038 2046 mov r0, r4
14215 003a FFF7FEFF bl I2C_ITError
14216 .LVL1058:
14217 .L903:
6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14218 .loc 1 6803 1 is_stmt 0 view .LVU4963
14219 003e 10BD pop {r4, pc}
14220 .LVL1059:
14221 .L910:
6772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14222 .loc 1 6772 5 is_stmt 1 view .LVU4964
14223 0040 2021 movs r1, #32
14224 0042 2046 mov r0, r4
14225 .LVL1060:
6772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14226 .loc 1 6772 5 is_stmt 0 view .LVU4965
14227 0044 FFF7FEFF bl I2C_Enable_IRQ
14228 .LVL1061:
14229 0048 F9E7 b .L903
14230 .LVL1062:
14231 .L906:
6787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14232 .loc 1 6787 7 is_stmt 1 view .LVU4966
6787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14233 .loc 1 6787 28 is_stmt 0 view .LVU4967
14234 004a 638D ldrh r3, [r4, #42]
6787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14235 .loc 1 6787 22 view .LVU4968
14236 004c 2385 strh r3, [r4, #40] @ movhi
14237 004e EBE7 b .L907
14238 .LVL1063:
14239 .L908:
6800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14240 .loc 1 6800 7 is_stmt 1 view .LVU4969
14241 0050 4021 movs r1, #64
14242 0052 2046 mov r0, r4
14243 0054 FFF7FEFF bl I2C_Enable_IRQ
14244 .LVL1064:
6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14245 .loc 1 6803 1 is_stmt 0 view .LVU4970
14246 0058 F1E7 b .L903
14247 .cfi_endproc
14248 .LFE401:
14250 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits
14251 .align 1
14252 .syntax unified
14253 .thumb
14254 .thumb_func
14256 I2C_DMAMasterReceiveCplt:
14257 .LVL1065:
14258 .LFB403:
6841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14259 .loc 1 6841 1 is_stmt 1 view -0
14260 .cfi_startproc
14261 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/ccN54YTb.s page 466
14262 @ frame_needed = 0, uses_anonymous_args = 0
6841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14263 .loc 1 6841 1 is_stmt 0 view .LVU4972
14264 0000 10B5 push {r4, lr}
14265 .cfi_def_cfa_offset 8
14266 .cfi_offset 4, -8
14267 .cfi_offset 14, -4
6843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14268 .loc 1 6843 3 is_stmt 1 view .LVU4973
6843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14269 .loc 1 6843 22 is_stmt 0 view .LVU4974
14270 0002 846B ldr r4, [r0, #56]
14271 .LVL1066:
6846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14272 .loc 1 6846 3 is_stmt 1 view .LVU4975
6846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14273 .loc 1 6846 7 is_stmt 0 view .LVU4976
14274 0004 2268 ldr r2, [r4]
6846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14275 .loc 1 6846 17 view .LVU4977
14276 0006 1368 ldr r3, [r2]
6846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14277 .loc 1 6846 23 view .LVU4978
14278 0008 23F40043 bic r3, r3, #32768
14279 000c 1360 str r3, [r2]
6849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14280 .loc 1 6849 3 is_stmt 1 view .LVU4979
6849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14281 .loc 1 6849 11 is_stmt 0 view .LVU4980
14282 000e 638D ldrh r3, [r4, #42]
14283 0010 9BB2 uxth r3, r3
6849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14284 .loc 1 6849 6 view .LVU4981
14285 0012 ABB1 cbz r3, .L918
6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14286 .loc 1 6858 5 is_stmt 1 view .LVU4982
6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14287 .loc 1 6858 9 is_stmt 0 view .LVU4983
14288 0014 626A ldr r2, [r4, #36]
6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14289 .loc 1 6858 27 view .LVU4984
14290 0016 238D ldrh r3, [r4, #40]
6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14291 .loc 1 6858 20 view .LVU4985
14292 0018 1A44 add r2, r2, r3
14293 001a 6262 str r2, [r4, #36]
6861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14294 .loc 1 6861 5 is_stmt 1 view .LVU4986
6861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14295 .loc 1 6861 13 is_stmt 0 view .LVU4987
14296 001c 638D ldrh r3, [r4, #42]
14297 001e 9BB2 uxth r3, r3
6861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14298 .loc 1 6861 8 view .LVU4988
14299 0020 FF2B cmp r3, #255
14300 0022 12D9 bls .L914
6863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccN54YTb.s page 467
14301 .loc 1 6863 7 is_stmt 1 view .LVU4989
6863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14302 .loc 1 6863 22 is_stmt 0 view .LVU4990
14303 0024 FF23 movs r3, #255
14304 0026 2385 strh r3, [r4, #40] @ movhi
14305 .L915:
6871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14306 .loc 1 6871 5 is_stmt 1 view .LVU4991
6871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14307 .loc 1 6871 55 is_stmt 0 view .LVU4992
14308 0028 2168 ldr r1, [r4]
6871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14309 .loc 1 6871 9 view .LVU4993
14310 002a 238D ldrh r3, [r4, #40]
14311 002c 2431 adds r1, r1, #36
14312 002e E06B ldr r0, [r4, #60]
14313 .LVL1067:
6871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14314 .loc 1 6871 9 view .LVU4994
14315 0030 FFF7FEFF bl HAL_DMA_Start_IT
14316 .LVL1068:
6871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14317 .loc 1 6871 8 discriminator 1 view .LVU4995
14318 0034 60B1 cbz r0, .L916
6875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14319 .loc 1 6875 7 is_stmt 1 view .LVU4996
14320 0036 1021 movs r1, #16
14321 0038 2046 mov r0, r4
14322 003a FFF7FEFF bl I2C_ITError
14323 .LVL1069:
14324 .L911:
6883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14325 .loc 1 6883 1 is_stmt 0 view .LVU4997
14326 003e 10BD pop {r4, pc}
14327 .LVL1070:
14328 .L918:
6852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14329 .loc 1 6852 5 is_stmt 1 view .LVU4998
14330 0040 2021 movs r1, #32
14331 0042 2046 mov r0, r4
14332 .LVL1071:
6852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14333 .loc 1 6852 5 is_stmt 0 view .LVU4999
14334 0044 FFF7FEFF bl I2C_Enable_IRQ
14335 .LVL1072:
14336 0048 F9E7 b .L911
14337 .LVL1073:
14338 .L914:
6867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14339 .loc 1 6867 7 is_stmt 1 view .LVU5000
6867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14340 .loc 1 6867 28 is_stmt 0 view .LVU5001
14341 004a 638D ldrh r3, [r4, #42]
6867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14342 .loc 1 6867 22 view .LVU5002
14343 004c 2385 strh r3, [r4, #40] @ movhi
14344 004e EBE7 b .L915
ARM GAS /tmp/ccN54YTb.s page 468
14345 .LVL1074:
14346 .L916:
6880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14347 .loc 1 6880 7 is_stmt 1 view .LVU5003
14348 0050 4021 movs r1, #64
14349 0052 2046 mov r0, r4
14350 0054 FFF7FEFF bl I2C_Enable_IRQ
14351 .LVL1075:
6883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14352 .loc 1 6883 1 is_stmt 0 view .LVU5004
14353 0058 F1E7 b .L911
14354 .cfi_endproc
14355 .LFE403:
14357 .section .text.I2C_Mem_ISR_IT,"ax",%progbits
14358 .align 1
14359 .syntax unified
14360 .thumb
14361 .thumb_func
14363 I2C_Mem_ISR_IT:
14364 .LVL1076:
14365 .LFB385:
5121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
14366 .loc 1 5121 1 is_stmt 1 view -0
14367 .cfi_startproc
14368 @ args = 0, pretend = 0, frame = 0
14369 @ frame_needed = 0, uses_anonymous_args = 0
5122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
14370 .loc 1 5122 3 view .LVU5006
5123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14371 .loc 1 5123 3 view .LVU5007
5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14372 .loc 1 5126 3 view .LVU5008
5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14373 .loc 1 5126 3 view .LVU5009
14374 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
14375 0004 012B cmp r3, #1
14376 0006 00F0C080 beq .L932
5121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
14377 .loc 1 5121 1 is_stmt 0 view .LVU5010
14378 000a 70B5 push {r4, r5, r6, lr}
14379 .cfi_def_cfa_offset 16
14380 .cfi_offset 4, -16
14381 .cfi_offset 5, -12
14382 .cfi_offset 6, -8
14383 .cfi_offset 14, -4
14384 000c 82B0 sub sp, sp, #8
14385 .cfi_def_cfa_offset 24
14386 000e 0446 mov r4, r0
14387 0010 0D46 mov r5, r1
14388 0012 1646 mov r6, r2
5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14389 .loc 1 5126 3 is_stmt 1 discriminator 2 view .LVU5011
14390 0014 0123 movs r3, #1
14391 0016 80F84030 strb r3, [r0, #64]
5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14392 .loc 1 5126 3 view .LVU5012
5128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
ARM GAS /tmp/ccN54YTb.s page 469
14393 .loc 1 5128 3 view .LVU5013
5128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
14394 .loc 1 5128 6 is_stmt 0 view .LVU5014
14395 001a 11F0100F tst r1, #16
14396 001e 02D0 beq .L921
5128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
14397 .loc 1 5128 58 discriminator 1 view .LVU5015
14398 0020 12F0100F tst r2, #16
14399 0024 22D1 bne .L938
14400 .L921:
5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
14401 .loc 1 5142 8 is_stmt 1 view .LVU5016
5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
14402 .loc 1 5142 11 is_stmt 0 view .LVU5017
14403 0026 15F0040F tst r5, #4
14404 002a 29D0 beq .L923
5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
14405 .loc 1 5142 65 discriminator 1 view .LVU5018
14406 002c 16F0040F tst r6, #4
14407 0030 26D0 beq .L923
5146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14408 .loc 1 5146 5 is_stmt 1 view .LVU5019
5146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14409 .loc 1 5146 16 is_stmt 0 view .LVU5020
14410 0032 25F00405 bic r5, r5, #4
14411 .LVL1077:
5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14412 .loc 1 5149 5 is_stmt 1 view .LVU5021
5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14413 .loc 1 5149 36 is_stmt 0 view .LVU5022
14414 0036 2368 ldr r3, [r4]
5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14415 .loc 1 5149 46 view .LVU5023
14416 0038 5A6A ldr r2, [r3, #36]
14417 .LVL1078:
5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14418 .loc 1 5149 10 view .LVU5024
14419 003a 636A ldr r3, [r4, #36]
5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14420 .loc 1 5149 21 view .LVU5025
14421 003c 1A70 strb r2, [r3]
5152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14422 .loc 1 5152 5 is_stmt 1 view .LVU5026
5152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14423 .loc 1 5152 9 is_stmt 0 view .LVU5027
14424 003e 636A ldr r3, [r4, #36]
5152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14425 .loc 1 5152 19 view .LVU5028
14426 0040 0133 adds r3, r3, #1
14427 0042 6362 str r3, [r4, #36]
5154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
14428 .loc 1 5154 5 is_stmt 1 view .LVU5029
5154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
14429 .loc 1 5154 9 is_stmt 0 view .LVU5030
14430 0044 238D ldrh r3, [r4, #40]
5154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
14431 .loc 1 5154 19 view .LVU5031
ARM GAS /tmp/ccN54YTb.s page 470
14432 0046 013B subs r3, r3, #1
14433 0048 2385 strh r3, [r4, #40] @ movhi
5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14434 .loc 1 5155 5 is_stmt 1 view .LVU5032
5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14435 .loc 1 5155 9 is_stmt 0 view .LVU5033
14436 004a 638D ldrh r3, [r4, #42]
14437 004c 9BB2 uxth r3, r3
5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14438 .loc 1 5155 20 view .LVU5034
14439 004e 013B subs r3, r3, #1
14440 0050 9BB2 uxth r3, r3
14441 0052 6385 strh r3, [r4, #42] @ movhi
14442 .LVL1079:
14443 .L922:
5239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14444 .loc 1 5239 3 is_stmt 1 view .LVU5035
5241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
14445 .loc 1 5241 3 view .LVU5036
5241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
14446 .loc 1 5241 6 is_stmt 0 view .LVU5037
14447 0054 15F0200F tst r5, #32
14448 0058 03D0 beq .L931
5241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
14449 .loc 1 5241 61 discriminator 1 view .LVU5038
14450 005a 16F0200F tst r6, #32
14451 005e 40F08F80 bne .L939
14452 .L931:
5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14453 .loc 1 5249 3 is_stmt 1 view .LVU5039
5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14454 .loc 1 5249 3 view .LVU5040
14455 0062 0020 movs r0, #0
14456 0064 84F84000 strb r0, [r4, #64]
5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14457 .loc 1 5249 3 view .LVU5041
5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14458 .loc 1 5251 3 view .LVU5042
5252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14459 .loc 1 5252 1 is_stmt 0 view .LVU5043
14460 0068 02B0 add sp, sp, #8
14461 .cfi_remember_state
14462 .cfi_def_cfa_offset 16
14463 @ sp needed
14464 006a 70BD pop {r4, r5, r6, pc}
14465 .LVL1080:
14466 .L938:
14467 .cfi_restore_state
5132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14468 .loc 1 5132 5 is_stmt 1 view .LVU5044
14469 006c 0368 ldr r3, [r0]
14470 006e 1022 movs r2, #16
14471 .LVL1081:
5132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14472 .loc 1 5132 5 is_stmt 0 view .LVU5045
14473 0070 DA61 str r2, [r3, #28]
5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccN54YTb.s page 471
14474 .loc 1 5137 5 is_stmt 1 view .LVU5046
5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14475 .loc 1 5137 9 is_stmt 0 view .LVU5047
14476 0072 436C ldr r3, [r0, #68]
5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14477 .loc 1 5137 21 view .LVU5048
14478 0074 43F00403 orr r3, r3, #4
14479 0078 4364 str r3, [r0, #68]
5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14480 .loc 1 5140 5 is_stmt 1 view .LVU5049
14481 007a FFF7FEFF bl I2C_Flush_TXDR
14482 .LVL1082:
5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14483 .loc 1 5140 5 is_stmt 0 view .LVU5050
14484 007e E9E7 b .L922
14485 .LVL1083:
14486 .L923:
5157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
14487 .loc 1 5157 8 is_stmt 1 view .LVU5051
5157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
14488 .loc 1 5157 11 is_stmt 0 view .LVU5052
14489 0080 15F0020F tst r5, #2
14490 0084 1DD0 beq .L924
5157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
14491 .loc 1 5157 65 discriminator 1 view .LVU5053
14492 0086 16F0020F tst r6, #2
14493 008a 1AD0 beq .L924
5160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14494 .loc 1 5160 5 is_stmt 1 view .LVU5054
5160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14495 .loc 1 5160 13 is_stmt 0 view .LVU5055
14496 008c 236D ldr r3, [r4, #80]
5160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14497 .loc 1 5160 8 view .LVU5056
14498 008e B3F1FF3F cmp r3, #-1
14499 0092 06D0 beq .L940
5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14500 .loc 1 5174 7 is_stmt 1 view .LVU5057
5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14501 .loc 1 5174 11 is_stmt 0 view .LVU5058
14502 0094 2368 ldr r3, [r4]
5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14503 .loc 1 5174 34 view .LVU5059
14504 0096 226D ldr r2, [r4, #80]
14505 .LVL1084:
5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14506 .loc 1 5174 28 view .LVU5060
14507 0098 9A62 str r2, [r3, #40]
5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14508 .loc 1 5177 7 is_stmt 1 view .LVU5061
5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14509 .loc 1 5177 24 is_stmt 0 view .LVU5062
14510 009a 4FF0FF33 mov r3, #-1
14511 009e 2365 str r3, [r4, #80]
14512 00a0 D8E7 b .L922
14513 .LVL1085:
14514 .L940:
ARM GAS /tmp/ccN54YTb.s page 472
5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14515 .loc 1 5163 7 is_stmt 1 view .LVU5063
5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14516 .loc 1 5163 35 is_stmt 0 view .LVU5064
14517 00a2 626A ldr r2, [r4, #36]
14518 .LVL1086:
5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14519 .loc 1 5163 11 view .LVU5065
14520 00a4 2368 ldr r3, [r4]
5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14521 .loc 1 5163 30 view .LVU5066
14522 00a6 1278 ldrb r2, [r2] @ zero_extendqisi2
5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14523 .loc 1 5163 28 view .LVU5067
14524 00a8 9A62 str r2, [r3, #40]
5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14525 .loc 1 5166 7 is_stmt 1 view .LVU5068
5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14526 .loc 1 5166 11 is_stmt 0 view .LVU5069
14527 00aa 636A ldr r3, [r4, #36]
5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14528 .loc 1 5166 21 view .LVU5070
14529 00ac 0133 adds r3, r3, #1
14530 00ae 6362 str r3, [r4, #36]
5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
14531 .loc 1 5168 7 is_stmt 1 view .LVU5071
5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
14532 .loc 1 5168 11 is_stmt 0 view .LVU5072
14533 00b0 238D ldrh r3, [r4, #40]
5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
14534 .loc 1 5168 21 view .LVU5073
14535 00b2 013B subs r3, r3, #1
14536 00b4 2385 strh r3, [r4, #40] @ movhi
5169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14537 .loc 1 5169 7 is_stmt 1 view .LVU5074
5169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14538 .loc 1 5169 11 is_stmt 0 view .LVU5075
14539 00b6 638D ldrh r3, [r4, #42]
14540 00b8 9BB2 uxth r3, r3
5169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14541 .loc 1 5169 22 view .LVU5076
14542 00ba 013B subs r3, r3, #1
14543 00bc 9BB2 uxth r3, r3
14544 00be 6385 strh r3, [r4, #42] @ movhi
14545 00c0 C8E7 b .L922
14546 .LVL1087:
14547 .L924:
5180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14548 .loc 1 5180 8 is_stmt 1 view .LVU5077
5180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14549 .loc 1 5180 11 is_stmt 0 view .LVU5078
14550 00c2 15F0800F tst r5, #128
14551 00c6 2AD0 beq .L926
5180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14552 .loc 1 5180 64 discriminator 1 view .LVU5079
14553 00c8 16F0400F tst r6, #64
14554 00cc 27D0 beq .L926
ARM GAS /tmp/ccN54YTb.s page 473
5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14555 .loc 1 5183 5 is_stmt 1 view .LVU5080
5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14556 .loc 1 5183 14 is_stmt 0 view .LVU5081
14557 00ce 638D ldrh r3, [r4, #42]
14558 00d0 9BB2 uxth r3, r3
5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14559 .loc 1 5183 8 view .LVU5082
14560 00d2 FBB1 cbz r3, .L927
5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14561 .loc 1 5183 41 discriminator 1 view .LVU5083
14562 00d4 238D ldrh r3, [r4, #40]
5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14563 .loc 1 5183 33 discriminator 1 view .LVU5084
14564 00d6 EBB9 cbnz r3, .L927
5185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14565 .loc 1 5185 7 is_stmt 1 view .LVU5085
5185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14566 .loc 1 5185 15 is_stmt 0 view .LVU5086
14567 00d8 638D ldrh r3, [r4, #42]
14568 00da 9BB2 uxth r3, r3
5185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14569 .loc 1 5185 10 view .LVU5087
14570 00dc FF2B cmp r3, #255
14571 00de 0BD9 bls .L928
5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14572 .loc 1 5187 9 is_stmt 1 view .LVU5088
5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14573 .loc 1 5187 24 is_stmt 0 view .LVU5089
14574 00e0 FF22 movs r2, #255
14575 .LVL1088:
5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14576 .loc 1 5187 24 view .LVU5090
14577 00e2 2285 strh r2, [r4, #40] @ movhi
5188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
14578 .loc 1 5188 9 is_stmt 1 view .LVU5091
5188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
14579 .loc 1 5188 48 is_stmt 0 view .LVU5092
14580 00e4 E16C ldr r1, [r4, #76]
14581 .LVL1089:
5188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
14582 .loc 1 5188 9 view .LVU5093
14583 00e6 0023 movs r3, #0
14584 00e8 0093 str r3, [sp]
14585 00ea 4FF08073 mov r3, #16777216
14586 00ee 89B2 uxth r1, r1
14587 00f0 2046 mov r0, r4
14588 .LVL1090:
5188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
14589 .loc 1 5188 9 view .LVU5094
14590 00f2 FFF7FEFF bl I2C_TransferConfig
14591 .LVL1091:
14592 00f6 ADE7 b .L922
14593 .LVL1092:
14594 .L928:
5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14595 .loc 1 5193 9 is_stmt 1 view .LVU5095
ARM GAS /tmp/ccN54YTb.s page 474
5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14596 .loc 1 5193 30 is_stmt 0 view .LVU5096
14597 00f8 628D ldrh r2, [r4, #42]
14598 .LVL1093:
5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14599 .loc 1 5193 30 view .LVU5097
14600 00fa 92B2 uxth r2, r2
5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14601 .loc 1 5193 24 view .LVU5098
14602 00fc 2285 strh r2, [r4, #40] @ movhi
5194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
14603 .loc 1 5194 9 is_stmt 1 view .LVU5099
5194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
14604 .loc 1 5194 48 is_stmt 0 view .LVU5100
14605 00fe E16C ldr r1, [r4, #76]
14606 .LVL1094:
5194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
14607 .loc 1 5194 9 view .LVU5101
14608 0100 0023 movs r3, #0
14609 0102 0093 str r3, [sp]
14610 0104 4FF00073 mov r3, #33554432
14611 0108 D2B2 uxtb r2, r2
14612 010a 89B2 uxth r1, r1
14613 010c 2046 mov r0, r4
14614 .LVL1095:
5194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
14615 .loc 1 5194 9 view .LVU5102
14616 010e FFF7FEFF bl I2C_TransferConfig
14617 .LVL1096:
14618 0112 9FE7 b .L922
14619 .LVL1097:
14620 .L927:
5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14621 .loc 1 5202 7 is_stmt 1 view .LVU5103
14622 0114 4021 movs r1, #64
14623 .LVL1098:
5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14624 .loc 1 5202 7 is_stmt 0 view .LVU5104
14625 0116 2046 mov r0, r4
14626 .LVL1099:
5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14627 .loc 1 5202 7 view .LVU5105
14628 0118 FFF7FEFF bl I2C_ITError
14629 .LVL1100:
5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14630 .loc 1 5202 7 view .LVU5106
14631 011c 9AE7 b .L922
14632 .LVL1101:
14633 .L926:
5205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14634 .loc 1 5205 8 is_stmt 1 view .LVU5107
5205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14635 .loc 1 5205 11 is_stmt 0 view .LVU5108
14636 011e 15F0400F tst r5, #64
14637 0122 97D0 beq .L922
5205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14638 .loc 1 5205 63 discriminator 1 view .LVU5109
ARM GAS /tmp/ccN54YTb.s page 475
14639 0124 16F0400F tst r6, #64
14640 0128 94D0 beq .L922
5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14641 .loc 1 5209 5 is_stmt 1 view .LVU5110
14642 012a 0121 movs r1, #1
14643 .LVL1102:
5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14644 .loc 1 5209 5 is_stmt 0 view .LVU5111
14645 012c 2046 mov r0, r4
14646 .LVL1103:
5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14647 .loc 1 5209 5 view .LVU5112
14648 012e FFF7FEFF bl I2C_Disable_IRQ
14649 .LVL1104:
5212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14650 .loc 1 5212 5 is_stmt 1 view .LVU5113
14651 0132 0221 movs r1, #2
14652 0134 2046 mov r0, r4
14653 0136 FFF7FEFF bl I2C_Enable_IRQ
14654 .LVL1105:
5214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14655 .loc 1 5214 5 view .LVU5114
5214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14656 .loc 1 5214 13 is_stmt 0 view .LVU5115
14657 013a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14658 .loc 1 5214 8 view .LVU5116
14659 013e 222B cmp r3, #34
14660 0140 0FD0 beq .L933
5122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
14661 .loc 1 5122 12 view .LVU5117
14662 0142 1348 ldr r0, .L941
14663 .L929:
14664 .LVL1106:
5219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14665 .loc 1 5219 5 is_stmt 1 view .LVU5118
5219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14666 .loc 1 5219 13 is_stmt 0 view .LVU5119
14667 0144 638D ldrh r3, [r4, #42]
14668 0146 9BB2 uxth r3, r3
5219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14669 .loc 1 5219 8 view .LVU5120
14670 0148 FF2B cmp r3, #255
14671 014a 0CD9 bls .L930
5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14672 .loc 1 5221 7 is_stmt 1 view .LVU5121
5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14673 .loc 1 5221 22 is_stmt 0 view .LVU5122
14674 014c FF22 movs r2, #255
14675 014e 2285 strh r2, [r4, #40] @ movhi
5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14676 .loc 1 5224 7 is_stmt 1 view .LVU5123
5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14677 .loc 1 5224 46 is_stmt 0 view .LVU5124
14678 0150 E16C ldr r1, [r4, #76]
5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14679 .loc 1 5224 7 view .LVU5125
ARM GAS /tmp/ccN54YTb.s page 476
14680 0152 0090 str r0, [sp]
14681 0154 4FF08073 mov r3, #16777216
14682 0158 89B2 uxth r1, r1
14683 015a 2046 mov r0, r4
14684 .LVL1107:
5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14685 .loc 1 5224 7 view .LVU5126
14686 015c FFF7FEFF bl I2C_TransferConfig
14687 .LVL1108:
5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14688 .loc 1 5224 7 view .LVU5127
14689 0160 78E7 b .L922
14690 .LVL1109:
14691 .L933:
5216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14692 .loc 1 5216 17 view .LVU5128
14693 0162 0C48 ldr r0, .L941+4
14694 0164 EEE7 b .L929
14695 .LVL1110:
14696 .L930:
5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14697 .loc 1 5229 7 is_stmt 1 view .LVU5129
5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14698 .loc 1 5229 28 is_stmt 0 view .LVU5130
14699 0166 628D ldrh r2, [r4, #42]
14700 0168 92B2 uxth r2, r2
5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14701 .loc 1 5229 22 view .LVU5131
14702 016a 2285 strh r2, [r4, #40] @ movhi
5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14703 .loc 1 5232 7 is_stmt 1 view .LVU5132
5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14704 .loc 1 5232 46 is_stmt 0 view .LVU5133
14705 016c E16C ldr r1, [r4, #76]
5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14706 .loc 1 5232 7 view .LVU5134
14707 016e 0090 str r0, [sp]
14708 0170 4FF00073 mov r3, #33554432
14709 0174 D2B2 uxtb r2, r2
14710 0176 89B2 uxth r1, r1
14711 0178 2046 mov r0, r4
14712 .LVL1111:
5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14713 .loc 1 5232 7 view .LVU5135
14714 017a FFF7FEFF bl I2C_TransferConfig
14715 .LVL1112:
5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14716 .loc 1 5232 7 view .LVU5136
14717 017e 69E7 b .L922
14718 .LVL1113:
14719 .L939:
5245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14720 .loc 1 5245 5 is_stmt 1 view .LVU5137
14721 0180 2946 mov r1, r5
14722 0182 2046 mov r0, r4
14723 0184 FFF7FEFF bl I2C_ITMasterCplt
14724 .LVL1114:
ARM GAS /tmp/ccN54YTb.s page 477
14725 0188 6BE7 b .L931
14726 .LVL1115:
14727 .L932:
14728 .cfi_def_cfa_offset 0
14729 .cfi_restore 4
14730 .cfi_restore 5
14731 .cfi_restore 6
14732 .cfi_restore 14
5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14733 .loc 1 5126 3 is_stmt 0 discriminator 1 view .LVU5138
14734 018a 0220 movs r0, #2
14735 .LVL1116:
5252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14736 .loc 1 5252 1 view .LVU5139
14737 018c 7047 bx lr
14738 .L942:
14739 018e 00BF .align 2
14740 .L941:
14741 0190 00200080 .word -2147475456
14742 0194 00240080 .word -2147474432
14743 .cfi_endproc
14744 .LFE385:
14746 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits
14747 .align 1
14748 .global HAL_I2C_ER_IRQHandler
14749 .syntax unified
14750 .thumb
14751 .thumb_func
14753 HAL_I2C_ER_IRQHandler:
14754 .LVL1117:
14755 .LFB370:
4687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
14756 .loc 1 4687 1 is_stmt 1 view -0
14757 .cfi_startproc
14758 @ args = 0, pretend = 0, frame = 0
14759 @ frame_needed = 0, uses_anonymous_args = 0
4687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
14760 .loc 1 4687 1 is_stmt 0 view .LVU5141
14761 0000 10B5 push {r4, lr}
14762 .cfi_def_cfa_offset 8
14763 .cfi_offset 4, -8
14764 .cfi_offset 14, -4
4688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
14765 .loc 1 4688 3 is_stmt 1 view .LVU5142
4688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
14766 .loc 1 4688 24 is_stmt 0 view .LVU5143
14767 0002 0268 ldr r2, [r0]
4688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
14768 .loc 1 4688 12 view .LVU5144
14769 0004 9369 ldr r3, [r2, #24]
14770 .LVL1118:
4689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
14771 .loc 1 4689 3 is_stmt 1 view .LVU5145
4689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
14772 .loc 1 4689 12 is_stmt 0 view .LVU5146
14773 0006 1168 ldr r1, [r2]
14774 .LVL1119:
ARM GAS /tmp/ccN54YTb.s page 478
4690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14775 .loc 1 4690 3 is_stmt 1 view .LVU5147
4693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14776 .loc 1 4693 3 view .LVU5148
4693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14777 .loc 1 4693 6 is_stmt 0 view .LVU5149
14778 0008 13F4807F tst r3, #256
14779 000c 09D0 beq .L944
4693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14780 .loc 1 4693 57 discriminator 1 view .LVU5150
14781 000e 11F0800F tst r1, #128
14782 0012 06D0 beq .L944
4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14783 .loc 1 4696 5 is_stmt 1 view .LVU5151
4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14784 .loc 1 4696 9 is_stmt 0 view .LVU5152
14785 0014 446C ldr r4, [r0, #68]
4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14786 .loc 1 4696 21 view .LVU5153
14787 0016 44F00104 orr r4, r4, #1
14788 001a 4464 str r4, [r0, #68]
4699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14789 .loc 1 4699 5 is_stmt 1 view .LVU5154
14790 001c 4FF48074 mov r4, #256
14791 0020 D461 str r4, [r2, #28]
14792 .L944:
4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14793 .loc 1 4703 3 view .LVU5155
4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14794 .loc 1 4703 6 is_stmt 0 view .LVU5156
14795 0022 13F4806F tst r3, #1024
14796 0026 0AD0 beq .L945
4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14797 .loc 1 4703 56 discriminator 1 view .LVU5157
14798 0028 11F0800F tst r1, #128
14799 002c 07D0 beq .L945
4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14800 .loc 1 4706 5 is_stmt 1 view .LVU5158
4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14801 .loc 1 4706 9 is_stmt 0 view .LVU5159
14802 002e 426C ldr r2, [r0, #68]
4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14803 .loc 1 4706 21 view .LVU5160
14804 0030 42F00802 orr r2, r2, #8
14805 0034 4264 str r2, [r0, #68]
4709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14806 .loc 1 4709 5 is_stmt 1 view .LVU5161
14807 0036 0268 ldr r2, [r0]
14808 0038 4FF48064 mov r4, #1024
14809 003c D461 str r4, [r2, #28]
14810 .L945:
4713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14811 .loc 1 4713 3 view .LVU5162
4713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14812 .loc 1 4713 6 is_stmt 0 view .LVU5163
14813 003e 13F4007F tst r3, #512
14814 0042 0AD0 beq .L946
ARM GAS /tmp/ccN54YTb.s page 479
4713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14815 .loc 1 4713 57 discriminator 1 view .LVU5164
14816 0044 11F0800F tst r1, #128
14817 0048 07D0 beq .L946
4716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14818 .loc 1 4716 5 is_stmt 1 view .LVU5165
4716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14819 .loc 1 4716 9 is_stmt 0 view .LVU5166
14820 004a 436C ldr r3, [r0, #68]
14821 .LVL1120:
4716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14822 .loc 1 4716 21 view .LVU5167
14823 004c 43F00203 orr r3, r3, #2
14824 0050 4364 str r3, [r0, #68]
4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14825 .loc 1 4719 5 is_stmt 1 view .LVU5168
14826 0052 0368 ldr r3, [r0]
14827 0054 4FF40072 mov r2, #512
14828 0058 DA61 str r2, [r3, #28]
14829 .L946:
4723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14830 .loc 1 4723 3 view .LVU5169
4723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14831 .loc 1 4723 12 is_stmt 0 view .LVU5170
14832 005a 416C ldr r1, [r0, #68]
14833 .LVL1121:
4726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14834 .loc 1 4726 3 is_stmt 1 view .LVU5171
4726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14835 .loc 1 4726 6 is_stmt 0 view .LVU5172
14836 005c 11F00B0F tst r1, #11
14837 0060 00D1 bne .L949
14838 .LVL1122:
14839 .L943:
4730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14840 .loc 1 4730 1 view .LVU5173
14841 0062 10BD pop {r4, pc}
14842 .LVL1123:
14843 .L949:
4728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14844 .loc 1 4728 5 is_stmt 1 view .LVU5174
14845 0064 FFF7FEFF bl I2C_ITError
14846 .LVL1124:
4730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14847 .loc 1 4730 1 is_stmt 0 view .LVU5175
14848 0068 FBE7 b .L943
14849 .cfi_endproc
14850 .LFE370:
14852 .section .text.I2C_DMAAbort,"ax",%progbits
14853 .align 1
14854 .syntax unified
14855 .thumb
14856 .thumb_func
14858 I2C_DMAAbort:
14859 .LVL1125:
14860 .LFB406:
6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
ARM GAS /tmp/ccN54YTb.s page 480
14861 .loc 1 6961 1 is_stmt 1 view -0
14862 .cfi_startproc
14863 @ args = 0, pretend = 0, frame = 0
14864 @ frame_needed = 0, uses_anonymous_args = 0
6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14865 .loc 1 6961 1 is_stmt 0 view .LVU5177
14866 0000 08B5 push {r3, lr}
14867 .cfi_def_cfa_offset 8
14868 .cfi_offset 3, -8
14869 .cfi_offset 14, -4
6963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14870 .loc 1 6963 3 is_stmt 1 view .LVU5178
6963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14871 .loc 1 6963 22 is_stmt 0 view .LVU5179
14872 0002 806B ldr r0, [r0, #56]
14873 .LVL1126:
6966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14874 .loc 1 6966 3 is_stmt 1 view .LVU5180
6966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14875 .loc 1 6966 11 is_stmt 0 view .LVU5181
14876 0004 836B ldr r3, [r0, #56]
6966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14877 .loc 1 6966 6 view .LVU5182
14878 0006 0BB1 cbz r3, .L951
6968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14879 .loc 1 6968 5 is_stmt 1 view .LVU5183
6968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14880 .loc 1 6968 37 is_stmt 0 view .LVU5184
14881 0008 0022 movs r2, #0
14882 000a 1A65 str r2, [r3, #80]
14883 .L951:
6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14884 .loc 1 6970 3 is_stmt 1 view .LVU5185
6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14885 .loc 1 6970 11 is_stmt 0 view .LVU5186
14886 000c C36B ldr r3, [r0, #60]
6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14887 .loc 1 6970 6 view .LVU5187
14888 000e 0BB1 cbz r3, .L952
6972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14889 .loc 1 6972 5 is_stmt 1 view .LVU5188
6972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14890 .loc 1 6972 37 is_stmt 0 view .LVU5189
14891 0010 0022 movs r2, #0
14892 0012 1A65 str r2, [r3, #80]
14893 .L952:
6975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14894 .loc 1 6975 3 is_stmt 1 view .LVU5190
14895 0014 FFF7FEFF bl I2C_TreatErrorCallback
14896 .LVL1127:
6976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14897 .loc 1 6976 1 is_stmt 0 view .LVU5191
14898 0018 08BD pop {r3, pc}
14899 .cfi_endproc
14900 .LFE406:
14902 .section .text.HAL_I2C_GetState,"ax",%progbits
14903 .align 1
ARM GAS /tmp/ccN54YTb.s page 481
14904 .global HAL_I2C_GetState
14905 .syntax unified
14906 .thumb
14907 .thumb_func
14909 HAL_I2C_GetState:
14910 .LVL1128:
14911 .LFB381:
4921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return I2C handle state */
14912 .loc 1 4921 1 is_stmt 1 view -0
14913 .cfi_startproc
14914 @ args = 0, pretend = 0, frame = 0
14915 @ frame_needed = 0, uses_anonymous_args = 0
14916 @ link register save eliminated.
4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14917 .loc 1 4923 3 view .LVU5193
4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14918 .loc 1 4923 14 is_stmt 0 view .LVU5194
14919 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
14920 .LVL1129:
4924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14921 .loc 1 4924 1 view .LVU5195
14922 0004 7047 bx lr
14923 .cfi_endproc
14924 .LFE381:
14926 .section .text.HAL_I2C_GetMode,"ax",%progbits
14927 .align 1
14928 .global HAL_I2C_GetMode
14929 .syntax unified
14930 .thumb
14931 .thumb_func
14933 HAL_I2C_GetMode:
14934 .LVL1130:
14935 .LFB382:
4933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->Mode;
14936 .loc 1 4933 1 is_stmt 1 view -0
14937 .cfi_startproc
14938 @ args = 0, pretend = 0, frame = 0
14939 @ frame_needed = 0, uses_anonymous_args = 0
14940 @ link register save eliminated.
4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14941 .loc 1 4934 3 view .LVU5197
4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14942 .loc 1 4934 14 is_stmt 0 view .LVU5198
14943 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2
14944 .LVL1131:
4935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14945 .loc 1 4935 1 view .LVU5199
14946 0004 7047 bx lr
14947 .cfi_endproc
14948 .LFE382:
14950 .section .text.HAL_I2C_GetError,"ax",%progbits
14951 .align 1
14952 .global HAL_I2C_GetError
14953 .syntax unified
14954 .thumb
14955 .thumb_func
14957 HAL_I2C_GetError:
ARM GAS /tmp/ccN54YTb.s page 482
14958 .LVL1132:
14959 .LFB383:
4944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->ErrorCode;
14960 .loc 1 4944 1 is_stmt 1 view -0
14961 .cfi_startproc
14962 @ args = 0, pretend = 0, frame = 0
14963 @ frame_needed = 0, uses_anonymous_args = 0
14964 @ link register save eliminated.
4945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14965 .loc 1 4945 3 view .LVU5201
4945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14966 .loc 1 4945 14 is_stmt 0 view .LVU5202
14967 0000 406C ldr r0, [r0, #68]
14968 .LVL1133:
4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14969 .loc 1 4946 1 view .LVU5203
14970 0002 7047 bx lr
14971 .cfi_endproc
14972 .LFE383:
14974 .text
14975 .Letext0:
14976 .file 2 "/home/k/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-none-ea
14977 .file 3 "/home/k/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-none-ea
14978 .file 4 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7a3xx.h"
14979 .file 5 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h"
14980 .file 6 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h"
14981 .file 7 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h"
14982 .file 8 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h"
14983 .file 9 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h"
ARM GAS /tmp/ccN54YTb.s page 483
DEFINED SYMBOLS
*ABS*:00000000 stm32h7xx_hal_i2c.c
/tmp/ccN54YTb.s:20 .text.I2C_Flush_TXDR:00000000 $t
/tmp/ccN54YTb.s:25 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR
/tmp/ccN54YTb.s:63 .text.I2C_TransferConfig:00000000 $t
/tmp/ccN54YTb.s:68 .text.I2C_TransferConfig:00000000 I2C_TransferConfig
/tmp/ccN54YTb.s:125 .text.I2C_Enable_IRQ:00000000 $t
/tmp/ccN54YTb.s:130 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ
/tmp/ccN54YTb.s:293 .text.I2C_Enable_IRQ:00000090 $d
/tmp/ccN54YTb.s:13581 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA
/tmp/ccN54YTb.s:13127 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA
/tmp/ccN54YTb.s:12756 .text.I2C_Mem_ISR_DMA:00000000 I2C_Mem_ISR_DMA
/tmp/ccN54YTb.s:300 .text.I2C_Disable_IRQ:00000000 $t
/tmp/ccN54YTb.s:305 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ
/tmp/ccN54YTb.s:428 .text.I2C_ConvertOtherXferOptions:00000000 $t
/tmp/ccN54YTb.s:433 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions
/tmp/ccN54YTb.s:474 .text.I2C_IsErrorOccurred:00000000 $t
/tmp/ccN54YTb.s:479 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred
/tmp/ccN54YTb.s:759 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t
/tmp/ccN54YTb.s:764 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout
/tmp/ccN54YTb.s:861 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t
/tmp/ccN54YTb.s:866 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout
/tmp/ccN54YTb.s:977 .text.I2C_RequestMemoryWrite:00000000 $t
/tmp/ccN54YTb.s:982 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite
/tmp/ccN54YTb.s:1097 .text.I2C_RequestMemoryWrite:00000078 $d
/tmp/ccN54YTb.s:1102 .text.I2C_RequestMemoryRead:00000000 $t
/tmp/ccN54YTb.s:1107 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead
/tmp/ccN54YTb.s:1222 .text.I2C_RequestMemoryRead:00000074 $d
/tmp/ccN54YTb.s:1227 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t
/tmp/ccN54YTb.s:1232 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout
/tmp/ccN54YTb.s:1329 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t
/tmp/ccN54YTb.s:1334 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout
/tmp/ccN54YTb.s:1498 .text.HAL_I2C_MspInit:00000000 $t
/tmp/ccN54YTb.s:1504 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit
/tmp/ccN54YTb.s:1519 .text.HAL_I2C_Init:00000000 $t
/tmp/ccN54YTb.s:1525 .text.HAL_I2C_Init:00000000 HAL_I2C_Init
/tmp/ccN54YTb.s:1718 .text.HAL_I2C_Init:000000c4 $d
/tmp/ccN54YTb.s:1723 .text.HAL_I2C_MspDeInit:00000000 $t
/tmp/ccN54YTb.s:1729 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit
/tmp/ccN54YTb.s:1744 .text.HAL_I2C_DeInit:00000000 $t
/tmp/ccN54YTb.s:1750 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit
/tmp/ccN54YTb.s:1813 .text.HAL_I2C_Master_Transmit:00000000 $t
/tmp/ccN54YTb.s:1819 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit
/tmp/ccN54YTb.s:2173 .text.HAL_I2C_Master_Transmit:000001a0 $d
/tmp/ccN54YTb.s:2178 .text.HAL_I2C_Master_Receive:00000000 $t
/tmp/ccN54YTb.s:2184 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive
/tmp/ccN54YTb.s:2487 .text.HAL_I2C_Master_Receive:00000174 $d
/tmp/ccN54YTb.s:2492 .text.HAL_I2C_Slave_Transmit:00000000 $t
/tmp/ccN54YTb.s:2498 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit
/tmp/ccN54YTb.s:2944 .text.HAL_I2C_Slave_Receive:00000000 $t
/tmp/ccN54YTb.s:2950 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive
/tmp/ccN54YTb.s:3295 .text.HAL_I2C_Master_Transmit_IT:00000000 $t
/tmp/ccN54YTb.s:3301 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT
/tmp/ccN54YTb.s:3494 .text.HAL_I2C_Master_Transmit_IT:000000b8 $d
/tmp/ccN54YTb.s:12370 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT
/tmp/ccN54YTb.s:3501 .text.HAL_I2C_Master_Receive_IT:00000000 $t
/tmp/ccN54YTb.s:3507 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT
ARM GAS /tmp/ccN54YTb.s page 484
/tmp/ccN54YTb.s:3654 .text.HAL_I2C_Master_Receive_IT:0000008c $d
/tmp/ccN54YTb.s:3661 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t
/tmp/ccN54YTb.s:3667 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT
/tmp/ccN54YTb.s:3808 .text.HAL_I2C_Slave_Transmit_IT:00000084 $d
/tmp/ccN54YTb.s:11791 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT
/tmp/ccN54YTb.s:3814 .text.HAL_I2C_Slave_Receive_IT:00000000 $t
/tmp/ccN54YTb.s:3820 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT
/tmp/ccN54YTb.s:3921 .text.HAL_I2C_Slave_Receive_IT:0000005c $d
/tmp/ccN54YTb.s:3927 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t
/tmp/ccN54YTb.s:3933 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA
/tmp/ccN54YTb.s:4275 .text.HAL_I2C_Master_Transmit_DMA:00000158 $d
/tmp/ccN54YTb.s:14149 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt
/tmp/ccN54YTb.s:13893 .text.I2C_DMAError:00000000 I2C_DMAError
/tmp/ccN54YTb.s:4285 .text.HAL_I2C_Master_Receive_DMA:00000000 $t
/tmp/ccN54YTb.s:4291 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA
/tmp/ccN54YTb.s:4587 .text.HAL_I2C_Master_Receive_DMA:00000138 $d
/tmp/ccN54YTb.s:14256 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt
/tmp/ccN54YTb.s:4597 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t
/tmp/ccN54YTb.s:4603 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA
/tmp/ccN54YTb.s:4904 .text.HAL_I2C_Slave_Transmit_DMA:0000012c $d
/tmp/ccN54YTb.s:10269 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt
/tmp/ccN54YTb.s:4912 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t
/tmp/ccN54YTb.s:4918 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA
/tmp/ccN54YTb.s:5138 .text.HAL_I2C_Slave_Receive_DMA:000000e0 $d
/tmp/ccN54YTb.s:10325 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt
/tmp/ccN54YTb.s:5146 .text.HAL_I2C_Mem_Write:00000000 $t
/tmp/ccN54YTb.s:5152 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write
/tmp/ccN54YTb.s:5504 .text.HAL_I2C_Mem_Read:00000000 $t
/tmp/ccN54YTb.s:5510 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read
/tmp/ccN54YTb.s:5862 .text.HAL_I2C_Mem_Read:000001ac $d
/tmp/ccN54YTb.s:5867 .text.HAL_I2C_Mem_Write_IT:00000000 $t
/tmp/ccN54YTb.s:5873 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT
/tmp/ccN54YTb.s:6044 .text.HAL_I2C_Mem_Write_IT:000000ac $d
/tmp/ccN54YTb.s:14363 .text.I2C_Mem_ISR_IT:00000000 I2C_Mem_ISR_IT
/tmp/ccN54YTb.s:6051 .text.HAL_I2C_Mem_Read_IT:00000000 $t
/tmp/ccN54YTb.s:6057 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT
/tmp/ccN54YTb.s:6225 .text.HAL_I2C_Mem_Read_IT:000000a8 $d
/tmp/ccN54YTb.s:6232 .text.HAL_I2C_Mem_Write_DMA:00000000 $t
/tmp/ccN54YTb.s:6238 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA
/tmp/ccN54YTb.s:6517 .text.HAL_I2C_Mem_Write_DMA:00000120 $d
/tmp/ccN54YTb.s:6526 .text.HAL_I2C_Mem_Read_DMA:00000000 $t
/tmp/ccN54YTb.s:6532 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA
/tmp/ccN54YTb.s:6813 .text.HAL_I2C_Mem_Read_DMA:00000120 $d
/tmp/ccN54YTb.s:6822 .text.HAL_I2C_IsDeviceReady:00000000 $t
/tmp/ccN54YTb.s:6828 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady
/tmp/ccN54YTb.s:7156 .text.HAL_I2C_IsDeviceReady:00000160 $d
/tmp/ccN54YTb.s:7162 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t
/tmp/ccN54YTb.s:7168 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT
/tmp/ccN54YTb.s:7428 .text.HAL_I2C_Master_Seq_Transmit_IT:00000104 $d
/tmp/ccN54YTb.s:7434 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t
/tmp/ccN54YTb.s:7440 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA
/tmp/ccN54YTb.s:7855 .text.HAL_I2C_Master_Seq_Transmit_DMA:000001d0 $d
/tmp/ccN54YTb.s:7864 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t
/tmp/ccN54YTb.s:7870 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT
/tmp/ccN54YTb.s:8051 .text.HAL_I2C_Master_Seq_Receive_IT:000000a8 $d
/tmp/ccN54YTb.s:8057 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t
/tmp/ccN54YTb.s:8063 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA
ARM GAS /tmp/ccN54YTb.s page 485
/tmp/ccN54YTb.s:8391 .text.HAL_I2C_Master_Seq_Receive_DMA:0000015c $d
/tmp/ccN54YTb.s:8400 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t
/tmp/ccN54YTb.s:8406 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT
/tmp/ccN54YTb.s:8615 .text.HAL_I2C_Slave_Seq_Transmit_IT:000000d8 $d
/tmp/ccN54YTb.s:14858 .text.I2C_DMAAbort:00000000 I2C_DMAAbort
/tmp/ccN54YTb.s:8621 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t
/tmp/ccN54YTb.s:8627 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA
/tmp/ccN54YTb.s:9014 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000198 $d
/tmp/ccN54YTb.s:9022 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t
/tmp/ccN54YTb.s:9028 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT
/tmp/ccN54YTb.s:9237 .text.HAL_I2C_Slave_Seq_Receive_IT:000000d8 $d
/tmp/ccN54YTb.s:9243 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t
/tmp/ccN54YTb.s:9249 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA
/tmp/ccN54YTb.s:9634 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000198 $d
/tmp/ccN54YTb.s:9642 .text.HAL_I2C_EnableListen_IT:00000000 $t
/tmp/ccN54YTb.s:9648 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT
/tmp/ccN54YTb.s:9693 .text.HAL_I2C_EnableListen_IT:00000024 $d
/tmp/ccN54YTb.s:9698 .text.HAL_I2C_DisableListen_IT:00000000 $t
/tmp/ccN54YTb.s:9704 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT
/tmp/ccN54YTb.s:9768 .text.HAL_I2C_Master_Abort_IT:00000000 $t
/tmp/ccN54YTb.s:9774 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT
/tmp/ccN54YTb.s:9914 .text.HAL_I2C_Master_Abort_IT:00000080 $d
/tmp/ccN54YTb.s:9919 .text.HAL_I2C_EV_IRQHandler:00000000 $t
/tmp/ccN54YTb.s:9925 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler
/tmp/ccN54YTb.s:9962 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t
/tmp/ccN54YTb.s:9968 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback
/tmp/ccN54YTb.s:9983 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t
/tmp/ccN54YTb.s:9989 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback
/tmp/ccN54YTb.s:10004 .text.I2C_ITMasterSeqCplt:00000000 $t
/tmp/ccN54YTb.s:10009 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt
/tmp/ccN54YTb.s:10092 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t
/tmp/ccN54YTb.s:10098 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback
/tmp/ccN54YTb.s:10113 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t
/tmp/ccN54YTb.s:10119 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback
/tmp/ccN54YTb.s:10134 .text.I2C_ITSlaveSeqCplt:00000000 $t
/tmp/ccN54YTb.s:10139 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt
/tmp/ccN54YTb.s:10264 .text.I2C_DMASlaveTransmitCplt:00000000 $t
/tmp/ccN54YTb.s:10320 .text.I2C_DMASlaveReceiveCplt:00000000 $t
/tmp/ccN54YTb.s:10453 .text.I2C_DMASlaveReceiveCplt:00000098 $d
/tmp/ccN54YTb.s:10459 .text.HAL_I2C_AddrCallback:00000000 $t
/tmp/ccN54YTb.s:10465 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback
/tmp/ccN54YTb.s:10482 .text.I2C_ITAddrCplt:00000000 $t
/tmp/ccN54YTb.s:10487 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt
/tmp/ccN54YTb.s:10646 .text.HAL_I2C_ListenCpltCallback:00000000 $t
/tmp/ccN54YTb.s:10652 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback
/tmp/ccN54YTb.s:10667 .text.I2C_ITListenCplt:00000000 $t
/tmp/ccN54YTb.s:10672 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt
/tmp/ccN54YTb.s:10775 .text.I2C_ITListenCplt:00000064 $d
/tmp/ccN54YTb.s:10780 .text.HAL_I2C_MemTxCpltCallback:00000000 $t
/tmp/ccN54YTb.s:10786 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback
/tmp/ccN54YTb.s:10801 .text.HAL_I2C_MemRxCpltCallback:00000000 $t
/tmp/ccN54YTb.s:10807 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback
/tmp/ccN54YTb.s:10822 .text.HAL_I2C_ErrorCallback:00000000 $t
/tmp/ccN54YTb.s:10828 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback
/tmp/ccN54YTb.s:10843 .text.HAL_I2C_AbortCpltCallback:00000000 $t
/tmp/ccN54YTb.s:10849 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback
/tmp/ccN54YTb.s:10864 .text.I2C_TreatErrorCallback:00000000 $t
ARM GAS /tmp/ccN54YTb.s page 486
/tmp/ccN54YTb.s:10869 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback
/tmp/ccN54YTb.s:10924 .text.I2C_ITError:00000000 $t
/tmp/ccN54YTb.s:10929 .text.I2C_ITError:00000000 I2C_ITError
/tmp/ccN54YTb.s:11205 .text.I2C_ITError:00000124 $d
/tmp/ccN54YTb.s:11212 .text.I2C_ITSlaveCplt:00000000 $t
/tmp/ccN54YTb.s:11217 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt
/tmp/ccN54YTb.s:11263 .text.I2C_ITSlaveCplt:0000001e $d
/tmp/ccN54YTb.s:11273 .text.I2C_ITSlaveCplt:00000028 $t
/tmp/ccN54YTb.s:11779 .text.I2C_ITSlaveCplt:000002c0 $d
/tmp/ccN54YTb.s:11786 .text.I2C_Slave_ISR_IT:00000000 $t
/tmp/ccN54YTb.s:12100 .text.I2C_ITMasterCplt:00000000 $t
/tmp/ccN54YTb.s:12105 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt
/tmp/ccN54YTb.s:12365 .text.I2C_Master_ISR_IT:00000000 $t
/tmp/ccN54YTb.s:12751 .text.I2C_Mem_ISR_DMA:00000000 $t
/tmp/ccN54YTb.s:13116 .text.I2C_Mem_ISR_DMA:00000198 $d
/tmp/ccN54YTb.s:13122 .text.I2C_Slave_ISR_DMA:00000000 $t
/tmp/ccN54YTb.s:13426 .text.I2C_Slave_ISR_DMA:0000018c $d
/tmp/ccN54YTb.s:13437 .text.I2C_Slave_ISR_DMA:00000196 $t
/tmp/ccN54YTb.s:13570 .text.I2C_Slave_ISR_DMA:00000214 $d
/tmp/ccN54YTb.s:13576 .text.I2C_Master_ISR_DMA:00000000 $t
/tmp/ccN54YTb.s:13888 .text.I2C_DMAError:00000000 $t
/tmp/ccN54YTb.s:14138 .text.I2C_DMAError:00000130 $d
/tmp/ccN54YTb.s:14144 .text.I2C_DMAMasterTransmitCplt:00000000 $t
/tmp/ccN54YTb.s:14251 .text.I2C_DMAMasterReceiveCplt:00000000 $t
/tmp/ccN54YTb.s:14358 .text.I2C_Mem_ISR_IT:00000000 $t
/tmp/ccN54YTb.s:14741 .text.I2C_Mem_ISR_IT:00000190 $d
/tmp/ccN54YTb.s:14747 .text.HAL_I2C_ER_IRQHandler:00000000 $t
/tmp/ccN54YTb.s:14753 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler
/tmp/ccN54YTb.s:14853 .text.I2C_DMAAbort:00000000 $t
/tmp/ccN54YTb.s:14903 .text.HAL_I2C_GetState:00000000 $t
/tmp/ccN54YTb.s:14909 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState
/tmp/ccN54YTb.s:14927 .text.HAL_I2C_GetMode:00000000 $t
/tmp/ccN54YTb.s:14933 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode
/tmp/ccN54YTb.s:14951 .text.HAL_I2C_GetError:00000000 $t
/tmp/ccN54YTb.s:14957 .text.HAL_I2C_GetError:00000000 HAL_I2C_GetError
UNDEFINED SYMBOLS
HAL_GetTick
HAL_DMA_Start_IT
HAL_DMA_Abort_IT
HAL_DMA_GetState
HAL_DMA_GetError