ams-master/Software/build/debug/stm32h7xx_hal_i2c.lst
2025-03-21 15:35:07 +01:00

28985 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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT()
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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 IT or DMA I2C process communication with Interrupt using HAL_I2C_Master_A
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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT()
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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 **** /* Wait until ADDR flag is set */
1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
1419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
1420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
1422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
1432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If 10bit addressing mode is selected */
1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
1446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */
1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK)
1451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 27
1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until AF flag is set */
1477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error = I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart);
1478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (error != HAL_OK)
1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */
1482: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 */
1483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0 */
1484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpXferCount = hi2c->XferCount;
1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U))
1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset ErrorCode to NONE */
1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
1502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear AF flag */
1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
1505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP flag is set */
1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 28
1514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP flag */
1516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
1520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
1521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
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 **** /* Disable Address Acknowledge */
1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode
1546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
1551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
1554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout)
1555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
1563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
1570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 29
1571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */
1596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK)
1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */
1606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */
1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET)
1613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 30
1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP flag is set */
1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP flag */
1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
1650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt
1675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size)
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 31
1685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
1687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
1724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
1725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode,
1734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode,
1739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 32
1742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
1748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
1751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
1754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt
1765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *
1774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size)
1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
1777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 33
1799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ
1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
1819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
1821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
1822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
1825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt
1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1842: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)
1843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 34
1856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
1862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
1865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
1867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
1883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
1886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
1889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt
1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1906: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)
1907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 35
1913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
1926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
1936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA
1950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size)
1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
1962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
1963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
1964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 36
1970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
1984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
1999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
2001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
2003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
2011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
2013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
2016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
2023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr,
2026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 37
2027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
2046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART
2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U),
2048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
2049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
2051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
2064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
2083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 38
2084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
2086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, I2C_AUTOEND_MODE,
2088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
2098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA
2113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
2122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size)
2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
2125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 39
2141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
2146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
2159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
2161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
2164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
2167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
2171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
2173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
2174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
2175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
2194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART *
2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_
2196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 40
2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
2211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
2230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
2233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
2244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
2245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
2248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 41
2255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA
2260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2266: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
2267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
2293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
2295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
2296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
2297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
2300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
2306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
2308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 42
2312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
2318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
2320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx,
2321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
2323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
2342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
2351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
2355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 43
2369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
2374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
2383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA
2396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2402: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)
2403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 44
2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
2428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
2431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
2438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
2440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
2441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
2442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
2461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
2474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 45
2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address
2500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
2509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre
2512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti
2513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
2532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
2534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 46
2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL
2549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
2560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
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 **** do
2568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
2577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
2580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
2585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */
2587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 47
2597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (hi2c->XferCount > 0U);
2607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
2609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
2616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
2619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
2620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address
2637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
2646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres
2649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim
2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 48
2654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
2669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
2671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_
2686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
2693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do
2708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */
2710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK)
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 49
2711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
2717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
2720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
2725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */
2727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (hi2c->XferCount > 0U);
2746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
2748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
2758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
2759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 50
2768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2774: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
2775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2785: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
2786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
2787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0U;
2813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
2818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */
2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
2821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */
2823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
2824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 51
2825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */
2826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */
2829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
2833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 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 **** /* Send Slave Address and Memory Address */
2838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_W
2839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
2849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2862: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
2863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2873: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
2874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
2875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 52
2882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
2904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */
2907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
2908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */
2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
2911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */
2913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */
2916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
2920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 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 **** /* Send Slave Address and Memory Address */
2925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_
2926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
2936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 53
2939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2949: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
2950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2960: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
2961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
2962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 54
2996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */
3005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
3006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */
3008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
3009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */
3011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
3012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */
3014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
3018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 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 ****
3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
3027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
3030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
3033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
3037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
3038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 55
3053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
3057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START
3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
3067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3095: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.
3096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
3101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
3102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be read
3104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3106: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
3107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
3108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 56
3110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
3113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
3117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
3119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
3123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
3132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
3139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */
3151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
3152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */
3154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
3155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */
3157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
3158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */
3160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
3164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 57
3167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
3173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
3176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
3182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
3183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
3184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
3203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_STAR
3204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
3213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 58
3224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Checks if target device is ready for communication.
3242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This function is used with Memory devices
3243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Trials Number of trials
3248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
3249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria
3252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout)
3253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL;
3257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp1;
3259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp2;
3260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
3264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
3272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do
3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Start */
3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress);
3278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
3280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 59
3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
3282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
3284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
3285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET))
3287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
3289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
3306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
3307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */
3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET)
3311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
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 **** /* Clear STOP Flag */
3319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Device is ready */
3322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
3333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 60
3338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
3339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/
3341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Trials */
3345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Trials++;
3346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (I2C_Trials < Trials);
3347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
3353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
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 **** return HAL_BUSY;
3362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3366: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
3367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
3378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
3383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 61
3395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \
3415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
3418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
3420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */
3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \
3433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
3450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
3451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 62
3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
3453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
3467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3480: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.
3481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin
3492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
3496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
3498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
3508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 63
3509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \
3530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
3531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */
3533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
3535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
3538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
3540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
3541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */
3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \
3548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
3565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 64
3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
3573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
3576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
3579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr,
3580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
3600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
3601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
3603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
3619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
3622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 65
3623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
3642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
3645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
3646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
3647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
3649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3677: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
3678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 66
3680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8
3689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
3693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */
3726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \
3728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 67
3737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
3754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3764: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
3765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
3776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
3780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 68
3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */
3814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \
3816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
3838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
3840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
3841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
3847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
3848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
3849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 69
3851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
3868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
3871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
3880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
3884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
3906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
3907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 70
3908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
3909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
3917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
3918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
3921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3932: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
3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3941: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
3942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions)
3943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
3945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp;
3946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3950: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)
3951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
3953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
3955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
3959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
3960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 71
3965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
3966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
3967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */
3969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
3970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
3973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
3975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
3979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
3981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */
3983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
3987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
3993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
3997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
3998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
4005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
4008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
4020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */
4021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 72
4022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
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 **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit
4033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
4034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
4038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
4039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4041: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
4042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions)
4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp;
4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
4049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
4050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4051: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)
4052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
4054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
4063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
4064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
4066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
4067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */
4070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
4071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
4073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
4078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 73
4079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
4082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */
4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
4085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
4088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
4093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
4095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
4104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */
4106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
4107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
4110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
4117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
4124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
4127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 74
4136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
4139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
4142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
4146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
4147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
4148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
4152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
4156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
4157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
4165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
4167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset XferSize */
4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0;
4171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
4175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
4180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
4188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
4189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 75
4193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
4199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
4200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
4204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4216: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
4217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
4218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
4221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
4222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4225: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
4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions)
4227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp;
4230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
4232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
4233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4234: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)
4235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
4237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
4239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
4243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
4244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
4249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 76
4250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
4251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */
4253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
4256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
4265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */
4267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
4268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
4271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
4277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
4284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
4289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
4292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
4304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */
4305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
4306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 77
4307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
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 **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with
4317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
4318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
4321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
4322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
4323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4325: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
4326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions)
4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp;
4330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
4333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
4334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4335: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)
4336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
4338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
4344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
4345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
4350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
4351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
4352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */
4354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
4357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 78
4364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
4366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */
4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
4369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
4372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
4377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
4379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
4381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */
4390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
4391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
4394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
4401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
4404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
4408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
4411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
4420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 79
4421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
4423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
4424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
4426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
4427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
4430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR,
4431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
4432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
4436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
4440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
4441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
4451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
4452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset XferSize */
4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0;
4455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
4459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
4463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
4464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
4472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
4473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 80
4478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
4483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
4484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
4488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */
4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
4490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt.
4501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c)
4506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
4508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
4511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the Address Match interrupt */
4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
4520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt.
4525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C
4527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c)
4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp;
4533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 81
4535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
4536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK;
4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
4539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
4542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable the Address Match interrupt */
4544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
4551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt.
4556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
4559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
4560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress)
4563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER)
4565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
4570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
4571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
4574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
4578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
4583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */
4586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT;
4587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */
4589: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
4590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP);
4591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 82
4592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
4598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
4599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong usage of abort function */
4605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */
4606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
4612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
4615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request.
4620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) /* Derogation MISRAC2012-Rule-8.13 */
4625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
4627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
4628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
4629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/
4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferISR != NULL)
4632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources);
4634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request.
4639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c)
4644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
4646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
4647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 83
4649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/
4650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \
4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
4652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR;
4654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear BERR flag */
4656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
4657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/
4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \
4661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
4662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR;
4664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear OVR flag */
4666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
4667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/
4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \
4671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
4672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO;
4674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ARLO flag */
4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
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 **** /* Store current volatile hi2c->ErrorCode, misra rule */
4680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
4681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */
4683: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_
4684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror);
4686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback.
4691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c)
4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file
4702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 84
4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback.
4707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
4712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file
4718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback.
4722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c)
4727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file
4733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback.
4738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
4743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file
4749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Slave Address Match callback.
4754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE
4757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code
4758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM
4761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 85
4763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(TransferDirection);
4765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(AddrMatchCode);
4766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file
4769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Listen Complete callback.
4774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c)
4779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file
4785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback.
4790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c)
4795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file
4801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback.
4806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c)
4811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file
4817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 86
4820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C error callback.
4822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c)
4827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file
4833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C abort callback.
4838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c)
4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file
4849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
4854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions
4857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions
4858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
4859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim
4860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===============================================================================
4861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions #####
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 **** This subsection permit to get in run-time the status of the peripheral
4865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and the data flow.
4866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim
4868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
4869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Return the I2C handle state.
4873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL state
4876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 87
4877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c)
4878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return I2C handle state */
4880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->State;
4881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode.
4885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for I2C module
4887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL mode
4888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c)
4890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->Mode;
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 **** * @brief Return the I2C error code.
4896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval I2C Error Code
4899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c)
4901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->ErrorCode;
4903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
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 **** */
4908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
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 **** /** @addtogroup I2C_Private_Functions
4914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
4915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt.
4919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
4922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
4926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources)
4927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
4929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
4930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 88
4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
4935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
4936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
4938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */
4941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
4942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
4943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
4944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
4947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
4949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
4950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
4953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
4956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
4958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
4959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
4962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) == RESET) && \
4964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
4965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)))
4966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
4968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
4969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
4972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
4974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
4978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \
4981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
4982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
4984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
4986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
4988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
4990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 89
4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
4996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize,
4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
4999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize,
5003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
5004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
5010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
5011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
5013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
5018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
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_TC) != 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)
5027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
5029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
5032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */
5034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
5035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
5039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
5040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
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 **** /* Wrong size Status regarding TC flag event */
5046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.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 **** /* Nothing to do */
5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
5056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */
5059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
5060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with Interrupt.
5070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources)
5078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
5080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
5081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
5086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */
5092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
5093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
5094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
5097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
5100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
5101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
5103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
5104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 91
5105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
5107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
5110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
5115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
5116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Memaddress == 0xFFFFFFFFU)
5118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
5121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
5123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
5124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write LSB part of Memory Address */
5131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress;
5132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */
5134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
5135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \
5138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
5141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
5147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
5153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
5158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 92
5162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \
5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupt related to address step */
5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
5169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
5170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ;
5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */
5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
5191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
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 **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
5199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */
5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
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 **** /* Process Unlocked */
5206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt.
5213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 93
5219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources)
5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
5223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */
5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if STOPF is set */
5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
5230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave complete process */
5233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags);
5234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
5236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */
5239: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 */
5240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0*/
5241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */
5242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
5243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
5245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
5246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
5247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */
5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
5250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)
5252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
5257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */
5260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5271: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*/
5272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 94
5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
5279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
5286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
5287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
5289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
5292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
5295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \
5301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
5302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
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 **** }
5307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \
5308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
5309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags);
5311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
5313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
5314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */
5316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */
5317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if all Data have already been sent */
5318: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 */
5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
5320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
5323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
5325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
5326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 95
5333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */
5335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA.
5353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources)
5361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
5363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
5364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
5369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */
5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
5378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
5380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
5381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
5383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \
5386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC interrupt */
5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI);
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 96
5390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
5392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Recover Slave address */
5394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
5395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
5397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
5406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
5408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */
5416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
5417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
5419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
5420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
5422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
5425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
5429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
5435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
5438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
5442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 97
5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \
5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
5451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
5453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
5456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */
5458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
5459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
5463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
5464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
5470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
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 if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
5475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */
5478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
5479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
5483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with DMA.
5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources)
5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
5503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 98
5504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
5508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */
5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
5517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
5518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
5519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
5520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
5522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TXIS) != RESET) && \
5525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
5526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write LSB part of Memory Address */
5528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress;
5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */
5531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \
5534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupt related to address step */
5537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable only Error interrupt */
5540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
5541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
5543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
5550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
5556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
5560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 99
5561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
5565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
5569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
5574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \
5579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupt related to address step */
5582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable only Error and NACK interrupt for data transfer */
5585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
5586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ;
5590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
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_RELOAD_MODE, direction);
5599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */
5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
5607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
5613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
5616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 100
5618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
5620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
5623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */
5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
5627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
5631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA.
5641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources)
5649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
5651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
5652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
5653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */
5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if STOPF is set */
5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
5659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave complete process */
5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags);
5663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
5665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */
5668: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 */
5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0 */
5670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) ||
5672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
5673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 101
5675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
5676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)
5678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U)
5680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmanack = 1U;
5682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */
5687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
5688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET)
5690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U)
5692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmanack = 1U;
5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (treatdmanack == 1U)
5699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
5701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
5702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
5703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */
5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags);
5706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM
5708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
5713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */
5716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5727: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*/
5728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 102
5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */
5735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpstate = hi2c->State;
5736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
5738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
5740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
5742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN
5744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
5746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */
5760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \
5764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
5765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags);
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 **** /* Nothing to do */
5771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques
5781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
5785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
5786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
5787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 103
5789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
5792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t
5793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart)
5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */
5804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
5805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Memory Address */
5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */
5810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send MSB of Memory Address */
5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
5814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send LSB of Memory Address */
5822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */
5826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK)
5827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request
5836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
5839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
5840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
5841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
5842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
5843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
5844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 104
5846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
5847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T
5848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart)
5849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
5851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */
5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
5860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Memory Address */
5862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */
5865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send MSB of Memory Address */
5868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
5869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send LSB of Memory Address */
5877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TC flag is set */
5881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK)
5882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Address complete process callback.
5891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
5892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
5894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection;
5898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t slaveaddrcode;
5899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd1code;
5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd2code;
5901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 105
5903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(ITFlags);
5904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */
5906: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)
5907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c);
5909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
5910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
5912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If 10bits addressing mode is selected */
5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
5915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK))
5917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = ownadd1code;
5919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount++;
5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
5921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Address Event counter */
5923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount = 0U;
5924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
5926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
5927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */
5932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
5934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = ownadd2code;
5942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR Interrupts */
5944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
5945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */
5950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
5952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */
5958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 106
5960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR Interrupts */
5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
5962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */
5967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
5969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Else clear address flag only */
5975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
5978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
5979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Master sequential complete process.
5987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
5988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
5989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c)
5991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */
5993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */
5996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */
5997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
5998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
6001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
6002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
6004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_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 the corresponding callback to inform upper layer of End of Transfer */
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->MasterTxCpltCallback(hi2c);
6012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
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 **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 107
6017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
6021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
6022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
6025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
6032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
6034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Slave sequential complete process.
6040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c)
6044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
6046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */
6048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
6051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
6052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
6057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
6064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
6067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */
6069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
6071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
6073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 108
6074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
6081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
6083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
6087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */
6089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
6091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
6094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
6101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
6108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Master complete process.
6113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
6115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
6118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
6120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
6121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t tmpreg;
6122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
6124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
6125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
6127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
6128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 109
6131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
6133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
6135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
6136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
6140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
6143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
6144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
6146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
6147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET)
6150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
6152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set acknowledge error code */
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Fetch Last receive data if any */
6159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET))
6160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR;
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
6164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
6167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
6171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE))
6174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
6177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */
6179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
6180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
6185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 110
6188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c);
6194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c);
6196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
6208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
6210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
6215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c);
6229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c);
6231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
6243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 111
6245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
6251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Slave complete process.
6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
6258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
6261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
6263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
6264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
6265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
6266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
6268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
6269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
6271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
6272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
6274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
6275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
6277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
6279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
6280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (tmpstate == HAL_I2C_STATE_LISTEN)
6282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6283: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);
6284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
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 **** /* Disable Address Acknowledge */
6292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
6293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
6296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
6298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
6301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 112
6302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
6307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx);
6309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
6312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
6317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx);
6319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
6324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */
6327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)
6328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
6330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
6331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
6334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
6336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
6337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
6339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
6342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */
6346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
6347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
6353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
6354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */
6356: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 */
6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0*/
6358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 113
6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
6360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
6362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
6363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
6364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */
6366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
6367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)
6369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
6371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
6374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */
6377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
6378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6388: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*/
6389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
6390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
6393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
6396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
6399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
6405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE)
6407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
6410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
6412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
6413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */
6415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 114
6416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
6419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */
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 **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
6431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
6433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
6435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
6439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
6449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
6451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
6464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
6466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Listen complete process.
6472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 115
6473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
6474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
6479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
6484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */
6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET)
6487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
6490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
6493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
6495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
6497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
6498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
6500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all Interrupts*/
6505: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);
6506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
6508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
6514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
6516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
6518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C interrupts error process.
6523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ErrorCode Error code to handle.
6525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode)
6528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 116
6530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmppreviousstate;
6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
6534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U;
6537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set new error code */
6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode;
6540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
6542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) ||
6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
6544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
6545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */
6547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT);
6548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */
6550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
6551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
6552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all interrupts */
6556: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);
6557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
6559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */
6562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This change will be do later */
6563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT)
6564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */
6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a STOPF is detected */
6569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET)
6570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
6579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
6583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX transfer if any */
6586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 117
6587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \
6589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
6590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
6592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY)
6597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
6599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
6600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
6601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */
6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
6607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
6610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX transfer if any */
6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \
6619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
6620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
6622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY)
6627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
6629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
6630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
6631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */
6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
6637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */
6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
6640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 118
6644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Error callback treatment.
6655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c)
6659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
6661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c);
6671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c);
6673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c);
6685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
6686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c);
6687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
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 ****
6691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Tx data register flush process.
6693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c)
6697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
28 .loc 1 6697 1 view -0
29 .cfi_startproc
30 @ args = 0, pretend = 0, frame = 0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 119
31 @ frame_needed = 0, uses_anonymous_args = 0
32 @ link register save eliminated.
6698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a pending TXIS flag is set */
6699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */
6700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET)
33 .loc 1 6700 3 view .LVU1
34 .loc 1 6700 7 is_stmt 0 view .LVU2
35 0000 0368 ldr r3, [r0]
36 0002 9A69 ldr r2, [r3, #24]
37 .loc 1 6700 6 view .LVU3
38 0004 12F0020F tst r2, #2
39 0008 01D0 beq .L2
6701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U;
40 .loc 1 6702 5 is_stmt 1 view .LVU4
41 .loc 1 6702 26 is_stmt 0 view .LVU5
42 000a 0022 movs r2, #0
43 000c 9A62 str r2, [r3, #40]
44 .L2:
6703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register if not empty */
6706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)
45 .loc 1 6706 3 is_stmt 1 view .LVU6
46 .loc 1 6706 7 is_stmt 0 view .LVU7
47 000e 0368 ldr r3, [r0]
48 0010 9A69 ldr r2, [r3, #24]
49 .loc 1 6706 6 view .LVU8
50 0012 12F0010F tst r2, #1
51 0016 03D1 bne .L1
6707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE);
52 .loc 1 6708 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:
6709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
57 .loc 1 6710 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:
6711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback.
6714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
6715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 120
6717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma)
6718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
6726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
6727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupt */
6729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
6730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
6732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Buffer pointer */
6735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
6736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the XferSize to transfer */
6738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
6739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
6741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
6745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
6748: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,
6749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
6750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */
6757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
6758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback.
6765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
6766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma)
6769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
6773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 121
6774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
6775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */
6780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
6781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
6786: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 */
6787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
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 ****
6791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback.
6794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
6795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma)
6798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
6806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
6807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupt */
6809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
6810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
6812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Buffer pointer */
6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
6816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the XferSize to transfer */
6818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
6819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
6821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
6825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
6828: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,
6829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
6830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 122
6831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */
6837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
6838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback.
6845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
6846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma)
6849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
6853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \
6855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
6856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
6861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
6866: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 */
6867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
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 ****
6871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C communication error callback.
6874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
6875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma)
6878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U;
6880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
6884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U)
6886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmaerror = 1U;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 123
6888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
6892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U)
6894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmaerror = 1U;
6896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6899: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 *
6900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (!((HAL_DMA_GetError(hdma) == HAL_DMA_ERROR_FE)) && (treatdmaerror != 0U))
6901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Acknowledge */
6903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
6904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C communication abort callback
6913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure).
6914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle.
6915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma)
6918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset AbortCpltCallback */
6923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
6924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. It waits
6938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * until a flag is no longer in the specified status.
6939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
6941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check.
6942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Status The actual Flag status (SET or RESET).
6943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
6944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 124
6945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
6946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
6948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart)
6949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
6951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */
6953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
6954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
6959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
6960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status))
6964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
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 **** }
6976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
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 for specific usage of TXIS flag.
6981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
6983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
6984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
6985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
6986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
6988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart)
6989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
6991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */
6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
6994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
6999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
7000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 125
7002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET))
7004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
7006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
7010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
7013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
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 **** return HAL_OK;
7018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
7021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag.
7022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
7024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
7025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
7026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
7027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
7028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
7029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart)
7030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
7032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */
7034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
7035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
7037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
7040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
7041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET))
7043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
7045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
7049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
7052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
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 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 126
7059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag.
7060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
7062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
7063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
7064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
7065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
7066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
7067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart)
7068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
7070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) && (status == HAL_OK))
7072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */
7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
7075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
7077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a STOPF is detected */
7080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) && (status == HAL_OK))
7081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an RXNE is pending */
7083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */
7084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U))
7085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return HAL_OK */
7087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */
7088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_OK;
7089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check a no-acknowledge have been detected */
7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
7093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
7095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF;
7096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
7098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
7099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
7101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
7102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
7107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
7110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
7112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 127
7116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) && (status == HAL_OK))
7119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET))
7121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
7126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
7129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status;
7133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
7136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles errors detection during an I2C Communication.
7137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
7139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
7140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
7141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
7142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
7143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Ti
7144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
7146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
7147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0;
7148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart = Tickstart;
7149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp1;
7150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2;
7151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF))
7153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACKF Flag */
7155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
7156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP Flag is set or timeout occurred */
7158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */
7159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK))
7160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
7162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
7163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
7165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP);
7167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode;
7168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* In case of I2C still busy, try to regenerate a STOP manually */
7170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \
7171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
7172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE))
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 128
7173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */
7175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
7176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Tick with new reference */
7178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
7179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
7182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
7184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF)
7185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_TIMEOUT;
7187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
7189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
7191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* In case STOP Flag is detected, clear it */
7198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (status == HAL_OK)
7199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
7201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
7202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_AF;
7205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
7207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Refresh Content of Status register */
7210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** itflag = hi2c->Instance->ISR;
7211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Then verify if an additional errors occurs */
7213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a Bus error occurred */
7214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR))
7215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR;
7217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear BERR flag */
7219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
7220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
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 **** /* Check if an Over-Run/Under-Run error occurred */
7225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR))
7226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_OVR;
7228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear OVR flag */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 129
7230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
7231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
7233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an Arbitration Loss error occurred */
7236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO))
7237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_ARLO;
7239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ARLO flag */
7241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
7242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
7244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (status != HAL_OK)
7247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
7249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
7250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
7252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
7253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= error_code;
7255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
7259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status;
7263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
7266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar
7267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
7268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed.
7269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed.
7270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter must be a value between 0 and 255.
7271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation.
7272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values:
7273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode .
7274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode.
7275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode.
7276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation.
7277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values:
7278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition.
7279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0).
7280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request.
7281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request.
7282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
7283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
7284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
7285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Request)
7286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 130
71 .loc 1 7286 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 7286 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]
7287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
7288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
81 .loc 1 7288 3 is_stmt 1 view .LVU13
7289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode));
82 .loc 1 7289 3 view .LVU14
7290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request));
83 .loc 1 7290 3 view .LVU15
7291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
7293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \
84 .loc 1 7293 3 view .LVU16
85 .loc 1 7293 52 is_stmt 0 view .LVU17
86 0004 C1F30901 ubfx r1, r1, #0, #10
87 .LVL2:
88 .loc 1 7293 68 view .LVU18
89 0008 41EA0241 orr r1, r1, r2, lsl #16
7294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
90 .loc 1 7294 88 view .LVU19
91 000c 1943 orrs r1, r1, r3
7293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
92 .loc 1 7293 19 view .LVU20
93 000e 2143 orrs r1, r1, r4
7293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
94 .loc 1 7293 12 view .LVU21
95 0010 21F00041 bic r1, r1, #-2147483648
96 .LVL3:
7295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U));
7296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* update CR2 register */
7298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, \
97 .loc 1 7298 3 is_stmt 1 view .LVU22
98 0014 0268 ldr r2, [r0]
99 .LVL4:
100 .loc 1 7298 3 is_stmt 0 view .LVU23
101 0016 5368 ldr r3, [r2, #4]
102 .LVL5:
103 .loc 1 7298 3 view .LVU24
104 0018 640D lsrs r4, r4, #21
105 001a 04F48064 and r4, r4, #1024
106 001e 44F07F74 orr r4, r4, #66846720
107 0022 44F45834 orr r4, r4, #221184
108 0026 44F47F74 orr r4, r4, #1020
109 002a 44F00304 orr r4, r4, #3
110 002e 23EA0403 bic r3, r3, r4
111 0032 0B43 orrs r3, r3, r1
112 0034 5360 str r3, [r2, #4]
7299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 131
7300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \
7301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), tmp);
7302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
113 .loc 1 7302 1 view .LVU25
114 0036 5DF8044B ldr r4, [sp], #4
115 .cfi_restore 4
116 .cfi_def_cfa_offset 0
117 .LVL6:
118 .loc 1 7302 1 view .LVU26
119 003a 7047 bx lr
120 .cfi_endproc
121 .LFE412:
123 .section .text.I2C_Enable_IRQ,"ax",%progbits
124 .align 1
125 .syntax unified
126 .thumb
127 .thumb_func
129 I2C_Enable_IRQ:
130 .LVL7:
131 .LFB413:
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 **** * @brief Manage the enabling of Interrupts.
7306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
7308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
7309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
7310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
7311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
7312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
132 .loc 1 7312 1 is_stmt 1 view -0
133 .cfi_startproc
134 @ args = 0, pretend = 0, frame = 0
135 @ frame_needed = 0, uses_anonymous_args = 0
136 @ link register save eliminated.
7313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpisr = 0U;
137 .loc 1 7313 3 view .LVU28
7314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Master_ISR_DMA) && \
138 .loc 1 7315 3 view .LVU29
139 .loc 1 7315 12 is_stmt 0 view .LVU30
140 0000 436B ldr r3, [r0, #52]
141 .loc 1 7315 6 view .LVU31
142 0002 234A ldr r2, .L22
143 0004 9342 cmp r3, r2
144 0006 1FD0 beq .L7
145 .loc 1 7315 45 discriminator 1 view .LVU32
146 0008 224A ldr r2, .L22+4
147 000a 9342 cmp r3, r2
148 000c 1CD0 beq .L7
7316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \
149 .loc 1 7316 44 view .LVU33
150 000e 224A ldr r2, .L22+8
151 0010 9342 cmp r3, r2
152 0012 19D0 beq .L7
7317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->XferISR != I2C_Mem_ISR_DMA))
7318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 132
7319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
153 .loc 1 7319 5 is_stmt 1 view .LVU34
154 .loc 1 7319 8 is_stmt 0 view .LVU35
155 0014 11F4004F tst r1, #32768
156 0018 0FD1 bne .L18
7313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
157 .loc 1 7313 12 view .LVU36
158 001a 0023 movs r3, #0
159 .L8:
160 .LVL8:
7320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
7322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
7323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
161 .loc 1 7325 5 is_stmt 1 view .LVU37
162 .loc 1 7325 8 is_stmt 0 view .LVU38
163 001c 11F0010F tst r1, #1
164 0020 01D0 beq .L9
7326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
7328: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;
165 .loc 1 7328 7 is_stmt 1 view .LVU39
166 .loc 1 7328 14 is_stmt 0 view .LVU40
167 0022 43F0F203 orr r3, r3, #242
168 .LVL9:
169 .L9:
7329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
170 .loc 1 7331 5 is_stmt 1 view .LVU41
171 .loc 1 7331 8 is_stmt 0 view .LVU42
172 0026 11F0020F tst r1, #2
173 002a 08D0 beq .L10
7332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
7334: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;
174 .loc 1 7334 7 is_stmt 1 view .LVU43
175 .loc 1 7334 14 is_stmt 0 view .LVU44
176 002c 43F0F403 orr r3, r3, #244
177 .LVL10:
7335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
178 .loc 1 7337 5 is_stmt 1 view .LVU45
179 .L11:
7338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
7340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
7341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
180 .loc 1 7343 5 view .LVU46
181 .loc 1 7343 8 is_stmt 0 view .LVU47
182 0030 2029 cmp r1, #32
183 0032 1BD1 bne .L12
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 133
7344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */
7346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
184 .loc 1 7346 7 is_stmt 1 view .LVU48
185 .loc 1 7346 14 is_stmt 0 view .LVU49
186 0034 43F02003 orr r3, r3, #32
187 .LVL11:
188 .loc 1 7346 14 view .LVU50
189 0038 18E0 b .L12
190 .LVL12:
191 .L18:
7322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
192 .loc 1 7322 14 view .LVU51
193 003a B823 movs r3, #184
194 003c EEE7 b .L8
195 .LVL13:
196 .L10:
7337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
197 .loc 1 7337 5 is_stmt 1 view .LVU52
7337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
198 .loc 1 7337 8 is_stmt 0 view .LVU53
199 003e 1029 cmp r1, #16
200 0040 F6D1 bne .L11
7340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
201 .loc 1 7340 7 is_stmt 1 view .LVU54
7340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
202 .loc 1 7340 14 is_stmt 0 view .LVU55
203 0042 43F09003 orr r3, r3, #144
204 .LVL14:
7343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
205 .loc 1 7343 5 is_stmt 1 view .LVU56
206 0046 11E0 b .L12
207 .LVL15:
208 .L7:
7347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
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 **** else
7351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
209 .loc 1 7352 5 view .LVU57
210 .loc 1 7352 8 is_stmt 0 view .LVU58
211 0048 11F4004F tst r1, #32768
212 004c 13D1 bne .L19
7313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
213 .loc 1 7313 12 view .LVU59
214 004e 0023 movs r3, #0
215 .L13:
216 .LVL16:
7353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
7355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
7356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
217 .loc 1 7358 5 is_stmt 1 view .LVU60
218 .loc 1 7358 8 is_stmt 0 view .LVU61
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 134
219 0050 11F0010F tst r1, #1
220 0054 01D0 beq .L14
7359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
7361: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;
221 .loc 1 7361 7 is_stmt 1 view .LVU62
222 .loc 1 7361 14 is_stmt 0 view .LVU63
223 0056 43F0F203 orr r3, r3, #242
224 .LVL17:
225 .L14:
7362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
226 .loc 1 7364 5 is_stmt 1 view .LVU64
227 .loc 1 7364 8 is_stmt 0 view .LVU65
228 005a 11F0020F tst r1, #2
229 005e 0CD0 beq .L15
7365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
7367: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;
230 .loc 1 7367 7 is_stmt 1 view .LVU66
231 .loc 1 7367 14 is_stmt 0 view .LVU67
232 0060 43F0F403 orr r3, r3, #244
233 .LVL18:
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_ERROR_IT)
234 .loc 1 7370 5 is_stmt 1 view .LVU68
235 .L16:
7371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
7373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
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_CPLT_IT)
236 .loc 1 7376 5 view .LVU69
237 .loc 1 7376 8 is_stmt 0 view .LVU70
238 0064 2029 cmp r1, #32
239 0066 0DD0 beq .L20
240 .L17:
7377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */
7379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI);
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_RELOAD_IT)
241 .loc 1 7382 5 is_stmt 1 view .LVU71
242 .loc 1 7382 8 is_stmt 0 view .LVU72
243 0068 4029 cmp r1, #64
244 006a 0ED0 beq .L21
245 .LVL19:
246 .L12:
7383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */
7385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
7386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 135
7388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable interrupts only at the end */
7390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */
7391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* all interrupts requested done */
7392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr);
247 .loc 1 7392 3 is_stmt 1 view .LVU73
248 006c 0168 ldr r1, [r0]
249 .LVL20:
250 .loc 1 7392 3 is_stmt 0 view .LVU74
251 006e 0A68 ldr r2, [r1]
252 0070 1343 orrs r3, r3, r2
253 .LVL21:
254 .loc 1 7392 3 view .LVU75
255 0072 0B60 str r3, [r1]
7393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
256 .loc 1 7393 1 view .LVU76
257 0074 7047 bx lr
258 .LVL22:
259 .L19:
7355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
260 .loc 1 7355 14 view .LVU77
261 0076 B823 movs r3, #184
262 0078 EAE7 b .L13
263 .LVL23:
264 .L15:
7370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
265 .loc 1 7370 5 is_stmt 1 view .LVU78
7370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
266 .loc 1 7370 8 is_stmt 0 view .LVU79
267 007a 1029 cmp r1, #16
268 007c F2D1 bne .L16
7373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
269 .loc 1 7373 7 is_stmt 1 view .LVU80
7373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
270 .loc 1 7373 14 is_stmt 0 view .LVU81
271 007e 43F09003 orr r3, r3, #144
272 .LVL24:
7376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
273 .loc 1 7376 5 is_stmt 1 view .LVU82
274 0082 F1E7 b .L17
275 .L20:
7379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
276 .loc 1 7379 7 view .LVU83
7379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
277 .loc 1 7379 14 is_stmt 0 view .LVU84
278 0084 43F06003 orr r3, r3, #96
279 .LVL25:
7382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
280 .loc 1 7382 5 is_stmt 1 view .LVU85
281 0088 F0E7 b .L12
282 .L21:
7385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
283 .loc 1 7385 7 view .LVU86
7385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
284 .loc 1 7385 14 is_stmt 0 view .LVU87
285 008a 43F04003 orr r3, r3, #64
286 .LVL26:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 136
7385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
287 .loc 1 7385 14 view .LVU88
288 008e EDE7 b .L12
289 .L23:
290 .align 2
291 .L22:
292 0090 00000000 .word I2C_Master_ISR_DMA
293 0094 00000000 .word I2C_Slave_ISR_DMA
294 0098 00000000 .word I2C_Mem_ISR_DMA
295 .cfi_endproc
296 .LFE413:
298 .section .text.I2C_Disable_IRQ,"ax",%progbits
299 .align 1
300 .syntax unified
301 .thumb
302 .thumb_func
304 I2C_Disable_IRQ:
305 .LVL27:
306 .LFB414:
7394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
7396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts.
7397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
7399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
7400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
7401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
7402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
7403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
307 .loc 1 7403 1 is_stmt 1 view -0
308 .cfi_startproc
309 @ args = 0, pretend = 0, frame = 0
310 @ frame_needed = 0, uses_anonymous_args = 0
311 @ link register save eliminated.
7404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpisr = 0U;
312 .loc 1 7404 3 view .LVU90
7405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
313 .loc 1 7406 3 view .LVU91
314 .loc 1 7406 6 is_stmt 0 view .LVU92
315 0000 11F0010F tst r1, #1
316 0004 09D0 beq .L31
7407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC and TXI interrupts */
7409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI;
317 .loc 1 7409 5 is_stmt 1 view .LVU93
318 .LVL28:
7410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7411: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)
319 .loc 1 7411 5 view .LVU94
320 .loc 1 7411 24 is_stmt 0 view .LVU95
321 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
322 .loc 1 7411 8 view .LVU96
323 000a 03F02803 and r3, r3, #40
324 000e 282B cmp r3, #40
325 0010 01D0 beq .L34
7412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 137
7413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
7414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
326 .loc 1 7414 14 view .LVU97
327 0012 F223 movs r3, #242
328 0014 02E0 b .L25
329 .L34:
7409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
330 .loc 1 7409 12 view .LVU98
331 0016 4223 movs r3, #66
332 0018 00E0 b .L25
333 .LVL29:
334 .L31:
7404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
335 .loc 1 7404 12 view .LVU99
336 001a 0023 movs r3, #0
337 .LVL30:
338 .L25:
7415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
339 .loc 1 7418 3 is_stmt 1 view .LVU100
340 .loc 1 7418 6 is_stmt 0 view .LVU101
341 001c 11F0020F tst r1, #2
342 0020 09D0 beq .L26
7419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC and RXI interrupts */
7421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI;
343 .loc 1 7421 5 is_stmt 1 view .LVU102
344 .loc 1 7421 12 is_stmt 0 view .LVU103
345 0022 43F0440C orr ip, r3, #68
346 .LVL31:
7422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7423: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)
347 .loc 1 7423 5 is_stmt 1 view .LVU104
348 .loc 1 7423 24 is_stmt 0 view .LVU105
349 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2
350 .loc 1 7423 8 view .LVU106
351 002a 02F02802 and r2, r2, #40
352 002e 282A cmp r2, #40
353 0030 09D0 beq .L33
7424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
7426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
354 .loc 1 7426 7 is_stmt 1 view .LVU107
355 .loc 1 7426 14 is_stmt 0 view .LVU108
356 0032 43F0F403 orr r3, r3, #244
357 .LVL32:
358 .L26:
7427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
359 .loc 1 7430 3 is_stmt 1 view .LVU109
360 .loc 1 7430 6 is_stmt 0 view .LVU110
361 0036 11F4004F tst r1, #32768
362 003a 06D1 bne .L35
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 138
7431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */
7433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
7434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
363 .loc 1 7436 3 is_stmt 1 view .LVU111
364 .loc 1 7436 6 is_stmt 0 view .LVU112
365 003c 1029 cmp r1, #16
366 003e 06D1 bne .L28
7437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
7439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
367 .loc 1 7439 5 is_stmt 1 view .LVU113
368 .loc 1 7439 12 is_stmt 0 view .LVU114
369 0040 43F09003 orr r3, r3, #144
370 .LVL33:
7440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
371 .loc 1 7442 3 is_stmt 1 view .LVU115
372 0044 05E0 b .L29
373 .LVL34:
374 .L33:
7421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
375 .loc 1 7421 12 is_stmt 0 view .LVU116
376 0046 6346 mov r3, ip
377 0048 F5E7 b .L26
378 .LVL35:
379 .L35:
7433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
380 .loc 1 7433 5 is_stmt 1 view .LVU117
7433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
381 .loc 1 7433 12 is_stmt 0 view .LVU118
382 004a 43F0B803 orr r3, r3, #184
383 .LVL36:
7436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
384 .loc 1 7436 3 is_stmt 1 view .LVU119
385 .L28:
386 .loc 1 7442 3 view .LVU120
387 .loc 1 7442 6 is_stmt 0 view .LVU121
388 004e 2029 cmp r1, #32
389 0050 07D0 beq .L36
390 .L29:
7443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */
7445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
7446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT)
391 .loc 1 7448 3 is_stmt 1 view .LVU122
392 .loc 1 7448 6 is_stmt 0 view .LVU123
393 0052 4029 cmp r1, #64
394 0054 08D0 beq .L37
395 .LVL37:
396 .L30:
7449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 139
7450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */
7451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
7452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable interrupts only at the end */
7455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */
7456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* all disable interrupts request are not done */
7457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr);
397 .loc 1 7457 3 is_stmt 1 view .LVU124
398 0056 0168 ldr r1, [r0]
399 .LVL38:
400 .loc 1 7457 3 is_stmt 0 view .LVU125
401 0058 0A68 ldr r2, [r1]
402 005a 22EA0303 bic r3, r2, r3
403 .LVL39:
404 .loc 1 7457 3 view .LVU126
405 005e 0B60 str r3, [r1]
7458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
406 .loc 1 7458 1 view .LVU127
407 0060 7047 bx lr
408 .LVL40:
409 .L36:
7445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
410 .loc 1 7445 5 is_stmt 1 view .LVU128
7445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
411 .loc 1 7445 12 is_stmt 0 view .LVU129
412 0062 43F02003 orr r3, r3, #32
413 .LVL41:
7448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
414 .loc 1 7448 3 is_stmt 1 view .LVU130
415 0066 F6E7 b .L30
416 .L37:
7451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
417 .loc 1 7451 5 view .LVU131
7451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
418 .loc 1 7451 12 is_stmt 0 view .LVU132
419 0068 43F04003 orr r3, r3, #64
420 .LVL42:
7451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
421 .loc 1 7451 12 view .LVU133
422 006c F3E7 b .L30
423 .cfi_endproc
424 .LFE414:
426 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits
427 .align 1
428 .syntax unified
429 .thumb
430 .thumb_func
432 I2C_ConvertOtherXferOptions:
433 .LVL43:
434 .LFB415:
7459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
7461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions.
7462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
7463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
7464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 140
7465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c)
7466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
435 .loc 1 7466 1 is_stmt 1 view -0
436 .cfi_startproc
437 @ args = 0, pretend = 0, frame = 0
438 @ frame_needed = 0, uses_anonymous_args = 0
439 @ link register save eliminated.
7467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */
7468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
7469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */
7470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME)
440 .loc 1 7470 3 view .LVU135
441 .loc 1 7470 11 is_stmt 0 view .LVU136
442 0000 C36A ldr r3, [r0, #44]
443 .loc 1 7470 6 view .LVU137
444 0002 AA2B cmp r3, #170
445 0004 04D0 beq .L41
7471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME;
7473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */
7475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
7476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */
7477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */
7478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME)
446 .loc 1 7478 8 is_stmt 1 view .LVU138
447 .loc 1 7478 16 is_stmt 0 view .LVU139
448 0006 C36A ldr r3, [r0, #44]
449 .loc 1 7478 11 view .LVU140
450 0008 B3F52A4F cmp r3, #43520
451 000c 03D0 beq .L42
452 .L38:
7479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME;
7481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
7483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
7485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
453 .loc 1 7486 1 view .LVU141
454 000e 7047 bx lr
455 .L41:
7472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
456 .loc 1 7472 5 is_stmt 1 view .LVU142
7472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
457 .loc 1 7472 23 is_stmt 0 view .LVU143
458 0010 0023 movs r3, #0
459 0012 C362 str r3, [r0, #44]
460 0014 7047 bx lr
461 .L42:
7480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
462 .loc 1 7480 5 is_stmt 1 view .LVU144
7480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
463 .loc 1 7480 23 is_stmt 0 view .LVU145
464 0016 4FF00073 mov r3, #33554432
465 001a C362 str r3, [r0, #44]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 141
7485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
466 .loc 1 7485 3 is_stmt 1 view .LVU146
467 .loc 1 7486 1 is_stmt 0 view .LVU147
468 001c F7E7 b .L38
469 .cfi_endproc
470 .LFE415:
472 .section .text.I2C_IsErrorOccurred,"ax",%progbits
473 .align 1
474 .syntax unified
475 .thumb
476 .thumb_func
478 I2C_IsErrorOccurred:
479 .LVL44:
480 .LFB411:
7144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
481 .loc 1 7144 1 is_stmt 1 view -0
482 .cfi_startproc
483 @ args = 0, pretend = 0, frame = 0
484 @ frame_needed = 0, uses_anonymous_args = 0
7144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
485 .loc 1 7144 1 is_stmt 0 view .LVU149
486 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
487 .cfi_def_cfa_offset 24
488 .cfi_offset 4, -24
489 .cfi_offset 5, -20
490 .cfi_offset 6, -16
491 .cfi_offset 7, -12
492 .cfi_offset 8, -8
493 .cfi_offset 14, -4
494 0004 0446 mov r4, r0
7145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
495 .loc 1 7145 3 is_stmt 1 view .LVU150
496 .LVL45:
7146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0;
497 .loc 1 7146 3 view .LVU151
7146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0;
498 .loc 1 7146 27 is_stmt 0 view .LVU152
499 0006 0368 ldr r3, [r0]
7146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0;
500 .loc 1 7146 12 view .LVU153
501 0008 9E69 ldr r6, [r3, #24]
502 .LVL46:
7147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart = Tickstart;
503 .loc 1 7147 3 is_stmt 1 view .LVU154
7148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp1;
504 .loc 1 7148 3 view .LVU155
7149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2;
505 .loc 1 7149 3 view .LVU156
7150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
506 .loc 1 7150 3 view .LVU157
7152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
507 .loc 1 7152 3 view .LVU158
7152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
508 .loc 1 7152 6 is_stmt 0 view .LVU159
509 000a 16F01006 ands r6, r6, #16
510 .LVL47:
7152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 142
511 .loc 1 7152 6 view .LVU160
512 000e 7ED0 beq .L60
513 0010 0D46 mov r5, r1
514 0012 9046 mov r8, r2
7155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
515 .loc 1 7155 5 is_stmt 1 view .LVU161
516 0014 1022 movs r2, #16
517 .LVL48:
7155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
518 .loc 1 7155 5 is_stmt 0 view .LVU162
519 0016 DA61 str r2, [r3, #28]
7159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
520 .loc 1 7159 5 is_stmt 1 view .LVU163
7147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart = Tickstart;
521 .loc 1 7147 12 is_stmt 0 view .LVU164
522 0018 0026 movs r6, #0
7145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
523 .loc 1 7145 21 view .LVU165
524 001a 3746 mov r7, r6
525 .LVL49:
526 .L46:
7159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
527 .loc 1 7159 64 is_stmt 1 view .LVU166
7159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
528 .loc 1 7159 13 is_stmt 0 view .LVU167
529 001c 2368 ldr r3, [r4]
530 001e 9869 ldr r0, [r3, #24]
7159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
531 .loc 1 7159 64 view .LVU168
532 0020 10F0200F tst r0, #32
533 0024 32D1 bne .L52
7159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
534 .loc 1 7159 64 discriminator 1 view .LVU169
535 0026 8FBB cbnz r7, .L52
7162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
536 .loc 1 7162 7 is_stmt 1 view .LVU170
7162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
537 .loc 1 7162 10 is_stmt 0 view .LVU171
538 0028 B5F1FF3F cmp r5, #-1
539 002c F6D0 beq .L46
7164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
540 .loc 1 7164 9 is_stmt 1 view .LVU172
7164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
541 .loc 1 7164 15 is_stmt 0 view .LVU173
542 002e FFF7FEFF bl HAL_GetTick
543 .LVL50:
7164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
544 .loc 1 7164 29 discriminator 1 view .LVU174
545 0032 A0EB0800 sub r0, r0, r8
7164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
546 .loc 1 7164 12 discriminator 1 view .LVU175
547 0036 A842 cmp r0, r5
548 0038 01D8 bhi .L47
7164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
549 .loc 1 7164 53 discriminator 1 view .LVU176
550 003a 002D cmp r5, #0
551 003c EED1 bne .L46
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 143
552 .L47:
7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode;
553 .loc 1 7166 11 is_stmt 1 view .LVU177
7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode;
554 .loc 1 7166 33 is_stmt 0 view .LVU178
555 003e 2168 ldr r1, [r4]
7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode;
556 .loc 1 7166 43 view .LVU179
557 0040 4A68 ldr r2, [r1, #4]
7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode;
558 .loc 1 7166 16 view .LVU180
559 0042 02F48042 and r2, r2, #16384
560 .LVL51:
7167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
561 .loc 1 7167 11 is_stmt 1 view .LVU181
7167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
562 .loc 1 7167 16 is_stmt 0 view .LVU182
563 0046 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2
564 004a DBB2 uxtb r3, r3
565 .LVL52:
7170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
566 .loc 1 7170 11 is_stmt 1 view .LVU183
7170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
567 .loc 1 7170 16 is_stmt 0 view .LVU184
568 004c 8869 ldr r0, [r1, #24]
7170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
569 .loc 1 7170 14 view .LVU185
570 004e 10F4004F tst r0, #32768
571 0052 04D0 beq .L50
7172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
572 .loc 1 7172 21 view .LVU186
573 0054 203B subs r3, r3, #32
574 .LVL53:
7172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
575 .loc 1 7172 21 view .LVU187
576 0056 18BF it ne
577 0058 0123 movne r3, #1
578 .LVL54:
7171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE))
579 .loc 1 7171 38 view .LVU188
580 005a 02B9 cbnz r2, .L50
581 005c 73B9 cbnz r3, .L62
582 .LVL55:
583 .L50:
7181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
584 .loc 1 7181 59 is_stmt 1 view .LVU189
7181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
585 .loc 1 7181 18 is_stmt 0 view .LVU190
586 005e 2368 ldr r3, [r4]
587 0060 9B69 ldr r3, [r3, #24]
7181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
588 .loc 1 7181 59 view .LVU191
589 0062 13F0200F tst r3, #32
590 0066 D9D1 bne .L46
7184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
591 .loc 1 7184 13 is_stmt 1 view .LVU192
7184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 144
592 .loc 1 7184 18 is_stmt 0 view .LVU193
593 0068 FFF7FEFF bl HAL_GetTick
594 .LVL56:
7184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
595 .loc 1 7184 32 discriminator 1 view .LVU194
596 006c A0EB0800 sub r0, r0, r8
7184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
597 .loc 1 7184 16 discriminator 1 view .LVU195
598 0070 1928 cmp r0, #25
599 0072 F4D9 bls .L50
7186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
600 .loc 1 7186 15 is_stmt 1 view .LVU196
7186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
601 .loc 1 7186 26 is_stmt 0 view .LVU197
602 0074 46F02006 orr r6, r6, #32
603 .LVL57:
7188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
604 .loc 1 7188 15 is_stmt 1 view .LVU198
7190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
605 .loc 1 7190 15 view .LVU199
7188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
606 .loc 1 7188 22 is_stmt 0 view .LVU200
607 0078 0127 movs r7, #1
7190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
608 .loc 1 7190 15 view .LVU201
609 007a CFE7 b .L46
610 .LVL58:
611 .L62:
7175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
612 .loc 1 7175 13 is_stmt 1 view .LVU202
7175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
613 .loc 1 7175 27 is_stmt 0 view .LVU203
614 007c 4B68 ldr r3, [r1, #4]
7175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
615 .loc 1 7175 33 view .LVU204
616 007e 43F48043 orr r3, r3, #16384
617 0082 4B60 str r3, [r1, #4]
7178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
618 .loc 1 7178 13 is_stmt 1 view .LVU205
7178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
619 .loc 1 7178 25 is_stmt 0 view .LVU206
620 0084 FFF7FEFF bl HAL_GetTick
621 .LVL59:
7178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
622 .loc 1 7178 25 view .LVU207
623 0088 8046 mov r8, r0
624 .LVL60:
7178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
625 .loc 1 7178 25 view .LVU208
626 008a E8E7 b .L50
627 .LVL61:
628 .L52:
7198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
629 .loc 1 7198 5 is_stmt 1 view .LVU209
7198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
630 .loc 1 7198 8 is_stmt 0 view .LVU210
631 008c 0FB9 cbnz r7, .L54
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 145
7201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
632 .loc 1 7201 7 is_stmt 1 view .LVU211
633 008e 2022 movs r2, #32
634 0090 DA61 str r2, [r3, #28]
635 .L54:
7204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
636 .loc 1 7204 5 view .LVU212
7204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
637 .loc 1 7204 16 is_stmt 0 view .LVU213
638 0092 46F00406 orr r6, r6, #4
639 .LVL62:
7206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
640 .loc 1 7206 5 is_stmt 1 view .LVU214
7206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
641 .loc 1 7206 12 is_stmt 0 view .LVU215
642 0096 0125 movs r5, #1
643 .LVL63:
644 .L44:
7210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
645 .loc 1 7210 3 is_stmt 1 view .LVU216
7210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
646 .loc 1 7210 16 is_stmt 0 view .LVU217
647 0098 2268 ldr r2, [r4]
7210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
648 .loc 1 7210 10 view .LVU218
649 009a 9369 ldr r3, [r2, #24]
650 .LVL64:
7214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
651 .loc 1 7214 3 is_stmt 1 view .LVU219
7214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
652 .loc 1 7214 6 is_stmt 0 view .LVU220
653 009c 13F4807F tst r3, #256
654 00a0 05D0 beq .L55
7216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
655 .loc 1 7216 5 is_stmt 1 view .LVU221
7216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
656 .loc 1 7216 16 is_stmt 0 view .LVU222
657 00a2 46F00106 orr r6, r6, #1
658 .LVL65:
7219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
659 .loc 1 7219 5 is_stmt 1 view .LVU223
660 00a6 4FF48071 mov r1, #256
661 00aa D161 str r1, [r2, #28]
7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
662 .loc 1 7221 5 view .LVU224
663 .LVL66:
7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
664 .loc 1 7221 12 is_stmt 0 view .LVU225
665 00ac 0125 movs r5, #1
666 .LVL67:
667 .L55:
7225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
668 .loc 1 7225 3 is_stmt 1 view .LVU226
7225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
669 .loc 1 7225 6 is_stmt 0 view .LVU227
670 00ae 13F4806F tst r3, #1024
671 00b2 06D0 beq .L56
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 146
7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
672 .loc 1 7227 5 is_stmt 1 view .LVU228
7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
673 .loc 1 7227 16 is_stmt 0 view .LVU229
674 00b4 46F00806 orr r6, r6, #8
675 .LVL68:
7230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
676 .loc 1 7230 5 is_stmt 1 view .LVU230
677 00b8 2268 ldr r2, [r4]
678 00ba 4FF48061 mov r1, #1024
679 00be D161 str r1, [r2, #28]
7232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
680 .loc 1 7232 5 view .LVU231
681 .LVL69:
7232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
682 .loc 1 7232 12 is_stmt 0 view .LVU232
683 00c0 0125 movs r5, #1
684 .LVL70:
685 .L56:
7236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
686 .loc 1 7236 3 is_stmt 1 view .LVU233
7236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
687 .loc 1 7236 6 is_stmt 0 view .LVU234
688 00c2 13F4007F tst r3, #512
689 00c6 24D0 beq .L57
7238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
690 .loc 1 7238 5 is_stmt 1 view .LVU235
7238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
691 .loc 1 7238 16 is_stmt 0 view .LVU236
692 00c8 46F00206 orr r6, r6, #2
693 .LVL71:
7241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
694 .loc 1 7241 5 is_stmt 1 view .LVU237
695 00cc 2368 ldr r3, [r4]
696 .LVL72:
7241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
697 .loc 1 7241 5 is_stmt 0 view .LVU238
698 00ce 4FF40072 mov r2, #512
699 00d2 DA61 str r2, [r3, #28]
7243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
700 .loc 1 7243 5 is_stmt 1 view .LVU239
701 .LVL73:
7246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
702 .loc 1 7246 3 view .LVU240
7243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
703 .loc 1 7243 12 is_stmt 0 view .LVU241
704 00d4 0125 movs r5, #1
705 .LVL74:
706 .L58:
7249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
707 .loc 1 7249 5 is_stmt 1 view .LVU242
708 00d6 2046 mov r0, r4
709 00d8 FFF7FEFF bl I2C_Flush_TXDR
710 .LVL75:
7252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
711 .loc 1 7252 5 view .LVU243
712 00dc 2268 ldr r2, [r4]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 147
713 00de 5368 ldr r3, [r2, #4]
714 00e0 23F0FF73 bic r3, r3, #33423360
715 00e4 23F48B33 bic r3, r3, #71168
716 00e8 23F4FF73 bic r3, r3, #510
717 00ec 23F00103 bic r3, r3, #1
718 00f0 5360 str r3, [r2, #4]
7254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
719 .loc 1 7254 5 view .LVU244
7254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
720 .loc 1 7254 9 is_stmt 0 view .LVU245
721 00f2 636C ldr r3, [r4, #68]
7254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
722 .loc 1 7254 21 view .LVU246
723 00f4 3343 orrs r3, r3, r6
724 00f6 6364 str r3, [r4, #68]
7255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
725 .loc 1 7255 5 is_stmt 1 view .LVU247
7255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
726 .loc 1 7255 17 is_stmt 0 view .LVU248
727 00f8 2023 movs r3, #32
728 00fa 84F84130 strb r3, [r4, #65]
7256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
729 .loc 1 7256 5 is_stmt 1 view .LVU249
7256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
730 .loc 1 7256 16 is_stmt 0 view .LVU250
731 00fe 0023 movs r3, #0
732 0100 84F84230 strb r3, [r4, #66]
7259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
733 .loc 1 7259 5 is_stmt 1 view .LVU251
7259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
734 .loc 1 7259 5 view .LVU252
735 0104 84F84030 strb r3, [r4, #64]
736 .L59:
7259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
737 .loc 1 7259 5 discriminator 1 view .LVU253
7262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
738 .loc 1 7262 3 view .LVU254
7263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
739 .loc 1 7263 1 is_stmt 0 view .LVU255
740 0108 2846 mov r0, r5
741 010a BDE8F081 pop {r4, r5, r6, r7, r8, pc}
742 .LVL76:
743 .L60:
7145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
744 .loc 1 7145 21 view .LVU256
745 010e 0025 movs r5, #0
746 0110 C2E7 b .L44
747 .LVL77:
748 .L57:
7246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
749 .loc 1 7246 3 is_stmt 1 view .LVU257
7246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
750 .loc 1 7246 6 is_stmt 0 view .LVU258
751 0112 002D cmp r5, #0
752 0114 F8D0 beq .L59
753 0116 DEE7 b .L58
754 .cfi_endproc
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 148
755 .LFE411:
757 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits
758 .align 1
759 .syntax unified
760 .thumb
761 .thumb_func
763 I2C_WaitOnTXISFlagUntilTimeout:
764 .LVL78:
765 .LFB408:
6989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
766 .loc 1 6989 1 is_stmt 1 view -0
767 .cfi_startproc
768 @ args = 0, pretend = 0, frame = 0
769 @ frame_needed = 0, uses_anonymous_args = 0
6989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
770 .loc 1 6989 1 is_stmt 0 view .LVU260
771 0000 70B5 push {r4, r5, r6, lr}
772 .cfi_def_cfa_offset 16
773 .cfi_offset 4, -16
774 .cfi_offset 5, -12
775 .cfi_offset 6, -8
776 .cfi_offset 14, -4
777 0002 0446 mov r4, r0
778 0004 0D46 mov r5, r1
779 0006 1646 mov r6, r2
6990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
780 .loc 1 6990 3 is_stmt 1 view .LVU261
781 .LVL79:
782 .L66:
6990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
783 .loc 1 6990 50 view .LVU262
6990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
784 .loc 1 6990 10 is_stmt 0 view .LVU263
785 0008 2368 ldr r3, [r4]
786 000a 9B69 ldr r3, [r3, #24]
6990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
787 .loc 1 6990 50 view .LVU264
788 000c 13F0020F tst r3, #2
789 0010 22D1 bne .L71
6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
790 .loc 1 6993 5 is_stmt 1 view .LVU265
6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
791 .loc 1 6993 9 is_stmt 0 view .LVU266
792 0012 3246 mov r2, r6
793 0014 2946 mov r1, r5
794 0016 2046 mov r0, r4
795 0018 FFF7FEFF bl I2C_IsErrorOccurred
796 .LVL80:
6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
797 .loc 1 6993 8 discriminator 1 view .LVU267
798 001c F0B9 cbnz r0, .L69
6999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
799 .loc 1 6999 5 is_stmt 1 view .LVU268
6999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
800 .loc 1 6999 8 is_stmt 0 view .LVU269
801 001e B5F1FF3F cmp r5, #-1
802 0022 F1D0 beq .L66
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 149
7001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
803 .loc 1 7001 7 is_stmt 1 view .LVU270
7001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
804 .loc 1 7001 13 is_stmt 0 view .LVU271
805 0024 FFF7FEFF bl HAL_GetTick
806 .LVL81:
7001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
807 .loc 1 7001 27 discriminator 1 view .LVU272
808 0028 801B subs r0, r0, r6
7001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
809 .loc 1 7001 10 discriminator 1 view .LVU273
810 002a A842 cmp r0, r5
811 002c 01D8 bhi .L67
7001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
812 .loc 1 7001 51 discriminator 1 view .LVU274
813 002e 002D cmp r5, #0
814 0030 EAD1 bne .L66
815 .L67:
7003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
816 .loc 1 7003 9 is_stmt 1 view .LVU275
7003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
817 .loc 1 7003 14 is_stmt 0 view .LVU276
818 0032 2368 ldr r3, [r4]
819 0034 9B69 ldr r3, [r3, #24]
7003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
820 .loc 1 7003 12 view .LVU277
821 0036 13F0020F tst r3, #2
822 003a E5D1 bne .L66
7005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
823 .loc 1 7005 11 is_stmt 1 view .LVU278
7005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
824 .loc 1 7005 15 is_stmt 0 view .LVU279
825 003c 636C ldr r3, [r4, #68]
7005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
826 .loc 1 7005 27 view .LVU280
827 003e 43F02003 orr r3, r3, #32
828 0042 6364 str r3, [r4, #68]
7006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
829 .loc 1 7006 11 is_stmt 1 view .LVU281
7006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
830 .loc 1 7006 23 is_stmt 0 view .LVU282
831 0044 2023 movs r3, #32
832 0046 84F84130 strb r3, [r4, #65]
7007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
833 .loc 1 7007 11 is_stmt 1 view .LVU283
7007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
834 .loc 1 7007 22 is_stmt 0 view .LVU284
835 004a 0023 movs r3, #0
836 004c 84F84230 strb r3, [r4, #66]
7010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
837 .loc 1 7010 11 is_stmt 1 view .LVU285
7010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
838 .loc 1 7010 11 view .LVU286
839 0050 84F84030 strb r3, [r4, #64]
7010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
840 .loc 1 7010 11 view .LVU287
7012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 150
841 .loc 1 7012 11 view .LVU288
7012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
842 .loc 1 7012 18 is_stmt 0 view .LVU289
843 0054 0120 movs r0, #1
844 0056 00E0 b .L65
845 .L71:
7017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
846 .loc 1 7017 10 view .LVU290
847 0058 0020 movs r0, #0
848 .L65:
7018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
849 .loc 1 7018 1 view .LVU291
850 005a 70BD pop {r4, r5, r6, pc}
851 .LVL82:
852 .L69:
6995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
853 .loc 1 6995 14 view .LVU292
854 005c 0120 movs r0, #1
855 005e FCE7 b .L65
856 .cfi_endproc
857 .LFE408:
859 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits
860 .align 1
861 .syntax unified
862 .thumb
863 .thumb_func
865 I2C_WaitOnFlagUntilTimeout:
866 .LVL83:
867 .LFB407:
6949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
868 .loc 1 6949 1 is_stmt 1 view -0
869 .cfi_startproc
870 @ args = 4, pretend = 0, frame = 0
871 @ frame_needed = 0, uses_anonymous_args = 0
6949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
872 .loc 1 6949 1 is_stmt 0 view .LVU294
873 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr}
874 .cfi_def_cfa_offset 32
875 .cfi_offset 3, -32
876 .cfi_offset 4, -28
877 .cfi_offset 5, -24
878 .cfi_offset 6, -20
879 .cfi_offset 7, -16
880 .cfi_offset 8, -12
881 .cfi_offset 9, -8
882 .cfi_offset 14, -4
883 0004 0546 mov r5, r0
884 0006 8846 mov r8, r1
885 0008 1746 mov r7, r2
886 000a 1E46 mov r6, r3
887 000c DDF82090 ldr r9, [sp, #32]
6950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
888 .loc 1 6950 3 is_stmt 1 view .LVU295
889 .LVL84:
890 .L75:
6950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
891 .loc 1 6950 41 view .LVU296
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 151
6950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
892 .loc 1 6950 10 is_stmt 0 view .LVU297
893 0010 2B68 ldr r3, [r5]
894 0012 9C69 ldr r4, [r3, #24]
895 0014 38EA0404 bics r4, r8, r4
896 0018 0CBF ite eq
897 001a 0123 moveq r3, #1
898 001c 0023 movne r3, #0
6950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
899 .loc 1 6950 41 view .LVU298
900 001e BB42 cmp r3, r7
901 0020 27D1 bne .L80
6953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
902 .loc 1 6953 5 is_stmt 1 view .LVU299
6953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
903 .loc 1 6953 9 is_stmt 0 view .LVU300
904 0022 4A46 mov r2, r9
905 0024 3146 mov r1, r6
906 0026 2846 mov r0, r5
907 0028 FFF7FEFF bl I2C_IsErrorOccurred
908 .LVL85:
6953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
909 .loc 1 6953 8 discriminator 1 view .LVU301
910 002c 20BB cbnz r0, .L78
6959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
911 .loc 1 6959 5 is_stmt 1 view .LVU302
6959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
912 .loc 1 6959 8 is_stmt 0 view .LVU303
913 002e B6F1FF3F cmp r6, #-1
914 0032 EDD0 beq .L75
6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
915 .loc 1 6961 7 is_stmt 1 view .LVU304
6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
916 .loc 1 6961 13 is_stmt 0 view .LVU305
917 0034 FFF7FEFF bl HAL_GetTick
918 .LVL86:
6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
919 .loc 1 6961 27 discriminator 1 view .LVU306
920 0038 A0EB0900 sub r0, r0, r9
6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
921 .loc 1 6961 10 discriminator 1 view .LVU307
922 003c B042 cmp r0, r6
923 003e 01D8 bhi .L76
6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
924 .loc 1 6961 51 discriminator 1 view .LVU308
925 0040 002E cmp r6, #0
926 0042 E5D1 bne .L75
927 .L76:
6963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
928 .loc 1 6963 9 is_stmt 1 view .LVU309
6963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
929 .loc 1 6963 14 is_stmt 0 view .LVU310
930 0044 2B68 ldr r3, [r5]
931 0046 9B69 ldr r3, [r3, #24]
932 0048 38EA0303 bics r3, r8, r3
933 004c 0CBF ite eq
934 004e 0123 moveq r3, #1
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 152
935 0050 0023 movne r3, #0
6963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
936 .loc 1 6963 12 view .LVU311
937 0052 BB42 cmp r3, r7
938 0054 DCD1 bne .L75
6965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
939 .loc 1 6965 11 is_stmt 1 view .LVU312
6965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
940 .loc 1 6965 15 is_stmt 0 view .LVU313
941 0056 6B6C ldr r3, [r5, #68]
6965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
942 .loc 1 6965 27 view .LVU314
943 0058 43F02003 orr r3, r3, #32
944 005c 6B64 str r3, [r5, #68]
6966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
945 .loc 1 6966 11 is_stmt 1 view .LVU315
6966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
946 .loc 1 6966 23 is_stmt 0 view .LVU316
947 005e 2023 movs r3, #32
948 0060 85F84130 strb r3, [r5, #65]
6967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
949 .loc 1 6967 11 is_stmt 1 view .LVU317
6967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
950 .loc 1 6967 22 is_stmt 0 view .LVU318
951 0064 0023 movs r3, #0
952 0066 85F84230 strb r3, [r5, #66]
6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
953 .loc 1 6970 11 is_stmt 1 view .LVU319
6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
954 .loc 1 6970 11 view .LVU320
955 006a 85F84030 strb r3, [r5, #64]
6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
956 .loc 1 6970 11 view .LVU321
6971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
957 .loc 1 6971 11 view .LVU322
6971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
958 .loc 1 6971 18 is_stmt 0 view .LVU323
959 006e 0120 movs r0, #1
960 0070 00E0 b .L74
961 .L80:
6976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
962 .loc 1 6976 10 view .LVU324
963 0072 0020 movs r0, #0
964 .L74:
6977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
965 .loc 1 6977 1 view .LVU325
966 0074 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
967 .LVL87:
968 .L78:
6955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
969 .loc 1 6955 14 view .LVU326
970 0078 0120 movs r0, #1
971 007a FBE7 b .L74
972 .cfi_endproc
973 .LFE407:
975 .section .text.I2C_RequestMemoryWrite,"ax",%progbits
976 .align 1
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 153
977 .syntax unified
978 .thumb
979 .thumb_func
981 I2C_RequestMemoryWrite:
982 .LVL88:
983 .LFB390:
5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
984 .loc 1 5794 1 is_stmt 1 view -0
985 .cfi_startproc
986 @ args = 8, pretend = 0, frame = 0
987 @ frame_needed = 0, uses_anonymous_args = 0
5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
988 .loc 1 5794 1 is_stmt 0 view .LVU328
989 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
990 .cfi_def_cfa_offset 24
991 .cfi_offset 4, -24
992 .cfi_offset 5, -20
993 .cfi_offset 6, -16
994 .cfi_offset 7, -12
995 .cfi_offset 8, -8
996 .cfi_offset 14, -4
997 0004 82B0 sub sp, sp, #8
998 .cfi_def_cfa_offset 32
999 0006 0446 mov r4, r0
1000 0008 9046 mov r8, r2
1001 000a 1D46 mov r5, r3
1002 000c 089E ldr r6, [sp, #32]
1003 000e 099F ldr r7, [sp, #36]
5795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1004 .loc 1 5795 3 is_stmt 1 view .LVU329
1005 0010 194B ldr r3, .L90
1006 .LVL89:
5795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1007 .loc 1 5795 3 is_stmt 0 view .LVU330
1008 0012 0093 str r3, [sp]
1009 0014 4FF08073 mov r3, #16777216
1010 0018 EAB2 uxtb r2, r5
1011 .LVL90:
5795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1012 .loc 1 5795 3 view .LVU331
1013 001a FFF7FEFF bl I2C_TransferConfig
1014 .LVL91:
5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1015 .loc 1 5798 3 is_stmt 1 view .LVU332
5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1016 .loc 1 5798 7 is_stmt 0 view .LVU333
1017 001e 3A46 mov r2, r7
1018 0020 3146 mov r1, r6
1019 0022 2046 mov r0, r4
1020 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1021 .LVL92:
5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1022 .loc 1 5798 6 discriminator 1 view .LVU334
1023 0028 F8B9 cbnz r0, .L85
5804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1024 .loc 1 5804 3 is_stmt 1 view .LVU335
5804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 154
1025 .loc 1 5804 6 is_stmt 0 view .LVU336
1026 002a 012D cmp r5, #1
1027 002c 0ED1 bne .L83
5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1028 .loc 1 5807 5 is_stmt 1 view .LVU337
5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1029 .loc 1 5807 9 is_stmt 0 view .LVU338
1030 002e 2368 ldr r3, [r4]
5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1031 .loc 1 5807 28 view .LVU339
1032 0030 5FFA88F2 uxtb r2, r8
5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1033 .loc 1 5807 26 view .LVU340
1034 0034 9A62 str r2, [r3, #40]
1035 .L84:
5826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1036 .loc 1 5826 3 is_stmt 1 view .LVU341
5826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1037 .loc 1 5826 7 is_stmt 0 view .LVU342
1038 0036 0097 str r7, [sp]
1039 0038 3346 mov r3, r6
1040 003a 0022 movs r2, #0
1041 003c 8021 movs r1, #128
1042 003e 2046 mov r0, r4
1043 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1044 .LVL93:
5826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1045 .loc 1 5826 6 discriminator 1 view .LVU343
1046 0044 A8B9 cbnz r0, .L89
1047 .L82:
5832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1048 .loc 1 5832 1 view .LVU344
1049 0046 02B0 add sp, sp, #8
1050 .cfi_remember_state
1051 .cfi_def_cfa_offset 24
1052 @ sp needed
1053 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
1054 .LVL94:
1055 .L83:
1056 .cfi_restore_state
5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1057 .loc 1 5813 5 is_stmt 1 view .LVU345
5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1058 .loc 1 5813 9 is_stmt 0 view .LVU346
1059 004c 2368 ldr r3, [r4]
5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1060 .loc 1 5813 28 view .LVU347
1061 004e 4FEA1822 lsr r2, r8, #8
5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1062 .loc 1 5813 26 view .LVU348
1063 0052 9A62 str r2, [r3, #40]
5816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1064 .loc 1 5816 5 is_stmt 1 view .LVU349
5816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1065 .loc 1 5816 9 is_stmt 0 view .LVU350
1066 0054 3A46 mov r2, r7
1067 0056 3146 mov r1, r6
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 155
1068 0058 2046 mov r0, r4
1069 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1070 .LVL95:
5816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1071 .loc 1 5816 8 discriminator 1 view .LVU351
1072 005e 30B9 cbnz r0, .L86
5822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1073 .loc 1 5822 5 is_stmt 1 view .LVU352
5822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1074 .loc 1 5822 9 is_stmt 0 view .LVU353
1075 0060 2368 ldr r3, [r4]
5822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1076 .loc 1 5822 28 view .LVU354
1077 0062 5FFA88F2 uxtb r2, r8
5822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1078 .loc 1 5822 26 view .LVU355
1079 0066 9A62 str r2, [r3, #40]
1080 0068 E5E7 b .L84
1081 .L85:
5800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1082 .loc 1 5800 12 view .LVU356
1083 006a 0120 movs r0, #1
1084 006c EBE7 b .L82
1085 .L86:
5818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1086 .loc 1 5818 14 view .LVU357
1087 006e 0120 movs r0, #1
1088 0070 E9E7 b .L82
1089 .L89:
5828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1090 .loc 1 5828 12 view .LVU358
1091 0072 0120 movs r0, #1
1092 0074 E7E7 b .L82
1093 .L91:
1094 0076 00BF .align 2
1095 .L90:
1096 0078 00200080 .word -2147475456
1097 .cfi_endproc
1098 .LFE390:
1100 .section .text.I2C_RequestMemoryRead,"ax",%progbits
1101 .align 1
1102 .syntax unified
1103 .thumb
1104 .thumb_func
1106 I2C_RequestMemoryRead:
1107 .LVL96:
1108 .LFB391:
5849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
1109 .loc 1 5849 1 is_stmt 1 view -0
1110 .cfi_startproc
1111 @ args = 8, pretend = 0, frame = 0
1112 @ frame_needed = 0, uses_anonymous_args = 0
5849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
1113 .loc 1 5849 1 is_stmt 0 view .LVU360
1114 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
1115 .cfi_def_cfa_offset 24
1116 .cfi_offset 4, -24
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 156
1117 .cfi_offset 5, -20
1118 .cfi_offset 6, -16
1119 .cfi_offset 7, -12
1120 .cfi_offset 8, -8
1121 .cfi_offset 14, -4
1122 0004 82B0 sub sp, sp, #8
1123 .cfi_def_cfa_offset 32
1124 0006 0446 mov r4, r0
1125 0008 9046 mov r8, r2
1126 000a 1D46 mov r5, r3
1127 000c 089E ldr r6, [sp, #32]
1128 000e 099F ldr r7, [sp, #36]
5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1129 .loc 1 5850 3 is_stmt 1 view .LVU361
1130 0010 184B ldr r3, .L101
1131 .LVL97:
5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1132 .loc 1 5850 3 is_stmt 0 view .LVU362
1133 0012 0093 str r3, [sp]
1134 0014 0023 movs r3, #0
1135 0016 EAB2 uxtb r2, r5
1136 .LVL98:
5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1137 .loc 1 5850 3 view .LVU363
1138 0018 FFF7FEFF bl I2C_TransferConfig
1139 .LVL99:
5853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1140 .loc 1 5853 3 is_stmt 1 view .LVU364
5853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1141 .loc 1 5853 7 is_stmt 0 view .LVU365
1142 001c 3A46 mov r2, r7
1143 001e 3146 mov r1, r6
1144 0020 2046 mov r0, r4
1145 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1146 .LVL100:
5853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1147 .loc 1 5853 6 discriminator 1 view .LVU366
1148 0026 F8B9 cbnz r0, .L96
5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1149 .loc 1 5859 3 is_stmt 1 view .LVU367
5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1150 .loc 1 5859 6 is_stmt 0 view .LVU368
1151 0028 012D cmp r5, #1
1152 002a 0ED1 bne .L94
5862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1153 .loc 1 5862 5 is_stmt 1 view .LVU369
5862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1154 .loc 1 5862 9 is_stmt 0 view .LVU370
1155 002c 2368 ldr r3, [r4]
5862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1156 .loc 1 5862 28 view .LVU371
1157 002e 5FFA88F2 uxtb r2, r8
5862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1158 .loc 1 5862 26 view .LVU372
1159 0032 9A62 str r2, [r3, #40]
1160 .L95:
5881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 157
1161 .loc 1 5881 3 is_stmt 1 view .LVU373
5881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1162 .loc 1 5881 7 is_stmt 0 view .LVU374
1163 0034 0097 str r7, [sp]
1164 0036 3346 mov r3, r6
1165 0038 0022 movs r2, #0
1166 003a 4021 movs r1, #64
1167 003c 2046 mov r0, r4
1168 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1169 .LVL101:
5881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1170 .loc 1 5881 6 discriminator 1 view .LVU375
1171 0042 A8B9 cbnz r0, .L100
1172 .L93:
5887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1173 .loc 1 5887 1 view .LVU376
1174 0044 02B0 add sp, sp, #8
1175 .cfi_remember_state
1176 .cfi_def_cfa_offset 24
1177 @ sp needed
1178 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
1179 .LVL102:
1180 .L94:
1181 .cfi_restore_state
5868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1182 .loc 1 5868 5 is_stmt 1 view .LVU377
5868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1183 .loc 1 5868 9 is_stmt 0 view .LVU378
1184 004a 2368 ldr r3, [r4]
5868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1185 .loc 1 5868 28 view .LVU379
1186 004c 4FEA1822 lsr r2, r8, #8
5868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1187 .loc 1 5868 26 view .LVU380
1188 0050 9A62 str r2, [r3, #40]
5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1189 .loc 1 5871 5 is_stmt 1 view .LVU381
5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1190 .loc 1 5871 9 is_stmt 0 view .LVU382
1191 0052 3A46 mov r2, r7
1192 0054 3146 mov r1, r6
1193 0056 2046 mov r0, r4
1194 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1195 .LVL103:
5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1196 .loc 1 5871 8 discriminator 1 view .LVU383
1197 005c 30B9 cbnz r0, .L97
5877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1198 .loc 1 5877 5 is_stmt 1 view .LVU384
5877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1199 .loc 1 5877 9 is_stmt 0 view .LVU385
1200 005e 2368 ldr r3, [r4]
5877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1201 .loc 1 5877 28 view .LVU386
1202 0060 5FFA88F2 uxtb r2, r8
5877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1203 .loc 1 5877 26 view .LVU387
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 158
1204 0064 9A62 str r2, [r3, #40]
1205 0066 E5E7 b .L95
1206 .L96:
5855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1207 .loc 1 5855 12 view .LVU388
1208 0068 0120 movs r0, #1
1209 006a EBE7 b .L93
1210 .L97:
5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1211 .loc 1 5873 14 view .LVU389
1212 006c 0120 movs r0, #1
1213 006e E9E7 b .L93
1214 .L100:
5883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1215 .loc 1 5883 12 view .LVU390
1216 0070 0120 movs r0, #1
1217 0072 E7E7 b .L93
1218 .L102:
1219 .align 2
1220 .L101:
1221 0074 00200080 .word -2147475456
1222 .cfi_endproc
1223 .LFE391:
1225 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits
1226 .align 1
1227 .syntax unified
1228 .thumb
1229 .thumb_func
1231 I2C_WaitOnSTOPFlagUntilTimeout:
1232 .LVL104:
1233 .LFB409:
7030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
1234 .loc 1 7030 1 is_stmt 1 view -0
1235 .cfi_startproc
1236 @ args = 0, pretend = 0, frame = 0
1237 @ frame_needed = 0, uses_anonymous_args = 0
7030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
1238 .loc 1 7030 1 is_stmt 0 view .LVU392
1239 0000 70B5 push {r4, r5, r6, lr}
1240 .cfi_def_cfa_offset 16
1241 .cfi_offset 4, -16
1242 .cfi_offset 5, -12
1243 .cfi_offset 6, -8
1244 .cfi_offset 14, -4
1245 0002 0446 mov r4, r0
1246 0004 0D46 mov r5, r1
1247 0006 1646 mov r6, r2
7031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1248 .loc 1 7031 3 is_stmt 1 view .LVU393
7031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1249 .loc 1 7031 9 is_stmt 0 view .LVU394
1250 0008 04E0 b .L104
1251 .LVL105:
1252 .L106:
7042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1253 .loc 1 7042 7 is_stmt 1 view .LVU395
7042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 159
1254 .loc 1 7042 12 is_stmt 0 view .LVU396
1255 000a 2368 ldr r3, [r4]
1256 000c 9B69 ldr r3, [r3, #24]
7042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1257 .loc 1 7042 10 view .LVU397
1258 000e 13F0200F tst r3, #32
1259 0012 12D0 beq .L110
1260 .L104:
7031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1261 .loc 1 7031 51 is_stmt 1 view .LVU398
7031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1262 .loc 1 7031 10 is_stmt 0 view .LVU399
1263 0014 2368 ldr r3, [r4]
1264 0016 9B69 ldr r3, [r3, #24]
7031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1265 .loc 1 7031 51 view .LVU400
1266 0018 13F0200F tst r3, #32
1267 001c 1BD1 bne .L111
7034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1268 .loc 1 7034 5 is_stmt 1 view .LVU401
7034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1269 .loc 1 7034 9 is_stmt 0 view .LVU402
1270 001e 3246 mov r2, r6
1271 0020 2946 mov r1, r5
1272 0022 2046 mov r0, r4
1273 0024 FFF7FEFF bl I2C_IsErrorOccurred
1274 .LVL106:
7034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1275 .loc 1 7034 8 discriminator 1 view .LVU403
1276 0028 B8B9 cbnz r0, .L108
7040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1277 .loc 1 7040 5 is_stmt 1 view .LVU404
7040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1278 .loc 1 7040 11 is_stmt 0 view .LVU405
1279 002a FFF7FEFF bl HAL_GetTick
1280 .LVL107:
7040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1281 .loc 1 7040 25 discriminator 1 view .LVU406
1282 002e 801B subs r0, r0, r6
7040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1283 .loc 1 7040 8 discriminator 1 view .LVU407
1284 0030 A842 cmp r0, r5
1285 0032 EAD8 bhi .L106
7040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1286 .loc 1 7040 49 discriminator 1 view .LVU408
1287 0034 002D cmp r5, #0
1288 0036 EDD1 bne .L104
1289 0038 E7E7 b .L106
1290 .L110:
7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1291 .loc 1 7044 9 is_stmt 1 view .LVU409
7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1292 .loc 1 7044 13 is_stmt 0 view .LVU410
1293 003a 636C ldr r3, [r4, #68]
7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1294 .loc 1 7044 25 view .LVU411
1295 003c 43F02003 orr r3, r3, #32
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 160
1296 0040 6364 str r3, [r4, #68]
7045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1297 .loc 1 7045 9 is_stmt 1 view .LVU412
7045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1298 .loc 1 7045 21 is_stmt 0 view .LVU413
1299 0042 2023 movs r3, #32
1300 0044 84F84130 strb r3, [r4, #65]
7046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1301 .loc 1 7046 9 is_stmt 1 view .LVU414
7046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1302 .loc 1 7046 20 is_stmt 0 view .LVU415
1303 0048 0023 movs r3, #0
1304 004a 84F84230 strb r3, [r4, #66]
7049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1305 .loc 1 7049 9 is_stmt 1 view .LVU416
7049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1306 .loc 1 7049 9 view .LVU417
1307 004e 84F84030 strb r3, [r4, #64]
7049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1308 .loc 1 7049 9 view .LVU418
7051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1309 .loc 1 7051 9 view .LVU419
7051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1310 .loc 1 7051 16 is_stmt 0 view .LVU420
1311 0052 0120 movs r0, #1
1312 0054 00E0 b .L105
1313 .L111:
7055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1314 .loc 1 7055 10 view .LVU421
1315 0056 0020 movs r0, #0
1316 .L105:
7056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1317 .loc 1 7056 1 view .LVU422
1318 0058 70BD pop {r4, r5, r6, pc}
1319 .LVL108:
1320 .L108:
7036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1321 .loc 1 7036 14 view .LVU423
1322 005a 0120 movs r0, #1
1323 005c FCE7 b .L105
1324 .cfi_endproc
1325 .LFE409:
1327 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits
1328 .align 1
1329 .syntax unified
1330 .thumb
1331 .thumb_func
1333 I2C_WaitOnRXNEFlagUntilTimeout:
1334 .LVL109:
1335 .LFB410:
7068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
1336 .loc 1 7068 1 is_stmt 1 view -0
1337 .cfi_startproc
1338 @ args = 0, pretend = 0, frame = 0
1339 @ frame_needed = 0, uses_anonymous_args = 0
7068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
1340 .loc 1 7068 1 is_stmt 0 view .LVU425
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 161
1341 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
1342 .cfi_def_cfa_offset 24
1343 .cfi_offset 3, -24
1344 .cfi_offset 4, -20
1345 .cfi_offset 5, -16
1346 .cfi_offset 6, -12
1347 .cfi_offset 7, -8
1348 .cfi_offset 14, -4
1349 0002 0446 mov r4, r0
1350 0004 0E46 mov r6, r1
1351 0006 1746 mov r7, r2
7069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1352 .loc 1 7069 3 is_stmt 1 view .LVU426
1353 .LVL110:
7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1354 .loc 1 7071 3 view .LVU427
7069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1355 .loc 1 7069 21 is_stmt 0 view .LVU428
1356 0008 0025 movs r5, #0
7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1357 .loc 1 7071 9 view .LVU429
1358 000a 18E0 b .L113
1359 .LVL111:
1360 .L116:
7113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1361 .loc 1 7113 9 is_stmt 1 view .LVU430
7113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1362 .loc 1 7113 25 is_stmt 0 view .LVU431
1363 000c 0023 movs r3, #0
1364 000e 6364 str r3, [r4, #68]
1365 .LVL112:
1366 .L115:
7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1367 .loc 1 7118 5 is_stmt 1 view .LVU432
7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1368 .loc 1 7118 12 is_stmt 0 view .LVU433
1369 0010 FFF7FEFF bl HAL_GetTick
1370 .LVL113:
7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1371 .loc 1 7118 26 discriminator 1 view .LVU434
1372 0014 C01B subs r0, r0, r7
7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1373 .loc 1 7118 8 discriminator 1 view .LVU435
1374 0016 B042 cmp r0, r6
1375 0018 00D8 bhi .L117
7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1376 .loc 1 7118 50 discriminator 2 view .LVU436
1377 001a 86B9 cbnz r6, .L113
1378 .L117:
7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1379 .loc 1 7118 70 discriminator 3 view .LVU437
1380 001c 7DB9 cbnz r5, .L113
7120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1381 .loc 1 7120 7 is_stmt 1 view .LVU438
7120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1382 .loc 1 7120 12 is_stmt 0 view .LVU439
1383 001e 2368 ldr r3, [r4]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 162
1384 0020 9B69 ldr r3, [r3, #24]
7120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1385 .loc 1 7120 10 view .LVU440
1386 0022 13F0040F tst r3, #4
1387 0026 0AD1 bne .L113
7122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1388 .loc 1 7122 9 is_stmt 1 view .LVU441
7122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1389 .loc 1 7122 13 is_stmt 0 view .LVU442
1390 0028 636C ldr r3, [r4, #68]
7122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1391 .loc 1 7122 25 view .LVU443
1392 002a 43F02003 orr r3, r3, #32
1393 002e 6364 str r3, [r4, #68]
7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1394 .loc 1 7123 9 is_stmt 1 view .LVU444
7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1395 .loc 1 7123 21 is_stmt 0 view .LVU445
1396 0030 2023 movs r3, #32
1397 0032 84F84130 strb r3, [r4, #65]
7126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1398 .loc 1 7126 9 is_stmt 1 view .LVU446
7126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1399 .loc 1 7126 9 view .LVU447
1400 0036 0023 movs r3, #0
1401 0038 84F84030 strb r3, [r4, #64]
7126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1402 .loc 1 7126 9 view .LVU448
7128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1403 .loc 1 7128 9 view .LVU449
1404 .LVL114:
7128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1405 .loc 1 7128 16 is_stmt 0 view .LVU450
1406 003c 0125 movs r5, #1
1407 .LVL115:
1408 .L113:
7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1409 .loc 1 7071 61 is_stmt 1 view .LVU451
7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1410 .loc 1 7071 11 is_stmt 0 view .LVU452
1411 003e 2368 ldr r3, [r4]
1412 0040 9B69 ldr r3, [r3, #24]
7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1413 .loc 1 7071 61 view .LVU453
1414 0042 13F0040F tst r3, #4
1415 0046 2ED1 bne .L119
7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1416 .loc 1 7071 61 discriminator 1 view .LVU454
1417 0048 6DBB cbnz r5, .L119
7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1418 .loc 1 7074 5 is_stmt 1 view .LVU455
7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1419 .loc 1 7074 9 is_stmt 0 view .LVU456
1420 004a 3A46 mov r2, r7
1421 004c 3146 mov r1, r6
1422 004e 2046 mov r0, r4
1423 0050 FFF7FEFF bl I2C_IsErrorOccurred
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 163
1424 .LVL116:
7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1425 .loc 1 7074 8 discriminator 1 view .LVU457
1426 0054 00B1 cbz r0, .L114
7076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1427 .loc 1 7076 14 view .LVU458
1428 0056 0125 movs r5, #1
1429 .LVL117:
1430 .L114:
7080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1431 .loc 1 7080 5 is_stmt 1 view .LVU459
7080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1432 .loc 1 7080 10 is_stmt 0 view .LVU460
1433 0058 2368 ldr r3, [r4]
1434 005a 9A69 ldr r2, [r3, #24]
7080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1435 .loc 1 7080 8 view .LVU461
1436 005c 12F0200F tst r2, #32
1437 0060 D6D0 beq .L115
7080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1438 .loc 1 7080 59 discriminator 1 view .LVU462
1439 0062 002D cmp r5, #0
1440 0064 D4D1 bne .L115
7084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1441 .loc 1 7084 7 is_stmt 1 view .LVU463
7084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1442 .loc 1 7084 12 is_stmt 0 view .LVU464
1443 0066 9A69 ldr r2, [r3, #24]
7088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1444 .loc 1 7088 9 is_stmt 1 view .LVU465
7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1445 .loc 1 7092 7 view .LVU466
7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1446 .loc 1 7092 11 is_stmt 0 view .LVU467
1447 0068 9A69 ldr r2, [r3, #24]
7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1448 .loc 1 7092 10 view .LVU468
1449 006a 12F0100F tst r2, #16
1450 006e CDD0 beq .L116
7094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF;
1451 .loc 1 7094 9 is_stmt 1 view .LVU469
1452 0070 1022 movs r2, #16
1453 0072 DA61 str r2, [r3, #28]
7095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1454 .loc 1 7095 9 view .LVU470
7095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1455 .loc 1 7095 25 is_stmt 0 view .LVU471
1456 0074 0423 movs r3, #4
1457 0076 6364 str r3, [r4, #68]
7098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1458 .loc 1 7098 9 is_stmt 1 view .LVU472
1459 0078 2368 ldr r3, [r4]
1460 007a 2022 movs r2, #32
1461 007c DA61 str r2, [r3, #28]
7101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1462 .loc 1 7101 9 view .LVU473
1463 007e 2168 ldr r1, [r4]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 164
1464 0080 4B68 ldr r3, [r1, #4]
1465 0082 23F0FF73 bic r3, r3, #33423360
1466 0086 23F48B33 bic r3, r3, #71168
1467 008a 23F4FF73 bic r3, r3, #510
1468 008e 23F00103 bic r3, r3, #1
1469 0092 4B60 str r3, [r1, #4]
7103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1470 .loc 1 7103 9 view .LVU474
7103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1471 .loc 1 7103 21 is_stmt 0 view .LVU475
1472 0094 84F84120 strb r2, [r4, #65]
7104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1473 .loc 1 7104 9 is_stmt 1 view .LVU476
7104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1474 .loc 1 7104 20 is_stmt 0 view .LVU477
1475 0098 0023 movs r3, #0
1476 009a 84F84230 strb r3, [r4, #66]
7107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1477 .loc 1 7107 9 is_stmt 1 view .LVU478
7107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1478 .loc 1 7107 9 view .LVU479
1479 009e 84F84030 strb r3, [r4, #64]
7107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1480 .loc 1 7107 9 view .LVU480
7109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1481 .loc 1 7109 9 view .LVU481
1482 .LVL118:
7109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1483 .loc 1 7109 16 is_stmt 0 view .LVU482
1484 00a2 0125 movs r5, #1
1485 00a4 B4E7 b .L115
1486 .LVL119:
1487 .L119:
7132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1488 .loc 1 7132 3 is_stmt 1 view .LVU483
7133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1489 .loc 1 7133 1 is_stmt 0 view .LVU484
1490 00a6 2846 mov r0, r5
1491 00a8 F8BD pop {r3, r4, r5, r6, r7, pc}
7133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1492 .loc 1 7133 1 view .LVU485
1493 .cfi_endproc
1494 .LFE410:
1496 .section .text.HAL_I2C_MspInit,"ax",%progbits
1497 .align 1
1498 .weak HAL_I2C_MspInit
1499 .syntax unified
1500 .thumb
1501 .thumb_func
1503 HAL_I2C_MspInit:
1504 .LVL120:
1505 .LFB337:
697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
1506 .loc 1 697 1 is_stmt 1 view -0
1507 .cfi_startproc
1508 @ args = 0, pretend = 0, frame = 0
1509 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 165
1510 @ link register save eliminated.
699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1511 .loc 1 699 3 view .LVU487
704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1512 .loc 1 704 1 is_stmt 0 view .LVU488
1513 0000 7047 bx lr
1514 .cfi_endproc
1515 .LFE337:
1517 .section .text.HAL_I2C_Init,"ax",%progbits
1518 .align 1
1519 .global HAL_I2C_Init
1520 .syntax unified
1521 .thumb
1522 .thumb_func
1524 HAL_I2C_Init:
1525 .LVL121:
1526 .LFB335:
536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
1527 .loc 1 536 1 is_stmt 1 view -0
1528 .cfi_startproc
1529 @ args = 0, pretend = 0, frame = 0
1530 @ frame_needed = 0, uses_anonymous_args = 0
538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1531 .loc 1 538 3 view .LVU490
538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1532 .loc 1 538 6 is_stmt 0 view .LVU491
1533 0000 0028 cmp r0, #0
1534 0002 5DD0 beq .L131
536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
1535 .loc 1 536 1 view .LVU492
1536 0004 10B5 push {r4, lr}
1537 .cfi_def_cfa_offset 8
1538 .cfi_offset 4, -8
1539 .cfi_offset 14, -4
1540 0006 0446 mov r4, r0
544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
1541 .loc 1 544 3 is_stmt 1 view .LVU493
545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode));
1542 .loc 1 545 3 view .LVU494
546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode));
1543 .loc 1 546 3 view .LVU495
547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2));
1544 .loc 1 547 3 view .LVU496
548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks));
1545 .loc 1 548 3 view .LVU497
549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode));
1546 .loc 1 549 3 view .LVU498
550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode));
1547 .loc 1 550 3 view .LVU499
551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1548 .loc 1 551 3 view .LVU500
553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1549 .loc 1 553 3 view .LVU501
553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1550 .loc 1 553 11 is_stmt 0 view .LVU502
1551 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 166
1552 .loc 1 553 6 view .LVU503
1553 000c 002B cmp r3, #0
1554 000e 46D0 beq .L136
1555 .LVL122:
1556 .L126:
584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1557 .loc 1 584 3 is_stmt 1 view .LVU504
584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1558 .loc 1 584 15 is_stmt 0 view .LVU505
1559 0010 2423 movs r3, #36
1560 0012 84F84130 strb r3, [r4, #65]
587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1561 .loc 1 587 3 is_stmt 1 view .LVU506
1562 0016 2268 ldr r2, [r4]
1563 0018 1368 ldr r3, [r2]
1564 001a 23F00103 bic r3, r3, #1
1565 001e 1360 str r3, [r2]
591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1566 .loc 1 591 3 view .LVU507
591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1567 .loc 1 591 39 is_stmt 0 view .LVU508
1568 0020 6368 ldr r3, [r4, #4]
591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1569 .loc 1 591 7 view .LVU509
1570 0022 2268 ldr r2, [r4]
591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1571 .loc 1 591 47 view .LVU510
1572 0024 23F07063 bic r3, r3, #251658240
591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1573 .loc 1 591 27 view .LVU511
1574 0028 1361 str r3, [r2, #16]
595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1575 .loc 1 595 3 is_stmt 1 view .LVU512
595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1576 .loc 1 595 7 is_stmt 0 view .LVU513
1577 002a 2268 ldr r2, [r4]
595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1578 .loc 1 595 17 view .LVU514
1579 002c 9368 ldr r3, [r2, #8]
595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1580 .loc 1 595 24 view .LVU515
1581 002e 23F40043 bic r3, r3, #32768
1582 0032 9360 str r3, [r2, #8]
598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1583 .loc 1 598 3 is_stmt 1 view .LVU516
598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1584 .loc 1 598 17 is_stmt 0 view .LVU517
1585 0034 E368 ldr r3, [r4, #12]
598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1586 .loc 1 598 6 view .LVU518
1587 0036 012B cmp r3, #1
1588 0038 36D0 beq .L137
604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1589 .loc 1 604 5 is_stmt 1 view .LVU519
604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1590 .loc 1 604 75 is_stmt 0 view .LVU520
1591 003a A368 ldr r3, [r4, #8]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 167
604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1592 .loc 1 604 9 view .LVU521
1593 003c 2268 ldr r2, [r4]
604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1594 .loc 1 604 63 view .LVU522
1595 003e 43F40443 orr r3, r3, #33792
604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1596 .loc 1 604 26 view .LVU523
1597 0042 9360 str r3, [r2, #8]
1598 .L128:
609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1599 .loc 1 609 3 is_stmt 1 view .LVU524
609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1600 .loc 1 609 17 is_stmt 0 view .LVU525
1601 0044 E368 ldr r3, [r4, #12]
609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1602 .loc 1 609 6 view .LVU526
1603 0046 022B cmp r3, #2
1604 0048 34D0 beq .L138
616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1605 .loc 1 616 5 is_stmt 1 view .LVU527
1606 004a 2268 ldr r2, [r4]
1607 004c 5368 ldr r3, [r2, #4]
1608 004e 23F40063 bic r3, r3, #2048
1609 0052 5360 str r3, [r2, #4]
1610 .L130:
619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1611 .loc 1 619 3 view .LVU528
619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1612 .loc 1 619 7 is_stmt 0 view .LVU529
1613 0054 2268 ldr r2, [r4]
619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1614 .loc 1 619 17 view .LVU530
1615 0056 5168 ldr r1, [r2, #4]
619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1616 .loc 1 619 23 view .LVU531
1617 0058 1A4B ldr r3, .L139
1618 005a 0B43 orrs r3, r3, r1
1619 005c 5360 str r3, [r2, #4]
623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1620 .loc 1 623 3 is_stmt 1 view .LVU532
623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1621 .loc 1 623 7 is_stmt 0 view .LVU533
1622 005e 2268 ldr r2, [r4]
623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1623 .loc 1 623 17 view .LVU534
1624 0060 D368 ldr r3, [r2, #12]
623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1625 .loc 1 623 24 view .LVU535
1626 0062 23F40043 bic r3, r3, #32768
1627 0066 D360 str r3, [r2, #12]
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1628 .loc 1 626 3 is_stmt 1 view .LVU536
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1629 .loc 1 626 37 is_stmt 0 view .LVU537
1630 0068 2369 ldr r3, [r4, #16]
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 168
1631 .loc 1 626 66 view .LVU538
1632 006a 6269 ldr r2, [r4, #20]
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1633 .loc 1 626 54 view .LVU539
1634 006c 1343 orrs r3, r3, r2
627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1635 .loc 1 627 38 view .LVU540
1636 006e A169 ldr r1, [r4, #24]
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1637 .loc 1 626 7 view .LVU541
1638 0070 2268 ldr r2, [r4]
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1639 .loc 1 626 79 view .LVU542
1640 0072 43EA0123 orr r3, r3, r1, lsl #8
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1641 .loc 1 626 24 view .LVU543
1642 0076 D360 str r3, [r2, #12]
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1643 .loc 1 631 3 is_stmt 1 view .LVU544
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1644 .loc 1 631 36 is_stmt 0 view .LVU545
1645 0078 E369 ldr r3, [r4, #28]
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1646 .loc 1 631 65 view .LVU546
1647 007a 216A ldr r1, [r4, #32]
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1648 .loc 1 631 7 view .LVU547
1649 007c 2268 ldr r2, [r4]
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1650 .loc 1 631 53 view .LVU548
1651 007e 0B43 orrs r3, r3, r1
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1652 .loc 1 631 23 view .LVU549
1653 0080 1360 str r3, [r2]
634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1654 .loc 1 634 3 is_stmt 1 view .LVU550
1655 0082 2268 ldr r2, [r4]
1656 0084 1368 ldr r3, [r2]
1657 0086 43F00103 orr r3, r3, #1
1658 008a 1360 str r3, [r2]
636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1659 .loc 1 636 3 view .LVU551
636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1660 .loc 1 636 19 is_stmt 0 view .LVU552
1661 008c 0020 movs r0, #0
1662 008e 6064 str r0, [r4, #68]
637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1663 .loc 1 637 3 is_stmt 1 view .LVU553
637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1664 .loc 1 637 15 is_stmt 0 view .LVU554
1665 0090 2023 movs r3, #32
1666 0092 84F84130 strb r3, [r4, #65]
638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1667 .loc 1 638 3 is_stmt 1 view .LVU555
638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1668 .loc 1 638 23 is_stmt 0 view .LVU556
1669 0096 2063 str r0, [r4, #48]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 169
639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1670 .loc 1 639 3 is_stmt 1 view .LVU557
639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1671 .loc 1 639 14 is_stmt 0 view .LVU558
1672 0098 84F84200 strb r0, [r4, #66]
641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1673 .loc 1 641 3 is_stmt 1 view .LVU559
642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1674 .loc 1 642 1 is_stmt 0 view .LVU560
1675 009c 10BD pop {r4, pc}
1676 .LVL123:
1677 .L136:
556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1678 .loc 1 556 5 is_stmt 1 view .LVU561
556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1679 .loc 1 556 16 is_stmt 0 view .LVU562
1680 009e 80F84030 strb r3, [r0, #64]
580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1681 .loc 1 580 5 is_stmt 1 view .LVU563
1682 00a2 FFF7FEFF bl HAL_I2C_MspInit
1683 .LVL124:
580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1684 .loc 1 580 5 is_stmt 0 view .LVU564
1685 00a6 B3E7 b .L126
1686 .L137:
600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1687 .loc 1 600 5 is_stmt 1 view .LVU565
600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1688 .loc 1 600 56 is_stmt 0 view .LVU566
1689 00a8 A368 ldr r3, [r4, #8]
600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1690 .loc 1 600 9 view .LVU567
1691 00aa 2268 ldr r2, [r4]
600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1692 .loc 1 600 44 view .LVU568
1693 00ac 43F40043 orr r3, r3, #32768
600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1694 .loc 1 600 26 view .LVU569
1695 00b0 9360 str r3, [r2, #8]
1696 00b2 C7E7 b .L128
1697 .L138:
611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1698 .loc 1 611 5 is_stmt 1 view .LVU570
1699 00b4 2268 ldr r2, [r4]
1700 00b6 5368 ldr r3, [r2, #4]
1701 00b8 43F40063 orr r3, r3, #2048
1702 00bc 5360 str r3, [r2, #4]
1703 00be C9E7 b .L130
1704 .LVL125:
1705 .L131:
1706 .cfi_def_cfa_offset 0
1707 .cfi_restore 4
1708 .cfi_restore 14
540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1709 .loc 1 540 12 is_stmt 0 view .LVU571
1710 00c0 0120 movs r0, #1
1711 .LVL126:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 170
642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1712 .loc 1 642 1 view .LVU572
1713 00c2 7047 bx lr
1714 .L140:
1715 .align 2
1716 .L139:
1717 00c4 00800002 .word 33587200
1718 .cfi_endproc
1719 .LFE335:
1721 .section .text.HAL_I2C_MspDeInit,"ax",%progbits
1722 .align 1
1723 .weak HAL_I2C_MspDeInit
1724 .syntax unified
1725 .thumb
1726 .thumb_func
1728 HAL_I2C_MspDeInit:
1729 .LVL127:
1730 .LFB338:
713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
1731 .loc 1 713 1 is_stmt 1 view -0
1732 .cfi_startproc
1733 @ args = 0, pretend = 0, frame = 0
1734 @ frame_needed = 0, uses_anonymous_args = 0
1735 @ link register save eliminated.
715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1736 .loc 1 715 3 view .LVU574
720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1737 .loc 1 720 1 is_stmt 0 view .LVU575
1738 0000 7047 bx lr
1739 .cfi_endproc
1740 .LFE338:
1742 .section .text.HAL_I2C_DeInit,"ax",%progbits
1743 .align 1
1744 .global HAL_I2C_DeInit
1745 .syntax unified
1746 .thumb
1747 .thumb_func
1749 HAL_I2C_DeInit:
1750 .LVL128:
1751 .LFB336:
651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
1752 .loc 1 651 1 is_stmt 1 view -0
1753 .cfi_startproc
1754 @ args = 0, pretend = 0, frame = 0
1755 @ frame_needed = 0, uses_anonymous_args = 0
653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1756 .loc 1 653 3 view .LVU577
653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1757 .loc 1 653 6 is_stmt 0 view .LVU578
1758 0000 A8B1 cbz r0, .L144
651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
1759 .loc 1 651 1 view .LVU579
1760 0002 10B5 push {r4, lr}
1761 .cfi_def_cfa_offset 8
1762 .cfi_offset 4, -8
1763 .cfi_offset 14, -4
1764 0004 0446 mov r4, r0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 171
659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1765 .loc 1 659 3 is_stmt 1 view .LVU580
661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1766 .loc 1 661 3 view .LVU581
661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1767 .loc 1 661 15 is_stmt 0 view .LVU582
1768 0006 2423 movs r3, #36
1769 0008 80F84130 strb r3, [r0, #65]
664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1770 .loc 1 664 3 is_stmt 1 view .LVU583
1771 000c 0268 ldr r2, [r0]
1772 000e 1368 ldr r3, [r2]
1773 0010 23F00103 bic r3, r3, #1
1774 0014 1360 str r3, [r2]
676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1775 .loc 1 676 3 view .LVU584
1776 0016 FFF7FEFF bl HAL_I2C_MspDeInit
1777 .LVL129:
679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
1778 .loc 1 679 3 view .LVU585
679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
1779 .loc 1 679 19 is_stmt 0 view .LVU586
1780 001a 0020 movs r0, #0
1781 001c 6064 str r0, [r4, #68]
680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1782 .loc 1 680 3 is_stmt 1 view .LVU587
680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1783 .loc 1 680 15 is_stmt 0 view .LVU588
1784 001e 84F84100 strb r0, [r4, #65]
681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1785 .loc 1 681 3 is_stmt 1 view .LVU589
681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1786 .loc 1 681 23 is_stmt 0 view .LVU590
1787 0022 2063 str r0, [r4, #48]
682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1788 .loc 1 682 3 is_stmt 1 view .LVU591
682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1789 .loc 1 682 14 is_stmt 0 view .LVU592
1790 0024 84F84200 strb r0, [r4, #66]
685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1791 .loc 1 685 3 is_stmt 1 view .LVU593
685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1792 .loc 1 685 3 view .LVU594
1793 0028 84F84000 strb r0, [r4, #64]
685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1794 .loc 1 685 3 view .LVU595
687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1795 .loc 1 687 3 view .LVU596
688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1796 .loc 1 688 1 is_stmt 0 view .LVU597
1797 002c 10BD pop {r4, pc}
1798 .LVL130:
1799 .L144:
1800 .cfi_def_cfa_offset 0
1801 .cfi_restore 4
1802 .cfi_restore 14
655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 172
1803 .loc 1 655 12 view .LVU598
1804 002e 0120 movs r0, #1
1805 .LVL131:
688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1806 .loc 1 688 1 view .LVU599
1807 0030 7047 bx lr
1808 .cfi_endproc
1809 .LFE336:
1811 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits
1812 .align 1
1813 .global HAL_I2C_Master_Transmit
1814 .syntax unified
1815 .thumb
1816 .thumb_func
1818 HAL_I2C_Master_Transmit:
1819 .LVL132:
1820 .LFB339:
1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1821 .loc 1 1121 1 is_stmt 1 view -0
1822 .cfi_startproc
1823 @ args = 4, pretend = 0, frame = 0
1824 @ frame_needed = 0, uses_anonymous_args = 0
1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1825 .loc 1 1121 1 is_stmt 0 view .LVU601
1826 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
1827 .cfi_def_cfa_offset 32
1828 .cfi_offset 4, -32
1829 .cfi_offset 5, -28
1830 .cfi_offset 6, -24
1831 .cfi_offset 7, -20
1832 .cfi_offset 8, -16
1833 .cfi_offset 9, -12
1834 .cfi_offset 10, -8
1835 .cfi_offset 14, -4
1836 0004 82B0 sub sp, sp, #8
1837 .cfi_def_cfa_offset 40
1838 0006 0F46 mov r7, r1
1839 0008 0A9E ldr r6, [sp, #40]
1122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
1840 .loc 1 1122 3 is_stmt 1 view .LVU602
1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1841 .loc 1 1123 3 view .LVU603
1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1842 .loc 1 1125 3 view .LVU604
1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1843 .loc 1 1125 11 is_stmt 0 view .LVU605
1844 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
1845 .LVL133:
1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1846 .loc 1 1125 6 view .LVU606
1847 000e 2029 cmp r1, #32
1848 0010 40F0B780 bne .L159
1849 0014 0446 mov r4, r0
1850 0016 9146 mov r9, r2
1851 0018 9846 mov r8, r3
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1852 .loc 1 1128 5 is_stmt 1 view .LVU607
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 173
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1853 .loc 1 1128 5 view .LVU608
1854 001a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
1855 .LVL134:
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1856 .loc 1 1128 5 is_stmt 0 view .LVU609
1857 001e 012B cmp r3, #1
1858 0020 00F0B380 beq .L160
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1859 .loc 1 1128 5 is_stmt 1 discriminator 2 view .LVU610
1860 0024 4FF0010A mov r10, #1
1861 0028 80F840A0 strb r10, [r0, #64]
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1862 .loc 1 1128 5 view .LVU611
1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1863 .loc 1 1131 5 view .LVU612
1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1864 .loc 1 1131 17 is_stmt 0 view .LVU613
1865 002c FFF7FEFF bl HAL_GetTick
1866 .LVL135:
1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1867 .loc 1 1131 17 view .LVU614
1868 0030 0546 mov r5, r0
1869 .LVL136:
1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1870 .loc 1 1133 5 is_stmt 1 view .LVU615
1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1871 .loc 1 1133 9 is_stmt 0 view .LVU616
1872 0032 0090 str r0, [sp]
1873 0034 1923 movs r3, #25
1874 0036 5246 mov r2, r10
1875 0038 4FF40041 mov r1, #32768
1876 003c 2046 mov r0, r4
1877 .LVL137:
1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1878 .loc 1 1133 9 view .LVU617
1879 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1880 .LVL138:
1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1881 .loc 1 1133 8 discriminator 1 view .LVU618
1882 0042 0028 cmp r0, #0
1883 0044 40F0A380 bne .L161
1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1884 .loc 1 1138 5 is_stmt 1 view .LVU619
1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1885 .loc 1 1138 21 is_stmt 0 view .LVU620
1886 0048 2123 movs r3, #33
1887 004a 84F84130 strb r3, [r4, #65]
1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1888 .loc 1 1139 5 is_stmt 1 view .LVU621
1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1889 .loc 1 1139 21 is_stmt 0 view .LVU622
1890 004e 1023 movs r3, #16
1891 0050 84F84230 strb r3, [r4, #66]
1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1892 .loc 1 1140 5 is_stmt 1 view .LVU623
1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 174
1893 .loc 1 1140 21 is_stmt 0 view .LVU624
1894 0054 0023 movs r3, #0
1895 0056 6364 str r3, [r4, #68]
1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1896 .loc 1 1143 5 is_stmt 1 view .LVU625
1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1897 .loc 1 1143 21 is_stmt 0 view .LVU626
1898 0058 C4F82490 str r9, [r4, #36]
1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1899 .loc 1 1144 5 is_stmt 1 view .LVU627
1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1900 .loc 1 1144 21 is_stmt 0 view .LVU628
1901 005c A4F82A80 strh r8, [r4, #42] @ movhi
1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1902 .loc 1 1145 5 is_stmt 1 view .LVU629
1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1903 .loc 1 1145 21 is_stmt 0 view .LVU630
1904 0060 6363 str r3, [r4, #52]
1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1905 .loc 1 1147 5 is_stmt 1 view .LVU631
1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1906 .loc 1 1147 13 is_stmt 0 view .LVU632
1907 0062 638D ldrh r3, [r4, #42]
1908 0064 9BB2 uxth r3, r3
1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1909 .loc 1 1147 8 view .LVU633
1910 0066 FF2B cmp r3, #255
1911 0068 1ED9 bls .L151
1149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1912 .loc 1 1149 7 is_stmt 1 view .LVU634
1149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1913 .loc 1 1149 22 is_stmt 0 view .LVU635
1914 006a FF23 movs r3, #255
1915 006c 2385 strh r3, [r4, #40] @ movhi
1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1916 .loc 1 1150 7 is_stmt 1 view .LVU636
1917 .LVL139:
1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1918 .loc 1 1150 16 is_stmt 0 view .LVU637
1919 006e 4FF08073 mov r3, #16777216
1920 .LVL140:
1921 .L152:
1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1922 .loc 1 1158 5 is_stmt 1 view .LVU638
1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1923 .loc 1 1158 13 is_stmt 0 view .LVU639
1924 0072 228D ldrh r2, [r4, #40]
1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1925 .loc 1 1158 8 view .LVU640
1926 0074 EAB1 cbz r2, .L153
1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1927 .loc 1 1162 7 is_stmt 1 view .LVU641
1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1928 .loc 1 1162 11 is_stmt 0 view .LVU642
1929 0076 2268 ldr r2, [r4]
1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1930 .loc 1 1162 30 view .LVU643
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 175
1931 0078 99F80010 ldrb r1, [r9] @ zero_extendqisi2
1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1932 .loc 1 1162 28 view .LVU644
1933 007c 9162 str r1, [r2, #40]
1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1934 .loc 1 1165 7 is_stmt 1 view .LVU645
1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1935 .loc 1 1165 11 is_stmt 0 view .LVU646
1936 007e 626A ldr r2, [r4, #36]
1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1937 .loc 1 1165 21 view .LVU647
1938 0080 0132 adds r2, r2, #1
1939 0082 6262 str r2, [r4, #36]
1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1940 .loc 1 1167 7 is_stmt 1 view .LVU648
1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1941 .loc 1 1167 11 is_stmt 0 view .LVU649
1942 0084 628D ldrh r2, [r4, #42]
1943 0086 92B2 uxth r2, r2
1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1944 .loc 1 1167 22 view .LVU650
1945 0088 013A subs r2, r2, #1
1946 008a 92B2 uxth r2, r2
1947 008c 6285 strh r2, [r4, #42] @ movhi
1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1948 .loc 1 1168 7 is_stmt 1 view .LVU651
1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1949 .loc 1 1168 11 is_stmt 0 view .LVU652
1950 008e 228D ldrh r2, [r4, #40]
1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1951 .loc 1 1168 21 view .LVU653
1952 0090 013A subs r2, r2, #1
1953 0092 92B2 uxth r2, r2
1954 0094 2285 strh r2, [r4, #40] @ movhi
1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1955 .loc 1 1172 7 is_stmt 1 view .LVU654
1956 0096 0132 adds r2, r2, #1
1957 0098 4149 ldr r1, .L167
1958 009a 0091 str r1, [sp]
1959 009c D2B2 uxtb r2, r2
1960 009e 3946 mov r1, r7
1961 00a0 2046 mov r0, r4
1962 00a2 FFF7FEFF bl I2C_TransferConfig
1963 .LVL141:
1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1964 .loc 1 1172 7 is_stmt 0 view .LVU655
1965 00a6 18E0 b .L157
1966 .LVL142:
1967 .L151:
1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1968 .loc 1 1154 7 is_stmt 1 view .LVU656
1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1969 .loc 1 1154 28 is_stmt 0 view .LVU657
1970 00a8 638D ldrh r3, [r4, #42]
1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1971 .loc 1 1154 22 view .LVU658
1972 00aa 2385 strh r3, [r4, #40] @ movhi
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 176
1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1973 .loc 1 1155 7 is_stmt 1 view .LVU659
1974 .LVL143:
1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1975 .loc 1 1155 16 is_stmt 0 view .LVU660
1976 00ac 4FF00073 mov r3, #33554432
1977 00b0 DFE7 b .L152
1978 .LVL144:
1979 .L153:
1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1980 .loc 1 1179 7 is_stmt 1 view .LVU661
1981 00b2 3B49 ldr r1, .L167
1982 00b4 0091 str r1, [sp]
1983 00b6 D2B2 uxtb r2, r2
1984 00b8 3946 mov r1, r7
1985 00ba 2046 mov r0, r4
1986 00bc FFF7FEFF bl I2C_TransferConfig
1987 .LVL145:
1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1988 .loc 1 1179 7 is_stmt 0 view .LVU662
1989 00c0 0BE0 b .L157
1990 .L156:
1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1991 .loc 1 1215 11 is_stmt 1 view .LVU663
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 32 is_stmt 0 view .LVU664
1993 00c2 628D ldrh r2, [r4, #42]
1994 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,
1995 .loc 1 1215 26 view .LVU665
1996 00c6 2285 strh r2, [r4, #40] @ movhi
1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1997 .loc 1 1216 11 is_stmt 1 view .LVU666
1998 00c8 0023 movs r3, #0
1999 00ca 0093 str r3, [sp]
2000 00cc 4FF00073 mov r3, #33554432
2001 00d0 D2B2 uxtb r2, r2
2002 00d2 3946 mov r1, r7
2003 00d4 2046 mov r0, r4
2004 00d6 FFF7FEFF bl I2C_TransferConfig
2005 .LVL146:
2006 .L157:
1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2007 .loc 1 1183 28 view .LVU667
1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2008 .loc 1 1183 16 is_stmt 0 view .LVU668
2009 00da 638D ldrh r3, [r4, #42]
2010 00dc 9BB2 uxth r3, r3
1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2011 .loc 1 1183 28 view .LVU669
2012 00de 002B cmp r3, #0
2013 00e0 33D0 beq .L166
1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2014 .loc 1 1186 7 is_stmt 1 view .LVU670
1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2015 .loc 1 1186 11 is_stmt 0 view .LVU671
2016 00e2 2A46 mov r2, r5
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 177
2017 00e4 3146 mov r1, r6
2018 00e6 2046 mov r0, r4
2019 00e8 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
2020 .LVL147:
1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2021 .loc 1 1186 10 discriminator 1 view .LVU672
2022 00ec 0028 cmp r0, #0
2023 00ee 50D1 bne .L162
1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2024 .loc 1 1191 7 is_stmt 1 view .LVU673
1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2025 .loc 1 1191 35 is_stmt 0 view .LVU674
2026 00f0 626A ldr r2, [r4, #36]
1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2027 .loc 1 1191 11 view .LVU675
2028 00f2 2368 ldr r3, [r4]
1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2029 .loc 1 1191 30 view .LVU676
2030 00f4 1278 ldrb r2, [r2] @ zero_extendqisi2
1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2031 .loc 1 1191 28 view .LVU677
2032 00f6 9A62 str r2, [r3, #40]
1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2033 .loc 1 1194 7 is_stmt 1 view .LVU678
1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2034 .loc 1 1194 11 is_stmt 0 view .LVU679
2035 00f8 636A ldr r3, [r4, #36]
1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2036 .loc 1 1194 21 view .LVU680
2037 00fa 0133 adds r3, r3, #1
2038 00fc 6362 str r3, [r4, #36]
1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2039 .loc 1 1196 7 is_stmt 1 view .LVU681
1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2040 .loc 1 1196 11 is_stmt 0 view .LVU682
2041 00fe 638D ldrh r3, [r4, #42]
2042 0100 9BB2 uxth r3, r3
1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2043 .loc 1 1196 22 view .LVU683
2044 0102 013B subs r3, r3, #1
2045 0104 9BB2 uxth r3, r3
2046 0106 6385 strh r3, [r4, #42] @ movhi
1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2047 .loc 1 1197 7 is_stmt 1 view .LVU684
1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2048 .loc 1 1197 11 is_stmt 0 view .LVU685
2049 0108 238D ldrh r3, [r4, #40]
1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2050 .loc 1 1197 21 view .LVU686
2051 010a 013B subs r3, r3, #1
2052 010c 9BB2 uxth r3, r3
2053 010e 2385 strh r3, [r4, #40] @ movhi
1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2054 .loc 1 1199 7 is_stmt 1 view .LVU687
1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2055 .loc 1 1199 16 is_stmt 0 view .LVU688
2056 0110 628D ldrh r2, [r4, #42]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 178
2057 0112 92B2 uxth r2, r2
1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2058 .loc 1 1199 10 view .LVU689
2059 0114 002A cmp r2, #0
2060 0116 E0D0 beq .L157
1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2061 .loc 1 1199 35 discriminator 1 view .LVU690
2062 0118 002B cmp r3, #0
2063 011a DED1 bne .L157
1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2064 .loc 1 1202 9 is_stmt 1 view .LVU691
1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2065 .loc 1 1202 13 is_stmt 0 view .LVU692
2066 011c 0095 str r5, [sp]
2067 011e 3346 mov r3, r6
2068 0120 0022 movs r2, #0
2069 0122 8021 movs r1, #128
2070 0124 2046 mov r0, r4
2071 0126 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2072 .LVL148:
1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2073 .loc 1 1202 12 discriminator 1 view .LVU693
2074 012a A0BB cbnz r0, .L163
1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2075 .loc 1 1207 9 is_stmt 1 view .LVU694
1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2076 .loc 1 1207 17 is_stmt 0 view .LVU695
2077 012c 638D ldrh r3, [r4, #42]
2078 012e 9BB2 uxth r3, r3
1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2079 .loc 1 1207 12 view .LVU696
2080 0130 FF2B cmp r3, #255
2081 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,
2082 .loc 1 1209 11 is_stmt 1 view .LVU697
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 26 is_stmt 0 view .LVU698
2084 0134 FF22 movs r2, #255
2085 0136 2285 strh r2, [r4, #40] @ movhi
1210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2086 .loc 1 1210 11 is_stmt 1 view .LVU699
2087 0138 0023 movs r3, #0
2088 013a 0093 str r3, [sp]
2089 013c 4FF08073 mov r3, #16777216
2090 0140 3946 mov r1, r7
2091 0142 2046 mov r0, r4
2092 0144 FFF7FEFF bl I2C_TransferConfig
2093 .LVL149:
2094 0148 C7E7 b .L157
2095 .L166:
1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2096 .loc 1 1224 5 view .LVU700
1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2097 .loc 1 1224 9 is_stmt 0 view .LVU701
2098 014a 2A46 mov r2, r5
2099 014c 3146 mov r1, r6
2100 014e 2046 mov r0, r4
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 179
2101 0150 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2102 .LVL150:
1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2103 .loc 1 1224 8 discriminator 1 view .LVU702
2104 0154 08BB cbnz r0, .L164
1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2105 .loc 1 1230 5 is_stmt 1 view .LVU703
2106 0156 2368 ldr r3, [r4]
2107 0158 2022 movs r2, #32
2108 015a DA61 str r2, [r3, #28]
1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2109 .loc 1 1233 5 view .LVU704
2110 015c 2168 ldr r1, [r4]
2111 015e 4B68 ldr r3, [r1, #4]
2112 0160 23F0FF73 bic r3, r3, #33423360
2113 0164 23F48B33 bic r3, r3, #71168
2114 0168 23F4FF73 bic r3, r3, #510
2115 016c 23F00103 bic r3, r3, #1
2116 0170 4B60 str r3, [r1, #4]
1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2117 .loc 1 1235 5 view .LVU705
1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2118 .loc 1 1235 17 is_stmt 0 view .LVU706
2119 0172 84F84120 strb r2, [r4, #65]
1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2120 .loc 1 1236 5 is_stmt 1 view .LVU707
1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2121 .loc 1 1236 17 is_stmt 0 view .LVU708
2122 0176 0023 movs r3, #0
2123 0178 84F84230 strb r3, [r4, #66]
1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2124 .loc 1 1239 5 is_stmt 1 view .LVU709
1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2125 .loc 1 1239 5 view .LVU710
2126 017c 84F84030 strb r3, [r4, #64]
1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2127 .loc 1 1239 5 view .LVU711
1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2128 .loc 1 1241 5 view .LVU712
1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2129 .loc 1 1241 12 is_stmt 0 view .LVU713
2130 0180 00E0 b .L150
2131 .LVL151:
2132 .L159:
1245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2133 .loc 1 1245 12 view .LVU714
2134 0182 0220 movs r0, #2
2135 .LVL152:
2136 .L150:
1247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2137 .loc 1 1247 1 view .LVU715
2138 0184 02B0 add sp, sp, #8
2139 .cfi_remember_state
2140 .cfi_def_cfa_offset 32
2141 @ sp needed
2142 0186 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
2143 .LVL153:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 180
2144 .L160:
2145 .cfi_restore_state
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2146 .loc 1 1128 5 discriminator 1 view .LVU716
2147 018a 0220 movs r0, #2
2148 .LVL154:
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2149 .loc 1 1128 5 discriminator 1 view .LVU717
2150 018c FAE7 b .L150
2151 .LVL155:
2152 .L161:
1135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2153 .loc 1 1135 14 view .LVU718
2154 018e 0120 movs r0, #1
2155 0190 F8E7 b .L150
2156 .LVL156:
2157 .L162:
1188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2158 .loc 1 1188 16 view .LVU719
2159 0192 0120 movs r0, #1
2160 0194 F6E7 b .L150
2161 .L163:
1204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2162 .loc 1 1204 18 view .LVU720
2163 0196 0120 movs r0, #1
2164 0198 F4E7 b .L150
2165 .L164:
1226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2166 .loc 1 1226 14 view .LVU721
2167 019a 0120 movs r0, #1
2168 019c F2E7 b .L150
2169 .L168:
2170 019e 00BF .align 2
2171 .L167:
2172 01a0 00200080 .word -2147475456
2173 .cfi_endproc
2174 .LFE339:
2176 .section .text.HAL_I2C_Master_Receive,"ax",%progbits
2177 .align 1
2178 .global HAL_I2C_Master_Receive
2179 .syntax unified
2180 .thumb
2181 .thumb_func
2183 HAL_I2C_Master_Receive:
2184 .LVL157:
2185 .LFB340:
1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2186 .loc 1 1262 1 is_stmt 1 view -0
2187 .cfi_startproc
2188 @ args = 4, pretend = 0, frame = 0
2189 @ frame_needed = 0, uses_anonymous_args = 0
1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2190 .loc 1 1262 1 is_stmt 0 view .LVU723
2191 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
2192 .cfi_def_cfa_offset 32
2193 .cfi_offset 4, -32
2194 .cfi_offset 5, -28
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 181
2195 .cfi_offset 6, -24
2196 .cfi_offset 7, -20
2197 .cfi_offset 8, -16
2198 .cfi_offset 9, -12
2199 .cfi_offset 10, -8
2200 .cfi_offset 14, -4
2201 0004 82B0 sub sp, sp, #8
2202 .cfi_def_cfa_offset 40
2203 0006 0F46 mov r7, r1
2204 0008 0A9E ldr r6, [sp, #40]
1263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2205 .loc 1 1263 3 is_stmt 1 view .LVU724
1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2206 .loc 1 1265 3 view .LVU725
1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2207 .loc 1 1265 11 is_stmt 0 view .LVU726
2208 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
2209 .LVL158:
1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2210 .loc 1 1265 6 view .LVU727
2211 000e 2029 cmp r1, #32
2212 0010 40F0A280 bne .L177
2213 0014 0446 mov r4, r0
2214 0016 9146 mov r9, r2
2215 0018 9846 mov r8, r3
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2216 .loc 1 1268 5 is_stmt 1 view .LVU728
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2217 .loc 1 1268 5 view .LVU729
2218 001a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
2219 .LVL159:
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2220 .loc 1 1268 5 is_stmt 0 view .LVU730
2221 001e 012B cmp r3, #1
2222 0020 00F09E80 beq .L178
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2223 .loc 1 1268 5 is_stmt 1 discriminator 2 view .LVU731
2224 0024 4FF0010A mov r10, #1
2225 0028 80F840A0 strb r10, [r0, #64]
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2226 .loc 1 1268 5 view .LVU732
1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2227 .loc 1 1271 5 view .LVU733
1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2228 .loc 1 1271 17 is_stmt 0 view .LVU734
2229 002c FFF7FEFF bl HAL_GetTick
2230 .LVL160:
1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2231 .loc 1 1271 17 view .LVU735
2232 0030 0546 mov r5, r0
2233 .LVL161:
1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2234 .loc 1 1273 5 is_stmt 1 view .LVU736
1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2235 .loc 1 1273 9 is_stmt 0 view .LVU737
2236 0032 0090 str r0, [sp]
2237 0034 1923 movs r3, #25
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 182
2238 0036 5246 mov r2, r10
2239 0038 4FF40041 mov r1, #32768
2240 003c 2046 mov r0, r4
2241 .LVL162:
1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2242 .loc 1 1273 9 view .LVU738
2243 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2244 .LVL163:
1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2245 .loc 1 1273 8 discriminator 1 view .LVU739
2246 0042 0028 cmp r0, #0
2247 0044 40F08E80 bne .L179
1278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2248 .loc 1 1278 5 is_stmt 1 view .LVU740
1278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2249 .loc 1 1278 21 is_stmt 0 view .LVU741
2250 0048 2223 movs r3, #34
2251 004a 84F84130 strb r3, [r4, #65]
1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2252 .loc 1 1279 5 is_stmt 1 view .LVU742
1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2253 .loc 1 1279 21 is_stmt 0 view .LVU743
2254 004e 1023 movs r3, #16
2255 0050 84F84230 strb r3, [r4, #66]
1280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2256 .loc 1 1280 5 is_stmt 1 view .LVU744
1280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2257 .loc 1 1280 21 is_stmt 0 view .LVU745
2258 0054 0023 movs r3, #0
2259 0056 6364 str r3, [r4, #68]
1283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2260 .loc 1 1283 5 is_stmt 1 view .LVU746
1283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2261 .loc 1 1283 21 is_stmt 0 view .LVU747
2262 0058 C4F82490 str r9, [r4, #36]
1284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2263 .loc 1 1284 5 is_stmt 1 view .LVU748
1284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2264 .loc 1 1284 21 is_stmt 0 view .LVU749
2265 005c A4F82A80 strh r8, [r4, #42] @ movhi
1285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2266 .loc 1 1285 5 is_stmt 1 view .LVU750
1285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2267 .loc 1 1285 21 is_stmt 0 view .LVU751
2268 0060 6363 str r3, [r4, #52]
1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2269 .loc 1 1289 5 is_stmt 1 view .LVU752
1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2270 .loc 1 1289 13 is_stmt 0 view .LVU753
2271 0062 638D ldrh r3, [r4, #42]
2272 0064 9BB2 uxth r3, r3
1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2273 .loc 1 1289 8 view .LVU754
2274 0066 FF2B cmp r3, #255
2275 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,
2276 .loc 1 1291 7 is_stmt 1 view .LVU755
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 183
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 22 is_stmt 0 view .LVU756
2278 006a FF22 movs r2, #255
2279 006c 2285 strh r2, [r4, #40] @ movhi
1292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2280 .loc 1 1292 7 is_stmt 1 view .LVU757
2281 006e 414B ldr r3, .L185
2282 0070 0093 str r3, [sp]
2283 0072 4FF08073 mov r3, #16777216
2284 0076 3946 mov r1, r7
2285 0078 2046 mov r0, r4
2286 007a FFF7FEFF bl I2C_TransferConfig
2287 .LVL164:
2288 007e 18E0 b .L175
2289 .L171:
1297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2290 .loc 1 1297 7 view .LVU758
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 28 is_stmt 0 view .LVU759
2292 0080 628D ldrh r2, [r4, #42]
2293 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,
2294 .loc 1 1297 22 view .LVU760
2295 0084 2285 strh r2, [r4, #40] @ movhi
1298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2296 .loc 1 1298 7 is_stmt 1 view .LVU761
2297 0086 3B4B ldr r3, .L185
2298 0088 0093 str r3, [sp]
2299 008a 4FF00073 mov r3, #33554432
2300 008e D2B2 uxtb r2, r2
2301 0090 3946 mov r1, r7
2302 0092 2046 mov r0, r4
2303 0094 FFF7FEFF bl I2C_TransferConfig
2304 .LVL165:
2305 0098 0BE0 b .L175
2306 .L174:
1335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2307 .loc 1 1335 11 view .LVU762
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 32 is_stmt 0 view .LVU763
2309 009a 628D ldrh r2, [r4, #42]
2310 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,
2311 .loc 1 1335 26 view .LVU764
2312 009e 2285 strh r2, [r4, #40] @ movhi
1336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2313 .loc 1 1336 11 is_stmt 1 view .LVU765
2314 00a0 0023 movs r3, #0
2315 00a2 0093 str r3, [sp]
2316 00a4 4FF00073 mov r3, #33554432
2317 00a8 D2B2 uxtb r2, r2
2318 00aa 3946 mov r1, r7
2319 00ac 2046 mov r0, r4
2320 00ae FFF7FEFF bl I2C_TransferConfig
2321 .LVL166:
2322 .L175:
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 184
2323 .loc 1 1302 28 view .LVU766
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2324 .loc 1 1302 16 is_stmt 0 view .LVU767
2325 00b2 638D ldrh r3, [r4, #42]
2326 00b4 9BB2 uxth r3, r3
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2327 .loc 1 1302 28 view .LVU768
2328 00b6 002B cmp r3, #0
2329 00b8 32D0 beq .L184
1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2330 .loc 1 1305 7 is_stmt 1 view .LVU769
1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2331 .loc 1 1305 11 is_stmt 0 view .LVU770
2332 00ba 2A46 mov r2, r5
2333 00bc 3146 mov r1, r6
2334 00be 2046 mov r0, r4
2335 00c0 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
2336 .LVL167:
1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2337 .loc 1 1305 10 discriminator 1 view .LVU771
2338 00c4 0028 cmp r0, #0
2339 00c6 4FD1 bne .L180
1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2340 .loc 1 1311 7 is_stmt 1 view .LVU772
1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2341 .loc 1 1311 38 is_stmt 0 view .LVU773
2342 00c8 2368 ldr r3, [r4]
1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2343 .loc 1 1311 48 view .LVU774
2344 00ca 5A6A ldr r2, [r3, #36]
1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2345 .loc 1 1311 12 view .LVU775
2346 00cc 636A ldr r3, [r4, #36]
1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2347 .loc 1 1311 23 view .LVU776
2348 00ce 1A70 strb r2, [r3]
1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2349 .loc 1 1314 7 is_stmt 1 view .LVU777
1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2350 .loc 1 1314 11 is_stmt 0 view .LVU778
2351 00d0 636A ldr r3, [r4, #36]
1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2352 .loc 1 1314 21 view .LVU779
2353 00d2 0133 adds r3, r3, #1
2354 00d4 6362 str r3, [r4, #36]
1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2355 .loc 1 1316 7 is_stmt 1 view .LVU780
1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2356 .loc 1 1316 11 is_stmt 0 view .LVU781
2357 00d6 228D ldrh r2, [r4, #40]
1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2358 .loc 1 1316 21 view .LVU782
2359 00d8 013A subs r2, r2, #1
2360 00da 92B2 uxth r2, r2
2361 00dc 2285 strh r2, [r4, #40] @ movhi
1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2362 .loc 1 1317 7 is_stmt 1 view .LVU783
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 185
1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2363 .loc 1 1317 11 is_stmt 0 view .LVU784
2364 00de 638D ldrh r3, [r4, #42]
2365 00e0 9BB2 uxth r3, r3
1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2366 .loc 1 1317 22 view .LVU785
2367 00e2 013B subs r3, r3, #1
2368 00e4 9BB2 uxth r3, r3
2369 00e6 6385 strh r3, [r4, #42] @ movhi
1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2370 .loc 1 1319 7 is_stmt 1 view .LVU786
1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2371 .loc 1 1319 16 is_stmt 0 view .LVU787
2372 00e8 638D ldrh r3, [r4, #42]
2373 00ea 9BB2 uxth r3, r3
1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2374 .loc 1 1319 10 view .LVU788
2375 00ec 002B cmp r3, #0
2376 00ee E0D0 beq .L175
1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2377 .loc 1 1319 35 discriminator 1 view .LVU789
2378 00f0 002A cmp r2, #0
2379 00f2 DED1 bne .L175
1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2380 .loc 1 1322 9 is_stmt 1 view .LVU790
1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2381 .loc 1 1322 13 is_stmt 0 view .LVU791
2382 00f4 0095 str r5, [sp]
2383 00f6 3346 mov r3, r6
2384 00f8 8021 movs r1, #128
2385 00fa 2046 mov r0, r4
2386 00fc FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2387 .LVL168:
1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2388 .loc 1 1322 12 discriminator 1 view .LVU792
2389 0100 A0BB cbnz r0, .L181
1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2390 .loc 1 1327 9 is_stmt 1 view .LVU793
1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2391 .loc 1 1327 17 is_stmt 0 view .LVU794
2392 0102 638D ldrh r3, [r4, #42]
2393 0104 9BB2 uxth r3, r3
1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2394 .loc 1 1327 12 view .LVU795
2395 0106 FF2B cmp r3, #255
2396 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,
2397 .loc 1 1329 11 is_stmt 1 view .LVU796
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 26 is_stmt 0 view .LVU797
2399 010a FF22 movs r2, #255
2400 010c 2285 strh r2, [r4, #40] @ movhi
1330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2401 .loc 1 1330 11 is_stmt 1 view .LVU798
2402 010e 0023 movs r3, #0
2403 0110 0093 str r3, [sp]
2404 0112 4FF08073 mov r3, #16777216
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 186
2405 0116 3946 mov r1, r7
2406 0118 2046 mov r0, r4
2407 011a FFF7FEFF bl I2C_TransferConfig
2408 .LVL169:
2409 011e C8E7 b .L175
2410 .L184:
1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2411 .loc 1 1344 5 view .LVU799
1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2412 .loc 1 1344 9 is_stmt 0 view .LVU800
2413 0120 2A46 mov r2, r5
2414 0122 3146 mov r1, r6
2415 0124 2046 mov r0, r4
2416 0126 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2417 .LVL170:
1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2418 .loc 1 1344 8 discriminator 1 view .LVU801
2419 012a 08BB cbnz r0, .L182
1350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2420 .loc 1 1350 5 is_stmt 1 view .LVU802
2421 012c 2368 ldr r3, [r4]
2422 012e 2022 movs r2, #32
2423 0130 DA61 str r2, [r3, #28]
1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2424 .loc 1 1353 5 view .LVU803
2425 0132 2168 ldr r1, [r4]
2426 0134 4B68 ldr r3, [r1, #4]
2427 0136 23F0FF73 bic r3, r3, #33423360
2428 013a 23F48B33 bic r3, r3, #71168
2429 013e 23F4FF73 bic r3, r3, #510
2430 0142 23F00103 bic r3, r3, #1
2431 0146 4B60 str r3, [r1, #4]
1355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2432 .loc 1 1355 5 view .LVU804
1355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2433 .loc 1 1355 17 is_stmt 0 view .LVU805
2434 0148 84F84120 strb r2, [r4, #65]
1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2435 .loc 1 1356 5 is_stmt 1 view .LVU806
1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2436 .loc 1 1356 17 is_stmt 0 view .LVU807
2437 014c 0023 movs r3, #0
2438 014e 84F84230 strb r3, [r4, #66]
1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2439 .loc 1 1359 5 is_stmt 1 view .LVU808
1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2440 .loc 1 1359 5 view .LVU809
2441 0152 84F84030 strb r3, [r4, #64]
1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2442 .loc 1 1359 5 view .LVU810
1361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2443 .loc 1 1361 5 view .LVU811
1361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2444 .loc 1 1361 12 is_stmt 0 view .LVU812
2445 0156 00E0 b .L170
2446 .LVL171:
2447 .L177:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 187
1365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2448 .loc 1 1365 12 view .LVU813
2449 0158 0220 movs r0, #2
2450 .LVL172:
2451 .L170:
1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2452 .loc 1 1367 1 view .LVU814
2453 015a 02B0 add sp, sp, #8
2454 .cfi_remember_state
2455 .cfi_def_cfa_offset 32
2456 @ sp needed
2457 015c BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
2458 .LVL173:
2459 .L178:
2460 .cfi_restore_state
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2461 .loc 1 1268 5 discriminator 1 view .LVU815
2462 0160 0220 movs r0, #2
2463 .LVL174:
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2464 .loc 1 1268 5 discriminator 1 view .LVU816
2465 0162 FAE7 b .L170
2466 .LVL175:
2467 .L179:
1275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2468 .loc 1 1275 14 view .LVU817
2469 0164 0120 movs r0, #1
2470 0166 F8E7 b .L170
2471 .L180:
1307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2472 .loc 1 1307 16 view .LVU818
2473 0168 0120 movs r0, #1
2474 016a F6E7 b .L170
2475 .L181:
1324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2476 .loc 1 1324 18 view .LVU819
2477 016c 0120 movs r0, #1
2478 016e F4E7 b .L170
2479 .L182:
1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2480 .loc 1 1346 14 view .LVU820
2481 0170 0120 movs r0, #1
2482 0172 F2E7 b .L170
2483 .L186:
2484 .align 2
2485 .L185:
2486 0174 00240080 .word -2147474432
2487 .cfi_endproc
2488 .LFE340:
2490 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits
2491 .align 1
2492 .global HAL_I2C_Slave_Transmit
2493 .syntax unified
2494 .thumb
2495 .thumb_func
2497 HAL_I2C_Slave_Transmit:
2498 .LVL176:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 188
2499 .LFB341:
1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2500 .loc 1 1380 1 is_stmt 1 view -0
2501 .cfi_startproc
2502 @ args = 0, pretend = 0, frame = 0
2503 @ frame_needed = 0, uses_anonymous_args = 0
1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2504 .loc 1 1380 1 is_stmt 0 view .LVU822
2505 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
2506 .cfi_def_cfa_offset 24
2507 .cfi_offset 4, -24
2508 .cfi_offset 5, -20
2509 .cfi_offset 6, -16
2510 .cfi_offset 7, -12
2511 .cfi_offset 8, -8
2512 .cfi_offset 14, -4
2513 0004 82B0 sub sp, sp, #8
2514 .cfi_def_cfa_offset 32
2515 0006 1D46 mov r5, r3
1381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t tmpXferCount;
2516 .loc 1 1381 3 is_stmt 1 view .LVU823
1382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef error;
2517 .loc 1 1382 3 view .LVU824
1383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2518 .loc 1 1383 3 view .LVU825
1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2519 .loc 1 1385 3 view .LVU826
1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2520 .loc 1 1385 11 is_stmt 0 view .LVU827
2521 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
2522 .LVL177:
1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2523 .loc 1 1385 6 view .LVU828
2524 000c 202B cmp r3, #32
2525 000e 40F0E180 bne .L202
2526 0012 0446 mov r4, r0
2527 0014 8846 mov r8, r1
2528 0016 1746 mov r7, r2
1387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2529 .loc 1 1387 5 is_stmt 1 view .LVU829
1387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2530 .loc 1 1387 8 is_stmt 0 view .LVU830
2531 0018 002A cmp r2, #0
2532 001a 18BF it ne
2533 001c 0029 cmpne r1, #0
2534 001e 54D0 beq .L205
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2535 .loc 1 1393 5 is_stmt 1 view .LVU831
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2536 .loc 1 1393 5 view .LVU832
2537 0020 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
2538 0024 012B cmp r3, #1
2539 0026 00F0D980 beq .L203
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2540 .loc 1 1393 5 discriminator 2 view .LVU833
2541 002a 0123 movs r3, #1
2542 002c 80F84030 strb r3, [r0, #64]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 189
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2543 .loc 1 1393 5 view .LVU834
1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2544 .loc 1 1396 5 view .LVU835
1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2545 .loc 1 1396 17 is_stmt 0 view .LVU836
2546 0030 FFF7FEFF bl HAL_GetTick
2547 .LVL178:
1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2548 .loc 1 1396 17 view .LVU837
2549 0034 0646 mov r6, r0
2550 .LVL179:
1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2551 .loc 1 1398 5 is_stmt 1 view .LVU838
1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2552 .loc 1 1398 21 is_stmt 0 view .LVU839
2553 0036 2123 movs r3, #33
2554 0038 84F84130 strb r3, [r4, #65]
1399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2555 .loc 1 1399 5 is_stmt 1 view .LVU840
1399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2556 .loc 1 1399 21 is_stmt 0 view .LVU841
2557 003c 2023 movs r3, #32
2558 003e 84F84230 strb r3, [r4, #66]
1400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2559 .loc 1 1400 5 is_stmt 1 view .LVU842
1400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2560 .loc 1 1400 21 is_stmt 0 view .LVU843
2561 0042 0022 movs r2, #0
2562 0044 6264 str r2, [r4, #68]
1403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2563 .loc 1 1403 5 is_stmt 1 view .LVU844
1403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2564 .loc 1 1403 21 is_stmt 0 view .LVU845
2565 0046 C4F82480 str r8, [r4, #36]
1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2566 .loc 1 1404 5 is_stmt 1 view .LVU846
1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2567 .loc 1 1404 21 is_stmt 0 view .LVU847
2568 004a 6785 strh r7, [r4, #42] @ movhi
1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2569 .loc 1 1405 5 is_stmt 1 view .LVU848
1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2570 .loc 1 1405 21 is_stmt 0 view .LVU849
2571 004c 6263 str r2, [r4, #52]
1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2572 .loc 1 1408 5 is_stmt 1 view .LVU850
1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2573 .loc 1 1408 9 is_stmt 0 view .LVU851
2574 004e 2168 ldr r1, [r4]
1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2575 .loc 1 1408 19 view .LVU852
2576 0050 4B68 ldr r3, [r1, #4]
1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2577 .loc 1 1408 25 view .LVU853
2578 0052 23F40043 bic r3, r3, #32768
2579 0056 4B60 str r3, [r1, #4]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 190
1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2580 .loc 1 1411 5 is_stmt 1 view .LVU854
1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2581 .loc 1 1411 9 is_stmt 0 view .LVU855
2582 0058 0090 str r0, [sp]
2583 005a 2B46 mov r3, r5
2584 005c 0821 movs r1, #8
2585 005e 2046 mov r0, r4
2586 .LVL180:
1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2587 .loc 1 1411 9 view .LVU856
2588 0060 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2589 .LVL181:
1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2590 .loc 1 1411 8 discriminator 1 view .LVU857
2591 0064 0028 cmp r0, #0
2592 0066 35D1 bne .L206
1419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2593 .loc 1 1419 5 is_stmt 1 view .LVU858
1419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2594 .loc 1 1419 19 is_stmt 0 view .LVU859
2595 0068 236A ldr r3, [r4, #32]
1419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2596 .loc 1 1419 8 view .LVU860
2597 006a B3F5003F cmp r3, #131072
2598 006e 38D0 beq .L207
2599 .L191:
1432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2600 .loc 1 1432 5 is_stmt 1 view .LVU861
2601 0070 2368 ldr r3, [r4]
2602 0072 0822 movs r2, #8
2603 0074 DA61 str r2, [r3, #28]
1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2604 .loc 1 1435 5 view .LVU862
1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2605 .loc 1 1435 19 is_stmt 0 view .LVU863
2606 0076 E368 ldr r3, [r4, #12]
1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2607 .loc 1 1435 8 view .LVU864
2608 0078 022B cmp r3, #2
2609 007a 3FD0 beq .L208
2610 .L192:
1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2611 .loc 1 1450 5 is_stmt 1 view .LVU865
1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2612 .loc 1 1450 9 is_stmt 0 view .LVU866
2613 007c 0096 str r6, [sp]
2614 007e 2B46 mov r3, r5
2615 0080 0022 movs r2, #0
2616 0082 4FF48031 mov r1, #65536
2617 0086 2046 mov r0, r4
2618 0088 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2619 .LVL182:
1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2620 .loc 1 1450 8 discriminator 1 view .LVU867
2621 008c 0028 cmp r0, #0
2622 008e 48D1 bne .L209
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 191
2623 .L194:
1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2624 .loc 1 1457 28 is_stmt 1 view .LVU868
1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2625 .loc 1 1457 16 is_stmt 0 view .LVU869
2626 0090 638D ldrh r3, [r4, #42]
2627 0092 9BB2 uxth r3, r3
1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2628 .loc 1 1457 28 view .LVU870
2629 0094 002B cmp r3, #0
2630 0096 52D0 beq .L210
1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2631 .loc 1 1460 7 is_stmt 1 view .LVU871
1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2632 .loc 1 1460 11 is_stmt 0 view .LVU872
2633 0098 3246 mov r2, r6
2634 009a 2946 mov r1, r5
2635 009c 2046 mov r0, r4
2636 009e FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
2637 .LVL183:
1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2638 .loc 1 1460 10 discriminator 1 view .LVU873
2639 00a2 0028 cmp r0, #0
2640 00a4 44D1 bne .L211
1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2641 .loc 1 1468 7 is_stmt 1 view .LVU874
1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2642 .loc 1 1468 35 is_stmt 0 view .LVU875
2643 00a6 626A ldr r2, [r4, #36]
1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2644 .loc 1 1468 11 view .LVU876
2645 00a8 2368 ldr r3, [r4]
1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2646 .loc 1 1468 30 view .LVU877
2647 00aa 1278 ldrb r2, [r2] @ zero_extendqisi2
1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2648 .loc 1 1468 28 view .LVU878
2649 00ac 9A62 str r2, [r3, #40]
1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2650 .loc 1 1471 7 is_stmt 1 view .LVU879
1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2651 .loc 1 1471 11 is_stmt 0 view .LVU880
2652 00ae 636A ldr r3, [r4, #36]
1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2653 .loc 1 1471 21 view .LVU881
2654 00b0 0133 adds r3, r3, #1
2655 00b2 6362 str r3, [r4, #36]
1473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2656 .loc 1 1473 7 is_stmt 1 view .LVU882
1473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2657 .loc 1 1473 11 is_stmt 0 view .LVU883
2658 00b4 B4F82AC0 ldrh ip, [r4, #42]
2659 00b8 1FFA8CFC uxth ip, ip
1473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2660 .loc 1 1473 22 view .LVU884
2661 00bc 0CF1FF3C add ip, ip, #-1
2662 00c0 1FFA8CFC uxth ip, ip
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 192
2663 00c4 A4F82AC0 strh ip, [r4, #42] @ movhi
2664 00c8 E2E7 b .L194
2665 .LVL184:
2666 .L205:
1389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2667 .loc 1 1389 7 is_stmt 1 view .LVU885
1389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2668 .loc 1 1389 23 is_stmt 0 view .LVU886
2669 00ca 4FF40073 mov r3, #512
2670 00ce 4364 str r3, [r0, #68]
1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2671 .loc 1 1390 7 is_stmt 1 view .LVU887
1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2672 .loc 1 1390 15 is_stmt 0 view .LVU888
2673 00d0 0120 movs r0, #1
2674 .LVL185:
1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2675 .loc 1 1390 15 view .LVU889
2676 00d2 80E0 b .L188
2677 .LVL186:
2678 .L206:
1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2679 .loc 1 1414 7 is_stmt 1 view .LVU890
1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2680 .loc 1 1414 11 is_stmt 0 view .LVU891
2681 00d4 2268 ldr r2, [r4]
1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2682 .loc 1 1414 21 view .LVU892
2683 00d6 5368 ldr r3, [r2, #4]
1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2684 .loc 1 1414 27 view .LVU893
2685 00d8 43F40043 orr r3, r3, #32768
2686 00dc 5360 str r3, [r2, #4]
1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2687 .loc 1 1415 7 is_stmt 1 view .LVU894
1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2688 .loc 1 1415 14 is_stmt 0 view .LVU895
2689 00de 0120 movs r0, #1
2690 00e0 79E0 b .L188
2691 .L207:
1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2692 .loc 1 1423 7 is_stmt 1 view .LVU896
1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2693 .loc 1 1423 35 is_stmt 0 view .LVU897
2694 00e2 626A ldr r2, [r4, #36]
1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2695 .loc 1 1423 11 view .LVU898
2696 00e4 2368 ldr r3, [r4]
1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2697 .loc 1 1423 30 view .LVU899
2698 00e6 1278 ldrb r2, [r2] @ zero_extendqisi2
1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2699 .loc 1 1423 28 view .LVU900
2700 00e8 9A62 str r2, [r3, #40]
1426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2701 .loc 1 1426 7 is_stmt 1 view .LVU901
1426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 193
2702 .loc 1 1426 11 is_stmt 0 view .LVU902
2703 00ea 636A ldr r3, [r4, #36]
1426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2704 .loc 1 1426 21 view .LVU903
2705 00ec 0133 adds r3, r3, #1
2706 00ee 6362 str r3, [r4, #36]
1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2707 .loc 1 1428 7 is_stmt 1 view .LVU904
1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2708 .loc 1 1428 11 is_stmt 0 view .LVU905
2709 00f0 638D ldrh r3, [r4, #42]
2710 00f2 9BB2 uxth r3, r3
1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2711 .loc 1 1428 22 view .LVU906
2712 00f4 013B subs r3, r3, #1
2713 00f6 9BB2 uxth r3, r3
2714 00f8 6385 strh r3, [r4, #42] @ movhi
2715 00fa B9E7 b .L191
2716 .L208:
1438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2717 .loc 1 1438 7 is_stmt 1 view .LVU907
1438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2718 .loc 1 1438 11 is_stmt 0 view .LVU908
2719 00fc 0096 str r6, [sp]
2720 00fe 2B46 mov r3, r5
2721 0100 0022 movs r2, #0
2722 0102 0821 movs r1, #8
2723 0104 2046 mov r0, r4
2724 0106 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2725 .LVL187:
1438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2726 .loc 1 1438 10 discriminator 1 view .LVU909
2727 010a 18B9 cbnz r0, .L212
1446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2728 .loc 1 1446 7 is_stmt 1 view .LVU910
2729 010c 2368 ldr r3, [r4]
2730 010e 0822 movs r2, #8
2731 0110 DA61 str r2, [r3, #28]
2732 0112 B3E7 b .L192
2733 .L212:
1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2734 .loc 1 1441 9 view .LVU911
1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2735 .loc 1 1441 13 is_stmt 0 view .LVU912
2736 0114 2268 ldr r2, [r4]
1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2737 .loc 1 1441 23 view .LVU913
2738 0116 5368 ldr r3, [r2, #4]
1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2739 .loc 1 1441 29 view .LVU914
2740 0118 43F40043 orr r3, r3, #32768
2741 011c 5360 str r3, [r2, #4]
1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2742 .loc 1 1442 9 is_stmt 1 view .LVU915
1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2743 .loc 1 1442 16 is_stmt 0 view .LVU916
2744 011e 0120 movs r0, #1
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 194
2745 0120 59E0 b .L188
2746 .L209:
1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2747 .loc 1 1453 7 is_stmt 1 view .LVU917
1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2748 .loc 1 1453 11 is_stmt 0 view .LVU918
2749 0122 2268 ldr r2, [r4]
1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2750 .loc 1 1453 21 view .LVU919
2751 0124 5368 ldr r3, [r2, #4]
1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2752 .loc 1 1453 27 view .LVU920
2753 0126 43F40043 orr r3, r3, #32768
2754 012a 5360 str r3, [r2, #4]
1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2755 .loc 1 1454 7 is_stmt 1 view .LVU921
1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2756 .loc 1 1454 14 is_stmt 0 view .LVU922
2757 012c 0120 movs r0, #1
2758 012e 52E0 b .L188
2759 .L211:
1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2760 .loc 1 1463 9 is_stmt 1 view .LVU923
1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2761 .loc 1 1463 13 is_stmt 0 view .LVU924
2762 0130 2268 ldr r2, [r4]
1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2763 .loc 1 1463 23 view .LVU925
2764 0132 5368 ldr r3, [r2, #4]
1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2765 .loc 1 1463 29 view .LVU926
2766 0134 43F40043 orr r3, r3, #32768
2767 0138 5360 str r3, [r2, #4]
1464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2768 .loc 1 1464 9 is_stmt 1 view .LVU927
1464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2769 .loc 1 1464 16 is_stmt 0 view .LVU928
2770 013a 0120 movs r0, #1
2771 013c 4BE0 b .L188
2772 .L210:
1477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2773 .loc 1 1477 5 is_stmt 1 view .LVU929
1477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2774 .loc 1 1477 13 is_stmt 0 view .LVU930
2775 013e 0096 str r6, [sp]
2776 0140 2B46 mov r3, r5
2777 0142 0022 movs r2, #0
2778 0144 1021 movs r1, #16
2779 0146 2046 mov r0, r4
2780 0148 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2781 .LVL188:
1479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2782 .loc 1 1479 5 is_stmt 1 view .LVU931
1479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2783 .loc 1 1479 8 is_stmt 0 view .LVU932
2784 014c E8B1 cbz r0, .L197
1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U))
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 195
2785 .loc 1 1485 7 is_stmt 1 view .LVU933
1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U))
2786 .loc 1 1485 20 is_stmt 0 view .LVU934
2787 014e 638D ldrh r3, [r4, #42]
2788 0150 9BB2 uxth r3, r3
2789 .LVL189:
1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2790 .loc 1 1486 7 is_stmt 1 view .LVU935
1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2791 .loc 1 1486 16 is_stmt 0 view .LVU936
2792 0152 626C ldr r2, [r4, #68]
1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2793 .loc 1 1486 10 view .LVU937
2794 0154 042A cmp r2, #4
2795 0156 11D1 bne .L198
1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2796 .loc 1 1486 49 discriminator 1 view .LVU938
2797 0158 83B9 cbnz r3, .L198
1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2798 .loc 1 1489 9 is_stmt 1 view .LVU939
1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2799 .loc 1 1489 25 is_stmt 0 view .LVU940
2800 015a 6364 str r3, [r4, #68]
2801 .LVL190:
2802 .L199:
1520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2803 .loc 1 1520 5 is_stmt 1 view .LVU941
1520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2804 .loc 1 1520 9 is_stmt 0 view .LVU942
2805 015c 0096 str r6, [sp]
2806 015e 2B46 mov r3, r5
2807 0160 0122 movs r2, #1
2808 0162 4FF40041 mov r1, #32768
2809 0166 2046 mov r0, r4
2810 0168 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2811 .LVL191:
1520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2812 .loc 1 1520 8 discriminator 1 view .LVU943
2813 016c 20B3 cbz r0, .L201
1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2814 .loc 1 1523 7 is_stmt 1 view .LVU944
1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2815 .loc 1 1523 11 is_stmt 0 view .LVU945
2816 016e 2268 ldr r2, [r4]
1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2817 .loc 1 1523 21 view .LVU946
2818 0170 5368 ldr r3, [r2, #4]
1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2819 .loc 1 1523 27 view .LVU947
2820 0172 43F40043 orr r3, r3, #32768
2821 0176 5360 str r3, [r2, #4]
1524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2822 .loc 1 1524 7 is_stmt 1 view .LVU948
1524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2823 .loc 1 1524 14 is_stmt 0 view .LVU949
2824 0178 0120 movs r0, #1
2825 017a 2CE0 b .L188
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 196
2826 .LVL192:
2827 .L198:
1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2828 .loc 1 1494 9 is_stmt 1 view .LVU950
1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2829 .loc 1 1494 13 is_stmt 0 view .LVU951
2830 017c 2268 ldr r2, [r4]
1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2831 .loc 1 1494 23 view .LVU952
2832 017e 5368 ldr r3, [r2, #4]
2833 .LVL193:
1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2834 .loc 1 1494 29 view .LVU953
2835 0180 43F40043 orr r3, r3, #32768
2836 0184 5360 str r3, [r2, #4]
1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2837 .loc 1 1495 9 is_stmt 1 view .LVU954
1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2838 .loc 1 1495 16 is_stmt 0 view .LVU955
2839 0186 0120 movs r0, #1
2840 .LVL194:
1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2841 .loc 1 1495 16 view .LVU956
2842 0188 25E0 b .L188
2843 .LVL195:
2844 .L197:
1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2845 .loc 1 1501 7 is_stmt 1 view .LVU957
2846 018a 2046 mov r0, r4
2847 .LVL196:
1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2848 .loc 1 1501 7 is_stmt 0 view .LVU958
2849 018c FFF7FEFF bl I2C_Flush_TXDR
2850 .LVL197:
1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2851 .loc 1 1504 7 is_stmt 1 view .LVU959
2852 0190 2368 ldr r3, [r4]
2853 0192 1022 movs r2, #16
2854 0194 DA61 str r2, [r3, #28]
1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2855 .loc 1 1507 7 view .LVU960
1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2856 .loc 1 1507 11 is_stmt 0 view .LVU961
2857 0196 3246 mov r2, r6
2858 0198 2946 mov r1, r5
2859 019a 2046 mov r0, r4
2860 019c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2861 .LVL198:
1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2862 .loc 1 1507 10 discriminator 1 view .LVU962
2863 01a0 18B9 cbnz r0, .L213
1516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2864 .loc 1 1516 7 is_stmt 1 view .LVU963
2865 01a2 2368 ldr r3, [r4]
2866 01a4 2022 movs r2, #32
2867 01a6 DA61 str r2, [r3, #28]
2868 01a8 D8E7 b .L199
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 197
2869 .L213:
1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2870 .loc 1 1510 9 view .LVU964
1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2871 .loc 1 1510 13 is_stmt 0 view .LVU965
2872 01aa 2268 ldr r2, [r4]
1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2873 .loc 1 1510 23 view .LVU966
2874 01ac 5368 ldr r3, [r2, #4]
1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2875 .loc 1 1510 29 view .LVU967
2876 01ae 43F40043 orr r3, r3, #32768
2877 01b2 5360 str r3, [r2, #4]
1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2878 .loc 1 1512 9 is_stmt 1 view .LVU968
1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2879 .loc 1 1512 16 is_stmt 0 view .LVU969
2880 01b4 0120 movs r0, #1
2881 01b6 0EE0 b .L188
2882 .L201:
1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2883 .loc 1 1528 5 is_stmt 1 view .LVU970
1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2884 .loc 1 1528 9 is_stmt 0 view .LVU971
2885 01b8 2268 ldr r2, [r4]
1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2886 .loc 1 1528 19 view .LVU972
2887 01ba 5368 ldr r3, [r2, #4]
1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2888 .loc 1 1528 25 view .LVU973
2889 01bc 43F40043 orr r3, r3, #32768
2890 01c0 5360 str r3, [r2, #4]
1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2891 .loc 1 1530 5 is_stmt 1 view .LVU974
1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2892 .loc 1 1530 17 is_stmt 0 view .LVU975
2893 01c2 2023 movs r3, #32
2894 01c4 84F84130 strb r3, [r4, #65]
1531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2895 .loc 1 1531 5 is_stmt 1 view .LVU976
1531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2896 .loc 1 1531 17 is_stmt 0 view .LVU977
2897 01c8 0023 movs r3, #0
2898 01ca 84F84230 strb r3, [r4, #66]
1534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2899 .loc 1 1534 5 is_stmt 1 view .LVU978
1534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2900 .loc 1 1534 5 view .LVU979
2901 01ce 84F84030 strb r3, [r4, #64]
1534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2902 .loc 1 1534 5 view .LVU980
1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2903 .loc 1 1536 5 view .LVU981
1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2904 .loc 1 1536 12 is_stmt 0 view .LVU982
2905 01d2 00E0 b .L188
2906 .LVL199:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 198
2907 .L202:
1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2908 .loc 1 1540 12 view .LVU983
2909 01d4 0220 movs r0, #2
2910 .LVL200:
2911 .L188:
1542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2912 .loc 1 1542 1 view .LVU984
2913 01d6 02B0 add sp, sp, #8
2914 .cfi_remember_state
2915 .cfi_def_cfa_offset 24
2916 @ sp needed
2917 01d8 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
2918 .LVL201:
2919 .L203:
2920 .cfi_restore_state
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2921 .loc 1 1393 5 discriminator 1 view .LVU985
2922 01dc 0220 movs r0, #2
2923 .LVL202:
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2924 .loc 1 1393 5 discriminator 1 view .LVU986
2925 01de FAE7 b .L188
2926 .cfi_endproc
2927 .LFE341:
2929 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits
2930 .align 1
2931 .global HAL_I2C_Slave_Receive
2932 .syntax unified
2933 .thumb
2934 .thumb_func
2936 HAL_I2C_Slave_Receive:
2937 .LVL203:
2938 .LFB342:
1555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2939 .loc 1 1555 1 is_stmt 1 view -0
2940 .cfi_startproc
2941 @ args = 0, pretend = 0, frame = 0
2942 @ frame_needed = 0, uses_anonymous_args = 0
1555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2943 .loc 1 1555 1 is_stmt 0 view .LVU988
2944 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
2945 .cfi_def_cfa_offset 24
2946 .cfi_offset 4, -24
2947 .cfi_offset 5, -20
2948 .cfi_offset 6, -16
2949 .cfi_offset 7, -12
2950 .cfi_offset 8, -8
2951 .cfi_offset 14, -4
2952 0004 82B0 sub sp, sp, #8
2953 .cfi_def_cfa_offset 32
2954 0006 1D46 mov r5, r3
1556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2955 .loc 1 1556 3 is_stmt 1 view .LVU989
1558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2956 .loc 1 1558 3 view .LVU990
1558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 199
2957 .loc 1 1558 11 is_stmt 0 view .LVU991
2958 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
2959 .LVL204:
1558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2960 .loc 1 1558 6 view .LVU992
2961 000c 202B cmp r3, #32
2962 000e 40F0B280 bne .L224
2963 0012 0446 mov r4, r0
2964 0014 8846 mov r8, r1
2965 0016 1746 mov r7, r2
1560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2966 .loc 1 1560 5 is_stmt 1 view .LVU993
1560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2967 .loc 1 1560 8 is_stmt 0 view .LVU994
2968 0018 002A cmp r2, #0
2969 001a 18BF it ne
2970 001c 0029 cmpne r1, #0
2971 001e 2BD0 beq .L227
1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2972 .loc 1 1566 5 is_stmt 1 view .LVU995
1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2973 .loc 1 1566 5 view .LVU996
2974 0020 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
2975 0024 012B cmp r3, #1
2976 0026 00F0AA80 beq .L225
1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2977 .loc 1 1566 5 discriminator 2 view .LVU997
2978 002a 0123 movs r3, #1
2979 002c 80F84030 strb r3, [r0, #64]
1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2980 .loc 1 1566 5 view .LVU998
1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2981 .loc 1 1569 5 view .LVU999
1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2982 .loc 1 1569 17 is_stmt 0 view .LVU1000
2983 0030 FFF7FEFF bl HAL_GetTick
2984 .LVL205:
1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2985 .loc 1 1569 17 view .LVU1001
2986 0034 0646 mov r6, r0
2987 .LVL206:
1571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2988 .loc 1 1571 5 is_stmt 1 view .LVU1002
1571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2989 .loc 1 1571 21 is_stmt 0 view .LVU1003
2990 0036 2223 movs r3, #34
2991 0038 84F84130 strb r3, [r4, #65]
1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2992 .loc 1 1572 5 is_stmt 1 view .LVU1004
1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2993 .loc 1 1572 21 is_stmt 0 view .LVU1005
2994 003c 2023 movs r3, #32
2995 003e 84F84230 strb r3, [r4, #66]
1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2996 .loc 1 1573 5 is_stmt 1 view .LVU1006
1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2997 .loc 1 1573 21 is_stmt 0 view .LVU1007
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 200
2998 0042 0022 movs r2, #0
2999 0044 6264 str r2, [r4, #68]
1576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3000 .loc 1 1576 5 is_stmt 1 view .LVU1008
1576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3001 .loc 1 1576 21 is_stmt 0 view .LVU1009
3002 0046 C4F82480 str r8, [r4, #36]
1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3003 .loc 1 1577 5 is_stmt 1 view .LVU1010
1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3004 .loc 1 1577 21 is_stmt 0 view .LVU1011
3005 004a 6785 strh r7, [r4, #42] @ movhi
1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
3006 .loc 1 1578 5 is_stmt 1 view .LVU1012
1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
3007 .loc 1 1578 26 is_stmt 0 view .LVU1013
3008 004c 638D ldrh r3, [r4, #42]
1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
3009 .loc 1 1578 20 view .LVU1014
3010 004e 2385 strh r3, [r4, #40] @ movhi
1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3011 .loc 1 1579 5 is_stmt 1 view .LVU1015
1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3012 .loc 1 1579 21 is_stmt 0 view .LVU1016
3013 0050 6263 str r2, [r4, #52]
1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3014 .loc 1 1582 5 is_stmt 1 view .LVU1017
1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3015 .loc 1 1582 9 is_stmt 0 view .LVU1018
3016 0052 2168 ldr r1, [r4]
1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3017 .loc 1 1582 19 view .LVU1019
3018 0054 4B68 ldr r3, [r1, #4]
1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3019 .loc 1 1582 25 view .LVU1020
3020 0056 23F40043 bic r3, r3, #32768
3021 005a 4B60 str r3, [r1, #4]
1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3022 .loc 1 1585 5 is_stmt 1 view .LVU1021
1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3023 .loc 1 1585 9 is_stmt 0 view .LVU1022
3024 005c 0090 str r0, [sp]
3025 005e 2B46 mov r3, r5
3026 0060 0821 movs r1, #8
3027 0062 2046 mov r0, r4
3028 .LVL207:
1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3029 .loc 1 1585 9 view .LVU1023
3030 0064 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
3031 .LVL208:
1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3032 .loc 1 1585 8 discriminator 1 view .LVU1024
3033 0068 58B1 cbz r0, .L217
1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3034 .loc 1 1588 7 is_stmt 1 view .LVU1025
1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3035 .loc 1 1588 11 is_stmt 0 view .LVU1026
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 201
3036 006a 2268 ldr r2, [r4]
1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3037 .loc 1 1588 21 view .LVU1027
3038 006c 5368 ldr r3, [r2, #4]
1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3039 .loc 1 1588 27 view .LVU1028
3040 006e 43F40043 orr r3, r3, #32768
3041 0072 5360 str r3, [r2, #4]
1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3042 .loc 1 1589 7 is_stmt 1 view .LVU1029
1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3043 .loc 1 1589 14 is_stmt 0 view .LVU1030
3044 0074 0120 movs r0, #1
3045 0076 7FE0 b .L215
3046 .LVL209:
3047 .L227:
1562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3048 .loc 1 1562 7 is_stmt 1 view .LVU1031
1562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3049 .loc 1 1562 23 is_stmt 0 view .LVU1032
3050 0078 4FF40073 mov r3, #512
3051 007c 4364 str r3, [r0, #68]
1563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3052 .loc 1 1563 7 is_stmt 1 view .LVU1033
1563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3053 .loc 1 1563 15 is_stmt 0 view .LVU1034
3054 007e 0120 movs r0, #1
3055 .LVL210:
1563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3056 .loc 1 1563 15 view .LVU1035
3057 0080 7AE0 b .L215
3058 .LVL211:
3059 .L217:
1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3060 .loc 1 1593 5 is_stmt 1 view .LVU1036
3061 0082 2368 ldr r3, [r4]
3062 0084 0822 movs r2, #8
3063 0086 DA61 str r2, [r3, #28]
1596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3064 .loc 1 1596 5 view .LVU1037
1596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3065 .loc 1 1596 9 is_stmt 0 view .LVU1038
3066 0088 0096 str r6, [sp]
3067 008a 2B46 mov r3, r5
3068 008c 0122 movs r2, #1
3069 008e 4FF48031 mov r1, #65536
3070 0092 2046 mov r0, r4
3071 0094 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
3072 .LVL212:
1596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3073 .loc 1 1596 8 discriminator 1 view .LVU1039
3074 0098 F0B9 cbnz r0, .L228
3075 .L218:
1603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3076 .loc 1 1603 28 is_stmt 1 view .LVU1040
1603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3077 .loc 1 1603 16 is_stmt 0 view .LVU1041
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 202
3078 009a 638D ldrh r3, [r4, #42]
3079 009c 9BB2 uxth r3, r3
1603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3080 .loc 1 1603 28 view .LVU1042
3081 009e 002B cmp r3, #0
3082 00a0 3BD0 beq .L229
1606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3083 .loc 1 1606 7 is_stmt 1 view .LVU1043
1606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3084 .loc 1 1606 11 is_stmt 0 view .LVU1044
3085 00a2 3246 mov r2, r6
3086 00a4 2946 mov r1, r5
3087 00a6 2046 mov r0, r4
3088 00a8 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
3089 .LVL213:
1606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3090 .loc 1 1606 10 discriminator 1 view .LVU1045
3091 00ac D8B9 cbnz r0, .L230
1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3092 .loc 1 1628 7 is_stmt 1 view .LVU1046
1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3093 .loc 1 1628 38 is_stmt 0 view .LVU1047
3094 00ae 2368 ldr r3, [r4]
1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3095 .loc 1 1628 48 view .LVU1048
3096 00b0 5A6A ldr r2, [r3, #36]
1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3097 .loc 1 1628 12 view .LVU1049
3098 00b2 636A ldr r3, [r4, #36]
1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3099 .loc 1 1628 23 view .LVU1050
3100 00b4 1A70 strb r2, [r3]
1631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3101 .loc 1 1631 7 is_stmt 1 view .LVU1051
1631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3102 .loc 1 1631 11 is_stmt 0 view .LVU1052
3103 00b6 636A ldr r3, [r4, #36]
1631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3104 .loc 1 1631 21 view .LVU1053
3105 00b8 0133 adds r3, r3, #1
3106 00ba 6362 str r3, [r4, #36]
1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3107 .loc 1 1633 7 is_stmt 1 view .LVU1054
1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3108 .loc 1 1633 11 is_stmt 0 view .LVU1055
3109 00bc B4F82AC0 ldrh ip, [r4, #42]
3110 00c0 1FFA8CFC uxth ip, ip
1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3111 .loc 1 1633 22 view .LVU1056
3112 00c4 0CF1FF3C add ip, ip, #-1
3113 00c8 1FFA8CFC uxth ip, ip
3114 00cc A4F82AC0 strh ip, [r4, #42] @ movhi
1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3115 .loc 1 1634 7 is_stmt 1 view .LVU1057
1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3116 .loc 1 1634 11 is_stmt 0 view .LVU1058
3117 00d0 238D ldrh r3, [r4, #40]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 203
1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3118 .loc 1 1634 21 view .LVU1059
3119 00d2 013B subs r3, r3, #1
3120 00d4 2385 strh r3, [r4, #40] @ movhi
3121 00d6 E0E7 b .L218
3122 .L228:
1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3123 .loc 1 1599 7 is_stmt 1 view .LVU1060
1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3124 .loc 1 1599 11 is_stmt 0 view .LVU1061
3125 00d8 2268 ldr r2, [r4]
1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3126 .loc 1 1599 21 view .LVU1062
3127 00da 5368 ldr r3, [r2, #4]
1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3128 .loc 1 1599 27 view .LVU1063
3129 00dc 43F40043 orr r3, r3, #32768
3130 00e0 5360 str r3, [r2, #4]
1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3131 .loc 1 1600 7 is_stmt 1 view .LVU1064
1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3132 .loc 1 1600 14 is_stmt 0 view .LVU1065
3133 00e2 0120 movs r0, #1
3134 00e4 48E0 b .L215
3135 .L230:
1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3136 .loc 1 1609 9 is_stmt 1 view .LVU1066
1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3137 .loc 1 1609 13 is_stmt 0 view .LVU1067
3138 00e6 2268 ldr r2, [r4]
1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3139 .loc 1 1609 23 view .LVU1068
3140 00e8 5368 ldr r3, [r2, #4]
1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3141 .loc 1 1609 29 view .LVU1069
3142 00ea 43F40043 orr r3, r3, #32768
3143 00ee 5360 str r3, [r2, #4]
1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3144 .loc 1 1612 9 is_stmt 1 view .LVU1070
1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3145 .loc 1 1612 13 is_stmt 0 view .LVU1071
3146 00f0 2368 ldr r3, [r4]
3147 00f2 9A69 ldr r2, [r3, #24]
1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3148 .loc 1 1612 12 view .LVU1072
3149 00f4 12F0040F tst r2, #4
3150 00f8 0DD0 beq .L220
1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3151 .loc 1 1615 11 is_stmt 1 view .LVU1073
1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3152 .loc 1 1615 52 is_stmt 0 view .LVU1074
3153 00fa 5A6A ldr r2, [r3, #36]
1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3154 .loc 1 1615 16 view .LVU1075
3155 00fc 636A ldr r3, [r4, #36]
1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3156 .loc 1 1615 27 view .LVU1076
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 204
3157 00fe 1A70 strb r2, [r3]
1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3158 .loc 1 1618 11 is_stmt 1 view .LVU1077
1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3159 .loc 1 1618 15 is_stmt 0 view .LVU1078
3160 0100 636A ldr r3, [r4, #36]
1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3161 .loc 1 1618 25 view .LVU1079
3162 0102 0133 adds r3, r3, #1
3163 0104 6362 str r3, [r4, #36]
1620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3164 .loc 1 1620 11 is_stmt 1 view .LVU1080
1620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3165 .loc 1 1620 15 is_stmt 0 view .LVU1081
3166 0106 638D ldrh r3, [r4, #42]
3167 0108 9BB2 uxth r3, r3
1620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3168 .loc 1 1620 26 view .LVU1082
3169 010a 013B subs r3, r3, #1
3170 010c 9BB2 uxth r3, r3
3171 010e 6385 strh r3, [r4, #42] @ movhi
1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3172 .loc 1 1621 11 is_stmt 1 view .LVU1083
1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3173 .loc 1 1621 15 is_stmt 0 view .LVU1084
3174 0110 238D ldrh r3, [r4, #40]
1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3175 .loc 1 1621 25 view .LVU1085
3176 0112 013B subs r3, r3, #1
3177 0114 2385 strh r3, [r4, #40] @ movhi
3178 .L220:
1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3179 .loc 1 1624 9 is_stmt 1 view .LVU1086
1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3180 .loc 1 1624 16 is_stmt 0 view .LVU1087
3181 0116 0120 movs r0, #1
3182 0118 2EE0 b .L215
3183 .L229:
1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3184 .loc 1 1638 5 is_stmt 1 view .LVU1088
1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3185 .loc 1 1638 9 is_stmt 0 view .LVU1089
3186 011a 3246 mov r2, r6
3187 011c 2946 mov r1, r5
3188 011e 2046 mov r0, r4
3189 0120 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
3190 .LVL214:
1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3191 .loc 1 1638 8 discriminator 1 view .LVU1090
3192 0124 30B1 cbz r0, .L222
1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3193 .loc 1 1641 7 is_stmt 1 view .LVU1091
1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3194 .loc 1 1641 11 is_stmt 0 view .LVU1092
3195 0126 2268 ldr r2, [r4]
1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3196 .loc 1 1641 21 view .LVU1093
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 205
3197 0128 5368 ldr r3, [r2, #4]
1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3198 .loc 1 1641 27 view .LVU1094
3199 012a 43F40043 orr r3, r3, #32768
3200 012e 5360 str r3, [r2, #4]
1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3201 .loc 1 1642 7 is_stmt 1 view .LVU1095
1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3202 .loc 1 1642 14 is_stmt 0 view .LVU1096
3203 0130 0120 movs r0, #1
3204 0132 21E0 b .L215
3205 .L222:
1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3206 .loc 1 1646 5 is_stmt 1 view .LVU1097
3207 0134 2368 ldr r3, [r4]
3208 0136 2022 movs r2, #32
3209 0138 DA61 str r2, [r3, #28]
1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3210 .loc 1 1649 5 view .LVU1098
1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3211 .loc 1 1649 9 is_stmt 0 view .LVU1099
3212 013a 0096 str r6, [sp]
3213 013c 2B46 mov r3, r5
3214 013e 0122 movs r2, #1
3215 0140 4FF40041 mov r1, #32768
3216 0144 2046 mov r0, r4
3217 0146 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
3218 .LVL215:
1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3219 .loc 1 1649 8 discriminator 1 view .LVU1100
3220 014a 30B1 cbz r0, .L223
1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3221 .loc 1 1652 7 is_stmt 1 view .LVU1101
1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3222 .loc 1 1652 11 is_stmt 0 view .LVU1102
3223 014c 2268 ldr r2, [r4]
1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3224 .loc 1 1652 21 view .LVU1103
3225 014e 5368 ldr r3, [r2, #4]
1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3226 .loc 1 1652 27 view .LVU1104
3227 0150 43F40043 orr r3, r3, #32768
3228 0154 5360 str r3, [r2, #4]
1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3229 .loc 1 1653 7 is_stmt 1 view .LVU1105
1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3230 .loc 1 1653 14 is_stmt 0 view .LVU1106
3231 0156 0120 movs r0, #1
3232 0158 0EE0 b .L215
3233 .L223:
1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3234 .loc 1 1657 5 is_stmt 1 view .LVU1107
1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3235 .loc 1 1657 9 is_stmt 0 view .LVU1108
3236 015a 2268 ldr r2, [r4]
1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3237 .loc 1 1657 19 view .LVU1109
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 206
3238 015c 5368 ldr r3, [r2, #4]
1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3239 .loc 1 1657 25 view .LVU1110
3240 015e 43F40043 orr r3, r3, #32768
3241 0162 5360 str r3, [r2, #4]
1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3242 .loc 1 1659 5 is_stmt 1 view .LVU1111
1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3243 .loc 1 1659 17 is_stmt 0 view .LVU1112
3244 0164 2023 movs r3, #32
3245 0166 84F84130 strb r3, [r4, #65]
1660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3246 .loc 1 1660 5 is_stmt 1 view .LVU1113
1660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3247 .loc 1 1660 17 is_stmt 0 view .LVU1114
3248 016a 0023 movs r3, #0
3249 016c 84F84230 strb r3, [r4, #66]
1663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3250 .loc 1 1663 5 is_stmt 1 view .LVU1115
1663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3251 .loc 1 1663 5 view .LVU1116
3252 0170 84F84030 strb r3, [r4, #64]
1663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3253 .loc 1 1663 5 view .LVU1117
1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3254 .loc 1 1665 5 view .LVU1118
1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3255 .loc 1 1665 12 is_stmt 0 view .LVU1119
3256 0174 00E0 b .L215
3257 .LVL216:
3258 .L224:
1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3259 .loc 1 1669 12 view .LVU1120
3260 0176 0220 movs r0, #2
3261 .LVL217:
3262 .L215:
1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3263 .loc 1 1671 1 view .LVU1121
3264 0178 02B0 add sp, sp, #8
3265 .cfi_remember_state
3266 .cfi_def_cfa_offset 24
3267 @ sp needed
3268 017a BDE8F081 pop {r4, r5, r6, r7, r8, pc}
3269 .LVL218:
3270 .L225:
3271 .cfi_restore_state
1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3272 .loc 1 1566 5 discriminator 1 view .LVU1122
3273 017e 0220 movs r0, #2
3274 .LVL219:
1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3275 .loc 1 1566 5 discriminator 1 view .LVU1123
3276 0180 FAE7 b .L215
3277 .cfi_endproc
3278 .LFE342:
3280 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits
3281 .align 1
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 207
3282 .global HAL_I2C_Master_Transmit_IT
3283 .syntax unified
3284 .thumb
3285 .thumb_func
3287 HAL_I2C_Master_Transmit_IT:
3288 .LVL220:
3289 .LFB343:
1685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3290 .loc 1 1685 1 is_stmt 1 view -0
3291 .cfi_startproc
3292 @ args = 0, pretend = 0, frame = 0
3293 @ frame_needed = 0, uses_anonymous_args = 0
1685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3294 .loc 1 1685 1 is_stmt 0 view .LVU1125
3295 0000 30B5 push {r4, r5, lr}
3296 .cfi_def_cfa_offset 12
3297 .cfi_offset 4, -12
3298 .cfi_offset 5, -8
3299 .cfi_offset 14, -4
3300 0002 83B0 sub sp, sp, #12
3301 .cfi_def_cfa_offset 24
3302 0004 0446 mov r4, r0
1686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3303 .loc 1 1686 3 is_stmt 1 view .LVU1126
1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3304 .loc 1 1688 3 view .LVU1127
1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3305 .loc 1 1688 11 is_stmt 0 view .LVU1128
3306 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3307 .LVL221:
1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3308 .loc 1 1688 6 view .LVU1129
3309 000a 2028 cmp r0, #32
3310 000c 4ED1 bne .L237
1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3311 .loc 1 1690 5 is_stmt 1 view .LVU1130
1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3312 .loc 1 1690 9 is_stmt 0 view .LVU1131
3313 000e 2068 ldr r0, [r4]
3314 0010 8569 ldr r5, [r0, #24]
1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3315 .loc 1 1690 8 view .LVU1132
3316 0012 15F4004F tst r5, #32768
3317 0016 4BD1 bne .L238
1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3318 .loc 1 1696 5 is_stmt 1 view .LVU1133
1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3319 .loc 1 1696 5 view .LVU1134
3320 0018 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2
3321 001c 012D cmp r5, #1
3322 001e 49D0 beq .L239
1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3323 .loc 1 1696 5 discriminator 2 view .LVU1135
3324 0020 0125 movs r5, #1
3325 0022 84F84050 strb r5, [r4, #64]
1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3326 .loc 1 1696 5 view .LVU1136
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 208
1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3327 .loc 1 1698 5 view .LVU1137
1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3328 .loc 1 1698 23 is_stmt 0 view .LVU1138
3329 0026 2125 movs r5, #33
3330 0028 84F84150 strb r5, [r4, #65]
1699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3331 .loc 1 1699 5 is_stmt 1 view .LVU1139
1699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3332 .loc 1 1699 23 is_stmt 0 view .LVU1140
3333 002c 1025 movs r5, #16
3334 002e 84F84250 strb r5, [r4, #66]
1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3335 .loc 1 1700 5 is_stmt 1 view .LVU1141
1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3336 .loc 1 1700 23 is_stmt 0 view .LVU1142
3337 0032 0025 movs r5, #0
3338 0034 6564 str r5, [r4, #68]
1703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3339 .loc 1 1703 5 is_stmt 1 view .LVU1143
1703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3340 .loc 1 1703 23 is_stmt 0 view .LVU1144
3341 0036 6262 str r2, [r4, #36]
1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3342 .loc 1 1704 5 is_stmt 1 view .LVU1145
1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3343 .loc 1 1704 23 is_stmt 0 view .LVU1146
3344 0038 6385 strh r3, [r4, #42] @ movhi
1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3345 .loc 1 1705 5 is_stmt 1 view .LVU1147
1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3346 .loc 1 1705 23 is_stmt 0 view .LVU1148
3347 003a 1F4B ldr r3, .L241
3348 .LVL222:
1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3349 .loc 1 1705 23 view .LVU1149
3350 003c E362 str r3, [r4, #44]
3351 .LVL223:
1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3352 .loc 1 1706 5 is_stmt 1 view .LVU1150
1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3353 .loc 1 1706 23 is_stmt 0 view .LVU1151
3354 003e 1F4B ldr r3, .L241+4
3355 0040 6363 str r3, [r4, #52]
1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3356 .loc 1 1708 5 is_stmt 1 view .LVU1152
1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3357 .loc 1 1708 13 is_stmt 0 view .LVU1153
3358 0042 638D ldrh r3, [r4, #42]
3359 0044 9BB2 uxth r3, r3
1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3360 .loc 1 1708 8 view .LVU1154
3361 0046 FF2B cmp r3, #255
3362 0048 24D9 bls .L233
1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3363 .loc 1 1710 7 is_stmt 1 view .LVU1155
1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 209
3364 .loc 1 1710 22 is_stmt 0 view .LVU1156
3365 004a FF23 movs r3, #255
3366 004c 2385 strh r3, [r4, #40] @ movhi
1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3367 .loc 1 1711 7 is_stmt 1 view .LVU1157
3368 .LVL224:
1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3369 .loc 1 1711 16 is_stmt 0 view .LVU1158
3370 004e 4FF08073 mov r3, #16777216
3371 .LVL225:
3372 .L234:
1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3373 .loc 1 1721 5 is_stmt 1 view .LVU1159
1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3374 .loc 1 1721 13 is_stmt 0 view .LVU1160
3375 0052 258D ldrh r5, [r4, #40]
1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3376 .loc 1 1721 8 view .LVU1161
3377 0054 1DB3 cbz r5, .L235
1725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3378 .loc 1 1725 7 is_stmt 1 view .LVU1162
1725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3379 .loc 1 1725 30 is_stmt 0 view .LVU1163
3380 0056 1278 ldrb r2, [r2] @ zero_extendqisi2
3381 .LVL226:
1725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3382 .loc 1 1725 28 view .LVU1164
3383 0058 8262 str r2, [r0, #40]
3384 .LVL227:
1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3385 .loc 1 1728 7 is_stmt 1 view .LVU1165
1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3386 .loc 1 1728 11 is_stmt 0 view .LVU1166
3387 005a 626A ldr r2, [r4, #36]
1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3388 .loc 1 1728 21 view .LVU1167
3389 005c 0132 adds r2, r2, #1
3390 005e 6262 str r2, [r4, #36]
1730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3391 .loc 1 1730 7 is_stmt 1 view .LVU1168
1730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3392 .loc 1 1730 11 is_stmt 0 view .LVU1169
3393 0060 628D ldrh r2, [r4, #42]
3394 0062 92B2 uxth r2, r2
1730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3395 .loc 1 1730 22 view .LVU1170
3396 0064 013A subs r2, r2, #1
3397 0066 92B2 uxth r2, r2
3398 0068 6285 strh r2, [r4, #42] @ movhi
1731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3399 .loc 1 1731 7 is_stmt 1 view .LVU1171
1731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3400 .loc 1 1731 11 is_stmt 0 view .LVU1172
3401 006a 228D ldrh r2, [r4, #40]
1731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3402 .loc 1 1731 21 view .LVU1173
3403 006c 013A subs r2, r2, #1
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 210
3404 006e 92B2 uxth r2, r2
3405 0070 2285 strh r2, [r4, #40] @ movhi
1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3406 .loc 1 1733 7 is_stmt 1 view .LVU1174
3407 0072 0132 adds r2, r2, #1
3408 0074 1248 ldr r0, .L241+8
3409 0076 0090 str r0, [sp]
3410 0078 D2B2 uxtb r2, r2
3411 007a 2046 mov r0, r4
3412 007c FFF7FEFF bl I2C_TransferConfig
3413 .LVL228:
3414 .L236:
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3415 .loc 1 1743 5 view .LVU1175
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3416 .loc 1 1743 5 view .LVU1176
3417 0080 0025 movs r5, #0
3418 0082 84F84050 strb r5, [r4, #64]
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3419 .loc 1 1743 5 view .LVU1177
1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3420 .loc 1 1753 5 view .LVU1178
3421 0086 0121 movs r1, #1
3422 0088 2046 mov r0, r4
3423 008a FFF7FEFF bl I2C_Enable_IRQ
3424 .LVL229:
1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3425 .loc 1 1755 5 view .LVU1179
1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3426 .loc 1 1755 12 is_stmt 0 view .LVU1180
3427 008e 2846 mov r0, r5
3428 .LVL230:
3429 .L232:
1761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3430 .loc 1 1761 1 view .LVU1181
3431 0090 03B0 add sp, sp, #12
3432 .cfi_remember_state
3433 .cfi_def_cfa_offset 12
3434 @ sp needed
3435 0092 30BD pop {r4, r5, pc}
3436 .LVL231:
3437 .L233:
3438 .cfi_restore_state
1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3439 .loc 1 1715 7 is_stmt 1 view .LVU1182
1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3440 .loc 1 1715 28 is_stmt 0 view .LVU1183
3441 0094 638D ldrh r3, [r4, #42]
1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3442 .loc 1 1715 22 view .LVU1184
3443 0096 2385 strh r3, [r4, #40] @ movhi
1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3444 .loc 1 1716 7 is_stmt 1 view .LVU1185
3445 .LVL232:
1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3446 .loc 1 1716 16 is_stmt 0 view .LVU1186
3447 0098 4FF00073 mov r3, #33554432
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 211
3448 009c D9E7 b .L234
3449 .LVL233:
3450 .L235:
1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3451 .loc 1 1738 7 is_stmt 1 view .LVU1187
3452 009e 084A ldr r2, .L241+8
3453 .LVL234:
1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3454 .loc 1 1738 7 is_stmt 0 view .LVU1188
3455 00a0 0092 str r2, [sp]
3456 .LVL235:
1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3457 .loc 1 1738 7 view .LVU1189
3458 00a2 EAB2 uxtb r2, r5
3459 00a4 2046 mov r0, r4
3460 00a6 FFF7FEFF bl I2C_TransferConfig
3461 .LVL236:
1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3462 .loc 1 1738 7 view .LVU1190
3463 00aa E9E7 b .L236
3464 .LVL237:
3465 .L237:
1759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3466 .loc 1 1759 12 view .LVU1191
3467 00ac 0220 movs r0, #2
3468 00ae EFE7 b .L232
3469 .L238:
1692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3470 .loc 1 1692 14 view .LVU1192
3471 00b0 0220 movs r0, #2
3472 00b2 EDE7 b .L232
3473 .L239:
1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3474 .loc 1 1696 5 discriminator 1 view .LVU1193
3475 00b4 0220 movs r0, #2
3476 00b6 EBE7 b .L232
3477 .L242:
3478 .align 2
3479 .L241:
3480 00b8 0000FFFF .word -65536
3481 00bc 00000000 .word I2C_Master_ISR_IT
3482 00c0 00200080 .word -2147475456
3483 .cfi_endproc
3484 .LFE343:
3486 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits
3487 .align 1
3488 .global HAL_I2C_Master_Receive_IT
3489 .syntax unified
3490 .thumb
3491 .thumb_func
3493 HAL_I2C_Master_Receive_IT:
3494 .LVL238:
3495 .LFB344:
1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3496 .loc 1 1775 1 is_stmt 1 view -0
3497 .cfi_startproc
3498 @ args = 0, pretend = 0, frame = 0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 212
3499 @ frame_needed = 0, uses_anonymous_args = 0
1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3500 .loc 1 1775 1 is_stmt 0 view .LVU1195
3501 0000 30B5 push {r4, r5, lr}
3502 .cfi_def_cfa_offset 12
3503 .cfi_offset 4, -12
3504 .cfi_offset 5, -8
3505 .cfi_offset 14, -4
3506 0002 83B0 sub sp, sp, #12
3507 .cfi_def_cfa_offset 24
3508 0004 0446 mov r4, r0
1776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3509 .loc 1 1776 3 is_stmt 1 view .LVU1196
1778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3510 .loc 1 1778 3 view .LVU1197
1778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3511 .loc 1 1778 11 is_stmt 0 view .LVU1198
3512 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3513 .LVL239:
1778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3514 .loc 1 1778 6 view .LVU1199
3515 000a 2028 cmp r0, #32
3516 000c 37D1 bne .L247
1780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3517 .loc 1 1780 5 is_stmt 1 view .LVU1200
1780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3518 .loc 1 1780 9 is_stmt 0 view .LVU1201
3519 000e 2068 ldr r0, [r4]
3520 0010 8069 ldr r0, [r0, #24]
1780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3521 .loc 1 1780 8 view .LVU1202
3522 0012 10F4004F tst r0, #32768
3523 0016 34D1 bne .L248
1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3524 .loc 1 1786 5 is_stmt 1 view .LVU1203
1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3525 .loc 1 1786 5 view .LVU1204
3526 0018 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2
3527 001c 0128 cmp r0, #1
3528 001e 32D0 beq .L249
1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3529 .loc 1 1786 5 discriminator 2 view .LVU1205
3530 0020 0120 movs r0, #1
3531 0022 84F84000 strb r0, [r4, #64]
1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3532 .loc 1 1786 5 view .LVU1206
1788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3533 .loc 1 1788 5 view .LVU1207
1788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3534 .loc 1 1788 23 is_stmt 0 view .LVU1208
3535 0026 2220 movs r0, #34
3536 0028 84F84100 strb r0, [r4, #65]
1789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3537 .loc 1 1789 5 is_stmt 1 view .LVU1209
1789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3538 .loc 1 1789 23 is_stmt 0 view .LVU1210
3539 002c 1020 movs r0, #16
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 213
3540 002e 84F84200 strb r0, [r4, #66]
1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3541 .loc 1 1790 5 is_stmt 1 view .LVU1211
1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3542 .loc 1 1790 23 is_stmt 0 view .LVU1212
3543 0032 0020 movs r0, #0
3544 0034 6064 str r0, [r4, #68]
1793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3545 .loc 1 1793 5 is_stmt 1 view .LVU1213
1793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3546 .loc 1 1793 23 is_stmt 0 view .LVU1214
3547 0036 6262 str r2, [r4, #36]
1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3548 .loc 1 1794 5 is_stmt 1 view .LVU1215
1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3549 .loc 1 1794 23 is_stmt 0 view .LVU1216
3550 0038 6385 strh r3, [r4, #42] @ movhi
1795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3551 .loc 1 1795 5 is_stmt 1 view .LVU1217
1795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3552 .loc 1 1795 23 is_stmt 0 view .LVU1218
3553 003a 144B ldr r3, .L251
3554 .LVL240:
1795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3555 .loc 1 1795 23 view .LVU1219
3556 003c E362 str r3, [r4, #44]
3557 .LVL241:
1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3558 .loc 1 1796 5 is_stmt 1 view .LVU1220
1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3559 .loc 1 1796 23 is_stmt 0 view .LVU1221
3560 003e 144B ldr r3, .L251+4
3561 0040 6363 str r3, [r4, #52]
1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3562 .loc 1 1798 5 is_stmt 1 view .LVU1222
1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3563 .loc 1 1798 13 is_stmt 0 view .LVU1223
3564 0042 638D ldrh r3, [r4, #42]
3565 0044 9BB2 uxth r3, r3
1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3566 .loc 1 1798 8 view .LVU1224
3567 0046 FF2B cmp r3, #255
3568 0048 14D9 bls .L245
1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3569 .loc 1 1800 7 is_stmt 1 view .LVU1225
1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3570 .loc 1 1800 22 is_stmt 0 view .LVU1226
3571 004a FF23 movs r3, #255
3572 004c 2385 strh r3, [r4, #40] @ movhi
1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3573 .loc 1 1801 7 is_stmt 1 view .LVU1227
3574 .LVL242:
1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3575 .loc 1 1801 16 is_stmt 0 view .LVU1228
3576 004e 4FF08073 mov r3, #16777216
3577 .LVL243:
3578 .L246:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 214
1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3579 .loc 1 1811 5 is_stmt 1 view .LVU1229
3580 0052 104A ldr r2, .L251+8
3581 .LVL244:
1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3582 .loc 1 1811 5 is_stmt 0 view .LVU1230
3583 0054 0092 str r2, [sp]
3584 .LVL245:
1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3585 .loc 1 1811 5 view .LVU1231
3586 0056 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
3587 005a 2046 mov r0, r4
3588 005c FFF7FEFF bl I2C_TransferConfig
3589 .LVL246:
1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3590 .loc 1 1814 5 is_stmt 1 view .LVU1232
1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3591 .loc 1 1814 5 view .LVU1233
3592 0060 0025 movs r5, #0
3593 0062 84F84050 strb r5, [r4, #64]
1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3594 .loc 1 1814 5 view .LVU1234
1824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3595 .loc 1 1824 5 view .LVU1235
3596 0066 0221 movs r1, #2
3597 0068 2046 mov r0, r4
3598 006a FFF7FEFF bl I2C_Enable_IRQ
3599 .LVL247:
1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3600 .loc 1 1826 5 view .LVU1236
1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3601 .loc 1 1826 12 is_stmt 0 view .LVU1237
3602 006e 2846 mov r0, r5
3603 .LVL248:
3604 .L244:
1832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3605 .loc 1 1832 1 view .LVU1238
3606 0070 03B0 add sp, sp, #12
3607 .cfi_remember_state
3608 .cfi_def_cfa_offset 12
3609 @ sp needed
3610 0072 30BD pop {r4, r5, pc}
3611 .LVL249:
3612 .L245:
3613 .cfi_restore_state
1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3614 .loc 1 1805 7 is_stmt 1 view .LVU1239
1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3615 .loc 1 1805 28 is_stmt 0 view .LVU1240
3616 0074 638D ldrh r3, [r4, #42]
1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3617 .loc 1 1805 22 view .LVU1241
3618 0076 2385 strh r3, [r4, #40] @ movhi
1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3619 .loc 1 1806 7 is_stmt 1 view .LVU1242
3620 .LVL250:
1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 215
3621 .loc 1 1806 16 is_stmt 0 view .LVU1243
3622 0078 4FF00073 mov r3, #33554432
3623 007c E9E7 b .L246
3624 .LVL251:
3625 .L247:
1830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3626 .loc 1 1830 12 view .LVU1244
3627 007e 0220 movs r0, #2
3628 0080 F6E7 b .L244
3629 .L248:
1782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3630 .loc 1 1782 14 view .LVU1245
3631 0082 0220 movs r0, #2
3632 0084 F4E7 b .L244
3633 .L249:
1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3634 .loc 1 1786 5 discriminator 1 view .LVU1246
3635 0086 0220 movs r0, #2
3636 0088 F2E7 b .L244
3637 .L252:
3638 008a 00BF .align 2
3639 .L251:
3640 008c 0000FFFF .word -65536
3641 0090 00000000 .word I2C_Master_ISR_IT
3642 0094 00240080 .word -2147474432
3643 .cfi_endproc
3644 .LFE344:
3646 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits
3647 .align 1
3648 .global HAL_I2C_Slave_Transmit_IT
3649 .syntax unified
3650 .thumb
3651 .thumb_func
3653 HAL_I2C_Slave_Transmit_IT:
3654 .LVL252:
3655 .LFB345:
1843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3656 .loc 1 1843 1 is_stmt 1 view -0
3657 .cfi_startproc
3658 @ args = 0, pretend = 0, frame = 0
3659 @ frame_needed = 0, uses_anonymous_args = 0
1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3660 .loc 1 1844 3 view .LVU1248
1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3661 .loc 1 1844 11 is_stmt 0 view .LVU1249
3662 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3663 .loc 1 1844 6 view .LVU1250
3664 0004 202B cmp r3, #32
3665 0006 38D1 bne .L256
1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3666 .loc 1 1847 5 is_stmt 1 view .LVU1251
1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3667 .loc 1 1847 5 view .LVU1252
3668 0008 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
3669 000c 012B cmp r3, #1
3670 000e 36D0 beq .L257
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 216
1843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3671 .loc 1 1843 1 is_stmt 0 view .LVU1253
3672 0010 10B5 push {r4, lr}
3673 .cfi_def_cfa_offset 8
3674 .cfi_offset 4, -8
3675 .cfi_offset 14, -4
1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3676 .loc 1 1847 5 is_stmt 1 discriminator 2 view .LVU1254
3677 0012 0123 movs r3, #1
3678 0014 80F84030 strb r3, [r0, #64]
1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3679 .loc 1 1847 5 view .LVU1255
1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3680 .loc 1 1849 5 view .LVU1256
1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3681 .loc 1 1849 23 is_stmt 0 view .LVU1257
3682 0018 2123 movs r3, #33
3683 001a 80F84130 strb r3, [r0, #65]
1850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3684 .loc 1 1850 5 is_stmt 1 view .LVU1258
1850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3685 .loc 1 1850 23 is_stmt 0 view .LVU1259
3686 001e 2023 movs r3, #32
3687 0020 80F84230 strb r3, [r0, #66]
1851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3688 .loc 1 1851 5 is_stmt 1 view .LVU1260
1851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3689 .loc 1 1851 23 is_stmt 0 view .LVU1261
3690 0024 0023 movs r3, #0
3691 0026 4364 str r3, [r0, #68]
1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3692 .loc 1 1854 5 is_stmt 1 view .LVU1262
1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3693 .loc 1 1854 9 is_stmt 0 view .LVU1263
3694 0028 0468 ldr r4, [r0]
1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3695 .loc 1 1854 19 view .LVU1264
3696 002a 6368 ldr r3, [r4, #4]
1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3697 .loc 1 1854 25 view .LVU1265
3698 002c 23F40043 bic r3, r3, #32768
3699 0030 6360 str r3, [r4, #4]
1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3700 .loc 1 1857 5 is_stmt 1 view .LVU1266
1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3701 .loc 1 1857 23 is_stmt 0 view .LVU1267
3702 0032 4162 str r1, [r0, #36]
1858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3703 .loc 1 1858 5 is_stmt 1 view .LVU1268
1858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3704 .loc 1 1858 23 is_stmt 0 view .LVU1269
3705 0034 4285 strh r2, [r0, #42] @ movhi
1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3706 .loc 1 1859 5 is_stmt 1 view .LVU1270
1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3707 .loc 1 1859 29 is_stmt 0 view .LVU1271
3708 0036 438D ldrh r3, [r0, #42]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 217
1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3709 .loc 1 1859 23 view .LVU1272
3710 0038 0385 strh r3, [r0, #40] @ movhi
1860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3711 .loc 1 1860 5 is_stmt 1 view .LVU1273
1860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3712 .loc 1 1860 23 is_stmt 0 view .LVU1274
3713 003a 124B ldr r3, .L263
3714 003c C362 str r3, [r0, #44]
1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3715 .loc 1 1861 5 is_stmt 1 view .LVU1275
1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3716 .loc 1 1861 23 is_stmt 0 view .LVU1276
3717 003e 124B ldr r3, .L263+4
3718 0040 4363 str r3, [r0, #52]
1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3719 .loc 1 1864 5 is_stmt 1 view .LVU1277
1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3720 .loc 1 1864 19 is_stmt 0 view .LVU1278
3721 0042 036A ldr r3, [r0, #32]
1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3722 .loc 1 1864 8 view .LVU1279
3723 0044 B3F5003F cmp r3, #131072
3724 0048 08D0 beq .L262
3725 .LVL253:
3726 .L255:
1878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3727 .loc 1 1878 5 is_stmt 1 view .LVU1280
1878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3728 .loc 1 1878 5 view .LVU1281
3729 004a 0024 movs r4, #0
3730 004c 80F84040 strb r4, [r0, #64]
1878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3731 .loc 1 1878 5 view .LVU1282
1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3732 .loc 1 1888 5 view .LVU1283
3733 0050 48F20101 movw r1, #32769
3734 .LVL254:
1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3735 .loc 1 1888 5 is_stmt 0 view .LVU1284
3736 0054 FFF7FEFF bl I2C_Enable_IRQ
3737 .LVL255:
1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3738 .loc 1 1890 5 is_stmt 1 view .LVU1285
1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3739 .loc 1 1890 12 is_stmt 0 view .LVU1286
3740 0058 2046 mov r0, r4
1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3741 .loc 1 1896 1 view .LVU1287
3742 005a 10BD pop {r4, pc}
3743 .LVL256:
3744 .L262:
1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3745 .loc 1 1868 7 is_stmt 1 view .LVU1288
1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3746 .loc 1 1868 11 is_stmt 0 view .LVU1289
3747 005c 0368 ldr r3, [r0]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 218
1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3748 .loc 1 1868 30 view .LVU1290
3749 005e 0A78 ldrb r2, [r1] @ zero_extendqisi2
3750 .LVL257:
1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3751 .loc 1 1868 28 view .LVU1291
3752 0060 9A62 str r2, [r3, #40]
1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3753 .loc 1 1871 7 is_stmt 1 view .LVU1292
1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3754 .loc 1 1871 11 is_stmt 0 view .LVU1293
3755 0062 436A ldr r3, [r0, #36]
1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3756 .loc 1 1871 21 view .LVU1294
3757 0064 0133 adds r3, r3, #1
3758 0066 4362 str r3, [r0, #36]
1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3759 .loc 1 1873 7 is_stmt 1 view .LVU1295
1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3760 .loc 1 1873 11 is_stmt 0 view .LVU1296
3761 0068 438D ldrh r3, [r0, #42]
3762 006a 9BB2 uxth r3, r3
1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
3763 .loc 1 1873 22 view .LVU1297
3764 006c 013B subs r3, r3, #1
3765 006e 9BB2 uxth r3, r3
3766 0070 4385 strh r3, [r0, #42] @ movhi
1874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3767 .loc 1 1874 7 is_stmt 1 view .LVU1298
1874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3768 .loc 1 1874 11 is_stmt 0 view .LVU1299
3769 0072 038D ldrh r3, [r0, #40]
1874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3770 .loc 1 1874 21 view .LVU1300
3771 0074 013B subs r3, r3, #1
3772 0076 0385 strh r3, [r0, #40] @ movhi
3773 0078 E7E7 b .L255
3774 .LVL258:
3775 .L256:
3776 .cfi_def_cfa_offset 0
3777 .cfi_restore 4
3778 .cfi_restore 14
1894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3779 .loc 1 1894 12 view .LVU1301
3780 007a 0220 movs r0, #2
3781 .LVL259:
1894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3782 .loc 1 1894 12 view .LVU1302
3783 007c 7047 bx lr
3784 .LVL260:
3785 .L257:
1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3786 .loc 1 1847 5 discriminator 1 view .LVU1303
3787 007e 0220 movs r0, #2
3788 .LVL261:
1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3789 .loc 1 1896 1 view .LVU1304
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 219
3790 0080 7047 bx lr
3791 .L264:
3792 0082 00BF .align 2
3793 .L263:
3794 0084 0000FFFF .word -65536
3795 0088 00000000 .word I2C_Slave_ISR_IT
3796 .cfi_endproc
3797 .LFE345:
3799 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits
3800 .align 1
3801 .global HAL_I2C_Slave_Receive_IT
3802 .syntax unified
3803 .thumb
3804 .thumb_func
3806 HAL_I2C_Slave_Receive_IT:
3807 .LVL262:
3808 .LFB346:
1907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3809 .loc 1 1907 1 is_stmt 1 view -0
3810 .cfi_startproc
3811 @ args = 0, pretend = 0, frame = 0
3812 @ frame_needed = 0, uses_anonymous_args = 0
1907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3813 .loc 1 1907 1 is_stmt 0 view .LVU1306
3814 0000 38B5 push {r3, r4, r5, lr}
3815 .cfi_def_cfa_offset 16
3816 .cfi_offset 3, -16
3817 .cfi_offset 4, -12
3818 .cfi_offset 5, -8
3819 .cfi_offset 14, -4
1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3820 .loc 1 1908 3 is_stmt 1 view .LVU1307
1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3821 .loc 1 1908 11 is_stmt 0 view .LVU1308
3822 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3823 .loc 1 1908 6 view .LVU1309
3824 0006 202B cmp r3, #32
3825 0008 23D1 bne .L267
1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3826 .loc 1 1911 5 is_stmt 1 view .LVU1310
1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3827 .loc 1 1911 5 view .LVU1311
3828 000a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
3829 000e 012B cmp r3, #1
3830 0010 21D0 beq .L268
1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3831 .loc 1 1911 5 discriminator 2 view .LVU1312
3832 0012 0123 movs r3, #1
3833 0014 80F84030 strb r3, [r0, #64]
1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3834 .loc 1 1911 5 view .LVU1313
1913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3835 .loc 1 1913 5 view .LVU1314
1913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3836 .loc 1 1913 23 is_stmt 0 view .LVU1315
3837 0018 2223 movs r3, #34
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 220
3838 001a 80F84130 strb r3, [r0, #65]
1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3839 .loc 1 1914 5 is_stmt 1 view .LVU1316
1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3840 .loc 1 1914 23 is_stmt 0 view .LVU1317
3841 001e 2023 movs r3, #32
3842 0020 80F84230 strb r3, [r0, #66]
1915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3843 .loc 1 1915 5 is_stmt 1 view .LVU1318
1915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3844 .loc 1 1915 23 is_stmt 0 view .LVU1319
3845 0024 0024 movs r4, #0
3846 0026 4464 str r4, [r0, #68]
1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3847 .loc 1 1918 5 is_stmt 1 view .LVU1320
1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3848 .loc 1 1918 9 is_stmt 0 view .LVU1321
3849 0028 0568 ldr r5, [r0]
1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3850 .loc 1 1918 19 view .LVU1322
3851 002a 6B68 ldr r3, [r5, #4]
1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3852 .loc 1 1918 25 view .LVU1323
3853 002c 23F40043 bic r3, r3, #32768
3854 0030 6B60 str r3, [r5, #4]
1921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3855 .loc 1 1921 5 is_stmt 1 view .LVU1324
1921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3856 .loc 1 1921 23 is_stmt 0 view .LVU1325
3857 0032 4162 str r1, [r0, #36]
1922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3858 .loc 1 1922 5 is_stmt 1 view .LVU1326
1922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3859 .loc 1 1922 23 is_stmt 0 view .LVU1327
3860 0034 4285 strh r2, [r0, #42] @ movhi
1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3861 .loc 1 1923 5 is_stmt 1 view .LVU1328
1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3862 .loc 1 1923 29 is_stmt 0 view .LVU1329
3863 0036 438D ldrh r3, [r0, #42]
1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3864 .loc 1 1923 23 view .LVU1330
3865 0038 0385 strh r3, [r0, #40] @ movhi
1924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3866 .loc 1 1924 5 is_stmt 1 view .LVU1331
1924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3867 .loc 1 1924 23 is_stmt 0 view .LVU1332
3868 003a 084B ldr r3, .L270
3869 003c C362 str r3, [r0, #44]
1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3870 .loc 1 1925 5 is_stmt 1 view .LVU1333
1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3871 .loc 1 1925 23 is_stmt 0 view .LVU1334
3872 003e 084B ldr r3, .L270+4
3873 0040 4363 str r3, [r0, #52]
1928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3874 .loc 1 1928 5 is_stmt 1 view .LVU1335
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 221
1928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3875 .loc 1 1928 5 view .LVU1336
3876 0042 80F84040 strb r4, [r0, #64]
1928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3877 .loc 1 1928 5 view .LVU1337
1938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3878 .loc 1 1938 5 view .LVU1338
3879 0046 48F20201 movw r1, #32770
3880 .LVL263:
1938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3881 .loc 1 1938 5 is_stmt 0 view .LVU1339
3882 004a FFF7FEFF bl I2C_Enable_IRQ
3883 .LVL264:
1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3884 .loc 1 1940 5 is_stmt 1 view .LVU1340
1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3885 .loc 1 1940 12 is_stmt 0 view .LVU1341
3886 004e 2046 mov r0, r4
3887 .L266:
1946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3888 .loc 1 1946 1 view .LVU1342
3889 0050 38BD pop {r3, r4, r5, pc}
3890 .LVL265:
3891 .L267:
1944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3892 .loc 1 1944 12 view .LVU1343
3893 0052 0220 movs r0, #2
3894 .LVL266:
1944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3895 .loc 1 1944 12 view .LVU1344
3896 0054 FCE7 b .L266
3897 .LVL267:
3898 .L268:
1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3899 .loc 1 1911 5 discriminator 1 view .LVU1345
3900 0056 0220 movs r0, #2
3901 .LVL268:
1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3902 .loc 1 1911 5 discriminator 1 view .LVU1346
3903 0058 FAE7 b .L266
3904 .L271:
3905 005a 00BF .align 2
3906 .L270:
3907 005c 0000FFFF .word -65536
3908 0060 00000000 .word I2C_Slave_ISR_IT
3909 .cfi_endproc
3910 .LFE346:
3912 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits
3913 .align 1
3914 .global HAL_I2C_Master_Transmit_DMA
3915 .syntax unified
3916 .thumb
3917 .thumb_func
3919 HAL_I2C_Master_Transmit_DMA:
3920 .LVL269:
3921 .LFB347:
1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 222
3922 .loc 1 1960 1 is_stmt 1 view -0
3923 .cfi_startproc
3924 @ args = 0, pretend = 0, frame = 0
3925 @ frame_needed = 0, uses_anonymous_args = 0
1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3926 .loc 1 1960 1 is_stmt 0 view .LVU1348
3927 0000 70B5 push {r4, r5, r6, lr}
3928 .cfi_def_cfa_offset 16
3929 .cfi_offset 4, -16
3930 .cfi_offset 5, -12
3931 .cfi_offset 6, -8
3932 .cfi_offset 14, -4
3933 0002 82B0 sub sp, sp, #8
3934 .cfi_def_cfa_offset 24
3935 0004 0446 mov r4, r0
1961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3936 .loc 1 1961 3 is_stmt 1 view .LVU1349
1962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
3937 .loc 1 1962 3 view .LVU1350
1963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3938 .loc 1 1963 3 view .LVU1351
3939 .LVL270:
1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3940 .loc 1 1965 3 view .LVU1352
1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3941 .loc 1 1965 11 is_stmt 0 view .LVU1353
3942 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3943 .LVL271:
1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3944 .loc 1 1965 6 view .LVU1354
3945 000a 2028 cmp r0, #32
3946 000c 40F09D80 bne .L282
3947 0010 0D46 mov r5, r1
1967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3948 .loc 1 1967 5 is_stmt 1 view .LVU1355
1967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3949 .loc 1 1967 9 is_stmt 0 view .LVU1356
3950 0012 2068 ldr r0, [r4]
3951 0014 8169 ldr r1, [r0, #24]
3952 .LVL272:
1967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3953 .loc 1 1967 8 view .LVU1357
3954 0016 11F40041 ands r1, r1, #32768
3955 001a 40F09980 bne .L283
1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3956 .loc 1 1973 5 is_stmt 1 view .LVU1358
1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3957 .loc 1 1973 5 view .LVU1359
3958 001e 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2
3959 0022 012E cmp r6, #1
3960 0024 00F09680 beq .L284
1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3961 .loc 1 1973 5 discriminator 2 view .LVU1360
3962 0028 0126 movs r6, #1
3963 002a 84F84060 strb r6, [r4, #64]
1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3964 .loc 1 1973 5 view .LVU1361
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 223
1975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3965 .loc 1 1975 5 view .LVU1362
1975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3966 .loc 1 1975 23 is_stmt 0 view .LVU1363
3967 002e 2126 movs r6, #33
3968 0030 84F84160 strb r6, [r4, #65]
1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3969 .loc 1 1976 5 is_stmt 1 view .LVU1364
1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3970 .loc 1 1976 23 is_stmt 0 view .LVU1365
3971 0034 1026 movs r6, #16
3972 0036 84F84260 strb r6, [r4, #66]
1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3973 .loc 1 1977 5 is_stmt 1 view .LVU1366
1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3974 .loc 1 1977 23 is_stmt 0 view .LVU1367
3975 003a 0026 movs r6, #0
3976 003c 6664 str r6, [r4, #68]
1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3977 .loc 1 1980 5 is_stmt 1 view .LVU1368
1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3978 .loc 1 1980 23 is_stmt 0 view .LVU1369
3979 003e 6262 str r2, [r4, #36]
1981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3980 .loc 1 1981 5 is_stmt 1 view .LVU1370
1981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3981 .loc 1 1981 23 is_stmt 0 view .LVU1371
3982 0040 6385 strh r3, [r4, #42] @ movhi
1982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3983 .loc 1 1982 5 is_stmt 1 view .LVU1372
1982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3984 .loc 1 1982 23 is_stmt 0 view .LVU1373
3985 0042 454B ldr r3, .L288
3986 .LVL273:
1982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3987 .loc 1 1982 23 view .LVU1374
3988 0044 E362 str r3, [r4, #44]
3989 .LVL274:
1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3990 .loc 1 1983 5 is_stmt 1 view .LVU1375
1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3991 .loc 1 1983 23 is_stmt 0 view .LVU1376
3992 0046 454B ldr r3, .L288+4
3993 0048 6363 str r3, [r4, #52]
1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3994 .loc 1 1985 5 is_stmt 1 view .LVU1377
1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3995 .loc 1 1985 13 is_stmt 0 view .LVU1378
3996 004a 638D ldrh r3, [r4, #42]
3997 004c 9BB2 uxth r3, r3
1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3998 .loc 1 1985 8 view .LVU1379
3999 004e FF2B cmp r3, #255
4000 0050 37D9 bls .L274
1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4001 .loc 1 1987 7 is_stmt 1 view .LVU1380
1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 224
4002 .loc 1 1987 22 is_stmt 0 view .LVU1381
4003 0052 FF23 movs r3, #255
4004 0054 2385 strh r3, [r4, #40] @ movhi
1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4005 .loc 1 1988 7 is_stmt 1 view .LVU1382
4006 .LVL275:
1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4007 .loc 1 1988 16 is_stmt 0 view .LVU1383
4008 0056 4FF08076 mov r6, #16777216
4009 .LVL276:
4010 .L275:
1996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4011 .loc 1 1996 5 is_stmt 1 view .LVU1384
1996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4012 .loc 1 1996 13 is_stmt 0 view .LVU1385
4013 005a 238D ldrh r3, [r4, #40]
1996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4014 .loc 1 1996 8 view .LVU1386
4015 005c 63B1 cbz r3, .L276
2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4016 .loc 1 2000 7 is_stmt 1 view .LVU1387
2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4017 .loc 1 2000 30 is_stmt 0 view .LVU1388
4018 005e 1378 ldrb r3, [r2] @ zero_extendqisi2
2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4019 .loc 1 2000 28 view .LVU1389
4020 0060 8362 str r3, [r0, #40]
2003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4021 .loc 1 2003 7 is_stmt 1 view .LVU1390
2003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4022 .loc 1 2003 11 is_stmt 0 view .LVU1391
4023 0062 636A ldr r3, [r4, #36]
2003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4024 .loc 1 2003 21 view .LVU1392
4025 0064 0133 adds r3, r3, #1
4026 0066 6362 str r3, [r4, #36]
2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
4027 .loc 1 2005 7 is_stmt 1 view .LVU1393
2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
4028 .loc 1 2005 24 is_stmt 0 view .LVU1394
4029 0068 218D ldrh r1, [r4, #40]
4030 .LVL277:
2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4031 .loc 1 2006 7 is_stmt 1 view .LVU1395
2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4032 .loc 1 2006 11 is_stmt 0 view .LVU1396
4033 006a 638D ldrh r3, [r4, #42]
4034 006c 9BB2 uxth r3, r3
2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4035 .loc 1 2006 22 view .LVU1397
4036 006e 013B subs r3, r3, #1
4037 0070 9BB2 uxth r3, r3
4038 0072 6385 strh r3, [r4, #42] @ movhi
2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4039 .loc 1 2007 7 is_stmt 1 view .LVU1398
2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4040 .loc 1 2007 21 is_stmt 0 view .LVU1399
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 225
4041 0074 4B1E subs r3, r1, #1
4042 0076 2385 strh r3, [r4, #40] @ movhi
4043 .LVL278:
4044 .L276:
2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4045 .loc 1 2010 5 is_stmt 1 view .LVU1400
2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4046 .loc 1 2010 13 is_stmt 0 view .LVU1401
4047 0078 238D ldrh r3, [r4, #40]
2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4048 .loc 1 2010 8 view .LVU1402
4049 007a 002B cmp r3, #0
4050 007c 51D0 beq .L277
2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4051 .loc 1 2012 7 is_stmt 1 view .LVU1403
2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4052 .loc 1 2012 15 is_stmt 0 view .LVU1404
4053 007e A36B ldr r3, [r4, #56]
2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4054 .loc 1 2012 10 view .LVU1405
4055 0080 23B3 cbz r3, .L278
2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4056 .loc 1 2015 9 is_stmt 1 view .LVU1406
2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4057 .loc 1 2015 40 is_stmt 0 view .LVU1407
4058 0082 374A ldr r2, .L288+8
4059 .LVL279:
2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4060 .loc 1 2015 40 view .LVU1408
4061 0084 DA63 str r2, [r3, #60]
2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4062 .loc 1 2018 9 is_stmt 1 view .LVU1409
2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4063 .loc 1 2018 13 is_stmt 0 view .LVU1410
4064 0086 A36B ldr r3, [r4, #56]
2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4065 .loc 1 2018 41 view .LVU1411
4066 0088 364A ldr r2, .L288+12
4067 008a DA64 str r2, [r3, #76]
2021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4068 .loc 1 2021 9 is_stmt 1 view .LVU1412
2021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4069 .loc 1 2021 13 is_stmt 0 view .LVU1413
4070 008c A26B ldr r2, [r4, #56]
2021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4071 .loc 1 2021 44 view .LVU1414
4072 008e 0023 movs r3, #0
4073 0090 1364 str r3, [r2, #64]
2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4074 .loc 1 2022 9 is_stmt 1 view .LVU1415
2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4075 .loc 1 2022 13 is_stmt 0 view .LVU1416
4076 0092 A26B ldr r2, [r4, #56]
2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4077 .loc 1 2022 41 view .LVU1417
4078 0094 1365 str r3, [r2, #80]
2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 226
4079 .loc 1 2025 9 is_stmt 1 view .LVU1418
2026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4080 .loc 1 2026 57 is_stmt 0 view .LVU1419
4081 0096 2268 ldr r2, [r4]
2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
4082 .loc 1 2025 25 view .LVU1420
4083 0098 238D ldrh r3, [r4, #40]
4084 009a 2832 adds r2, r2, #40
4085 009c 616A ldr r1, [r4, #36]
4086 .LVL280:
2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
4087 .loc 1 2025 25 view .LVU1421
4088 009e A06B ldr r0, [r4, #56]
4089 00a0 FFF7FEFF bl HAL_DMA_Start_IT
4090 .LVL281:
2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4091 .loc 1 2043 7 is_stmt 1 view .LVU1422
2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4092 .loc 1 2043 10 is_stmt 0 view .LVU1423
4093 00a4 00B3 cbz r0, .L287
2068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4094 .loc 1 2068 9 is_stmt 1 view .LVU1424
2068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4095 .loc 1 2068 25 is_stmt 0 view .LVU1425
4096 00a6 2023 movs r3, #32
4097 00a8 84F84130 strb r3, [r4, #65]
2069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4098 .loc 1 2069 9 is_stmt 1 view .LVU1426
2069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4099 .loc 1 2069 25 is_stmt 0 view .LVU1427
4100 00ac 0022 movs r2, #0
4101 00ae 84F84220 strb r2, [r4, #66]
2072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4102 .loc 1 2072 9 is_stmt 1 view .LVU1428
2072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4103 .loc 1 2072 13 is_stmt 0 view .LVU1429
4104 00b2 636C ldr r3, [r4, #68]
2072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4105 .loc 1 2072 25 view .LVU1430
4106 00b4 43F01003 orr r3, r3, #16
4107 00b8 6364 str r3, [r4, #68]
2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4108 .loc 1 2075 9 is_stmt 1 view .LVU1431
2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4109 .loc 1 2075 9 view .LVU1432
4110 00ba 84F84020 strb r2, [r4, #64]
2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4111 .loc 1 2075 9 view .LVU1433
2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4112 .loc 1 2077 9 view .LVU1434
2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4113 .loc 1 2077 16 is_stmt 0 view .LVU1435
4114 00be 0120 movs r0, #1
4115 .LVL282:
2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4116 .loc 1 2077 16 view .LVU1436
4117 00c0 44E0 b .L273
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 227
4118 .LVL283:
4119 .L274:
1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4120 .loc 1 1992 7 is_stmt 1 view .LVU1437
1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4121 .loc 1 1992 28 is_stmt 0 view .LVU1438
4122 00c2 638D ldrh r3, [r4, #42]
1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4123 .loc 1 1992 22 view .LVU1439
4124 00c4 2385 strh r3, [r4, #40] @ movhi
1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4125 .loc 1 1993 7 is_stmt 1 view .LVU1440
4126 .LVL284:
1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4127 .loc 1 1993 16 is_stmt 0 view .LVU1441
4128 00c6 4FF00076 mov r6, #33554432
4129 00ca C6E7 b .L275
4130 .LVL285:
4131 .L278:
2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4132 .loc 1 2031 9 is_stmt 1 view .LVU1442
2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4133 .loc 1 2031 25 is_stmt 0 view .LVU1443
4134 00cc 2023 movs r3, #32
4135 00ce 84F84130 strb r3, [r4, #65]
2032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4136 .loc 1 2032 9 is_stmt 1 view .LVU1444
2032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4137 .loc 1 2032 25 is_stmt 0 view .LVU1445
4138 00d2 0022 movs r2, #0
4139 .LVL286:
2032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4140 .loc 1 2032 25 view .LVU1446
4141 00d4 84F84220 strb r2, [r4, #66]
2035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4142 .loc 1 2035 9 is_stmt 1 view .LVU1447
2035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4143 .loc 1 2035 13 is_stmt 0 view .LVU1448
4144 00d8 636C ldr r3, [r4, #68]
2035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4145 .loc 1 2035 25 view .LVU1449
4146 00da 43F08003 orr r3, r3, #128
4147 00de 6364 str r3, [r4, #68]
2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4148 .loc 1 2038 9 is_stmt 1 view .LVU1450
2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4149 .loc 1 2038 9 view .LVU1451
4150 00e0 84F84020 strb r2, [r4, #64]
2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4151 .loc 1 2038 9 view .LVU1452
2040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4152 .loc 1 2040 9 view .LVU1453
2040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4153 .loc 1 2040 16 is_stmt 0 view .LVU1454
4154 00e4 0120 movs r0, #1
4155 00e6 31E0 b .L273
4156 .LVL287:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 228
4157 .L287:
2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
4158 .loc 1 2047 9 is_stmt 1 view .LVU1455
2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
4159 .loc 1 2047 60 is_stmt 0 view .LVU1456
4160 00e8 228D ldrh r2, [r4, #40]
2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
4161 .loc 1 2047 9 view .LVU1457
4162 00ea 0132 adds r2, r2, #1
4163 00ec 1E4B ldr r3, .L288+16
4164 00ee 0093 str r3, [sp]
4165 00f0 3346 mov r3, r6
4166 00f2 D2B2 uxtb r2, r2
4167 00f4 2946 mov r1, r5
4168 00f6 2046 mov r0, r4
4169 .LVL288:
2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
4170 .loc 1 2047 9 view .LVU1458
4171 00f8 FFF7FEFF bl I2C_TransferConfig
4172 .LVL289:
2051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4173 .loc 1 2051 9 is_stmt 1 view .LVU1459
2051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4174 .loc 1 2051 13 is_stmt 0 view .LVU1460
4175 00fc 638D ldrh r3, [r4, #42]
4176 00fe 9BB2 uxth r3, r3
2051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4177 .loc 1 2051 32 view .LVU1461
4178 0100 228D ldrh r2, [r4, #40]
2051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4179 .loc 1 2051 25 view .LVU1462
4180 0102 9B1A subs r3, r3, r2
4181 0104 9BB2 uxth r3, r3
4182 0106 6385 strh r3, [r4, #42] @ movhi
2054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4183 .loc 1 2054 9 is_stmt 1 view .LVU1463
2054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4184 .loc 1 2054 9 view .LVU1464
4185 0108 0023 movs r3, #0
4186 010a 84F84030 strb r3, [r4, #64]
2054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4187 .loc 1 2054 9 view .LVU1465
2060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4188 .loc 1 2060 9 view .LVU1466
4189 010e 1021 movs r1, #16
4190 0110 2046 mov r0, r4
4191 0112 FFF7FEFF bl I2C_Enable_IRQ
4192 .LVL290:
2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4193 .loc 1 2063 9 view .LVU1467
2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4194 .loc 1 2063 13 is_stmt 0 view .LVU1468
4195 0116 2268 ldr r2, [r4]
2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4196 .loc 1 2063 23 view .LVU1469
4197 0118 1368 ldr r3, [r2]
2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 229
4198 .loc 1 2063 29 view .LVU1470
4199 011a 43F48043 orr r3, r3, #16384
4200 011e 1360 str r3, [r2]
4201 0120 11E0 b .L281
4202 .LVL291:
4203 .L277:
2083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4204 .loc 1 2083 7 is_stmt 1 view .LVU1471
2083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4205 .loc 1 2083 21 is_stmt 0 view .LVU1472
4206 0122 124B ldr r3, .L288+20
4207 0124 6363 str r3, [r4, #52]
2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
4208 .loc 1 2087 7 is_stmt 1 view .LVU1473
4209 0126 104B ldr r3, .L288+16
4210 0128 0093 str r3, [sp]
4211 012a 4FF00073 mov r3, #33554432
4212 012e CAB2 uxtb r2, r1
4213 .LVL292:
2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
4214 .loc 1 2087 7 is_stmt 0 view .LVU1474
4215 0130 2946 mov r1, r5
4216 .LVL293:
2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
4217 .loc 1 2087 7 view .LVU1475
4218 0132 2046 mov r0, r4
4219 0134 FFF7FEFF bl I2C_TransferConfig
4220 .LVL294:
2091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4221 .loc 1 2091 7 is_stmt 1 view .LVU1476
2091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4222 .loc 1 2091 7 view .LVU1477
4223 0138 0023 movs r3, #0
4224 013a 84F84030 strb r3, [r4, #64]
2091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4225 .loc 1 2091 7 view .LVU1478
2100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4226 .loc 1 2100 7 view .LVU1479
4227 013e 0121 movs r1, #1
4228 0140 2046 mov r0, r4
4229 0142 FFF7FEFF bl I2C_Enable_IRQ
4230 .LVL295:
4231 .L281:
2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4232 .loc 1 2103 5 view .LVU1480
2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4233 .loc 1 2103 12 is_stmt 0 view .LVU1481
4234 0146 0020 movs r0, #0
4235 0148 00E0 b .L273
4236 .LVL296:
4237 .L282:
2107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4238 .loc 1 2107 12 view .LVU1482
4239 014a 0220 movs r0, #2
4240 .LVL297:
4241 .L273:
2109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 230
4242 .loc 1 2109 1 view .LVU1483
4243 014c 02B0 add sp, sp, #8
4244 .cfi_remember_state
4245 .cfi_def_cfa_offset 16
4246 @ sp needed
4247 014e 70BD pop {r4, r5, r6, pc}
4248 .LVL298:
4249 .L283:
4250 .cfi_restore_state
1969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4251 .loc 1 1969 14 view .LVU1484
4252 0150 0220 movs r0, #2
4253 0152 FBE7 b .L273
4254 .L284:
1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4255 .loc 1 1973 5 discriminator 1 view .LVU1485
4256 0154 0220 movs r0, #2
4257 0156 F9E7 b .L273
4258 .L289:
4259 .align 2
4260 .L288:
4261 0158 0000FFFF .word -65536
4262 015c 00000000 .word I2C_Master_ISR_DMA
4263 0160 00000000 .word I2C_DMAMasterTransmitCplt
4264 0164 00000000 .word I2C_DMAError
4265 0168 00200080 .word -2147475456
4266 016c 00000000 .word I2C_Master_ISR_IT
4267 .cfi_endproc
4268 .LFE347:
4270 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits
4271 .align 1
4272 .global HAL_I2C_Master_Receive_DMA
4273 .syntax unified
4274 .thumb
4275 .thumb_func
4277 HAL_I2C_Master_Receive_DMA:
4278 .LVL299:
4279 .LFB348:
2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
4280 .loc 1 2123 1 is_stmt 1 view -0
4281 .cfi_startproc
4282 @ args = 0, pretend = 0, frame = 0
4283 @ frame_needed = 0, uses_anonymous_args = 0
2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
4284 .loc 1 2123 1 is_stmt 0 view .LVU1487
4285 0000 70B5 push {r4, r5, r6, lr}
4286 .cfi_def_cfa_offset 16
4287 .cfi_offset 4, -16
4288 .cfi_offset 5, -12
4289 .cfi_offset 6, -8
4290 .cfi_offset 14, -4
4291 0002 82B0 sub sp, sp, #8
4292 .cfi_def_cfa_offset 24
4293 0004 0446 mov r4, r0
2124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4294 .loc 1 2124 3 is_stmt 1 view .LVU1488
2125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 231
4295 .loc 1 2125 3 view .LVU1489
2127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4296 .loc 1 2127 3 view .LVU1490
2127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4297 .loc 1 2127 11 is_stmt 0 view .LVU1491
4298 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
4299 .LVL300:
2127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4300 .loc 1 2127 6 view .LVU1492
4301 000a 2028 cmp r0, #32
4302 000c 40F08C80 bne .L299
4303 0010 0D46 mov r5, r1
2129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4304 .loc 1 2129 5 is_stmt 1 view .LVU1493
2129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4305 .loc 1 2129 9 is_stmt 0 view .LVU1494
4306 0012 2168 ldr r1, [r4]
4307 .LVL301:
2129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4308 .loc 1 2129 9 view .LVU1495
4309 0014 8969 ldr r1, [r1, #24]
2129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4310 .loc 1 2129 8 view .LVU1496
4311 0016 11F4004F tst r1, #32768
4312 001a 40F08880 bne .L300
2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4313 .loc 1 2135 5 is_stmt 1 view .LVU1497
2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4314 .loc 1 2135 5 view .LVU1498
4315 001e 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
4316 0022 0129 cmp r1, #1
4317 0024 00F08580 beq .L301
2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4318 .loc 1 2135 5 discriminator 2 view .LVU1499
4319 0028 0121 movs r1, #1
4320 002a 84F84010 strb r1, [r4, #64]
2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4321 .loc 1 2135 5 view .LVU1500
2137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
4322 .loc 1 2137 5 view .LVU1501
2137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
4323 .loc 1 2137 23 is_stmt 0 view .LVU1502
4324 002e 2221 movs r1, #34
4325 0030 84F84110 strb r1, [r4, #65]
2138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4326 .loc 1 2138 5 is_stmt 1 view .LVU1503
2138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4327 .loc 1 2138 23 is_stmt 0 view .LVU1504
4328 0034 1021 movs r1, #16
4329 0036 84F84210 strb r1, [r4, #66]
2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4330 .loc 1 2139 5 is_stmt 1 view .LVU1505
2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4331 .loc 1 2139 23 is_stmt 0 view .LVU1506
4332 003a 0021 movs r1, #0
4333 003c 6164 str r1, [r4, #68]
2142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 232
4334 .loc 1 2142 5 is_stmt 1 view .LVU1507
2142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4335 .loc 1 2142 23 is_stmt 0 view .LVU1508
4336 003e 6262 str r2, [r4, #36]
2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4337 .loc 1 2143 5 is_stmt 1 view .LVU1509
2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4338 .loc 1 2143 23 is_stmt 0 view .LVU1510
4339 0040 6385 strh r3, [r4, #42] @ movhi
2144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
4340 .loc 1 2144 5 is_stmt 1 view .LVU1511
2144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
4341 .loc 1 2144 23 is_stmt 0 view .LVU1512
4342 0042 3D4B ldr r3, .L305
4343 .LVL302:
2144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
4344 .loc 1 2144 23 view .LVU1513
4345 0044 E362 str r3, [r4, #44]
4346 .LVL303:
2145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4347 .loc 1 2145 5 is_stmt 1 view .LVU1514
2145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4348 .loc 1 2145 23 is_stmt 0 view .LVU1515
4349 0046 3D4B ldr r3, .L305+4
4350 0048 6363 str r3, [r4, #52]
2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4351 .loc 1 2147 5 is_stmt 1 view .LVU1516
2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4352 .loc 1 2147 13 is_stmt 0 view .LVU1517
4353 004a 638D ldrh r3, [r4, #42]
4354 004c 9BB2 uxth r3, r3
2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4355 .loc 1 2147 8 view .LVU1518
4356 004e FF2B cmp r3, #255
4357 0050 27D9 bls .L292
2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4358 .loc 1 2149 7 is_stmt 1 view .LVU1519
2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4359 .loc 1 2149 22 is_stmt 0 view .LVU1520
4360 0052 FF23 movs r3, #255
4361 0054 2385 strh r3, [r4, #40] @ movhi
2150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4362 .loc 1 2150 7 is_stmt 1 view .LVU1521
4363 .LVL304:
2150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4364 .loc 1 2150 16 is_stmt 0 view .LVU1522
4365 0056 4FF08076 mov r6, #16777216
4366 .LVL305:
4367 .L293:
2158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4368 .loc 1 2158 5 is_stmt 1 view .LVU1523
2158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4369 .loc 1 2158 13 is_stmt 0 view .LVU1524
4370 005a 218D ldrh r1, [r4, #40]
2158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4371 .loc 1 2158 8 view .LVU1525
4372 005c 0029 cmp r1, #0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 233
4373 005e 4FD0 beq .L294
2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4374 .loc 1 2160 7 is_stmt 1 view .LVU1526
2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4375 .loc 1 2160 15 is_stmt 0 view .LVU1527
4376 0060 E36B ldr r3, [r4, #60]
2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4377 .loc 1 2160 10 view .LVU1528
4378 0062 1BB3 cbz r3, .L295
2163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4379 .loc 1 2163 9 is_stmt 1 view .LVU1529
2163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4380 .loc 1 2163 40 is_stmt 0 view .LVU1530
4381 0064 3649 ldr r1, .L305+8
4382 0066 D963 str r1, [r3, #60]
2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4383 .loc 1 2166 9 is_stmt 1 view .LVU1531
2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4384 .loc 1 2166 13 is_stmt 0 view .LVU1532
4385 0068 E36B ldr r3, [r4, #60]
2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4386 .loc 1 2166 41 view .LVU1533
4387 006a 3649 ldr r1, .L305+12
4388 006c D964 str r1, [r3, #76]
2169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4389 .loc 1 2169 9 is_stmt 1 view .LVU1534
2169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4390 .loc 1 2169 13 is_stmt 0 view .LVU1535
4391 006e E16B ldr r1, [r4, #60]
2169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4392 .loc 1 2169 44 view .LVU1536
4393 0070 0023 movs r3, #0
4394 0072 0B64 str r3, [r1, #64]
2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4395 .loc 1 2170 9 is_stmt 1 view .LVU1537
2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4396 .loc 1 2170 13 is_stmt 0 view .LVU1538
4397 0074 E16B ldr r1, [r4, #60]
2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4398 .loc 1 2170 41 view .LVU1539
4399 0076 0B65 str r3, [r1, #80]
2173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
4400 .loc 1 2173 9 is_stmt 1 view .LVU1540
2173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
4401 .loc 1 2173 71 is_stmt 0 view .LVU1541
4402 0078 2168 ldr r1, [r4]
2173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
4403 .loc 1 2173 25 view .LVU1542
4404 007a 238D ldrh r3, [r4, #40]
4405 007c 2431 adds r1, r1, #36
4406 007e E06B ldr r0, [r4, #60]
4407 0080 FFF7FEFF bl HAL_DMA_Start_IT
4408 .LVL306:
2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4409 .loc 1 2191 7 is_stmt 1 view .LVU1543
2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4410 .loc 1 2191 10 is_stmt 0 view .LVU1544
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 234
4411 0084 00B3 cbz r0, .L304
2215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4412 .loc 1 2215 9 is_stmt 1 view .LVU1545
2215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4413 .loc 1 2215 25 is_stmt 0 view .LVU1546
4414 0086 2023 movs r3, #32
4415 0088 84F84130 strb r3, [r4, #65]
2216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4416 .loc 1 2216 9 is_stmt 1 view .LVU1547
2216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4417 .loc 1 2216 25 is_stmt 0 view .LVU1548
4418 008c 0022 movs r2, #0
4419 008e 84F84220 strb r2, [r4, #66]
2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4420 .loc 1 2219 9 is_stmt 1 view .LVU1549
2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4421 .loc 1 2219 13 is_stmt 0 view .LVU1550
4422 0092 636C ldr r3, [r4, #68]
2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4423 .loc 1 2219 25 view .LVU1551
4424 0094 43F01003 orr r3, r3, #16
4425 0098 6364 str r3, [r4, #68]
2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4426 .loc 1 2222 9 is_stmt 1 view .LVU1552
2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4427 .loc 1 2222 9 view .LVU1553
4428 009a 84F84020 strb r2, [r4, #64]
2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4429 .loc 1 2222 9 view .LVU1554
2224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4430 .loc 1 2224 9 view .LVU1555
2224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4431 .loc 1 2224 16 is_stmt 0 view .LVU1556
4432 009e 0120 movs r0, #1
4433 .LVL307:
2224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4434 .loc 1 2224 16 view .LVU1557
4435 00a0 43E0 b .L291
4436 .LVL308:
4437 .L292:
2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4438 .loc 1 2154 7 is_stmt 1 view .LVU1558
2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4439 .loc 1 2154 28 is_stmt 0 view .LVU1559
4440 00a2 638D ldrh r3, [r4, #42]
2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4441 .loc 1 2154 22 view .LVU1560
4442 00a4 2385 strh r3, [r4, #40] @ movhi
2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4443 .loc 1 2155 7 is_stmt 1 view .LVU1561
4444 .LVL309:
2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4445 .loc 1 2155 16 is_stmt 0 view .LVU1562
4446 00a6 4FF00076 mov r6, #33554432
4447 00aa D6E7 b .L293
4448 .LVL310:
4449 .L295:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 235
2179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4450 .loc 1 2179 9 is_stmt 1 view .LVU1563
2179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4451 .loc 1 2179 25 is_stmt 0 view .LVU1564
4452 00ac 2023 movs r3, #32
4453 00ae 84F84130 strb r3, [r4, #65]
2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4454 .loc 1 2180 9 is_stmt 1 view .LVU1565
2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4455 .loc 1 2180 25 is_stmt 0 view .LVU1566
4456 00b2 0022 movs r2, #0
4457 .LVL311:
2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4458 .loc 1 2180 25 view .LVU1567
4459 00b4 84F84220 strb r2, [r4, #66]
2183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4460 .loc 1 2183 9 is_stmt 1 view .LVU1568
2183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4461 .loc 1 2183 13 is_stmt 0 view .LVU1569
4462 00b8 636C ldr r3, [r4, #68]
2183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4463 .loc 1 2183 25 view .LVU1570
4464 00ba 43F08003 orr r3, r3, #128
4465 00be 6364 str r3, [r4, #68]
2186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4466 .loc 1 2186 9 is_stmt 1 view .LVU1571
2186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4467 .loc 1 2186 9 view .LVU1572
4468 00c0 84F84020 strb r2, [r4, #64]
2186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4469 .loc 1 2186 9 view .LVU1573
2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4470 .loc 1 2188 9 view .LVU1574
2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4471 .loc 1 2188 16 is_stmt 0 view .LVU1575
4472 00c4 0120 movs r0, #1
4473 00c6 30E0 b .L291
4474 .LVL312:
4475 .L304:
2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4476 .loc 1 2195 9 is_stmt 1 view .LVU1576
4477 00c8 1F4B ldr r3, .L305+16
4478 00ca 0093 str r3, [sp]
4479 00cc 3346 mov r3, r6
4480 00ce 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
4481 00d2 2946 mov r1, r5
4482 00d4 2046 mov r0, r4
4483 .LVL313:
2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4484 .loc 1 2195 9 is_stmt 0 view .LVU1577
4485 00d6 FFF7FEFF bl I2C_TransferConfig
4486 .LVL314:
2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4487 .loc 1 2198 9 is_stmt 1 view .LVU1578
2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4488 .loc 1 2198 13 is_stmt 0 view .LVU1579
4489 00da 638D ldrh r3, [r4, #42]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 236
4490 00dc 9BB2 uxth r3, r3
2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4491 .loc 1 2198 32 view .LVU1580
4492 00de 228D ldrh r2, [r4, #40]
2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4493 .loc 1 2198 25 view .LVU1581
4494 00e0 9B1A subs r3, r3, r2
4495 00e2 9BB2 uxth r3, r3
4496 00e4 6385 strh r3, [r4, #42] @ movhi
2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4497 .loc 1 2201 9 is_stmt 1 view .LVU1582
2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4498 .loc 1 2201 9 view .LVU1583
4499 00e6 0023 movs r3, #0
4500 00e8 84F84030 strb r3, [r4, #64]
2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4501 .loc 1 2201 9 view .LVU1584
2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4502 .loc 1 2207 9 view .LVU1585
4503 00ec 1021 movs r1, #16
4504 00ee 2046 mov r0, r4
4505 00f0 FFF7FEFF bl I2C_Enable_IRQ
4506 .LVL315:
2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4507 .loc 1 2210 9 view .LVU1586
2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4508 .loc 1 2210 13 is_stmt 0 view .LVU1587
4509 00f4 2268 ldr r2, [r4]
2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4510 .loc 1 2210 23 view .LVU1588
4511 00f6 1368 ldr r3, [r2]
2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4512 .loc 1 2210 29 view .LVU1589
4513 00f8 43F40043 orr r3, r3, #32768
4514 00fc 1360 str r3, [r2]
4515 00fe 11E0 b .L298
4516 .LVL316:
4517 .L294:
2230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4518 .loc 1 2230 7 is_stmt 1 view .LVU1590
2230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4519 .loc 1 2230 21 is_stmt 0 view .LVU1591
4520 0100 124B ldr r3, .L305+20
4521 0102 6363 str r3, [r4, #52]
2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
4522 .loc 1 2234 7 is_stmt 1 view .LVU1592
4523 0104 104B ldr r3, .L305+16
4524 0106 0093 str r3, [sp]
4525 0108 4FF00073 mov r3, #33554432
4526 010c CAB2 uxtb r2, r1
4527 .LVL317:
2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
4528 .loc 1 2234 7 is_stmt 0 view .LVU1593
4529 010e 2946 mov r1, r5
4530 0110 2046 mov r0, r4
4531 0112 FFF7FEFF bl I2C_TransferConfig
4532 .LVL318:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 237
2238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4533 .loc 1 2238 7 is_stmt 1 view .LVU1594
2238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4534 .loc 1 2238 7 view .LVU1595
4535 0116 0023 movs r3, #0
4536 0118 84F84030 strb r3, [r4, #64]
2238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4537 .loc 1 2238 7 view .LVU1596
2247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4538 .loc 1 2247 7 view .LVU1597
4539 011c 0221 movs r1, #2
4540 011e 2046 mov r0, r4
4541 0120 FFF7FEFF bl I2C_Enable_IRQ
4542 .LVL319:
4543 .L298:
2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4544 .loc 1 2250 5 view .LVU1598
2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4545 .loc 1 2250 12 is_stmt 0 view .LVU1599
4546 0124 0020 movs r0, #0
4547 0126 00E0 b .L291
4548 .LVL320:
4549 .L299:
2254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4550 .loc 1 2254 12 view .LVU1600
4551 0128 0220 movs r0, #2
4552 .LVL321:
4553 .L291:
2256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4554 .loc 1 2256 1 view .LVU1601
4555 012a 02B0 add sp, sp, #8
4556 .cfi_remember_state
4557 .cfi_def_cfa_offset 16
4558 @ sp needed
4559 012c 70BD pop {r4, r5, r6, pc}
4560 .LVL322:
4561 .L300:
4562 .cfi_restore_state
2131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4563 .loc 1 2131 14 view .LVU1602
4564 012e 0220 movs r0, #2
4565 0130 FBE7 b .L291
4566 .L301:
2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4567 .loc 1 2135 5 discriminator 1 view .LVU1603
4568 0132 0220 movs r0, #2
4569 0134 F9E7 b .L291
4570 .L306:
4571 0136 00BF .align 2
4572 .L305:
4573 0138 0000FFFF .word -65536
4574 013c 00000000 .word I2C_Master_ISR_DMA
4575 0140 00000000 .word I2C_DMAMasterReceiveCplt
4576 0144 00000000 .word I2C_DMAError
4577 0148 00240080 .word -2147474432
4578 014c 00000000 .word I2C_Master_ISR_IT
4579 .cfi_endproc
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 238
4580 .LFE348:
4582 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits
4583 .align 1
4584 .global HAL_I2C_Slave_Transmit_DMA
4585 .syntax unified
4586 .thumb
4587 .thumb_func
4589 HAL_I2C_Slave_Transmit_DMA:
4590 .LVL323:
4591 .LFB349:
2267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4592 .loc 1 2267 1 is_stmt 1 view -0
4593 .cfi_startproc
4594 @ args = 0, pretend = 0, frame = 0
4595 @ frame_needed = 0, uses_anonymous_args = 0
2268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4596 .loc 1 2268 3 view .LVU1605
2270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4597 .loc 1 2270 3 view .LVU1606
2270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4598 .loc 1 2270 11 is_stmt 0 view .LVU1607
4599 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
2270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4600 .loc 1 2270 6 view .LVU1608
4601 0004 202B cmp r3, #32
4602 0006 40F08D80 bne .L316
2267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4603 .loc 1 2267 1 view .LVU1609
4604 000a 10B5 push {r4, lr}
4605 .cfi_def_cfa_offset 8
4606 .cfi_offset 4, -8
4607 .cfi_offset 14, -4
4608 000c 0446 mov r4, r0
2272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4609 .loc 1 2272 5 is_stmt 1 view .LVU1610
2272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4610 .loc 1 2272 8 is_stmt 0 view .LVU1611
4611 000e 002A cmp r2, #0
4612 0010 18BF it ne
4613 0012 0029 cmpne r1, #0
4614 0014 42D0 beq .L323
2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4615 .loc 1 2278 5 is_stmt 1 view .LVU1612
2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4616 .loc 1 2278 5 view .LVU1613
4617 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
4618 001a 012B cmp r3, #1
4619 001c 00F08480 beq .L317
2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4620 .loc 1 2278 5 discriminator 2 view .LVU1614
4621 0020 0123 movs r3, #1
4622 0022 80F84030 strb r3, [r0, #64]
2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4623 .loc 1 2278 5 view .LVU1615
2280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4624 .loc 1 2280 5 view .LVU1616
2280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 239
4625 .loc 1 2280 23 is_stmt 0 view .LVU1617
4626 0026 2123 movs r3, #33
4627 0028 80F84130 strb r3, [r0, #65]
2281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4628 .loc 1 2281 5 is_stmt 1 view .LVU1618
2281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4629 .loc 1 2281 23 is_stmt 0 view .LVU1619
4630 002c 2023 movs r3, #32
4631 002e 80F84230 strb r3, [r0, #66]
2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4632 .loc 1 2282 5 is_stmt 1 view .LVU1620
2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4633 .loc 1 2282 23 is_stmt 0 view .LVU1621
4634 0032 0023 movs r3, #0
4635 0034 4364 str r3, [r0, #68]
2285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4636 .loc 1 2285 5 is_stmt 1 view .LVU1622
2285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4637 .loc 1 2285 23 is_stmt 0 view .LVU1623
4638 0036 4162 str r1, [r0, #36]
2286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4639 .loc 1 2286 5 is_stmt 1 view .LVU1624
2286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4640 .loc 1 2286 23 is_stmt 0 view .LVU1625
4641 0038 4285 strh r2, [r0, #42] @ movhi
2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4642 .loc 1 2287 5 is_stmt 1 view .LVU1626
2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4643 .loc 1 2287 29 is_stmt 0 view .LVU1627
4644 003a 438D ldrh r3, [r0, #42]
2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4645 .loc 1 2287 23 view .LVU1628
4646 003c 0385 strh r3, [r0, #40] @ movhi
2288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4647 .loc 1 2288 5 is_stmt 1 view .LVU1629
2288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4648 .loc 1 2288 23 is_stmt 0 view .LVU1630
4649 003e 3B4B ldr r3, .L326
4650 0040 C362 str r3, [r0, #44]
2289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4651 .loc 1 2289 5 is_stmt 1 view .LVU1631
2289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4652 .loc 1 2289 23 is_stmt 0 view .LVU1632
4653 0042 3B4B ldr r3, .L326+4
4654 0044 4363 str r3, [r0, #52]
2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4655 .loc 1 2292 5 is_stmt 1 view .LVU1633
2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4656 .loc 1 2292 19 is_stmt 0 view .LVU1634
4657 0046 036A ldr r3, [r0, #32]
2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4658 .loc 1 2292 8 view .LVU1635
4659 0048 B3F5003F cmp r3, #131072
4660 004c 2BD0 beq .L324
4661 .LVL324:
4662 .L310:
2305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 240
4663 .loc 1 2305 5 is_stmt 1 view .LVU1636
2305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4664 .loc 1 2305 13 is_stmt 0 view .LVU1637
4665 004e 638D ldrh r3, [r4, #42]
4666 0050 9BB2 uxth r3, r3
2305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4667 .loc 1 2305 8 view .LVU1638
4668 0052 002B cmp r3, #0
4669 0054 57D0 beq .L311
2307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4670 .loc 1 2307 7 is_stmt 1 view .LVU1639
2307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4671 .loc 1 2307 15 is_stmt 0 view .LVU1640
4672 0056 A36B ldr r3, [r4, #56]
2307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4673 .loc 1 2307 10 view .LVU1641
4674 0058 002B cmp r3, #0
4675 005a 33D0 beq .L312
2310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4676 .loc 1 2310 9 is_stmt 1 view .LVU1642
2310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4677 .loc 1 2310 40 is_stmt 0 view .LVU1643
4678 005c 354A ldr r2, .L326+8
4679 005e DA63 str r2, [r3, #60]
2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4680 .loc 1 2313 9 is_stmt 1 view .LVU1644
2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4681 .loc 1 2313 13 is_stmt 0 view .LVU1645
4682 0060 A36B ldr r3, [r4, #56]
2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4683 .loc 1 2313 41 view .LVU1646
4684 0062 354A ldr r2, .L326+12
4685 0064 DA64 str r2, [r3, #76]
2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4686 .loc 1 2316 9 is_stmt 1 view .LVU1647
2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4687 .loc 1 2316 13 is_stmt 0 view .LVU1648
4688 0066 A26B ldr r2, [r4, #56]
2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4689 .loc 1 2316 44 view .LVU1649
4690 0068 0023 movs r3, #0
4691 006a 1364 str r3, [r2, #64]
2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4692 .loc 1 2317 9 is_stmt 1 view .LVU1650
2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4693 .loc 1 2317 13 is_stmt 0 view .LVU1651
4694 006c A26B ldr r2, [r4, #56]
2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4695 .loc 1 2317 41 view .LVU1652
4696 006e 1365 str r3, [r2, #80]
2320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
4697 .loc 1 2320 9 is_stmt 1 view .LVU1653
2321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
4698 .loc 1 2321 83 is_stmt 0 view .LVU1654
4699 0070 2268 ldr r2, [r4]
2320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
4700 .loc 1 2320 25 view .LVU1655
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 241
4701 0072 238D ldrh r3, [r4, #40]
4702 0074 2832 adds r2, r2, #40
4703 0076 616A ldr r1, [r4, #36]
4704 .LVL325:
2320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
4705 .loc 1 2320 25 view .LVU1656
4706 0078 A06B ldr r0, [r4, #56]
4707 .LVL326:
2320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
4708 .loc 1 2320 25 view .LVU1657
4709 007a FFF7FEFF bl HAL_DMA_Start_IT
4710 .LVL327:
2339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4711 .loc 1 2339 7 is_stmt 1 view .LVU1658
2339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4712 .loc 1 2339 10 is_stmt 0 view .LVU1659
4713 007e 78B3 cbz r0, .L325
2359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4714 .loc 1 2359 9 is_stmt 1 view .LVU1660
2359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4715 .loc 1 2359 25 is_stmt 0 view .LVU1661
4716 0080 2823 movs r3, #40
4717 0082 84F84130 strb r3, [r4, #65]
2360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4718 .loc 1 2360 9 is_stmt 1 view .LVU1662
2360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4719 .loc 1 2360 25 is_stmt 0 view .LVU1663
4720 0086 0022 movs r2, #0
4721 0088 84F84220 strb r2, [r4, #66]
2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4722 .loc 1 2363 9 is_stmt 1 view .LVU1664
2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4723 .loc 1 2363 13 is_stmt 0 view .LVU1665
4724 008c 636C ldr r3, [r4, #68]
2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4725 .loc 1 2363 25 view .LVU1666
4726 008e 43F01003 orr r3, r3, #16
4727 0092 6364 str r3, [r4, #68]
2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4728 .loc 1 2366 9 is_stmt 1 view .LVU1667
2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4729 .loc 1 2366 9 view .LVU1668
4730 0094 84F84020 strb r2, [r4, #64]
2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4731 .loc 1 2366 9 view .LVU1669
2368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4732 .loc 1 2368 9 view .LVU1670
2368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4733 .loc 1 2368 16 is_stmt 0 view .LVU1671
4734 0098 0120 movs r0, #1
4735 .LVL328:
2368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4736 .loc 1 2368 16 view .LVU1672
4737 009a 03E0 b .L308
4738 .LVL329:
4739 .L323:
2274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 242
4740 .loc 1 2274 7 is_stmt 1 view .LVU1673
2274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4741 .loc 1 2274 23 is_stmt 0 view .LVU1674
4742 009c 4FF40073 mov r3, #512
4743 00a0 4364 str r3, [r0, #68]
2275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4744 .loc 1 2275 7 is_stmt 1 view .LVU1675
2275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4745 .loc 1 2275 15 is_stmt 0 view .LVU1676
4746 00a2 0120 movs r0, #1
4747 .LVL330:
4748 .L308:
2392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4749 .loc 1 2392 1 view .LVU1677
4750 00a4 10BD pop {r4, pc}
4751 .LVL331:
4752 .L324:
2296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4753 .loc 1 2296 7 is_stmt 1 view .LVU1678
2296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4754 .loc 1 2296 11 is_stmt 0 view .LVU1679
4755 00a6 0368 ldr r3, [r0]
2296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4756 .loc 1 2296 30 view .LVU1680
4757 00a8 0A78 ldrb r2, [r1] @ zero_extendqisi2
4758 .LVL332:
2296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4759 .loc 1 2296 28 view .LVU1681
4760 00aa 9A62 str r2, [r3, #40]
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4761 .loc 1 2299 7 is_stmt 1 view .LVU1682
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4762 .loc 1 2299 11 is_stmt 0 view .LVU1683
4763 00ac 436A ldr r3, [r0, #36]
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4764 .loc 1 2299 21 view .LVU1684
4765 00ae 0133 adds r3, r3, #1
4766 00b0 4362 str r3, [r0, #36]
2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4767 .loc 1 2301 7 is_stmt 1 view .LVU1685
2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4768 .loc 1 2301 11 is_stmt 0 view .LVU1686
4769 00b2 438D ldrh r3, [r0, #42]
4770 00b4 9BB2 uxth r3, r3
2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4771 .loc 1 2301 22 view .LVU1687
4772 00b6 013B subs r3, r3, #1
4773 00b8 9BB2 uxth r3, r3
4774 00ba 4385 strh r3, [r0, #42] @ movhi
2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4775 .loc 1 2302 7 is_stmt 1 view .LVU1688
2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4776 .loc 1 2302 11 is_stmt 0 view .LVU1689
4777 00bc 038D ldrh r3, [r0, #40]
2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4778 .loc 1 2302 21 view .LVU1690
4779 00be 013B subs r3, r3, #1
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 243
4780 00c0 0385 strh r3, [r0, #40] @ movhi
4781 00c2 C4E7 b .L310
4782 .L312:
2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4783 .loc 1 2327 9 is_stmt 1 view .LVU1691
2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4784 .loc 1 2327 25 is_stmt 0 view .LVU1692
4785 00c4 2823 movs r3, #40
4786 00c6 84F84130 strb r3, [r4, #65]
2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4787 .loc 1 2328 9 is_stmt 1 view .LVU1693
2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4788 .loc 1 2328 25 is_stmt 0 view .LVU1694
4789 00ca 0022 movs r2, #0
4790 00cc 84F84220 strb r2, [r4, #66]
2331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4791 .loc 1 2331 9 is_stmt 1 view .LVU1695
2331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4792 .loc 1 2331 13 is_stmt 0 view .LVU1696
4793 00d0 636C ldr r3, [r4, #68]
2331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4794 .loc 1 2331 25 view .LVU1697
4795 00d2 43F08003 orr r3, r3, #128
4796 00d6 6364 str r3, [r4, #68]
2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4797 .loc 1 2334 9 is_stmt 1 view .LVU1698
2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4798 .loc 1 2334 9 view .LVU1699
4799 00d8 84F84020 strb r2, [r4, #64]
2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4800 .loc 1 2334 9 view .LVU1700
2336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4801 .loc 1 2336 9 view .LVU1701
2336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4802 .loc 1 2336 16 is_stmt 0 view .LVU1702
4803 00dc 0120 movs r0, #1
4804 .LVL333:
2336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4805 .loc 1 2336 16 view .LVU1703
4806 00de E1E7 b .L308
4807 .LVL334:
4808 .L325:
2342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4809 .loc 1 2342 9 is_stmt 1 view .LVU1704
2342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4810 .loc 1 2342 13 is_stmt 0 view .LVU1705
4811 00e0 2268 ldr r2, [r4]
2342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4812 .loc 1 2342 23 view .LVU1706
4813 00e2 5368 ldr r3, [r2, #4]
2342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4814 .loc 1 2342 29 view .LVU1707
4815 00e4 23F40043 bic r3, r3, #32768
4816 00e8 5360 str r3, [r2, #4]
2345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4817 .loc 1 2345 9 is_stmt 1 view .LVU1708
2345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 244
4818 .loc 1 2345 9 view .LVU1709
4819 00ea 0023 movs r3, #0
4820 00ec 84F84030 strb r3, [r4, #64]
2345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4821 .loc 1 2345 9 view .LVU1710
2351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4822 .loc 1 2351 9 view .LVU1711
4823 00f0 4FF40041 mov r1, #32768
4824 00f4 2046 mov r0, r4
4825 .LVL335:
2351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4826 .loc 1 2351 9 is_stmt 0 view .LVU1712
4827 00f6 FFF7FEFF bl I2C_Enable_IRQ
4828 .LVL336:
2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4829 .loc 1 2354 9 is_stmt 1 view .LVU1713
2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4830 .loc 1 2354 13 is_stmt 0 view .LVU1714
4831 00fa 2268 ldr r2, [r4]
2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4832 .loc 1 2354 23 view .LVU1715
4833 00fc 1368 ldr r3, [r2]
2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4834 .loc 1 2354 29 view .LVU1716
4835 00fe 43F48043 orr r3, r3, #16384
4836 0102 1360 str r3, [r2]
4837 0104 0CE0 b .L315
4838 .LVL337:
4839 .L311:
2374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4840 .loc 1 2374 7 is_stmt 1 view .LVU1717
2374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4841 .loc 1 2374 11 is_stmt 0 view .LVU1718
4842 0106 2268 ldr r2, [r4]
2374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4843 .loc 1 2374 21 view .LVU1719
4844 0108 5368 ldr r3, [r2, #4]
2374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4845 .loc 1 2374 27 view .LVU1720
4846 010a 23F40043 bic r3, r3, #32768
4847 010e 5360 str r3, [r2, #4]
2377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4848 .loc 1 2377 7 is_stmt 1 view .LVU1721
2377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4849 .loc 1 2377 7 view .LVU1722
4850 0110 0023 movs r3, #0
4851 0112 84F84030 strb r3, [r4, #64]
2377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4852 .loc 1 2377 7 view .LVU1723
2383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4853 .loc 1 2383 7 view .LVU1724
4854 0116 4FF40041 mov r1, #32768
4855 .LVL338:
2383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4856 .loc 1 2383 7 is_stmt 0 view .LVU1725
4857 011a 2046 mov r0, r4
4858 .LVL339:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 245
2383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4859 .loc 1 2383 7 view .LVU1726
4860 011c FFF7FEFF bl I2C_Enable_IRQ
4861 .LVL340:
4862 .L315:
2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4863 .loc 1 2386 5 is_stmt 1 view .LVU1727
2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4864 .loc 1 2386 12 is_stmt 0 view .LVU1728
4865 0120 0020 movs r0, #0
4866 0122 BFE7 b .L308
4867 .LVL341:
4868 .L316:
4869 .cfi_def_cfa_offset 0
4870 .cfi_restore 4
4871 .cfi_restore 14
2390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4872 .loc 1 2390 12 view .LVU1729
4873 0124 0220 movs r0, #2
4874 .LVL342:
2392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4875 .loc 1 2392 1 view .LVU1730
4876 0126 7047 bx lr
4877 .LVL343:
4878 .L317:
4879 .cfi_def_cfa_offset 8
4880 .cfi_offset 4, -8
4881 .cfi_offset 14, -4
2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4882 .loc 1 2278 5 discriminator 1 view .LVU1731
4883 0128 0220 movs r0, #2
4884 .LVL344:
2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4885 .loc 1 2278 5 discriminator 1 view .LVU1732
4886 012a BBE7 b .L308
4887 .L327:
4888 .align 2
4889 .L326:
4890 012c 0000FFFF .word -65536
4891 0130 00000000 .word I2C_Slave_ISR_DMA
4892 0134 00000000 .word I2C_DMASlaveTransmitCplt
4893 0138 00000000 .word I2C_DMAError
4894 .cfi_endproc
4895 .LFE349:
4897 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits
4898 .align 1
4899 .global HAL_I2C_Slave_Receive_DMA
4900 .syntax unified
4901 .thumb
4902 .thumb_func
4904 HAL_I2C_Slave_Receive_DMA:
4905 .LVL345:
4906 .LFB350:
2403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4907 .loc 1 2403 1 is_stmt 1 view -0
4908 .cfi_startproc
4909 @ args = 0, pretend = 0, frame = 0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 246
4910 @ frame_needed = 0, uses_anonymous_args = 0
2403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4911 .loc 1 2403 1 is_stmt 0 view .LVU1734
4912 0000 38B5 push {r3, r4, r5, lr}
4913 .cfi_def_cfa_offset 16
4914 .cfi_offset 3, -16
4915 .cfi_offset 4, -12
4916 .cfi_offset 5, -8
4917 .cfi_offset 14, -4
2404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4918 .loc 1 2404 3 is_stmt 1 view .LVU1735
2406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4919 .loc 1 2406 3 view .LVU1736
2406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4920 .loc 1 2406 11 is_stmt 0 view .LVU1737
4921 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
2406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4922 .loc 1 2406 6 view .LVU1738
4923 0006 202B cmp r3, #32
4924 0008 65D1 bne .L334
4925 000a 0446 mov r4, r0
2408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4926 .loc 1 2408 5 is_stmt 1 view .LVU1739
2408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4927 .loc 1 2408 8 is_stmt 0 view .LVU1740
4928 000c 002A cmp r2, #0
4929 000e 18BF it ne
4930 0010 0029 cmpne r1, #0
4931 0012 3AD0 beq .L338
2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4932 .loc 1 2414 5 is_stmt 1 view .LVU1741
2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4933 .loc 1 2414 5 view .LVU1742
4934 0014 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
4935 0018 012B cmp r3, #1
4936 001a 5FD0 beq .L335
2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4937 .loc 1 2414 5 discriminator 2 view .LVU1743
4938 001c 0123 movs r3, #1
4939 001e 80F84030 strb r3, [r0, #64]
2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4940 .loc 1 2414 5 view .LVU1744
2416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4941 .loc 1 2416 5 view .LVU1745
2416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4942 .loc 1 2416 23 is_stmt 0 view .LVU1746
4943 0022 2223 movs r3, #34
4944 0024 80F84130 strb r3, [r0, #65]
2417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4945 .loc 1 2417 5 is_stmt 1 view .LVU1747
2417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4946 .loc 1 2417 23 is_stmt 0 view .LVU1748
4947 0028 2023 movs r3, #32
4948 002a 80F84230 strb r3, [r0, #66]
2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4949 .loc 1 2418 5 is_stmt 1 view .LVU1749
2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 247
4950 .loc 1 2418 23 is_stmt 0 view .LVU1750
4951 002e 0023 movs r3, #0
4952 0030 4364 str r3, [r0, #68]
2421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4953 .loc 1 2421 5 is_stmt 1 view .LVU1751
2421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4954 .loc 1 2421 23 is_stmt 0 view .LVU1752
4955 0032 4162 str r1, [r0, #36]
2422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4956 .loc 1 2422 5 is_stmt 1 view .LVU1753
2422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4957 .loc 1 2422 23 is_stmt 0 view .LVU1754
4958 0034 4285 strh r2, [r0, #42] @ movhi
2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4959 .loc 1 2423 5 is_stmt 1 view .LVU1755
2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4960 .loc 1 2423 29 is_stmt 0 view .LVU1756
4961 0036 438D ldrh r3, [r0, #42]
2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4962 .loc 1 2423 23 view .LVU1757
4963 0038 0385 strh r3, [r0, #40] @ movhi
2424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4964 .loc 1 2424 5 is_stmt 1 view .LVU1758
2424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4965 .loc 1 2424 23 is_stmt 0 view .LVU1759
4966 003a 294B ldr r3, .L340
4967 003c C362 str r3, [r0, #44]
2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4968 .loc 1 2425 5 is_stmt 1 view .LVU1760
2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4969 .loc 1 2425 23 is_stmt 0 view .LVU1761
4970 003e 294B ldr r3, .L340+4
4971 0040 4363 str r3, [r0, #52]
2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4972 .loc 1 2427 5 is_stmt 1 view .LVU1762
2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4973 .loc 1 2427 13 is_stmt 0 view .LVU1763
4974 0042 C36B ldr r3, [r0, #60]
2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4975 .loc 1 2427 8 view .LVU1764
4976 0044 33B3 cbz r3, .L331
2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4977 .loc 1 2430 7 is_stmt 1 view .LVU1765
2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4978 .loc 1 2430 38 is_stmt 0 view .LVU1766
4979 0046 284A ldr r2, .L340+8
4980 .LVL346:
2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4981 .loc 1 2430 38 view .LVU1767
4982 0048 DA63 str r2, [r3, #60]
2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4983 .loc 1 2433 7 is_stmt 1 view .LVU1768
2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4984 .loc 1 2433 11 is_stmt 0 view .LVU1769
4985 004a C36B ldr r3, [r0, #60]
2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4986 .loc 1 2433 39 view .LVU1770
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 248
4987 004c 274A ldr r2, .L340+12
4988 004e DA64 str r2, [r3, #76]
2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4989 .loc 1 2436 7 is_stmt 1 view .LVU1771
2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4990 .loc 1 2436 11 is_stmt 0 view .LVU1772
4991 0050 C26B ldr r2, [r0, #60]
2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4992 .loc 1 2436 42 view .LVU1773
4993 0052 0023 movs r3, #0
4994 0054 1364 str r3, [r2, #64]
2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4995 .loc 1 2437 7 is_stmt 1 view .LVU1774
2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4996 .loc 1 2437 11 is_stmt 0 view .LVU1775
4997 0056 C26B ldr r2, [r0, #60]
2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4998 .loc 1 2437 39 view .LVU1776
4999 0058 1365 str r3, [r2, #80]
2440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
5000 .loc 1 2440 7 is_stmt 1 view .LVU1777
2440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
5001 .loc 1 2440 69 is_stmt 0 view .LVU1778
5002 005a 0068 ldr r0, [r0]
5003 .LVL347:
2440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
5004 .loc 1 2440 23 view .LVU1779
5005 005c 238D ldrh r3, [r4, #40]
5006 005e 0A46 mov r2, r1
5007 0060 00F12401 add r1, r0, #36
5008 .LVL348:
2440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
5009 .loc 1 2440 23 view .LVU1780
5010 0064 E06B ldr r0, [r4, #60]
5011 0066 FFF7FEFF bl HAL_DMA_Start_IT
5012 .LVL349:
2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5013 .loc 1 2458 5 is_stmt 1 view .LVU1781
2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5014 .loc 1 2458 8 is_stmt 0 view .LVU1782
5015 006a 0546 mov r5, r0
5016 006c 00B3 cbz r0, .L339
2478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5017 .loc 1 2478 7 is_stmt 1 view .LVU1783
2478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5018 .loc 1 2478 23 is_stmt 0 view .LVU1784
5019 006e 2823 movs r3, #40
5020 0070 84F84130 strb r3, [r4, #65]
2479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5021 .loc 1 2479 7 is_stmt 1 view .LVU1785
2479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5022 .loc 1 2479 23 is_stmt 0 view .LVU1786
5023 0074 0022 movs r2, #0
5024 0076 84F84220 strb r2, [r4, #66]
2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5025 .loc 1 2482 7 is_stmt 1 view .LVU1787
2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 249
5026 .loc 1 2482 11 is_stmt 0 view .LVU1788
5027 007a 636C ldr r3, [r4, #68]
2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5028 .loc 1 2482 23 view .LVU1789
5029 007c 43F01003 orr r3, r3, #16
5030 0080 6364 str r3, [r4, #68]
2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5031 .loc 1 2485 7 is_stmt 1 view .LVU1790
2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5032 .loc 1 2485 7 view .LVU1791
5033 0082 84F84020 strb r2, [r4, #64]
2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5034 .loc 1 2485 7 view .LVU1792
2487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5035 .loc 1 2487 7 view .LVU1793
2487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5036 .loc 1 2487 14 is_stmt 0 view .LVU1794
5037 0086 0125 movs r5, #1
5038 0088 26E0 b .L329
5039 .LVL350:
5040 .L338:
2410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5041 .loc 1 2410 7 is_stmt 1 view .LVU1795
2410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5042 .loc 1 2410 23 is_stmt 0 view .LVU1796
5043 008a 4FF40073 mov r3, #512
5044 008e 4364 str r3, [r0, #68]
2411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5045 .loc 1 2411 7 is_stmt 1 view .LVU1797
2411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5046 .loc 1 2411 15 is_stmt 0 view .LVU1798
5047 0090 0125 movs r5, #1
5048 0092 21E0 b .L329
5049 .L331:
2446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5050 .loc 1 2446 7 is_stmt 1 view .LVU1799
2446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5051 .loc 1 2446 23 is_stmt 0 view .LVU1800
5052 0094 2823 movs r3, #40
5053 0096 80F84130 strb r3, [r0, #65]
2447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5054 .loc 1 2447 7 is_stmt 1 view .LVU1801
2447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5055 .loc 1 2447 23 is_stmt 0 view .LVU1802
5056 009a 0022 movs r2, #0
5057 .LVL351:
2447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5058 .loc 1 2447 23 view .LVU1803
5059 009c 80F84220 strb r2, [r0, #66]
2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5060 .loc 1 2450 7 is_stmt 1 view .LVU1804
2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5061 .loc 1 2450 11 is_stmt 0 view .LVU1805
5062 00a0 436C ldr r3, [r0, #68]
2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5063 .loc 1 2450 23 view .LVU1806
5064 00a2 43F08003 orr r3, r3, #128
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 250
5065 00a6 4364 str r3, [r0, #68]
2453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5066 .loc 1 2453 7 is_stmt 1 view .LVU1807
2453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5067 .loc 1 2453 7 view .LVU1808
5068 00a8 80F84020 strb r2, [r0, #64]
2453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5069 .loc 1 2453 7 view .LVU1809
2455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5070 .loc 1 2455 7 view .LVU1810
2455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5071 .loc 1 2455 14 is_stmt 0 view .LVU1811
5072 00ac 0125 movs r5, #1
5073 00ae 13E0 b .L329
5074 .LVL352:
5075 .L339:
2461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5076 .loc 1 2461 7 is_stmt 1 view .LVU1812
2461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5077 .loc 1 2461 11 is_stmt 0 view .LVU1813
5078 00b0 2268 ldr r2, [r4]
2461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5079 .loc 1 2461 21 view .LVU1814
5080 00b2 5368 ldr r3, [r2, #4]
2461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5081 .loc 1 2461 27 view .LVU1815
5082 00b4 23F40043 bic r3, r3, #32768
5083 00b8 5360 str r3, [r2, #4]
2464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5084 .loc 1 2464 7 is_stmt 1 view .LVU1816
2464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5085 .loc 1 2464 7 view .LVU1817
5086 00ba 0023 movs r3, #0
5087 00bc 84F84030 strb r3, [r4, #64]
2464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5088 .loc 1 2464 7 view .LVU1818
2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5089 .loc 1 2470 7 view .LVU1819
5090 00c0 4FF40041 mov r1, #32768
5091 00c4 2046 mov r0, r4
5092 .LVL353:
2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5093 .loc 1 2470 7 is_stmt 0 view .LVU1820
5094 00c6 FFF7FEFF bl I2C_Enable_IRQ
5095 .LVL354:
2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5096 .loc 1 2473 7 is_stmt 1 view .LVU1821
2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5097 .loc 1 2473 11 is_stmt 0 view .LVU1822
5098 00ca 2268 ldr r2, [r4]
2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5099 .loc 1 2473 21 view .LVU1823
5100 00cc 1368 ldr r3, [r2]
2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5101 .loc 1 2473 27 view .LVU1824
5102 00ce 43F40043 orr r3, r3, #32768
5103 00d2 1360 str r3, [r2]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 251
2490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5104 .loc 1 2490 5 is_stmt 1 view .LVU1825
2490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5105 .loc 1 2490 12 is_stmt 0 view .LVU1826
5106 00d4 00E0 b .L329
5107 .LVL355:
5108 .L334:
2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5109 .loc 1 2494 12 view .LVU1827
5110 00d6 0225 movs r5, #2
5111 .LVL356:
5112 .L329:
2496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5113 .loc 1 2496 1 view .LVU1828
5114 00d8 2846 mov r0, r5
5115 00da 38BD pop {r3, r4, r5, pc}
5116 .LVL357:
5117 .L335:
2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5118 .loc 1 2414 5 discriminator 1 view .LVU1829
5119 00dc 0225 movs r5, #2
5120 00de FBE7 b .L329
5121 .L341:
5122 .align 2
5123 .L340:
5124 00e0 0000FFFF .word -65536
5125 00e4 00000000 .word I2C_Slave_ISR_DMA
5126 00e8 00000000 .word I2C_DMASlaveReceiveCplt
5127 00ec 00000000 .word I2C_DMAError
5128 .cfi_endproc
5129 .LFE350:
5131 .section .text.HAL_I2C_Mem_Write,"ax",%progbits
5132 .align 1
5133 .global HAL_I2C_Mem_Write
5134 .syntax unified
5135 .thumb
5136 .thumb_func
5138 HAL_I2C_Mem_Write:
5139 .LVL358:
5140 .LFB351:
2513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
5141 .loc 1 2513 1 is_stmt 1 view -0
5142 .cfi_startproc
5143 @ args = 12, pretend = 0, frame = 0
5144 @ frame_needed = 0, uses_anonymous_args = 0
2513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
5145 .loc 1 2513 1 is_stmt 0 view .LVU1831
5146 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5147 .cfi_def_cfa_offset 36
5148 .cfi_offset 4, -36
5149 .cfi_offset 5, -32
5150 .cfi_offset 6, -28
5151 .cfi_offset 7, -24
5152 .cfi_offset 8, -20
5153 .cfi_offset 9, -16
5154 .cfi_offset 10, -12
5155 .cfi_offset 11, -8
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 252
5156 .cfi_offset 14, -4
5157 0004 83B0 sub sp, sp, #12
5158 .cfi_def_cfa_offset 48
5159 0006 0D46 mov r5, r1
5160 0008 BDF834A0 ldrh r10, [sp, #52]
5161 000c 0E9F ldr r7, [sp, #56]
2514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5162 .loc 1 2514 3 is_stmt 1 view .LVU1832
2517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5163 .loc 1 2517 3 view .LVU1833
2519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5164 .loc 1 2519 3 view .LVU1834
2519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5165 .loc 1 2519 11 is_stmt 0 view .LVU1835
5166 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
5167 .LVL359:
2519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5168 .loc 1 2519 6 view .LVU1836
5169 0012 2029 cmp r1, #32
5170 0014 40F0BC80 bne .L351
5171 0018 0446 mov r4, r0
5172 001a 9146 mov r9, r2
5173 001c 9846 mov r8, r3
2521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5174 .loc 1 2521 5 is_stmt 1 view .LVU1837
2521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5175 .loc 1 2521 8 is_stmt 0 view .LVU1838
5176 001e 0C9B ldr r3, [sp, #48]
5177 .LVL360:
2521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5178 .loc 1 2521 8 view .LVU1839
5179 0020 BAF1000F cmp r10, #0
5180 0024 18BF it ne
5181 0026 002B cmpne r3, #0
5182 0028 16D0 beq .L358
2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5183 .loc 1 2528 5 is_stmt 1 view .LVU1840
2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5184 .loc 1 2528 5 view .LVU1841
5185 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
5186 002e 012B cmp r3, #1
5187 0030 00F0B280 beq .L352
2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5188 .loc 1 2528 5 discriminator 2 view .LVU1842
5189 0034 4FF0010B mov fp, #1
5190 0038 80F840B0 strb fp, [r0, #64]
2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5191 .loc 1 2528 5 view .LVU1843
2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5192 .loc 1 2531 5 view .LVU1844
2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5193 .loc 1 2531 17 is_stmt 0 view .LVU1845
5194 003c FFF7FEFF bl HAL_GetTick
5195 .LVL361:
2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5196 .loc 1 2531 17 view .LVU1846
5197 0040 0646 mov r6, r0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 253
5198 .LVL362:
2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5199 .loc 1 2533 5 is_stmt 1 view .LVU1847
2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5200 .loc 1 2533 9 is_stmt 0 view .LVU1848
5201 0042 0090 str r0, [sp]
5202 0044 1923 movs r3, #25
5203 0046 5A46 mov r2, fp
5204 0048 4FF40041 mov r1, #32768
5205 004c 2046 mov r0, r4
5206 .LVL363:
2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5207 .loc 1 2533 9 view .LVU1849
5208 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5209 .LVL364:
2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5210 .loc 1 2533 8 discriminator 1 view .LVU1850
5211 0052 30B1 cbz r0, .L359
2535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5212 .loc 1 2535 14 view .LVU1851
5213 0054 0120 movs r0, #1
5214 0056 9CE0 b .L343
5215 .LVL365:
5216 .L358:
2523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5217 .loc 1 2523 7 is_stmt 1 view .LVU1852
2523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5218 .loc 1 2523 23 is_stmt 0 view .LVU1853
5219 0058 4FF40073 mov r3, #512
5220 005c 4364 str r3, [r0, #68]
2524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5221 .loc 1 2524 7 is_stmt 1 view .LVU1854
2524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5222 .loc 1 2524 15 is_stmt 0 view .LVU1855
5223 005e 0120 movs r0, #1
5224 .LVL366:
2524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5225 .loc 1 2524 15 view .LVU1856
5226 0060 97E0 b .L343
5227 .LVL367:
5228 .L359:
2538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5229 .loc 1 2538 5 is_stmt 1 view .LVU1857
2538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5230 .loc 1 2538 21 is_stmt 0 view .LVU1858
5231 0062 2123 movs r3, #33
5232 0064 84F84130 strb r3, [r4, #65]
2539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5233 .loc 1 2539 5 is_stmt 1 view .LVU1859
2539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5234 .loc 1 2539 21 is_stmt 0 view .LVU1860
5235 0068 4023 movs r3, #64
5236 006a 84F84230 strb r3, [r4, #66]
2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5237 .loc 1 2540 5 is_stmt 1 view .LVU1861
2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5238 .loc 1 2540 21 is_stmt 0 view .LVU1862
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 254
5239 006e 0023 movs r3, #0
5240 0070 6364 str r3, [r4, #68]
2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5241 .loc 1 2543 5 is_stmt 1 view .LVU1863
2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5242 .loc 1 2543 21 is_stmt 0 view .LVU1864
5243 0072 0C9A ldr r2, [sp, #48]
5244 0074 6262 str r2, [r4, #36]
2544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5245 .loc 1 2544 5 is_stmt 1 view .LVU1865
2544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5246 .loc 1 2544 21 is_stmt 0 view .LVU1866
5247 0076 A4F82AA0 strh r10, [r4, #42] @ movhi
2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5248 .loc 1 2545 5 is_stmt 1 view .LVU1867
2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5249 .loc 1 2545 21 is_stmt 0 view .LVU1868
5250 007a 6363 str r3, [r4, #52]
2548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5251 .loc 1 2548 5 is_stmt 1 view .LVU1869
2548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5252 .loc 1 2548 9 is_stmt 0 view .LVU1870
5253 007c 0196 str r6, [sp, #4]
5254 007e 0097 str r7, [sp]
5255 0080 4346 mov r3, r8
5256 0082 4A46 mov r2, r9
5257 0084 2946 mov r1, r5
5258 0086 2046 mov r0, r4
5259 0088 FFF7FEFF bl I2C_RequestMemoryWrite
5260 .LVL368:
2548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5261 .loc 1 2548 8 discriminator 1 view .LVU1871
5262 008c 70B9 cbnz r0, .L360
2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5263 .loc 1 2556 5 is_stmt 1 view .LVU1872
2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5264 .loc 1 2556 13 is_stmt 0 view .LVU1873
5265 008e 638D ldrh r3, [r4, #42]
5266 0090 9BB2 uxth r3, r3
2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5267 .loc 1 2556 8 view .LVU1874
5268 0092 FF2B cmp r3, #255
5269 0094 0FD9 bls .L346
2558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
5270 .loc 1 2558 7 is_stmt 1 view .LVU1875
2558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
5271 .loc 1 2558 22 is_stmt 0 view .LVU1876
5272 0096 FF22 movs r2, #255
5273 0098 2285 strh r2, [r4, #40] @ movhi
2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5274 .loc 1 2559 7 is_stmt 1 view .LVU1877
5275 009a 0023 movs r3, #0
5276 009c 0093 str r3, [sp]
5277 009e 4FF08073 mov r3, #16777216
5278 00a2 2946 mov r1, r5
5279 00a4 2046 mov r0, r4
5280 00a6 FFF7FEFF bl I2C_TransferConfig
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 255
5281 .LVL369:
5282 00aa 21E0 b .L350
5283 .L360:
2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5284 .loc 1 2551 7 view .LVU1878
2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5285 .loc 1 2551 7 view .LVU1879
5286 00ac 0023 movs r3, #0
5287 00ae 84F84030 strb r3, [r4, #64]
2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5288 .loc 1 2551 7 view .LVU1880
2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5289 .loc 1 2552 7 view .LVU1881
2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5290 .loc 1 2552 14 is_stmt 0 view .LVU1882
5291 00b2 5846 mov r0, fp
5292 00b4 6DE0 b .L343
5293 .L346:
2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
5294 .loc 1 2563 7 is_stmt 1 view .LVU1883
2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
5295 .loc 1 2563 28 is_stmt 0 view .LVU1884
5296 00b6 628D ldrh r2, [r4, #42]
5297 00b8 92B2 uxth r2, r2
2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
5298 .loc 1 2563 22 view .LVU1885
5299 00ba 2285 strh r2, [r4, #40] @ movhi
2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5300 .loc 1 2564 7 is_stmt 1 view .LVU1886
5301 00bc 0023 movs r3, #0
5302 00be 0093 str r3, [sp]
5303 00c0 4FF00073 mov r3, #33554432
5304 00c4 D2B2 uxtb r2, r2
5305 00c6 2946 mov r1, r5
5306 00c8 2046 mov r0, r4
5307 00ca FFF7FEFF bl I2C_TransferConfig
5308 .LVL370:
5309 00ce 0FE0 b .L350
5310 .L349:
2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5311 .loc 1 2600 11 view .LVU1887
2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5312 .loc 1 2600 32 is_stmt 0 view .LVU1888
5313 00d0 628D ldrh r2, [r4, #42]
5314 00d2 92B2 uxth r2, r2
2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5315 .loc 1 2600 26 view .LVU1889
5316 00d4 2285 strh r2, [r4, #40] @ movhi
2601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
5317 .loc 1 2601 11 is_stmt 1 view .LVU1890
5318 00d6 0023 movs r3, #0
5319 00d8 0093 str r3, [sp]
5320 00da 4FF00073 mov r3, #33554432
5321 00de D2B2 uxtb r2, r2
5322 00e0 2946 mov r1, r5
5323 00e2 2046 mov r0, r4
5324 00e4 FFF7FEFF bl I2C_TransferConfig
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 256
5325 .LVL371:
5326 .L348:
2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5327 .loc 1 2606 30 view .LVU1891
2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5328 .loc 1 2606 18 is_stmt 0 view .LVU1892
5329 00e8 638D ldrh r3, [r4, #42]
5330 00ea 9BB2 uxth r3, r3
2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5331 .loc 1 2606 30 view .LVU1893
5332 00ec 002B cmp r3, #0
5333 00ee 33D0 beq .L361
5334 .L350:
2567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5335 .loc 1 2567 5 is_stmt 1 view .LVU1894
2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5336 .loc 1 2570 7 view .LVU1895
2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5337 .loc 1 2570 11 is_stmt 0 view .LVU1896
5338 00f0 3246 mov r2, r6
5339 00f2 3946 mov r1, r7
5340 00f4 2046 mov r0, r4
5341 00f6 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
5342 .LVL372:
2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5343 .loc 1 2570 10 discriminator 1 view .LVU1897
5344 00fa 0028 cmp r0, #0
5345 00fc 4ED1 bne .L354
2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5346 .loc 1 2576 7 is_stmt 1 view .LVU1898
2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5347 .loc 1 2576 35 is_stmt 0 view .LVU1899
5348 00fe 626A ldr r2, [r4, #36]
2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5349 .loc 1 2576 11 view .LVU1900
5350 0100 2368 ldr r3, [r4]
2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5351 .loc 1 2576 30 view .LVU1901
5352 0102 1278 ldrb r2, [r2] @ zero_extendqisi2
2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5353 .loc 1 2576 28 view .LVU1902
5354 0104 9A62 str r2, [r3, #40]
2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5355 .loc 1 2579 7 is_stmt 1 view .LVU1903
2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5356 .loc 1 2579 11 is_stmt 0 view .LVU1904
5357 0106 636A ldr r3, [r4, #36]
2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5358 .loc 1 2579 21 view .LVU1905
5359 0108 0133 adds r3, r3, #1
5360 010a 6362 str r3, [r4, #36]
2581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5361 .loc 1 2581 7 is_stmt 1 view .LVU1906
2581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5362 .loc 1 2581 11 is_stmt 0 view .LVU1907
5363 010c 638D ldrh r3, [r4, #42]
5364 010e 9BB2 uxth r3, r3
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 257
2581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5365 .loc 1 2581 22 view .LVU1908
5366 0110 013B subs r3, r3, #1
5367 0112 9BB2 uxth r3, r3
5368 0114 6385 strh r3, [r4, #42] @ movhi
2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5369 .loc 1 2582 7 is_stmt 1 view .LVU1909
2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5370 .loc 1 2582 11 is_stmt 0 view .LVU1910
5371 0116 238D ldrh r3, [r4, #40]
2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5372 .loc 1 2582 21 view .LVU1911
5373 0118 013B subs r3, r3, #1
5374 011a 9BB2 uxth r3, r3
5375 011c 2385 strh r3, [r4, #40] @ movhi
2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5376 .loc 1 2584 7 is_stmt 1 view .LVU1912
2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5377 .loc 1 2584 16 is_stmt 0 view .LVU1913
5378 011e 628D ldrh r2, [r4, #42]
5379 0120 92B2 uxth r2, r2
2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5380 .loc 1 2584 10 view .LVU1914
5381 0122 002A cmp r2, #0
5382 0124 E0D0 beq .L348
2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5383 .loc 1 2584 35 discriminator 1 view .LVU1915
5384 0126 002B cmp r3, #0
5385 0128 DED1 bne .L348
2587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5386 .loc 1 2587 9 is_stmt 1 view .LVU1916
2587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5387 .loc 1 2587 13 is_stmt 0 view .LVU1917
5388 012a 0096 str r6, [sp]
5389 012c 3B46 mov r3, r7
5390 012e 0022 movs r2, #0
5391 0130 8021 movs r1, #128
5392 0132 2046 mov r0, r4
5393 0134 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5394 .LVL373:
2587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5395 .loc 1 2587 12 discriminator 1 view .LVU1918
5396 0138 90BB cbnz r0, .L355
2592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5397 .loc 1 2592 9 is_stmt 1 view .LVU1919
2592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5398 .loc 1 2592 17 is_stmt 0 view .LVU1920
5399 013a 638D ldrh r3, [r4, #42]
5400 013c 9BB2 uxth r3, r3
2592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5401 .loc 1 2592 12 view .LVU1921
5402 013e FF2B cmp r3, #255
5403 0140 C6D9 bls .L349
2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
5404 .loc 1 2594 11 is_stmt 1 view .LVU1922
2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
5405 .loc 1 2594 26 is_stmt 0 view .LVU1923
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 258
5406 0142 FF22 movs r2, #255
5407 0144 2285 strh r2, [r4, #40] @ movhi
2595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
5408 .loc 1 2595 11 is_stmt 1 view .LVU1924
5409 0146 0023 movs r3, #0
5410 0148 0093 str r3, [sp]
5411 014a 4FF08073 mov r3, #16777216
5412 014e 2946 mov r1, r5
5413 0150 2046 mov r0, r4
5414 0152 FFF7FEFF bl I2C_TransferConfig
5415 .LVL374:
5416 0156 C7E7 b .L348
5417 .L361:
2610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5418 .loc 1 2610 5 view .LVU1925
2610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5419 .loc 1 2610 9 is_stmt 0 view .LVU1926
5420 0158 3246 mov r2, r6
5421 015a 3946 mov r1, r7
5422 015c 2046 mov r0, r4
5423 015e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
5424 .LVL375:
2610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5425 .loc 1 2610 8 discriminator 1 view .LVU1927
5426 0162 F8B9 cbnz r0, .L356
2616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5427 .loc 1 2616 5 is_stmt 1 view .LVU1928
5428 0164 2368 ldr r3, [r4]
5429 0166 2022 movs r2, #32
5430 0168 DA61 str r2, [r3, #28]
2619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5431 .loc 1 2619 5 view .LVU1929
5432 016a 2168 ldr r1, [r4]
5433 016c 4B68 ldr r3, [r1, #4]
5434 016e 23F0FF73 bic r3, r3, #33423360
5435 0172 23F48B33 bic r3, r3, #71168
5436 0176 23F4FF73 bic r3, r3, #510
5437 017a 23F00103 bic r3, r3, #1
5438 017e 4B60 str r3, [r1, #4]
2621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5439 .loc 1 2621 5 view .LVU1930
2621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5440 .loc 1 2621 17 is_stmt 0 view .LVU1931
5441 0180 84F84120 strb r2, [r4, #65]
2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5442 .loc 1 2622 5 is_stmt 1 view .LVU1932
2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5443 .loc 1 2622 17 is_stmt 0 view .LVU1933
5444 0184 0023 movs r3, #0
5445 0186 84F84230 strb r3, [r4, #66]
2625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5446 .loc 1 2625 5 is_stmt 1 view .LVU1934
2625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5447 .loc 1 2625 5 view .LVU1935
5448 018a 84F84030 strb r3, [r4, #64]
2625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5449 .loc 1 2625 5 view .LVU1936
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 259
2627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5450 .loc 1 2627 5 view .LVU1937
2627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5451 .loc 1 2627 12 is_stmt 0 view .LVU1938
5452 018e 00E0 b .L343
5453 .LVL376:
5454 .L351:
2631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5455 .loc 1 2631 12 view .LVU1939
5456 0190 0220 movs r0, #2
5457 .LVL377:
5458 .L343:
2633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5459 .loc 1 2633 1 view .LVU1940
5460 0192 03B0 add sp, sp, #12
5461 .cfi_remember_state
5462 .cfi_def_cfa_offset 36
5463 @ sp needed
5464 0194 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5465 .LVL378:
5466 .L352:
5467 .cfi_restore_state
2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5468 .loc 1 2528 5 discriminator 1 view .LVU1941
5469 0198 0220 movs r0, #2
5470 .LVL379:
2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5471 .loc 1 2528 5 discriminator 1 view .LVU1942
5472 019a FAE7 b .L343
5473 .LVL380:
5474 .L354:
2572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5475 .loc 1 2572 16 view .LVU1943
5476 019c 0120 movs r0, #1
5477 019e F8E7 b .L343
5478 .L355:
2589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5479 .loc 1 2589 18 view .LVU1944
5480 01a0 0120 movs r0, #1
5481 01a2 F6E7 b .L343
5482 .L356:
2612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5483 .loc 1 2612 14 view .LVU1945
5484 01a4 0120 movs r0, #1
5485 01a6 F4E7 b .L343
5486 .cfi_endproc
5487 .LFE351:
5489 .section .text.HAL_I2C_Mem_Read,"ax",%progbits
5490 .align 1
5491 .global HAL_I2C_Mem_Read
5492 .syntax unified
5493 .thumb
5494 .thumb_func
5496 HAL_I2C_Mem_Read:
5497 .LVL381:
5498 .LFB352:
2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 260
5499 .loc 1 2650 1 is_stmt 1 view -0
5500 .cfi_startproc
5501 @ args = 12, pretend = 0, frame = 0
5502 @ frame_needed = 0, uses_anonymous_args = 0
2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
5503 .loc 1 2650 1 is_stmt 0 view .LVU1947
5504 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5505 .cfi_def_cfa_offset 36
5506 .cfi_offset 4, -36
5507 .cfi_offset 5, -32
5508 .cfi_offset 6, -28
5509 .cfi_offset 7, -24
5510 .cfi_offset 8, -20
5511 .cfi_offset 9, -16
5512 .cfi_offset 10, -12
5513 .cfi_offset 11, -8
5514 .cfi_offset 14, -4
5515 0004 83B0 sub sp, sp, #12
5516 .cfi_def_cfa_offset 48
5517 0006 0D46 mov r5, r1
5518 0008 BDF834A0 ldrh r10, [sp, #52]
5519 000c 0E9F ldr r7, [sp, #56]
2651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5520 .loc 1 2651 3 is_stmt 1 view .LVU1948
2654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5521 .loc 1 2654 3 view .LVU1949
2656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5522 .loc 1 2656 3 view .LVU1950
2656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5523 .loc 1 2656 11 is_stmt 0 view .LVU1951
5524 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
5525 .LVL382:
2656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5526 .loc 1 2656 6 view .LVU1952
5527 0012 2029 cmp r1, #32
5528 0014 40F0BD80 bne .L371
5529 0018 0446 mov r4, r0
5530 001a 9146 mov r9, r2
5531 001c 9846 mov r8, r3
2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5532 .loc 1 2658 5 is_stmt 1 view .LVU1953
2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5533 .loc 1 2658 8 is_stmt 0 view .LVU1954
5534 001e 0C9B ldr r3, [sp, #48]
5535 .LVL383:
2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5536 .loc 1 2658 8 view .LVU1955
5537 0020 BAF1000F cmp r10, #0
5538 0024 18BF it ne
5539 0026 002B cmpne r3, #0
5540 0028 16D0 beq .L378
2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5541 .loc 1 2665 5 is_stmt 1 view .LVU1956
2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5542 .loc 1 2665 5 view .LVU1957
5543 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
5544 002e 012B cmp r3, #1
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 261
5545 0030 00F0B380 beq .L372
2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5546 .loc 1 2665 5 discriminator 2 view .LVU1958
5547 0034 4FF0010B mov fp, #1
5548 0038 80F840B0 strb fp, [r0, #64]
2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5549 .loc 1 2665 5 view .LVU1959
2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5550 .loc 1 2668 5 view .LVU1960
2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5551 .loc 1 2668 17 is_stmt 0 view .LVU1961
5552 003c FFF7FEFF bl HAL_GetTick
5553 .LVL384:
2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5554 .loc 1 2668 17 view .LVU1962
5555 0040 0646 mov r6, r0
5556 .LVL385:
2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5557 .loc 1 2670 5 is_stmt 1 view .LVU1963
2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5558 .loc 1 2670 9 is_stmt 0 view .LVU1964
5559 0042 0090 str r0, [sp]
5560 0044 1923 movs r3, #25
5561 0046 5A46 mov r2, fp
5562 0048 4FF40041 mov r1, #32768
5563 004c 2046 mov r0, r4
5564 .LVL386:
2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5565 .loc 1 2670 9 view .LVU1965
5566 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5567 .LVL387:
2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5568 .loc 1 2670 8 discriminator 1 view .LVU1966
5569 0052 30B1 cbz r0, .L379
2672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5570 .loc 1 2672 14 view .LVU1967
5571 0054 0120 movs r0, #1
5572 0056 9DE0 b .L363
5573 .LVL388:
5574 .L378:
2660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5575 .loc 1 2660 7 is_stmt 1 view .LVU1968
2660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5576 .loc 1 2660 23 is_stmt 0 view .LVU1969
5577 0058 4FF40073 mov r3, #512
5578 005c 4364 str r3, [r0, #68]
2661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5579 .loc 1 2661 7 is_stmt 1 view .LVU1970
2661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5580 .loc 1 2661 15 is_stmt 0 view .LVU1971
5581 005e 0120 movs r0, #1
5582 .LVL389:
2661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5583 .loc 1 2661 15 view .LVU1972
5584 0060 98E0 b .L363
5585 .LVL390:
5586 .L379:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 262
2675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5587 .loc 1 2675 5 is_stmt 1 view .LVU1973
2675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5588 .loc 1 2675 21 is_stmt 0 view .LVU1974
5589 0062 2223 movs r3, #34
5590 0064 84F84130 strb r3, [r4, #65]
2676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5591 .loc 1 2676 5 is_stmt 1 view .LVU1975
2676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5592 .loc 1 2676 21 is_stmt 0 view .LVU1976
5593 0068 4023 movs r3, #64
5594 006a 84F84230 strb r3, [r4, #66]
2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5595 .loc 1 2677 5 is_stmt 1 view .LVU1977
2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5596 .loc 1 2677 21 is_stmt 0 view .LVU1978
5597 006e 0023 movs r3, #0
5598 0070 6364 str r3, [r4, #68]
2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5599 .loc 1 2680 5 is_stmt 1 view .LVU1979
2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5600 .loc 1 2680 21 is_stmt 0 view .LVU1980
5601 0072 0C9A ldr r2, [sp, #48]
5602 0074 6262 str r2, [r4, #36]
2681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5603 .loc 1 2681 5 is_stmt 1 view .LVU1981
2681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5604 .loc 1 2681 21 is_stmt 0 view .LVU1982
5605 0076 A4F82AA0 strh r10, [r4, #42] @ movhi
2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5606 .loc 1 2682 5 is_stmt 1 view .LVU1983
2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5607 .loc 1 2682 21 is_stmt 0 view .LVU1984
5608 007a 6363 str r3, [r4, #52]
2685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5609 .loc 1 2685 5 is_stmt 1 view .LVU1985
2685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5610 .loc 1 2685 9 is_stmt 0 view .LVU1986
5611 007c 0196 str r6, [sp, #4]
5612 007e 0097 str r7, [sp]
5613 0080 4346 mov r3, r8
5614 0082 4A46 mov r2, r9
5615 0084 2946 mov r1, r5
5616 0086 2046 mov r0, r4
5617 0088 FFF7FEFF bl I2C_RequestMemoryRead
5618 .LVL391:
2685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5619 .loc 1 2685 8 discriminator 1 view .LVU1987
5620 008c 70B9 cbnz r0, .L380
2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5621 .loc 1 2694 5 is_stmt 1 view .LVU1988
2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5622 .loc 1 2694 13 is_stmt 0 view .LVU1989
5623 008e 638D ldrh r3, [r4, #42]
5624 0090 9BB2 uxth r3, r3
2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5625 .loc 1 2694 8 view .LVU1990
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 263
5626 0092 FF2B cmp r3, #255
5627 0094 0FD9 bls .L366
2696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
5628 .loc 1 2696 7 is_stmt 1 view .LVU1991
2696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
5629 .loc 1 2696 22 is_stmt 0 view .LVU1992
5630 0096 FF22 movs r2, #255
5631 0098 2285 strh r2, [r4, #40] @ movhi
2697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
5632 .loc 1 2697 7 is_stmt 1 view .LVU1993
5633 009a 444B ldr r3, .L382
5634 009c 0093 str r3, [sp]
5635 009e 4FF08073 mov r3, #16777216
5636 00a2 2946 mov r1, r5
5637 00a4 2046 mov r0, r4
5638 00a6 FFF7FEFF bl I2C_TransferConfig
5639 .LVL392:
5640 00aa 21E0 b .L370
5641 .L380:
2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5642 .loc 1 2688 7 view .LVU1994
2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5643 .loc 1 2688 7 view .LVU1995
5644 00ac 0023 movs r3, #0
5645 00ae 84F84030 strb r3, [r4, #64]
2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5646 .loc 1 2688 7 view .LVU1996
2689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5647 .loc 1 2689 7 view .LVU1997
2689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5648 .loc 1 2689 14 is_stmt 0 view .LVU1998
5649 00b2 5846 mov r0, fp
5650 00b4 6EE0 b .L363
5651 .L366:
2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5652 .loc 1 2702 7 is_stmt 1 view .LVU1999
2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5653 .loc 1 2702 28 is_stmt 0 view .LVU2000
5654 00b6 628D ldrh r2, [r4, #42]
5655 00b8 92B2 uxth r2, r2
2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5656 .loc 1 2702 22 view .LVU2001
5657 00ba 2285 strh r2, [r4, #40] @ movhi
2703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
5658 .loc 1 2703 7 is_stmt 1 view .LVU2002
5659 00bc 3B4B ldr r3, .L382
5660 00be 0093 str r3, [sp]
5661 00c0 4FF00073 mov r3, #33554432
5662 00c4 D2B2 uxtb r2, r2
5663 00c6 2946 mov r1, r5
5664 00c8 2046 mov r0, r4
5665 00ca FFF7FEFF bl I2C_TransferConfig
5666 .LVL393:
5667 00ce 0FE0 b .L370
5668 .L369:
2740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5669 .loc 1 2740 11 view .LVU2003
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 264
2740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5670 .loc 1 2740 32 is_stmt 0 view .LVU2004
5671 00d0 628D ldrh r2, [r4, #42]
5672 00d2 92B2 uxth r2, r2
2740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5673 .loc 1 2740 26 view .LVU2005
5674 00d4 2285 strh r2, [r4, #40] @ movhi
2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
5675 .loc 1 2741 11 is_stmt 1 view .LVU2006
5676 00d6 0023 movs r3, #0
5677 00d8 0093 str r3, [sp]
5678 00da 4FF00073 mov r3, #33554432
5679 00de D2B2 uxtb r2, r2
5680 00e0 2946 mov r1, r5
5681 00e2 2046 mov r0, r4
5682 00e4 FFF7FEFF bl I2C_TransferConfig
5683 .LVL394:
5684 .L368:
2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5685 .loc 1 2745 30 view .LVU2007
2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5686 .loc 1 2745 18 is_stmt 0 view .LVU2008
5687 00e8 638D ldrh r3, [r4, #42]
5688 00ea 9BB2 uxth r3, r3
2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5689 .loc 1 2745 30 view .LVU2009
5690 00ec 002B cmp r3, #0
5691 00ee 34D0 beq .L381
5692 .L370:
2707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5693 .loc 1 2707 5 is_stmt 1 view .LVU2010
2710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5694 .loc 1 2710 7 view .LVU2011
2710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5695 .loc 1 2710 11 is_stmt 0 view .LVU2012
5696 00f0 0096 str r6, [sp]
5697 00f2 3B46 mov r3, r7
5698 00f4 0022 movs r2, #0
5699 00f6 0421 movs r1, #4
5700 00f8 2046 mov r0, r4
5701 00fa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5702 .LVL395:
2710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5703 .loc 1 2710 10 discriminator 1 view .LVU2013
5704 00fe 0028 cmp r0, #0
5705 0100 4DD1 bne .L374
2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5706 .loc 1 2716 7 is_stmt 1 view .LVU2014
2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5707 .loc 1 2716 38 is_stmt 0 view .LVU2015
5708 0102 2368 ldr r3, [r4]
2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5709 .loc 1 2716 48 view .LVU2016
5710 0104 5A6A ldr r2, [r3, #36]
2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5711 .loc 1 2716 12 view .LVU2017
5712 0106 636A ldr r3, [r4, #36]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 265
2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5713 .loc 1 2716 23 view .LVU2018
5714 0108 1A70 strb r2, [r3]
2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5715 .loc 1 2719 7 is_stmt 1 view .LVU2019
2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5716 .loc 1 2719 11 is_stmt 0 view .LVU2020
5717 010a 636A ldr r3, [r4, #36]
2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5718 .loc 1 2719 21 view .LVU2021
5719 010c 0133 adds r3, r3, #1
5720 010e 6362 str r3, [r4, #36]
2721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5721 .loc 1 2721 7 is_stmt 1 view .LVU2022
2721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5722 .loc 1 2721 11 is_stmt 0 view .LVU2023
5723 0110 228D ldrh r2, [r4, #40]
2721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5724 .loc 1 2721 21 view .LVU2024
5725 0112 013A subs r2, r2, #1
5726 0114 92B2 uxth r2, r2
5727 0116 2285 strh r2, [r4, #40] @ movhi
2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5728 .loc 1 2722 7 is_stmt 1 view .LVU2025
2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5729 .loc 1 2722 11 is_stmt 0 view .LVU2026
5730 0118 638D ldrh r3, [r4, #42]
5731 011a 9BB2 uxth r3, r3
2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5732 .loc 1 2722 22 view .LVU2027
5733 011c 013B subs r3, r3, #1
5734 011e 9BB2 uxth r3, r3
5735 0120 6385 strh r3, [r4, #42] @ movhi
2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5736 .loc 1 2724 7 is_stmt 1 view .LVU2028
2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5737 .loc 1 2724 16 is_stmt 0 view .LVU2029
5738 0122 638D ldrh r3, [r4, #42]
5739 0124 9BB2 uxth r3, r3
2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5740 .loc 1 2724 10 view .LVU2030
5741 0126 002B cmp r3, #0
5742 0128 DED0 beq .L368
2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5743 .loc 1 2724 35 discriminator 1 view .LVU2031
5744 012a 002A cmp r2, #0
5745 012c DCD1 bne .L368
2727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5746 .loc 1 2727 9 is_stmt 1 view .LVU2032
2727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5747 .loc 1 2727 13 is_stmt 0 view .LVU2033
5748 012e 0096 str r6, [sp]
5749 0130 3B46 mov r3, r7
5750 0132 8021 movs r1, #128
5751 0134 2046 mov r0, r4
5752 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5753 .LVL396:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 266
2727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5754 .loc 1 2727 12 discriminator 1 view .LVU2034
5755 013a 90BB cbnz r0, .L375
2732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5756 .loc 1 2732 9 is_stmt 1 view .LVU2035
2732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5757 .loc 1 2732 17 is_stmt 0 view .LVU2036
5758 013c 638D ldrh r3, [r4, #42]
5759 013e 9BB2 uxth r3, r3
2732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5760 .loc 1 2732 12 view .LVU2037
5761 0140 FF2B cmp r3, #255
5762 0142 C5D9 bls .L369
2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
5763 .loc 1 2734 11 is_stmt 1 view .LVU2038
2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
5764 .loc 1 2734 26 is_stmt 0 view .LVU2039
5765 0144 FF22 movs r2, #255
5766 0146 2285 strh r2, [r4, #40] @ movhi
2735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP);
5767 .loc 1 2735 11 is_stmt 1 view .LVU2040
5768 0148 0023 movs r3, #0
5769 014a 0093 str r3, [sp]
5770 014c 4FF08073 mov r3, #16777216
5771 0150 2946 mov r1, r5
5772 0152 2046 mov r0, r4
5773 0154 FFF7FEFF bl I2C_TransferConfig
5774 .LVL397:
5775 0158 C6E7 b .L368
5776 .L381:
2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5777 .loc 1 2749 5 view .LVU2041
2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5778 .loc 1 2749 9 is_stmt 0 view .LVU2042
5779 015a 3246 mov r2, r6
5780 015c 3946 mov r1, r7
5781 015e 2046 mov r0, r4
5782 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
5783 .LVL398:
2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5784 .loc 1 2749 8 discriminator 1 view .LVU2043
5785 0164 F8B9 cbnz r0, .L376
2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5786 .loc 1 2755 5 is_stmt 1 view .LVU2044
5787 0166 2368 ldr r3, [r4]
5788 0168 2022 movs r2, #32
5789 016a DA61 str r2, [r3, #28]
2758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5790 .loc 1 2758 5 view .LVU2045
5791 016c 2168 ldr r1, [r4]
5792 016e 4B68 ldr r3, [r1, #4]
5793 0170 23F0FF73 bic r3, r3, #33423360
5794 0174 23F48B33 bic r3, r3, #71168
5795 0178 23F4FF73 bic r3, r3, #510
5796 017c 23F00103 bic r3, r3, #1
5797 0180 4B60 str r3, [r1, #4]
2760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 267
5798 .loc 1 2760 5 view .LVU2046
2760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5799 .loc 1 2760 17 is_stmt 0 view .LVU2047
5800 0182 84F84120 strb r2, [r4, #65]
2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5801 .loc 1 2761 5 is_stmt 1 view .LVU2048
2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5802 .loc 1 2761 17 is_stmt 0 view .LVU2049
5803 0186 0023 movs r3, #0
5804 0188 84F84230 strb r3, [r4, #66]
2764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5805 .loc 1 2764 5 is_stmt 1 view .LVU2050
2764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5806 .loc 1 2764 5 view .LVU2051
5807 018c 84F84030 strb r3, [r4, #64]
2764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5808 .loc 1 2764 5 view .LVU2052
2766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5809 .loc 1 2766 5 view .LVU2053
2766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5810 .loc 1 2766 12 is_stmt 0 view .LVU2054
5811 0190 00E0 b .L363
5812 .LVL399:
5813 .L371:
2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5814 .loc 1 2770 12 view .LVU2055
5815 0192 0220 movs r0, #2
5816 .LVL400:
5817 .L363:
2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5818 .loc 1 2772 1 view .LVU2056
5819 0194 03B0 add sp, sp, #12
5820 .cfi_remember_state
5821 .cfi_def_cfa_offset 36
5822 @ sp needed
5823 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5824 .LVL401:
5825 .L372:
5826 .cfi_restore_state
2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5827 .loc 1 2665 5 discriminator 1 view .LVU2057
5828 019a 0220 movs r0, #2
5829 .LVL402:
2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5830 .loc 1 2665 5 discriminator 1 view .LVU2058
5831 019c FAE7 b .L363
5832 .LVL403:
5833 .L374:
2712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5834 .loc 1 2712 16 view .LVU2059
5835 019e 0120 movs r0, #1
5836 01a0 F8E7 b .L363
5837 .L375:
2729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5838 .loc 1 2729 18 view .LVU2060
5839 01a2 0120 movs r0, #1
5840 01a4 F6E7 b .L363
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 268
5841 .L376:
2751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5842 .loc 1 2751 14 view .LVU2061
5843 01a6 0120 movs r0, #1
5844 01a8 F4E7 b .L363
5845 .L383:
5846 01aa 00BF .align 2
5847 .L382:
5848 01ac 00240080 .word -2147474432
5849 .cfi_endproc
5850 .LFE352:
5852 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits
5853 .align 1
5854 .global HAL_I2C_Mem_Write_IT
5855 .syntax unified
5856 .thumb
5857 .thumb_func
5859 HAL_I2C_Mem_Write_IT:
5860 .LVL404:
5861 .LFB353:
2787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
5862 .loc 1 2787 1 is_stmt 1 view -0
5863 .cfi_startproc
5864 @ args = 8, pretend = 0, frame = 0
5865 @ frame_needed = 0, uses_anonymous_args = 0
2787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
5866 .loc 1 2787 1 is_stmt 0 view .LVU2063
5867 0000 70B5 push {r4, r5, r6, lr}
5868 .cfi_def_cfa_offset 16
5869 .cfi_offset 4, -16
5870 .cfi_offset 5, -12
5871 .cfi_offset 6, -8
5872 .cfi_offset 14, -4
5873 0002 82B0 sub sp, sp, #8
5874 .cfi_def_cfa_offset 24
5875 0004 0446 mov r4, r0
5876 0006 1D46 mov r5, r3
5877 0008 BDF81C30 ldrh r3, [sp, #28]
5878 .LVL405:
2789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5879 .loc 1 2789 3 is_stmt 1 view .LVU2064
2791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5880 .loc 1 2791 3 view .LVU2065
2791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5881 .loc 1 2791 11 is_stmt 0 view .LVU2066
5882 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
5883 .LVL406:
2791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5884 .loc 1 2791 6 view .LVU2067
5885 0010 2028 cmp r0, #32
5886 0012 43D1 bne .L389
2793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5887 .loc 1 2793 5 is_stmt 1 view .LVU2068
2793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5888 .loc 1 2793 8 is_stmt 0 view .LVU2069
5889 0014 0698 ldr r0, [sp, #24]
5890 0016 002B cmp r3, #0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 269
5891 0018 18BF it ne
5892 001a 0028 cmpne r0, #0
5893 001c 33D0 beq .L393
2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5894 .loc 1 2799 5 is_stmt 1 view .LVU2070
2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5895 .loc 1 2799 9 is_stmt 0 view .LVU2071
5896 001e 2068 ldr r0, [r4]
5897 0020 8669 ldr r6, [r0, #24]
2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5898 .loc 1 2799 8 view .LVU2072
5899 0022 16F4004F tst r6, #32768
5900 0026 3CD1 bne .L390
2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5901 .loc 1 2805 5 is_stmt 1 view .LVU2073
2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5902 .loc 1 2805 5 view .LVU2074
5903 0028 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2
5904 002c 012E cmp r6, #1
5905 002e 3AD0 beq .L391
2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5906 .loc 1 2805 5 discriminator 2 view .LVU2075
5907 0030 0126 movs r6, #1
5908 0032 84F84060 strb r6, [r4, #64]
2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5909 .loc 1 2805 5 view .LVU2076
2807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5910 .loc 1 2807 5 view .LVU2077
2807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5911 .loc 1 2807 23 is_stmt 0 view .LVU2078
5912 0036 2126 movs r6, #33
5913 0038 84F84160 strb r6, [r4, #65]
2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5914 .loc 1 2808 5 is_stmt 1 view .LVU2079
2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5915 .loc 1 2808 23 is_stmt 0 view .LVU2080
5916 003c 4026 movs r6, #64
5917 003e 84F84260 strb r6, [r4, #66]
2809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5918 .loc 1 2809 5 is_stmt 1 view .LVU2081
2809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5919 .loc 1 2809 23 is_stmt 0 view .LVU2082
5920 0042 0026 movs r6, #0
5921 0044 6664 str r6, [r4, #68]
2812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
5922 .loc 1 2812 5 is_stmt 1 view .LVU2083
2812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
5923 .loc 1 2812 23 is_stmt 0 view .LVU2084
5924 0046 2685 strh r6, [r4, #40] @ movhi
2813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5925 .loc 1 2813 5 is_stmt 1 view .LVU2085
2813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5926 .loc 1 2813 23 is_stmt 0 view .LVU2086
5927 0048 069E ldr r6, [sp, #24]
5928 004a 6662 str r6, [r4, #36]
2814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5929 .loc 1 2814 5 is_stmt 1 view .LVU2087
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 270
2814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5930 .loc 1 2814 23 is_stmt 0 view .LVU2088
5931 004c 6385 strh r3, [r4, #42] @ movhi
2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
5932 .loc 1 2815 5 is_stmt 1 view .LVU2089
2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
5933 .loc 1 2815 23 is_stmt 0 view .LVU2090
5934 004e 174B ldr r3, .L395
5935 0050 E362 str r3, [r4, #44]
2816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
5936 .loc 1 2816 5 is_stmt 1 view .LVU2091
2816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
5937 .loc 1 2816 23 is_stmt 0 view .LVU2092
5938 0052 174B ldr r3, .L395+4
5939 0054 6363 str r3, [r4, #52]
2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5940 .loc 1 2817 5 is_stmt 1 view .LVU2093
2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5941 .loc 1 2817 23 is_stmt 0 view .LVU2094
5942 0056 E164 str r1, [r4, #76]
2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5943 .loc 1 2820 5 is_stmt 1 view .LVU2095
2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5944 .loc 1 2820 8 is_stmt 0 view .LVU2096
5945 0058 012D cmp r5, #1
5946 005a 19D0 beq .L394
2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5947 .loc 1 2832 7 is_stmt 1 view .LVU2097
2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5948 .loc 1 2832 30 is_stmt 0 view .LVU2098
5949 005c 130A lsrs r3, r2, #8
2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5950 .loc 1 2832 28 view .LVU2099
5951 005e 8362 str r3, [r0, #40]
2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5952 .loc 1 2835 7 is_stmt 1 view .LVU2100
2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5953 .loc 1 2835 26 is_stmt 0 view .LVU2101
5954 0060 D2B2 uxtb r2, r2
5955 .LVL407:
2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5956 .loc 1 2835 24 view .LVU2102
5957 0062 2265 str r2, [r4, #80]
5958 .L388:
2838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5959 .loc 1 2838 5 is_stmt 1 view .LVU2103
5960 0064 134B ldr r3, .L395+8
5961 0066 0093 str r3, [sp]
5962 0068 4FF08073 mov r3, #16777216
5963 006c EAB2 uxtb r2, r5
5964 006e 2046 mov r0, r4
5965 0070 FFF7FEFF bl I2C_TransferConfig
5966 .LVL408:
2841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5967 .loc 1 2841 5 view .LVU2104
2841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5968 .loc 1 2841 5 view .LVU2105
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 271
5969 0074 0025 movs r5, #0
5970 .LVL409:
2841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5971 .loc 1 2841 5 is_stmt 0 view .LVU2106
5972 0076 84F84050 strb r5, [r4, #64]
2841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5973 .loc 1 2841 5 is_stmt 1 view .LVU2107
2851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5974 .loc 1 2851 5 view .LVU2108
5975 007a 0121 movs r1, #1
5976 007c 2046 mov r0, r4
5977 007e FFF7FEFF bl I2C_Enable_IRQ
5978 .LVL410:
2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5979 .loc 1 2853 5 view .LVU2109
2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5980 .loc 1 2853 12 is_stmt 0 view .LVU2110
5981 0082 2846 mov r0, r5
5982 0084 0BE0 b .L385
5983 .LVL411:
5984 .L393:
2795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5985 .loc 1 2795 7 is_stmt 1 view .LVU2111
2795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5986 .loc 1 2795 23 is_stmt 0 view .LVU2112
5987 0086 4FF40073 mov r3, #512
5988 008a 6364 str r3, [r4, #68]
2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5989 .loc 1 2796 7 is_stmt 1 view .LVU2113
2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5990 .loc 1 2796 15 is_stmt 0 view .LVU2114
5991 008c 0120 movs r0, #1
5992 008e 06E0 b .L385
5993 .L394:
2823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5994 .loc 1 2823 7 is_stmt 1 view .LVU2115
2823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5995 .loc 1 2823 30 is_stmt 0 view .LVU2116
5996 0090 D2B2 uxtb r2, r2
5997 .LVL412:
2823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5998 .loc 1 2823 28 view .LVU2117
5999 0092 8262 str r2, [r0, #40]
2826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6000 .loc 1 2826 7 is_stmt 1 view .LVU2118
2826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6001 .loc 1 2826 24 is_stmt 0 view .LVU2119
6002 0094 4FF0FF33 mov r3, #-1
6003 0098 2365 str r3, [r4, #80]
6004 009a E3E7 b .L388
6005 .LVL413:
6006 .L389:
2857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6007 .loc 1 2857 12 view .LVU2120
6008 009c 0220 movs r0, #2
6009 .LVL414:
6010 .L385:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 272
2859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6011 .loc 1 2859 1 view .LVU2121
6012 009e 02B0 add sp, sp, #8
6013 .cfi_remember_state
6014 .cfi_def_cfa_offset 16
6015 @ sp needed
6016 00a0 70BD pop {r4, r5, r6, pc}
6017 .LVL415:
6018 .L390:
6019 .cfi_restore_state
2801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6020 .loc 1 2801 14 view .LVU2122
6021 00a2 0220 movs r0, #2
6022 00a4 FBE7 b .L385
6023 .L391:
2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6024 .loc 1 2805 5 discriminator 1 view .LVU2123
6025 00a6 0220 movs r0, #2
6026 00a8 F9E7 b .L385
6027 .L396:
6028 00aa 00BF .align 2
6029 .L395:
6030 00ac 0000FFFF .word -65536
6031 00b0 00000000 .word I2C_Mem_ISR_IT
6032 00b4 00200080 .word -2147475456
6033 .cfi_endproc
6034 .LFE353:
6036 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits
6037 .align 1
6038 .global HAL_I2C_Mem_Read_IT
6039 .syntax unified
6040 .thumb
6041 .thumb_func
6043 HAL_I2C_Mem_Read_IT:
6044 .LVL416:
6045 .LFB354:
2875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
6046 .loc 1 2875 1 is_stmt 1 view -0
6047 .cfi_startproc
6048 @ args = 8, pretend = 0, frame = 0
6049 @ frame_needed = 0, uses_anonymous_args = 0
2875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
6050 .loc 1 2875 1 is_stmt 0 view .LVU2125
6051 0000 70B5 push {r4, r5, r6, lr}
6052 .cfi_def_cfa_offset 16
6053 .cfi_offset 4, -16
6054 .cfi_offset 5, -12
6055 .cfi_offset 6, -8
6056 .cfi_offset 14, -4
6057 0002 82B0 sub sp, sp, #8
6058 .cfi_def_cfa_offset 24
6059 0004 0446 mov r4, r0
6060 0006 1D46 mov r5, r3
6061 0008 BDF81C30 ldrh r3, [sp, #28]
6062 .LVL417:
2877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6063 .loc 1 2877 3 is_stmt 1 view .LVU2126
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 273
2879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6064 .loc 1 2879 3 view .LVU2127
2879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6065 .loc 1 2879 11 is_stmt 0 view .LVU2128
6066 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
6067 .LVL418:
2879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6068 .loc 1 2879 6 view .LVU2129
6069 0010 2028 cmp r0, #32
6070 0012 41D1 bne .L402
2881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6071 .loc 1 2881 5 is_stmt 1 view .LVU2130
2881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6072 .loc 1 2881 8 is_stmt 0 view .LVU2131
6073 0014 0698 ldr r0, [sp, #24]
6074 0016 002B cmp r3, #0
6075 0018 18BF it ne
6076 001a 0028 cmpne r0, #0
6077 001c 31D0 beq .L406
2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6078 .loc 1 2887 5 is_stmt 1 view .LVU2132
2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6079 .loc 1 2887 9 is_stmt 0 view .LVU2133
6080 001e 2068 ldr r0, [r4]
6081 0020 8669 ldr r6, [r0, #24]
2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6082 .loc 1 2887 8 view .LVU2134
6083 0022 16F4004F tst r6, #32768
6084 0026 3AD1 bne .L403
2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6085 .loc 1 2893 5 is_stmt 1 view .LVU2135
2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6086 .loc 1 2893 5 view .LVU2136
6087 0028 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2
6088 002c 012E cmp r6, #1
6089 002e 38D0 beq .L404
2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6090 .loc 1 2893 5 discriminator 2 view .LVU2137
6091 0030 0126 movs r6, #1
6092 0032 84F84060 strb r6, [r4, #64]
2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6093 .loc 1 2893 5 view .LVU2138
2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6094 .loc 1 2895 5 view .LVU2139
2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6095 .loc 1 2895 23 is_stmt 0 view .LVU2140
6096 0036 2226 movs r6, #34
6097 0038 84F84160 strb r6, [r4, #65]
2896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6098 .loc 1 2896 5 is_stmt 1 view .LVU2141
2896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6099 .loc 1 2896 23 is_stmt 0 view .LVU2142
6100 003c 4026 movs r6, #64
6101 003e 84F84260 strb r6, [r4, #66]
2897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6102 .loc 1 2897 5 is_stmt 1 view .LVU2143
2897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 274
6103 .loc 1 2897 23 is_stmt 0 view .LVU2144
6104 0042 0026 movs r6, #0
6105 0044 6664 str r6, [r4, #68]
2900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6106 .loc 1 2900 5 is_stmt 1 view .LVU2145
2900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6107 .loc 1 2900 23 is_stmt 0 view .LVU2146
6108 0046 069E ldr r6, [sp, #24]
6109 0048 6662 str r6, [r4, #36]
2901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6110 .loc 1 2901 5 is_stmt 1 view .LVU2147
2901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6111 .loc 1 2901 23 is_stmt 0 view .LVU2148
6112 004a 6385 strh r3, [r4, #42] @ movhi
2902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
6113 .loc 1 2902 5 is_stmt 1 view .LVU2149
2902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
6114 .loc 1 2902 23 is_stmt 0 view .LVU2150
6115 004c 164B ldr r3, .L408
6116 004e E362 str r3, [r4, #44]
2903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6117 .loc 1 2903 5 is_stmt 1 view .LVU2151
2903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6118 .loc 1 2903 23 is_stmt 0 view .LVU2152
6119 0050 164B ldr r3, .L408+4
6120 0052 6363 str r3, [r4, #52]
2904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6121 .loc 1 2904 5 is_stmt 1 view .LVU2153
2904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6122 .loc 1 2904 23 is_stmt 0 view .LVU2154
6123 0054 E164 str r1, [r4, #76]
2907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6124 .loc 1 2907 5 is_stmt 1 view .LVU2155
2907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6125 .loc 1 2907 8 is_stmt 0 view .LVU2156
6126 0056 012D cmp r5, #1
6127 0058 18D0 beq .L407
2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6128 .loc 1 2919 7 is_stmt 1 view .LVU2157
2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6129 .loc 1 2919 30 is_stmt 0 view .LVU2158
6130 005a 130A lsrs r3, r2, #8
2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6131 .loc 1 2919 28 view .LVU2159
6132 005c 8362 str r3, [r0, #40]
2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6133 .loc 1 2922 7 is_stmt 1 view .LVU2160
2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6134 .loc 1 2922 26 is_stmt 0 view .LVU2161
6135 005e D2B2 uxtb r2, r2
6136 .LVL419:
2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6137 .loc 1 2922 24 view .LVU2162
6138 0060 2265 str r2, [r4, #80]
6139 .L401:
2925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6140 .loc 1 2925 5 is_stmt 1 view .LVU2163
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 275
6141 0062 134B ldr r3, .L408+8
6142 0064 0093 str r3, [sp]
6143 0066 0023 movs r3, #0
6144 0068 EAB2 uxtb r2, r5
6145 006a 2046 mov r0, r4
6146 006c FFF7FEFF bl I2C_TransferConfig
6147 .LVL420:
2928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6148 .loc 1 2928 5 view .LVU2164
2928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6149 .loc 1 2928 5 view .LVU2165
6150 0070 0025 movs r5, #0
6151 .LVL421:
2928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6152 .loc 1 2928 5 is_stmt 0 view .LVU2166
6153 0072 84F84050 strb r5, [r4, #64]
2928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6154 .loc 1 2928 5 is_stmt 1 view .LVU2167
2938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6155 .loc 1 2938 5 view .LVU2168
6156 0076 0121 movs r1, #1
6157 0078 2046 mov r0, r4
6158 007a FFF7FEFF bl I2C_Enable_IRQ
6159 .LVL422:
2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6160 .loc 1 2940 5 view .LVU2169
2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6161 .loc 1 2940 12 is_stmt 0 view .LVU2170
6162 007e 2846 mov r0, r5
6163 0080 0BE0 b .L398
6164 .LVL423:
6165 .L406:
2883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6166 .loc 1 2883 7 is_stmt 1 view .LVU2171
2883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6167 .loc 1 2883 23 is_stmt 0 view .LVU2172
6168 0082 4FF40073 mov r3, #512
6169 0086 6364 str r3, [r4, #68]
2884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6170 .loc 1 2884 7 is_stmt 1 view .LVU2173
2884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6171 .loc 1 2884 15 is_stmt 0 view .LVU2174
6172 0088 0120 movs r0, #1
6173 008a 06E0 b .L398
6174 .L407:
2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6175 .loc 1 2910 7 is_stmt 1 view .LVU2175
2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6176 .loc 1 2910 30 is_stmt 0 view .LVU2176
6177 008c D2B2 uxtb r2, r2
6178 .LVL424:
2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6179 .loc 1 2910 28 view .LVU2177
6180 008e 8262 str r2, [r0, #40]
2913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6181 .loc 1 2913 7 is_stmt 1 view .LVU2178
2913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 276
6182 .loc 1 2913 24 is_stmt 0 view .LVU2179
6183 0090 4FF0FF33 mov r3, #-1
6184 0094 2365 str r3, [r4, #80]
6185 0096 E4E7 b .L401
6186 .LVL425:
6187 .L402:
2944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6188 .loc 1 2944 12 view .LVU2180
6189 0098 0220 movs r0, #2
6190 .LVL426:
6191 .L398:
2946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6192 .loc 1 2946 1 view .LVU2181
6193 009a 02B0 add sp, sp, #8
6194 .cfi_remember_state
6195 .cfi_def_cfa_offset 16
6196 @ sp needed
6197 009c 70BD pop {r4, r5, r6, pc}
6198 .LVL427:
6199 .L403:
6200 .cfi_restore_state
2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6201 .loc 1 2889 14 view .LVU2182
6202 009e 0220 movs r0, #2
6203 00a0 FBE7 b .L398
6204 .L404:
2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6205 .loc 1 2893 5 discriminator 1 view .LVU2183
6206 00a2 0220 movs r0, #2
6207 00a4 F9E7 b .L398
6208 .L409:
6209 00a6 00BF .align 2
6210 .L408:
6211 00a8 0000FFFF .word -65536
6212 00ac 00000000 .word I2C_Mem_ISR_IT
6213 00b0 00200080 .word -2147475456
6214 .cfi_endproc
6215 .LFE354:
6217 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits
6218 .align 1
6219 .global HAL_I2C_Mem_Write_DMA
6220 .syntax unified
6221 .thumb
6222 .thumb_func
6224 HAL_I2C_Mem_Write_DMA:
6225 .LVL428:
6226 .LFB355:
2962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6227 .loc 1 2962 1 is_stmt 1 view -0
6228 .cfi_startproc
6229 @ args = 8, pretend = 0, frame = 0
6230 @ frame_needed = 0, uses_anonymous_args = 0
2962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6231 .loc 1 2962 1 is_stmt 0 view .LVU2185
6232 0000 F0B5 push {r4, r5, r6, r7, lr}
6233 .cfi_def_cfa_offset 20
6234 .cfi_offset 4, -20
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 277
6235 .cfi_offset 5, -16
6236 .cfi_offset 6, -12
6237 .cfi_offset 7, -8
6238 .cfi_offset 14, -4
6239 0002 83B0 sub sp, sp, #12
6240 .cfi_def_cfa_offset 32
6241 0004 0446 mov r4, r0
6242 0006 0E46 mov r6, r1
6243 0008 1F46 mov r7, r3
6244 000a 0899 ldr r1, [sp, #32]
6245 .LVL429:
2962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6246 .loc 1 2962 1 view .LVU2186
6247 000c BDF82430 ldrh r3, [sp, #36]
6248 .LVL430:
2963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6249 .loc 1 2963 3 is_stmt 1 view .LVU2187
2966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6250 .loc 1 2966 3 view .LVU2188
2968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6251 .loc 1 2968 3 view .LVU2189
2968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6252 .loc 1 2968 11 is_stmt 0 view .LVU2190
6253 0010 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
6254 .LVL431:
2968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6255 .loc 1 2968 6 view .LVU2191
6256 0014 2028 cmp r0, #32
6257 0016 7AD1 bne .L420
2970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6258 .loc 1 2970 5 is_stmt 1 view .LVU2192
2970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6259 .loc 1 2970 8 is_stmt 0 view .LVU2193
6260 0018 002B cmp r3, #0
6261 001a 18BF it ne
6262 001c 0029 cmpne r1, #0
6263 001e 49D0 beq .L425
2976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6264 .loc 1 2976 5 is_stmt 1 view .LVU2194
2976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6265 .loc 1 2976 9 is_stmt 0 view .LVU2195
6266 0020 2068 ldr r0, [r4]
6267 0022 8569 ldr r5, [r0, #24]
2976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6268 .loc 1 2976 8 view .LVU2196
6269 0024 15F4004F tst r5, #32768
6270 0028 75D1 bne .L421
2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6271 .loc 1 2982 5 is_stmt 1 view .LVU2197
2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6272 .loc 1 2982 5 view .LVU2198
6273 002a 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2
6274 002e 012D cmp r5, #1
6275 0030 73D0 beq .L422
2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6276 .loc 1 2982 5 discriminator 2 view .LVU2199
6277 0032 0125 movs r5, #1
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 278
6278 0034 84F84050 strb r5, [r4, #64]
2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6279 .loc 1 2982 5 view .LVU2200
2984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6280 .loc 1 2984 5 view .LVU2201
2984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6281 .loc 1 2984 23 is_stmt 0 view .LVU2202
6282 0038 2125 movs r5, #33
6283 003a 84F84150 strb r5, [r4, #65]
2985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6284 .loc 1 2985 5 is_stmt 1 view .LVU2203
2985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6285 .loc 1 2985 23 is_stmt 0 view .LVU2204
6286 003e 4025 movs r5, #64
6287 0040 84F84250 strb r5, [r4, #66]
2986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6288 .loc 1 2986 5 is_stmt 1 view .LVU2205
2986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6289 .loc 1 2986 23 is_stmt 0 view .LVU2206
6290 0044 0025 movs r5, #0
6291 0046 6564 str r5, [r4, #68]
2989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6292 .loc 1 2989 5 is_stmt 1 view .LVU2207
2989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6293 .loc 1 2989 23 is_stmt 0 view .LVU2208
6294 0048 6162 str r1, [r4, #36]
2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6295 .loc 1 2990 5 is_stmt 1 view .LVU2209
2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6296 .loc 1 2990 23 is_stmt 0 view .LVU2210
6297 004a 6385 strh r3, [r4, #42] @ movhi
2991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
6298 .loc 1 2991 5 is_stmt 1 view .LVU2211
2991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
6299 .loc 1 2991 23 is_stmt 0 view .LVU2212
6300 004c 344B ldr r3, .L428
6301 004e E362 str r3, [r4, #44]
2992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6302 .loc 1 2992 5 is_stmt 1 view .LVU2213
2992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6303 .loc 1 2992 23 is_stmt 0 view .LVU2214
6304 0050 344B ldr r3, .L428+4
6305 0052 6363 str r3, [r4, #52]
2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6306 .loc 1 2993 5 is_stmt 1 view .LVU2215
2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6307 .loc 1 2993 23 is_stmt 0 view .LVU2216
6308 0054 E664 str r6, [r4, #76]
2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6309 .loc 1 2995 5 is_stmt 1 view .LVU2217
2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6310 .loc 1 2995 13 is_stmt 0 view .LVU2218
6311 0056 638D ldrh r3, [r4, #42]
6312 0058 9BB2 uxth r3, r3
2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6313 .loc 1 2995 8 view .LVU2219
6314 005a FF2B cmp r3, #255
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 279
6315 005c 2FD9 bls .L413
2997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6316 .loc 1 2997 7 is_stmt 1 view .LVU2220
2997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6317 .loc 1 2997 22 is_stmt 0 view .LVU2221
6318 005e FF23 movs r3, #255
6319 0060 2385 strh r3, [r4, #40] @ movhi
6320 .L414:
3005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6321 .loc 1 3005 5 is_stmt 1 view .LVU2222
3005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6322 .loc 1 3005 8 is_stmt 0 view .LVU2223
6323 0062 012F cmp r7, #1
6324 0064 2ED0 beq .L426
3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6325 .loc 1 3017 7 is_stmt 1 view .LVU2224
3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6326 .loc 1 3017 30 is_stmt 0 view .LVU2225
6327 0066 130A lsrs r3, r2, #8
3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6328 .loc 1 3017 28 view .LVU2226
6329 0068 8362 str r3, [r0, #40]
3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6330 .loc 1 3020 7 is_stmt 1 view .LVU2227
3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6331 .loc 1 3020 26 is_stmt 0 view .LVU2228
6332 006a D2B2 uxtb r2, r2
6333 .LVL432:
3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6334 .loc 1 3020 24 view .LVU2229
6335 006c 2265 str r2, [r4, #80]
6336 .L416:
3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6337 .loc 1 3023 5 is_stmt 1 view .LVU2230
3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6338 .loc 1 3023 13 is_stmt 0 view .LVU2231
6339 006e A36B ldr r3, [r4, #56]
3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6340 .loc 1 3023 8 view .LVU2232
6341 0070 002B cmp r3, #0
6342 0072 2DD0 beq .L417
3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6343 .loc 1 3026 7 is_stmt 1 view .LVU2233
3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6344 .loc 1 3026 38 is_stmt 0 view .LVU2234
6345 0074 2C4A ldr r2, .L428+8
6346 0076 DA63 str r2, [r3, #60]
3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6347 .loc 1 3029 7 is_stmt 1 view .LVU2235
3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6348 .loc 1 3029 11 is_stmt 0 view .LVU2236
6349 0078 A36B ldr r3, [r4, #56]
3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6350 .loc 1 3029 39 view .LVU2237
6351 007a 2C4A ldr r2, .L428+12
6352 007c DA64 str r2, [r3, #76]
3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 280
6353 .loc 1 3032 7 is_stmt 1 view .LVU2238
3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6354 .loc 1 3032 11 is_stmt 0 view .LVU2239
6355 007e A26B ldr r2, [r4, #56]
3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6356 .loc 1 3032 42 view .LVU2240
6357 0080 0023 movs r3, #0
6358 0082 1364 str r3, [r2, #64]
3033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6359 .loc 1 3033 7 is_stmt 1 view .LVU2241
3033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6360 .loc 1 3033 11 is_stmt 0 view .LVU2242
6361 0084 A26B ldr r2, [r4, #56]
3033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6362 .loc 1 3033 39 view .LVU2243
6363 0086 1365 str r3, [r2, #80]
3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
6364 .loc 1 3036 7 is_stmt 1 view .LVU2244
3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
6365 .loc 1 3036 86 is_stmt 0 view .LVU2245
6366 0088 2268 ldr r2, [r4]
3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
6367 .loc 1 3036 23 view .LVU2246
6368 008a 238D ldrh r3, [r4, #40]
6369 008c 2832 adds r2, r2, #40
6370 008e A06B ldr r0, [r4, #56]
6371 0090 FFF7FEFF bl HAL_DMA_Start_IT
6372 .LVL433:
3054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6373 .loc 1 3054 5 is_stmt 1 view .LVU2247
3054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6374 .loc 1 3054 8 is_stmt 0 view .LVU2248
6375 0094 0546 mov r5, r0
6376 0096 48B3 cbz r0, .L427
3074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6377 .loc 1 3074 7 is_stmt 1 view .LVU2249
3074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6378 .loc 1 3074 23 is_stmt 0 view .LVU2250
6379 0098 2023 movs r3, #32
6380 009a 84F84130 strb r3, [r4, #65]
3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6381 .loc 1 3075 7 is_stmt 1 view .LVU2251
3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6382 .loc 1 3075 23 is_stmt 0 view .LVU2252
6383 009e 0022 movs r2, #0
6384 00a0 84F84220 strb r2, [r4, #66]
3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6385 .loc 1 3078 7 is_stmt 1 view .LVU2253
3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6386 .loc 1 3078 11 is_stmt 0 view .LVU2254
6387 00a4 636C ldr r3, [r4, #68]
3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6388 .loc 1 3078 23 view .LVU2255
6389 00a6 43F01003 orr r3, r3, #16
6390 00aa 6364 str r3, [r4, #68]
3081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6391 .loc 1 3081 7 is_stmt 1 view .LVU2256
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 281
3081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6392 .loc 1 3081 7 view .LVU2257
6393 00ac 84F84020 strb r2, [r4, #64]
3081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6394 .loc 1 3081 7 view .LVU2258
3083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6395 .loc 1 3083 7 view .LVU2259
3083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6396 .loc 1 3083 14 is_stmt 0 view .LVU2260
6397 00b0 0125 movs r5, #1
6398 00b2 2DE0 b .L411
6399 .LVL434:
6400 .L425:
2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6401 .loc 1 2972 7 is_stmt 1 view .LVU2261
2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6402 .loc 1 2972 23 is_stmt 0 view .LVU2262
6403 00b4 4FF40073 mov r3, #512
6404 00b8 6364 str r3, [r4, #68]
2973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6405 .loc 1 2973 7 is_stmt 1 view .LVU2263
2973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6406 .loc 1 2973 15 is_stmt 0 view .LVU2264
6407 00ba 0125 movs r5, #1
6408 00bc 28E0 b .L411
6409 .L413:
3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6410 .loc 1 3001 7 is_stmt 1 view .LVU2265
3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6411 .loc 1 3001 28 is_stmt 0 view .LVU2266
6412 00be 638D ldrh r3, [r4, #42]
3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6413 .loc 1 3001 22 view .LVU2267
6414 00c0 2385 strh r3, [r4, #40] @ movhi
6415 00c2 CEE7 b .L414
6416 .L426:
3008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6417 .loc 1 3008 7 is_stmt 1 view .LVU2268
3008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6418 .loc 1 3008 30 is_stmt 0 view .LVU2269
6419 00c4 D2B2 uxtb r2, r2
6420 .LVL435:
3008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6421 .loc 1 3008 28 view .LVU2270
6422 00c6 8262 str r2, [r0, #40]
3011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6423 .loc 1 3011 7 is_stmt 1 view .LVU2271
3011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6424 .loc 1 3011 24 is_stmt 0 view .LVU2272
6425 00c8 4FF0FF33 mov r3, #-1
6426 00cc 2365 str r3, [r4, #80]
6427 00ce CEE7 b .L416
6428 .L417:
3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6429 .loc 1 3042 7 is_stmt 1 view .LVU2273
3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6430 .loc 1 3042 23 is_stmt 0 view .LVU2274
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 282
6431 00d0 2023 movs r3, #32
6432 00d2 84F84130 strb r3, [r4, #65]
3043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6433 .loc 1 3043 7 is_stmt 1 view .LVU2275
3043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6434 .loc 1 3043 23 is_stmt 0 view .LVU2276
6435 00d6 0022 movs r2, #0
6436 00d8 84F84220 strb r2, [r4, #66]
3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6437 .loc 1 3046 7 is_stmt 1 view .LVU2277
3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6438 .loc 1 3046 11 is_stmt 0 view .LVU2278
6439 00dc 636C ldr r3, [r4, #68]
3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6440 .loc 1 3046 23 view .LVU2279
6441 00de 43F08003 orr r3, r3, #128
6442 00e2 6364 str r3, [r4, #68]
3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6443 .loc 1 3049 7 is_stmt 1 view .LVU2280
3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6444 .loc 1 3049 7 view .LVU2281
6445 00e4 84F84020 strb r2, [r4, #64]
3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6446 .loc 1 3049 7 view .LVU2282
3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6447 .loc 1 3051 7 view .LVU2283
3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6448 .loc 1 3051 14 is_stmt 0 view .LVU2284
6449 00e8 0125 movs r5, #1
6450 00ea 11E0 b .L411
6451 .LVL436:
6452 .L427:
3057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6453 .loc 1 3057 7 is_stmt 1 view .LVU2285
6454 00ec 104B ldr r3, .L428+16
6455 00ee 0093 str r3, [sp]
6456 00f0 4FF08073 mov r3, #16777216
6457 00f4 FAB2 uxtb r2, r7
6458 00f6 3146 mov r1, r6
6459 00f8 2046 mov r0, r4
6460 .LVL437:
3057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6461 .loc 1 3057 7 is_stmt 0 view .LVU2286
6462 00fa FFF7FEFF bl I2C_TransferConfig
6463 .LVL438:
3060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6464 .loc 1 3060 7 is_stmt 1 view .LVU2287
3060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6465 .loc 1 3060 7 view .LVU2288
6466 00fe 0023 movs r3, #0
6467 0100 84F84030 strb r3, [r4, #64]
3060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6468 .loc 1 3060 7 view .LVU2289
3069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6469 .loc 1 3069 7 view .LVU2290
6470 0104 0121 movs r1, #1
6471 0106 2046 mov r0, r4
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 283
6472 0108 FFF7FEFF bl I2C_Enable_IRQ
6473 .LVL439:
3086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6474 .loc 1 3086 5 view .LVU2291
3086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6475 .loc 1 3086 12 is_stmt 0 view .LVU2292
6476 010c 00E0 b .L411
6477 .LVL440:
6478 .L420:
3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6479 .loc 1 3090 12 view .LVU2293
6480 010e 0225 movs r5, #2
6481 .LVL441:
6482 .L411:
3092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6483 .loc 1 3092 1 view .LVU2294
6484 0110 2846 mov r0, r5
6485 0112 03B0 add sp, sp, #12
6486 .cfi_remember_state
6487 .cfi_def_cfa_offset 20
6488 @ sp needed
6489 0114 F0BD pop {r4, r5, r6, r7, pc}
6490 .LVL442:
6491 .L421:
6492 .cfi_restore_state
2978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6493 .loc 1 2978 14 view .LVU2295
6494 0116 0225 movs r5, #2
6495 0118 FAE7 b .L411
6496 .L422:
2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6497 .loc 1 2982 5 discriminator 1 view .LVU2296
6498 011a 0225 movs r5, #2
6499 011c F8E7 b .L411
6500 .L429:
6501 011e 00BF .align 2
6502 .L428:
6503 0120 0000FFFF .word -65536
6504 0124 00000000 .word I2C_Mem_ISR_DMA
6505 0128 00000000 .word I2C_DMAMasterTransmitCplt
6506 012c 00000000 .word I2C_DMAError
6507 0130 00200080 .word -2147475456
6508 .cfi_endproc
6509 .LFE355:
6511 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits
6512 .align 1
6513 .global HAL_I2C_Mem_Read_DMA
6514 .syntax unified
6515 .thumb
6516 .thumb_func
6518 HAL_I2C_Mem_Read_DMA:
6519 .LVL443:
6520 .LFB356:
3108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6521 .loc 1 3108 1 is_stmt 1 view -0
6522 .cfi_startproc
6523 @ args = 8, pretend = 0, frame = 0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 284
6524 @ frame_needed = 0, uses_anonymous_args = 0
3108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6525 .loc 1 3108 1 is_stmt 0 view .LVU2298
6526 0000 F0B5 push {r4, r5, r6, r7, lr}
6527 .cfi_def_cfa_offset 20
6528 .cfi_offset 4, -20
6529 .cfi_offset 5, -16
6530 .cfi_offset 6, -12
6531 .cfi_offset 7, -8
6532 .cfi_offset 14, -4
6533 0002 83B0 sub sp, sp, #12
6534 .cfi_def_cfa_offset 32
6535 0004 0446 mov r4, r0
6536 0006 1F46 mov r7, r3
6537 0008 089D ldr r5, [sp, #32]
6538 000a BDF82430 ldrh r3, [sp, #36]
6539 .LVL444:
3109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6540 .loc 1 3109 3 is_stmt 1 view .LVU2299
3112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6541 .loc 1 3112 3 view .LVU2300
3114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6542 .loc 1 3114 3 view .LVU2301
3114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6543 .loc 1 3114 11 is_stmt 0 view .LVU2302
6544 000e 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
6545 .LVL445:
3114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6546 .loc 1 3114 6 view .LVU2303
6547 0012 2028 cmp r0, #32
6548 0014 7BD1 bne .L440
6549 0016 0E46 mov r6, r1
3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6550 .loc 1 3116 5 is_stmt 1 view .LVU2304
3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6551 .loc 1 3116 8 is_stmt 0 view .LVU2305
6552 0018 002B cmp r3, #0
6553 001a 18BF it ne
6554 001c 002D cmpne r5, #0
6555 001e 4AD0 beq .L445
3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6556 .loc 1 3122 5 is_stmt 1 view .LVU2306
3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6557 .loc 1 3122 9 is_stmt 0 view .LVU2307
6558 0020 2168 ldr r1, [r4]
6559 .LVL446:
3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6560 .loc 1 3122 9 view .LVU2308
6561 0022 8869 ldr r0, [r1, #24]
3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6562 .loc 1 3122 8 view .LVU2309
6563 0024 10F4004F tst r0, #32768
6564 0028 75D1 bne .L441
3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6565 .loc 1 3128 5 is_stmt 1 view .LVU2310
3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6566 .loc 1 3128 5 view .LVU2311
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 285
6567 002a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2
6568 002e 0128 cmp r0, #1
6569 0030 73D0 beq .L442
3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6570 .loc 1 3128 5 discriminator 2 view .LVU2312
6571 0032 0120 movs r0, #1
6572 0034 84F84000 strb r0, [r4, #64]
3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6573 .loc 1 3128 5 view .LVU2313
3130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6574 .loc 1 3130 5 view .LVU2314
3130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6575 .loc 1 3130 23 is_stmt 0 view .LVU2315
6576 0038 2220 movs r0, #34
6577 003a 84F84100 strb r0, [r4, #65]
3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6578 .loc 1 3131 5 is_stmt 1 view .LVU2316
3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6579 .loc 1 3131 23 is_stmt 0 view .LVU2317
6580 003e 4020 movs r0, #64
6581 0040 84F84200 strb r0, [r4, #66]
3132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6582 .loc 1 3132 5 is_stmt 1 view .LVU2318
3132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6583 .loc 1 3132 23 is_stmt 0 view .LVU2319
6584 0044 0020 movs r0, #0
6585 0046 6064 str r0, [r4, #68]
3135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6586 .loc 1 3135 5 is_stmt 1 view .LVU2320
3135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6587 .loc 1 3135 23 is_stmt 0 view .LVU2321
6588 0048 6562 str r5, [r4, #36]
3136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6589 .loc 1 3136 5 is_stmt 1 view .LVU2322
3136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6590 .loc 1 3136 23 is_stmt 0 view .LVU2323
6591 004a 6385 strh r3, [r4, #42] @ movhi
3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
6592 .loc 1 3137 5 is_stmt 1 view .LVU2324
3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
6593 .loc 1 3137 23 is_stmt 0 view .LVU2325
6594 004c 344B ldr r3, .L448
6595 004e E362 str r3, [r4, #44]
3138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6596 .loc 1 3138 5 is_stmt 1 view .LVU2326
3138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6597 .loc 1 3138 23 is_stmt 0 view .LVU2327
6598 0050 344B ldr r3, .L448+4
6599 0052 6363 str r3, [r4, #52]
3139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6600 .loc 1 3139 5 is_stmt 1 view .LVU2328
3139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6601 .loc 1 3139 23 is_stmt 0 view .LVU2329
6602 0054 E664 str r6, [r4, #76]
3141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6603 .loc 1 3141 5 is_stmt 1 view .LVU2330
3141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 286
6604 .loc 1 3141 13 is_stmt 0 view .LVU2331
6605 0056 638D ldrh r3, [r4, #42]
6606 0058 9BB2 uxth r3, r3
3141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6607 .loc 1 3141 8 view .LVU2332
6608 005a FF2B cmp r3, #255
6609 005c 30D9 bls .L433
3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6610 .loc 1 3143 7 is_stmt 1 view .LVU2333
3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6611 .loc 1 3143 22 is_stmt 0 view .LVU2334
6612 005e FF23 movs r3, #255
6613 0060 2385 strh r3, [r4, #40] @ movhi
6614 .L434:
3151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6615 .loc 1 3151 5 is_stmt 1 view .LVU2335
3151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6616 .loc 1 3151 8 is_stmt 0 view .LVU2336
6617 0062 012F cmp r7, #1
6618 0064 2FD0 beq .L446
3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6619 .loc 1 3163 7 is_stmt 1 view .LVU2337
3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6620 .loc 1 3163 30 is_stmt 0 view .LVU2338
6621 0066 130A lsrs r3, r2, #8
3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6622 .loc 1 3163 28 view .LVU2339
6623 0068 8B62 str r3, [r1, #40]
3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6624 .loc 1 3166 7 is_stmt 1 view .LVU2340
3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6625 .loc 1 3166 26 is_stmt 0 view .LVU2341
6626 006a D2B2 uxtb r2, r2
6627 .LVL447:
3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6628 .loc 1 3166 24 view .LVU2342
6629 006c 2265 str r2, [r4, #80]
6630 .L436:
3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6631 .loc 1 3169 5 is_stmt 1 view .LVU2343
3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6632 .loc 1 3169 13 is_stmt 0 view .LVU2344
6633 006e E36B ldr r3, [r4, #60]
3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6634 .loc 1 3169 8 view .LVU2345
6635 0070 002B cmp r3, #0
6636 0072 2ED0 beq .L437
3172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6637 .loc 1 3172 7 is_stmt 1 view .LVU2346
3172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6638 .loc 1 3172 38 is_stmt 0 view .LVU2347
6639 0074 2C4A ldr r2, .L448+8
6640 0076 DA63 str r2, [r3, #60]
3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6641 .loc 1 3175 7 is_stmt 1 view .LVU2348
3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6642 .loc 1 3175 11 is_stmt 0 view .LVU2349
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 287
6643 0078 E36B ldr r3, [r4, #60]
3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6644 .loc 1 3175 39 view .LVU2350
6645 007a 2C4A ldr r2, .L448+12
6646 007c DA64 str r2, [r3, #76]
3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6647 .loc 1 3178 7 is_stmt 1 view .LVU2351
3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6648 .loc 1 3178 11 is_stmt 0 view .LVU2352
6649 007e E26B ldr r2, [r4, #60]
3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6650 .loc 1 3178 42 view .LVU2353
6651 0080 0023 movs r3, #0
6652 0082 1364 str r3, [r2, #64]
3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6653 .loc 1 3179 7 is_stmt 1 view .LVU2354
3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6654 .loc 1 3179 11 is_stmt 0 view .LVU2355
6655 0084 E26B ldr r2, [r4, #60]
3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6656 .loc 1 3179 39 view .LVU2356
6657 0086 1365 str r3, [r2, #80]
3182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
6658 .loc 1 3182 7 is_stmt 1 view .LVU2357
3182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
6659 .loc 1 3182 69 is_stmt 0 view .LVU2358
6660 0088 2168 ldr r1, [r4]
3182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
6661 .loc 1 3182 23 view .LVU2359
6662 008a 238D ldrh r3, [r4, #40]
6663 008c 2A46 mov r2, r5
6664 008e 2431 adds r1, r1, #36
6665 0090 E06B ldr r0, [r4, #60]
6666 0092 FFF7FEFF bl HAL_DMA_Start_IT
6667 .LVL448:
3200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6668 .loc 1 3200 5 is_stmt 1 view .LVU2360
3200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6669 .loc 1 3200 8 is_stmt 0 view .LVU2361
6670 0096 0546 mov r5, r0
6671 0098 48B3 cbz r0, .L447
3220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6672 .loc 1 3220 7 is_stmt 1 view .LVU2362
3220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6673 .loc 1 3220 23 is_stmt 0 view .LVU2363
6674 009a 2023 movs r3, #32
6675 009c 84F84130 strb r3, [r4, #65]
3221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6676 .loc 1 3221 7 is_stmt 1 view .LVU2364
3221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6677 .loc 1 3221 23 is_stmt 0 view .LVU2365
6678 00a0 0022 movs r2, #0
6679 00a2 84F84220 strb r2, [r4, #66]
3224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6680 .loc 1 3224 7 is_stmt 1 view .LVU2366
3224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6681 .loc 1 3224 11 is_stmt 0 view .LVU2367
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 288
6682 00a6 636C ldr r3, [r4, #68]
3224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6683 .loc 1 3224 23 view .LVU2368
6684 00a8 43F01003 orr r3, r3, #16
6685 00ac 6364 str r3, [r4, #68]
3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6686 .loc 1 3227 7 is_stmt 1 view .LVU2369
3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6687 .loc 1 3227 7 view .LVU2370
6688 00ae 84F84020 strb r2, [r4, #64]
3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6689 .loc 1 3227 7 view .LVU2371
3229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6690 .loc 1 3229 7 view .LVU2372
3229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6691 .loc 1 3229 14 is_stmt 0 view .LVU2373
6692 00b2 0125 movs r5, #1
6693 00b4 2CE0 b .L431
6694 .LVL449:
6695 .L445:
3118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6696 .loc 1 3118 7 is_stmt 1 view .LVU2374
3118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6697 .loc 1 3118 23 is_stmt 0 view .LVU2375
6698 00b6 4FF40073 mov r3, #512
6699 00ba 6364 str r3, [r4, #68]
3119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6700 .loc 1 3119 7 is_stmt 1 view .LVU2376
3119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6701 .loc 1 3119 15 is_stmt 0 view .LVU2377
6702 00bc 0125 movs r5, #1
6703 00be 27E0 b .L431
6704 .LVL450:
6705 .L433:
3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6706 .loc 1 3147 7 is_stmt 1 view .LVU2378
3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6707 .loc 1 3147 28 is_stmt 0 view .LVU2379
6708 00c0 638D ldrh r3, [r4, #42]
3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6709 .loc 1 3147 22 view .LVU2380
6710 00c2 2385 strh r3, [r4, #40] @ movhi
6711 00c4 CDE7 b .L434
6712 .L446:
3154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6713 .loc 1 3154 7 is_stmt 1 view .LVU2381
3154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6714 .loc 1 3154 30 is_stmt 0 view .LVU2382
6715 00c6 D2B2 uxtb r2, r2
6716 .LVL451:
3154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6717 .loc 1 3154 28 view .LVU2383
6718 00c8 8A62 str r2, [r1, #40]
3157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6719 .loc 1 3157 7 is_stmt 1 view .LVU2384
3157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6720 .loc 1 3157 24 is_stmt 0 view .LVU2385
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 289
6721 00ca 4FF0FF33 mov r3, #-1
6722 00ce 2365 str r3, [r4, #80]
6723 00d0 CDE7 b .L436
6724 .L437:
3188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6725 .loc 1 3188 7 is_stmt 1 view .LVU2386
3188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6726 .loc 1 3188 23 is_stmt 0 view .LVU2387
6727 00d2 2023 movs r3, #32
6728 00d4 84F84130 strb r3, [r4, #65]
3189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6729 .loc 1 3189 7 is_stmt 1 view .LVU2388
3189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6730 .loc 1 3189 23 is_stmt 0 view .LVU2389
6731 00d8 0022 movs r2, #0
6732 00da 84F84220 strb r2, [r4, #66]
3192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6733 .loc 1 3192 7 is_stmt 1 view .LVU2390
3192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6734 .loc 1 3192 11 is_stmt 0 view .LVU2391
6735 00de 636C ldr r3, [r4, #68]
3192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6736 .loc 1 3192 23 view .LVU2392
6737 00e0 43F08003 orr r3, r3, #128
6738 00e4 6364 str r3, [r4, #68]
3195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6739 .loc 1 3195 7 is_stmt 1 view .LVU2393
3195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6740 .loc 1 3195 7 view .LVU2394
6741 00e6 84F84020 strb r2, [r4, #64]
3195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6742 .loc 1 3195 7 view .LVU2395
3197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6743 .loc 1 3197 7 view .LVU2396
3197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6744 .loc 1 3197 14 is_stmt 0 view .LVU2397
6745 00ea 0125 movs r5, #1
6746 00ec 10E0 b .L431
6747 .LVL452:
6748 .L447:
3203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6749 .loc 1 3203 7 is_stmt 1 view .LVU2398
6750 00ee 104B ldr r3, .L448+16
6751 00f0 0093 str r3, [sp]
6752 00f2 0023 movs r3, #0
6753 00f4 FAB2 uxtb r2, r7
6754 00f6 3146 mov r1, r6
6755 00f8 2046 mov r0, r4
6756 .LVL453:
3203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6757 .loc 1 3203 7 is_stmt 0 view .LVU2399
6758 00fa FFF7FEFF bl I2C_TransferConfig
6759 .LVL454:
3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6760 .loc 1 3206 7 is_stmt 1 view .LVU2400
3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6761 .loc 1 3206 7 view .LVU2401
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 290
6762 00fe 0023 movs r3, #0
6763 0100 84F84030 strb r3, [r4, #64]
3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6764 .loc 1 3206 7 view .LVU2402
3215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6765 .loc 1 3215 7 view .LVU2403
6766 0104 0121 movs r1, #1
6767 0106 2046 mov r0, r4
6768 0108 FFF7FEFF bl I2C_Enable_IRQ
6769 .LVL455:
3232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6770 .loc 1 3232 5 view .LVU2404
3232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6771 .loc 1 3232 12 is_stmt 0 view .LVU2405
6772 010c 00E0 b .L431
6773 .LVL456:
6774 .L440:
3236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6775 .loc 1 3236 12 view .LVU2406
6776 010e 0225 movs r5, #2
6777 .LVL457:
6778 .L431:
3238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6779 .loc 1 3238 1 view .LVU2407
6780 0110 2846 mov r0, r5
6781 0112 03B0 add sp, sp, #12
6782 .cfi_remember_state
6783 .cfi_def_cfa_offset 20
6784 @ sp needed
6785 0114 F0BD pop {r4, r5, r6, r7, pc}
6786 .LVL458:
6787 .L441:
6788 .cfi_restore_state
3124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6789 .loc 1 3124 14 view .LVU2408
6790 0116 0225 movs r5, #2
6791 0118 FAE7 b .L431
6792 .L442:
3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6793 .loc 1 3128 5 discriminator 1 view .LVU2409
6794 011a 0225 movs r5, #2
6795 011c F8E7 b .L431
6796 .L449:
6797 011e 00BF .align 2
6798 .L448:
6799 0120 0000FFFF .word -65536
6800 0124 00000000 .word I2C_Mem_ISR_DMA
6801 0128 00000000 .word I2C_DMAMasterReceiveCplt
6802 012c 00000000 .word I2C_DMAError
6803 0130 00200080 .word -2147475456
6804 .cfi_endproc
6805 .LFE356:
6807 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits
6808 .align 1
6809 .global HAL_I2C_IsDeviceReady
6810 .syntax unified
6811 .thumb
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 291
6812 .thumb_func
6814 HAL_I2C_IsDeviceReady:
6815 .LVL459:
6816 .LFB357:
3253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
6817 .loc 1 3253 1 is_stmt 1 view -0
6818 .cfi_startproc
6819 @ args = 0, pretend = 0, frame = 8
6820 @ frame_needed = 0, uses_anonymous_args = 0
3253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
6821 .loc 1 3253 1 is_stmt 0 view .LVU2411
6822 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr}
6823 .cfi_def_cfa_offset 28
6824 .cfi_offset 4, -28
6825 .cfi_offset 5, -24
6826 .cfi_offset 6, -20
6827 .cfi_offset 7, -16
6828 .cfi_offset 8, -12
6829 .cfi_offset 9, -8
6830 .cfi_offset 14, -4
6831 0004 85B0 sub sp, sp, #20
6832 .cfi_def_cfa_offset 48
6833 0006 1D46 mov r5, r3
3254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6834 .loc 1 3254 3 is_stmt 1 view .LVU2412
3256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6835 .loc 1 3256 3 view .LVU2413
3256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6836 .loc 1 3256 17 is_stmt 0 view .LVU2414
6837 0008 0023 movs r3, #0
6838 .LVL460:
3256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6839 .loc 1 3256 17 view .LVU2415
6840 000a 0393 str r3, [sp, #12]
3258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp2;
6841 .loc 1 3258 3 is_stmt 1 view .LVU2416
3259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6842 .loc 1 3259 3 view .LVU2417
3261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6843 .loc 1 3261 3 view .LVU2418
3261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6844 .loc 1 3261 11 is_stmt 0 view .LVU2419
6845 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
3261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6846 .loc 1 3261 6 view .LVU2420
6847 0010 202B cmp r3, #32
6848 0012 40F08380 bne .L460
6849 0016 0646 mov r6, r0
6850 0018 8846 mov r8, r1
6851 001a 9146 mov r9, r2
3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6852 .loc 1 3263 5 is_stmt 1 view .LVU2421
3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6853 .loc 1 3263 9 is_stmt 0 view .LVU2422
6854 001c 0368 ldr r3, [r0]
6855 001e 9B69 ldr r3, [r3, #24]
3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 292
6856 .loc 1 3263 8 view .LVU2423
6857 0020 13F4004F tst r3, #32768
6858 0024 7CD1 bne .L461
3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6859 .loc 1 3269 5 is_stmt 1 view .LVU2424
3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6860 .loc 1 3269 5 view .LVU2425
6861 0026 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
6862 002a 012B cmp r3, #1
6863 002c 7AD0 beq .L462
3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6864 .loc 1 3269 5 discriminator 2 view .LVU2426
6865 002e 0123 movs r3, #1
6866 0030 80F84030 strb r3, [r0, #64]
3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6867 .loc 1 3269 5 view .LVU2427
3271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6868 .loc 1 3271 5 view .LVU2428
3271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6869 .loc 1 3271 17 is_stmt 0 view .LVU2429
6870 0034 2423 movs r3, #36
6871 0036 80F84130 strb r3, [r0, #65]
3272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6872 .loc 1 3272 5 is_stmt 1 view .LVU2430
3272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6873 .loc 1 3272 21 is_stmt 0 view .LVU2431
6874 003a 0023 movs r3, #0
6875 003c 4364 str r3, [r0, #68]
6876 .LVL461:
6877 .L459:
3274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6878 .loc 1 3274 5 is_stmt 1 view .LVU2432
3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6879 .loc 1 3277 7 view .LVU2433
3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6880 .loc 1 3277 29 is_stmt 0 view .LVU2434
6881 003e F368 ldr r3, [r6, #12]
6882 0040 012B cmp r3, #1
6883 0042 10D0 beq .L466
3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6884 .loc 1 3277 29 discriminator 2 view .LVU2435
6885 0044 C8F30902 ubfx r2, r8, #0, #10
6886 0048 394B ldr r3, .L469
6887 004a 1343 orrs r3, r3, r2
6888 .L453:
3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6889 .loc 1 3277 11 discriminator 4 view .LVU2436
6890 004c 3268 ldr r2, [r6]
3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6891 .loc 1 3277 27 discriminator 4 view .LVU2437
6892 004e 5360 str r3, [r2, #4]
3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6893 .loc 1 3281 7 is_stmt 1 view .LVU2438
3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6894 .loc 1 3281 19 is_stmt 0 view .LVU2439
6895 0050 FFF7FEFF bl HAL_GetTick
6896 .LVL462:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 293
6897 0054 0746 mov r7, r0
6898 .LVL463:
3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6899 .loc 1 3283 7 is_stmt 1 view .LVU2440
3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6900 .loc 1 3283 14 is_stmt 0 view .LVU2441
6901 0056 3268 ldr r2, [r6]
6902 0058 9369 ldr r3, [r2, #24]
6903 005a C3F3401C ubfx ip, r3, #5, #1
6904 .LVL464:
3284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6905 .loc 1 3284 7 is_stmt 1 view .LVU2442
3284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6906 .loc 1 3284 14 is_stmt 0 view .LVU2443
6907 005e 9369 ldr r3, [r2, #24]
6908 0060 C3F30013 ubfx r3, r3, #4, #1
6909 .LVL465:
3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6910 .loc 1 3286 7 is_stmt 1 view .LVU2444
3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6911 .loc 1 3286 13 is_stmt 0 view .LVU2445
6912 0064 0BE0 b .L454
6913 .LVL466:
6914 .L466:
3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6915 .loc 1 3277 29 discriminator 1 view .LVU2446
6916 0066 C8F30902 ubfx r2, r8, #0, #10
6917 006a 324B ldr r3, .L469+4
6918 006c 1343 orrs r3, r3, r2
6919 006e EDE7 b .L453
6920 .LVL467:
6921 .L455:
3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6922 .loc 1 3305 9 is_stmt 1 view .LVU2447
3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6923 .loc 1 3305 16 is_stmt 0 view .LVU2448
6924 0070 3368 ldr r3, [r6]
6925 0072 9C69 ldr r4, [r3, #24]
6926 0074 C4F3401C ubfx ip, r4, #5, #1
6927 .LVL468:
3306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6928 .loc 1 3306 9 is_stmt 1 view .LVU2449
3306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6929 .loc 1 3306 16 is_stmt 0 view .LVU2450
6930 0078 9B69 ldr r3, [r3, #24]
6931 007a C3F30013 ubfx r3, r3, #4, #1
6932 .LVL469:
6933 .L454:
3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6934 .loc 1 3286 30 is_stmt 1 view .LVU2451
6935 007e 5CEA030C orrs ip, ip, r3
6936 .LVL470:
3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6937 .loc 1 3286 30 is_stmt 0 view .LVU2452
6938 0082 17D1 bne .L467
3288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6939 .loc 1 3288 9 is_stmt 1 view .LVU2453
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 294
3288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6940 .loc 1 3288 12 is_stmt 0 view .LVU2454
6941 0084 B5F1FF3F cmp r5, #-1
6942 0088 F2D0 beq .L455
3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6943 .loc 1 3290 11 is_stmt 1 view .LVU2455
3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6944 .loc 1 3290 17 is_stmt 0 view .LVU2456
6945 008a FFF7FEFF bl HAL_GetTick
6946 .LVL471:
3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6947 .loc 1 3290 31 discriminator 1 view .LVU2457
6948 008e C01B subs r0, r0, r7
3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6949 .loc 1 3290 14 discriminator 1 view .LVU2458
6950 0090 A842 cmp r0, r5
6951 0092 01D8 bhi .L456
3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6952 .loc 1 3290 55 discriminator 1 view .LVU2459
6953 0094 002D cmp r5, #0
6954 0096 EBD1 bne .L455
6955 .L456:
3293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6956 .loc 1 3293 13 is_stmt 1 view .LVU2460
3293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6957 .loc 1 3293 25 is_stmt 0 view .LVU2461
6958 0098 2023 movs r3, #32
6959 009a 86F84130 strb r3, [r6, #65]
3296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6960 .loc 1 3296 13 is_stmt 1 view .LVU2462
3296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6961 .loc 1 3296 17 is_stmt 0 view .LVU2463
6962 009e 736C ldr r3, [r6, #68]
3296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6963 .loc 1 3296 29 view .LVU2464
6964 00a0 43F02003 orr r3, r3, #32
6965 00a4 7364 str r3, [r6, #68]
3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6966 .loc 1 3299 13 is_stmt 1 view .LVU2465
3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6967 .loc 1 3299 13 view .LVU2466
6968 00a6 0023 movs r3, #0
6969 00a8 86F84030 strb r3, [r6, #64]
3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6970 .loc 1 3299 13 view .LVU2467
3301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6971 .loc 1 3301 13 view .LVU2468
3301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6972 .loc 1 3301 20 is_stmt 0 view .LVU2469
6973 00ac 0120 movs r0, #1
6974 .LVL472:
6975 .L451:
3363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6976 .loc 1 3363 1 view .LVU2470
6977 00ae 05B0 add sp, sp, #20
6978 .cfi_remember_state
6979 .cfi_def_cfa_offset 28
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 295
6980 @ sp needed
6981 00b0 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc}
6982 .LVL473:
6983 .L467:
6984 .cfi_restore_state
3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6985 .loc 1 3310 7 is_stmt 1 view .LVU2471
3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6986 .loc 1 3310 11 is_stmt 0 view .LVU2472
6987 00b4 3368 ldr r3, [r6]
6988 .LVL474:
3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6989 .loc 1 3310 11 view .LVU2473
6990 00b6 9B69 ldr r3, [r3, #24]
3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6991 .loc 1 3310 10 view .LVU2474
6992 00b8 13F0100F tst r3, #16
6993 00bc 1DD0 beq .L468
3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6994 .loc 1 3332 9 is_stmt 1 view .LVU2475
3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6995 .loc 1 3332 13 is_stmt 0 view .LVU2476
6996 00be 0097 str r7, [sp]
6997 00c0 2B46 mov r3, r5
6998 00c2 0022 movs r2, #0
6999 00c4 2021 movs r1, #32
7000 00c6 3046 mov r0, r6
7001 00c8 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
7002 .LVL475:
3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7003 .loc 1 3332 12 discriminator 1 view .LVU2477
7004 00cc 70BB cbnz r0, .L464
3338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7005 .loc 1 3338 9 is_stmt 1 view .LVU2478
7006 00ce 3368 ldr r3, [r6]
7007 00d0 1022 movs r2, #16
7008 00d2 DA61 str r2, [r3, #28]
3341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7009 .loc 1 3341 9 view .LVU2479
7010 00d4 3368 ldr r3, [r6]
7011 00d6 2022 movs r2, #32
7012 00d8 DA61 str r2, [r3, #28]
3345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (I2C_Trials < Trials);
7013 .loc 1 3345 7 view .LVU2480
3345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (I2C_Trials < Trials);
7014 .loc 1 3345 17 is_stmt 0 view .LVU2481
7015 00da 039B ldr r3, [sp, #12]
7016 00dc 0133 adds r3, r3, #1
7017 00de 0393 str r3, [sp, #12]
3346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7018 .loc 1 3346 25 is_stmt 1 view .LVU2482
7019 00e0 039B ldr r3, [sp, #12]
7020 00e2 4B45 cmp r3, r9
7021 00e4 ABD3 bcc .L459
3349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7022 .loc 1 3349 5 view .LVU2483
3349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 296
7023 .loc 1 3349 17 is_stmt 0 view .LVU2484
7024 00e6 86F84120 strb r2, [r6, #65]
3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7025 .loc 1 3352 5 is_stmt 1 view .LVU2485
3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7026 .loc 1 3352 9 is_stmt 0 view .LVU2486
7027 00ea 736C ldr r3, [r6, #68]
3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7028 .loc 1 3352 21 view .LVU2487
7029 00ec 1343 orrs r3, r3, r2
7030 00ee 7364 str r3, [r6, #68]
3355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7031 .loc 1 3355 5 is_stmt 1 view .LVU2488
3355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7032 .loc 1 3355 5 view .LVU2489
7033 00f0 0023 movs r3, #0
7034 00f2 86F84030 strb r3, [r6, #64]
3355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7035 .loc 1 3355 5 view .LVU2490
3357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7036 .loc 1 3357 5 view .LVU2491
3357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7037 .loc 1 3357 12 is_stmt 0 view .LVU2492
7038 00f6 0120 movs r0, #1
7039 00f8 D9E7 b .L451
7040 .L468:
3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7041 .loc 1 3313 9 is_stmt 1 view .LVU2493
3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7042 .loc 1 3313 13 is_stmt 0 view .LVU2494
7043 00fa 0097 str r7, [sp]
7044 00fc 2B46 mov r3, r5
7045 00fe 0022 movs r2, #0
7046 0100 2021 movs r1, #32
7047 0102 3046 mov r0, r6
7048 0104 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
7049 .LVL476:
3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7050 .loc 1 3313 12 discriminator 1 view .LVU2495
7051 0108 70B9 cbnz r0, .L463
3319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7052 .loc 1 3319 9 is_stmt 1 view .LVU2496
7053 010a 3268 ldr r2, [r6]
7054 010c 2023 movs r3, #32
7055 010e D361 str r3, [r2, #28]
3322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7056 .loc 1 3322 9 view .LVU2497
3322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7057 .loc 1 3322 21 is_stmt 0 view .LVU2498
7058 0110 86F84130 strb r3, [r6, #65]
3325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7059 .loc 1 3325 9 is_stmt 1 view .LVU2499
3325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7060 .loc 1 3325 9 view .LVU2500
7061 0114 0023 movs r3, #0
7062 0116 86F84030 strb r3, [r6, #64]
3325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 297
7063 .loc 1 3325 9 view .LVU2501
3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7064 .loc 1 3327 9 view .LVU2502
3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7065 .loc 1 3327 16 is_stmt 0 view .LVU2503
7066 011a C8E7 b .L451
7067 .LVL477:
7068 .L460:
3361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7069 .loc 1 3361 12 view .LVU2504
7070 011c 0220 movs r0, #2
7071 .LVL478:
3361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7072 .loc 1 3361 12 view .LVU2505
7073 011e C6E7 b .L451
7074 .LVL479:
7075 .L461:
3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7076 .loc 1 3265 14 view .LVU2506
7077 0120 0220 movs r0, #2
7078 .LVL480:
3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7079 .loc 1 3265 14 view .LVU2507
7080 0122 C4E7 b .L451
7081 .LVL481:
7082 .L462:
3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7083 .loc 1 3269 5 discriminator 1 view .LVU2508
7084 0124 0220 movs r0, #2
7085 .LVL482:
3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7086 .loc 1 3269 5 discriminator 1 view .LVU2509
7087 0126 C2E7 b .L451
7088 .LVL483:
7089 .L463:
3315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7090 .loc 1 3315 18 view .LVU2510
7091 0128 0120 movs r0, #1
7092 012a C0E7 b .L451
7093 .L464:
3334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7094 .loc 1 3334 18 view .LVU2511
7095 012c 0120 movs r0, #1
7096 012e BEE7 b .L451
7097 .L470:
7098 .align 2
7099 .L469:
7100 0130 00280002 .word 33564672
7101 0134 00200002 .word 33562624
7102 .cfi_endproc
7103 .LFE357:
7105 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits
7106 .align 1
7107 .global HAL_I2C_Master_Seq_Transmit_IT
7108 .syntax unified
7109 .thumb
7110 .thumb_func
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 298
7112 HAL_I2C_Master_Seq_Transmit_IT:
7113 .LVL484:
7114 .LFB358:
3379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7115 .loc 1 3379 1 is_stmt 1 view -0
7116 .cfi_startproc
7117 @ args = 4, pretend = 0, frame = 0
7118 @ frame_needed = 0, uses_anonymous_args = 0
3379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7119 .loc 1 3379 1 is_stmt 0 view .LVU2513
7120 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
7121 .cfi_def_cfa_offset 24
7122 .cfi_offset 4, -24
7123 .cfi_offset 5, -20
7124 .cfi_offset 6, -16
7125 .cfi_offset 7, -12
7126 .cfi_offset 8, -8
7127 .cfi_offset 14, -4
7128 0004 82B0 sub sp, sp, #8
7129 .cfi_def_cfa_offset 32
7130 0006 0446 mov r4, r0
7131 0008 089E ldr r6, [sp, #32]
3380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
7132 .loc 1 3380 3 is_stmt 1 view .LVU2514
3381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
7133 .loc 1 3381 3 view .LVU2515
7134 .LVL485:
3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7135 .loc 1 3382 3 view .LVU2516
3385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7136 .loc 1 3385 3 view .LVU2517
3387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7137 .loc 1 3387 3 view .LVU2518
3387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7138 .loc 1 3387 11 is_stmt 0 view .LVU2519
7139 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7140 .LVL486:
3387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7141 .loc 1 3387 6 view .LVU2520
7142 000e 2028 cmp r0, #32
7143 0010 73D1 bne .L480
7144 0012 0D46 mov r5, r1
3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7145 .loc 1 3390 5 is_stmt 1 view .LVU2521
3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7146 .loc 1 3390 5 view .LVU2522
7147 0014 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
7148 .LVL487:
3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7149 .loc 1 3390 5 is_stmt 0 view .LVU2523
7150 0018 0129 cmp r1, #1
7151 001a 70D0 beq .L481
3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7152 .loc 1 3390 5 is_stmt 1 discriminator 2 view .LVU2524
7153 001c 0121 movs r1, #1
7154 001e 84F84010 strb r1, [r4, #64]
3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 299
7155 .loc 1 3390 5 view .LVU2525
3392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7156 .loc 1 3392 5 view .LVU2526
3392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7157 .loc 1 3392 21 is_stmt 0 view .LVU2527
7158 0022 2121 movs r1, #33
7159 0024 84F84110 strb r1, [r4, #65]
3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7160 .loc 1 3393 5 is_stmt 1 view .LVU2528
3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7161 .loc 1 3393 21 is_stmt 0 view .LVU2529
7162 0028 1021 movs r1, #16
7163 002a 84F84210 strb r1, [r4, #66]
3394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7164 .loc 1 3394 5 is_stmt 1 view .LVU2530
3394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7165 .loc 1 3394 21 is_stmt 0 view .LVU2531
7166 002e 0021 movs r1, #0
7167 0030 6164 str r1, [r4, #68]
3397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7168 .loc 1 3397 5 is_stmt 1 view .LVU2532
3397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7169 .loc 1 3397 23 is_stmt 0 view .LVU2533
7170 0032 6262 str r2, [r4, #36]
3398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7171 .loc 1 3398 5 is_stmt 1 view .LVU2534
3398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7172 .loc 1 3398 23 is_stmt 0 view .LVU2535
7173 0034 6385 strh r3, [r4, #42] @ movhi
3399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7174 .loc 1 3399 5 is_stmt 1 view .LVU2536
3399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7175 .loc 1 3399 23 is_stmt 0 view .LVU2537
7176 0036 E662 str r6, [r4, #44]
3400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7177 .loc 1 3400 5 is_stmt 1 view .LVU2538
3400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7178 .loc 1 3400 23 is_stmt 0 view .LVU2539
7179 0038 324B ldr r3, .L487
7180 .LVL488:
3400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7181 .loc 1 3400 23 view .LVU2540
7182 003a 6363 str r3, [r4, #52]
3403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7183 .loc 1 3403 5 is_stmt 1 view .LVU2541
3403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7184 .loc 1 3403 13 is_stmt 0 view .LVU2542
7185 003c 638D ldrh r3, [r4, #42]
7186 003e 9BB2 uxth r3, r3
3403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7187 .loc 1 3403 8 view .LVU2543
7188 0040 FF2B cmp r3, #255
7189 0042 1BD9 bls .L473
3405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7190 .loc 1 3405 7 is_stmt 1 view .LVU2544
3405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7191 .loc 1 3405 22 is_stmt 0 view .LVU2545
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 300
7192 0044 FF23 movs r3, #255
7193 0046 2385 strh r3, [r4, #40] @ movhi
3406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7194 .loc 1 3406 7 is_stmt 1 view .LVU2546
7195 .LVL489:
3406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7196 .loc 1 3406 16 is_stmt 0 view .LVU2547
7197 0048 4FF08077 mov r7, #16777216
7198 .LVL490:
7199 .L474:
3414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7200 .loc 1 3414 5 is_stmt 1 view .LVU2548
3414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7201 .loc 1 3414 14 is_stmt 0 view .LVU2549
7202 004c 238D ldrh r3, [r4, #40]
3414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7203 .loc 1 3414 8 view .LVU2550
7204 004e CBB1 cbz r3, .L482
3414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7205 .loc 1 3414 31 discriminator 1 view .LVU2551
7206 0050 B6F1007F cmp r6, #33554432
7207 0054 18BF it ne
7208 0056 002E cmpne r6, #0
7209 0058 3FD1 bne .L483
3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7210 .loc 1 3419 7 is_stmt 1 view .LVU2552
3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7211 .loc 1 3419 11 is_stmt 0 view .LVU2553
7212 005a 2368 ldr r3, [r4]
3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7213 .loc 1 3419 30 view .LVU2554
7214 005c 1278 ldrb r2, [r2] @ zero_extendqisi2
7215 .LVL491:
3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7216 .loc 1 3419 28 view .LVU2555
7217 005e 9A62 str r2, [r3, #40]
7218 .LVL492:
3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7219 .loc 1 3422 7 is_stmt 1 view .LVU2556
3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7220 .loc 1 3422 11 is_stmt 0 view .LVU2557
7221 0060 636A ldr r3, [r4, #36]
3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7222 .loc 1 3422 21 view .LVU2558
7223 0062 0133 adds r3, r3, #1
7224 0064 6362 str r3, [r4, #36]
3424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
7225 .loc 1 3424 7 is_stmt 1 view .LVU2559
3424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
7226 .loc 1 3424 24 is_stmt 0 view .LVU2560
7227 0066 B4F82880 ldrh r8, [r4, #40]
7228 .LVL493:
3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
7229 .loc 1 3425 7 is_stmt 1 view .LVU2561
3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
7230 .loc 1 3425 11 is_stmt 0 view .LVU2562
7231 006a 638D ldrh r3, [r4, #42]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 301
7232 006c 9BB2 uxth r3, r3
3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
7233 .loc 1 3425 22 view .LVU2563
7234 006e 013B subs r3, r3, #1
7235 0070 9BB2 uxth r3, r3
7236 0072 6385 strh r3, [r4, #42] @ movhi
3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7237 .loc 1 3426 7 is_stmt 1 view .LVU2564
3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7238 .loc 1 3426 21 is_stmt 0 view .LVU2565
7239 0074 08F1FF33 add r3, r8, #-1
7240 0078 2385 strh r3, [r4, #40] @ movhi
7241 007a 05E0 b .L475
7242 .LVL494:
7243 .L473:
3410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7244 .loc 1 3410 7 is_stmt 1 view .LVU2566
3410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7245 .loc 1 3410 28 is_stmt 0 view .LVU2567
7246 007c 638D ldrh r3, [r4, #42]
3410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7247 .loc 1 3410 22 view .LVU2568
7248 007e 2385 strh r3, [r4, #40] @ movhi
3411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7249 .loc 1 3411 7 is_stmt 1 view .LVU2569
3411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7250 .loc 1 3411 16 is_stmt 0 view .LVU2570
7251 0080 E76A ldr r7, [r4, #44]
7252 0082 E3E7 b .L474
7253 .LVL495:
7254 .L482:
3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7255 .loc 1 3382 12 view .LVU2571
7256 0084 4FF00008 mov r8, #0
7257 .LVL496:
7258 .L475:
3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7259 .loc 1 3432 5 is_stmt 1 view .LVU2572
3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7260 .loc 1 3432 14 is_stmt 0 view .LVU2573
7261 0088 236B ldr r3, [r4, #48]
3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7262 .loc 1 3432 8 view .LVU2574
7263 008a 112B cmp r3, #17
7264 008c 04D1 bne .L476
3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7265 .loc 1 3432 59 discriminator 1 view .LVU2575
7266 008e B6F52A4F cmp r6, #43520
7267 0092 18BF it ne
7268 0094 AA2E cmpne r6, #170
7269 0096 23D1 bne .L484
7270 .L476:
3440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7271 .loc 1 3440 7 is_stmt 1 view .LVU2576
7272 0098 2046 mov r0, r4
7273 009a FFF7FEFF bl I2C_ConvertOtherXferOptions
7274 .LVL497:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 302
3443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7275 .loc 1 3443 7 view .LVU2577
3443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7276 .loc 1 3443 15 is_stmt 0 view .LVU2578
7277 009e 638D ldrh r3, [r4, #42]
7278 00a0 9BB2 uxth r3, r3
3443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7279 .loc 1 3443 10 view .LVU2579
7280 00a2 FF2B cmp r3, #255
7281 00a4 1ED8 bhi .L485
3445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7282 .loc 1 3445 9 is_stmt 1 view .LVU2580
3445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7283 .loc 1 3445 18 is_stmt 0 view .LVU2581
7284 00a6 E76A ldr r7, [r4, #44]
7285 .LVL498:
3381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
7286 .loc 1 3381 12 view .LVU2582
7287 00a8 174B ldr r3, .L487+4
7288 .L477:
7289 .LVL499:
3450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7290 .loc 1 3450 5 is_stmt 1 view .LVU2583
3450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7291 .loc 1 3450 8 is_stmt 0 view .LVU2584
7292 00aa B6F1007F cmp r6, #33554432
7293 00ae 18BF it ne
7294 00b0 002E cmpne r6, #0
7295 00b2 19D1 bne .L478
3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7296 .loc 1 3452 7 is_stmt 1 view .LVU2585
7297 00b4 0093 str r3, [sp]
7298 00b6 3B46 mov r3, r7
7299 .LVL500:
3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7300 .loc 1 3452 7 is_stmt 0 view .LVU2586
7301 00b8 5FFA88F2 uxtb r2, r8
7302 00bc 2946 mov r1, r5
7303 00be 2046 mov r0, r4
7304 00c0 FFF7FEFF bl I2C_TransferConfig
7305 .LVL501:
7306 .L479:
3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7307 .loc 1 3460 5 is_stmt 1 view .LVU2587
3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7308 .loc 1 3460 5 view .LVU2588
7309 00c4 0025 movs r5, #0
7310 .LVL502:
3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7311 .loc 1 3460 5 is_stmt 0 view .LVU2589
7312 00c6 84F84050 strb r5, [r4, #64]
3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7313 .loc 1 3460 5 is_stmt 1 view .LVU2590
3469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7314 .loc 1 3469 5 view .LVU2591
7315 00ca 0121 movs r1, #1
7316 00cc 2046 mov r0, r4
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 303
7317 00ce FFF7FEFF bl I2C_Enable_IRQ
7318 .LVL503:
3471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7319 .loc 1 3471 5 view .LVU2592
3471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7320 .loc 1 3471 12 is_stmt 0 view .LVU2593
7321 00d2 2846 mov r0, r5
7322 .LVL504:
7323 .L472:
3477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7324 .loc 1 3477 1 view .LVU2594
7325 00d4 02B0 add sp, sp, #8
7326 .cfi_remember_state
7327 .cfi_def_cfa_offset 24
7328 @ sp needed
7329 00d6 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
7330 .LVL505:
7331 .L483:
7332 .cfi_restore_state
3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7333 .loc 1 3382 12 view .LVU2595
7334 00da 4FF00008 mov r8, #0
7335 00de D3E7 b .L475
7336 .LVL506:
7337 .L484:
3435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7338 .loc 1 3435 19 view .LVU2596
7339 00e0 0023 movs r3, #0
7340 00e2 E2E7 b .L477
7341 .L485:
3381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
7342 .loc 1 3381 12 view .LVU2597
7343 00e4 084B ldr r3, .L487+4
7344 00e6 E0E7 b .L477
7345 .LVL507:
7346 .L478:
3456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7347 .loc 1 3456 7 is_stmt 1 view .LVU2598
7348 00e8 0093 str r3, [sp]
7349 00ea 3B46 mov r3, r7
7350 .LVL508:
3456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7351 .loc 1 3456 7 is_stmt 0 view .LVU2599
7352 00ec 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
7353 00f0 2946 mov r1, r5
7354 00f2 2046 mov r0, r4
7355 00f4 FFF7FEFF bl I2C_TransferConfig
7356 .LVL509:
3456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7357 .loc 1 3456 7 view .LVU2600
7358 00f8 E4E7 b .L479
7359 .LVL510:
7360 .L480:
3475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7361 .loc 1 3475 12 view .LVU2601
7362 00fa 0220 movs r0, #2
7363 00fc EAE7 b .L472
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 304
7364 .LVL511:
7365 .L481:
3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7366 .loc 1 3390 5 discriminator 1 view .LVU2602
7367 00fe 0220 movs r0, #2
7368 0100 E8E7 b .L472
7369 .L488:
7370 0102 00BF .align 2
7371 .L487:
7372 0104 00000000 .word I2C_Master_ISR_IT
7373 0108 00200080 .word -2147475456
7374 .cfi_endproc
7375 .LFE358:
7377 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits
7378 .align 1
7379 .global HAL_I2C_Master_Seq_Transmit_DMA
7380 .syntax unified
7381 .thumb
7382 .thumb_func
7384 HAL_I2C_Master_Seq_Transmit_DMA:
7385 .LVL512:
7386 .LFB359:
3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7387 .loc 1 3493 1 is_stmt 1 view -0
7388 .cfi_startproc
7389 @ args = 4, pretend = 0, frame = 0
7390 @ frame_needed = 0, uses_anonymous_args = 0
3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7391 .loc 1 3493 1 is_stmt 0 view .LVU2604
7392 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr}
7393 .cfi_def_cfa_offset 28
7394 .cfi_offset 4, -28
7395 .cfi_offset 5, -24
7396 .cfi_offset 6, -20
7397 .cfi_offset 7, -16
7398 .cfi_offset 8, -12
7399 .cfi_offset 9, -8
7400 .cfi_offset 14, -4
7401 0004 83B0 sub sp, sp, #12
7402 .cfi_def_cfa_offset 40
7403 0006 0446 mov r4, r0
7404 0008 0A9E ldr r6, [sp, #40]
3494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
7405 .loc 1 3494 3 is_stmt 1 view .LVU2605
3495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7406 .loc 1 3495 3 view .LVU2606
7407 .LVL513:
3496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
7408 .loc 1 3496 3 view .LVU2607
3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7409 .loc 1 3497 3 view .LVU2608
3500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7410 .loc 1 3500 3 view .LVU2609
3502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7411 .loc 1 3502 3 view .LVU2610
3502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7412 .loc 1 3502 11 is_stmt 0 view .LVU2611
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 305
7413 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7414 .LVL514:
3502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7415 .loc 1 3502 6 view .LVU2612
7416 000e 2028 cmp r0, #32
7417 0010 40F0D780 bne .L505
7418 0014 0D46 mov r5, r1
3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7419 .loc 1 3505 5 is_stmt 1 view .LVU2613
3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7420 .loc 1 3505 5 view .LVU2614
7421 0016 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
7422 .LVL515:
3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7423 .loc 1 3505 5 is_stmt 0 view .LVU2615
7424 001a 0129 cmp r1, #1
7425 001c 00F0D580 beq .L506
3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7426 .loc 1 3505 5 is_stmt 1 discriminator 2 view .LVU2616
7427 0020 0121 movs r1, #1
7428 0022 84F84010 strb r1, [r4, #64]
3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7429 .loc 1 3505 5 view .LVU2617
3507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7430 .loc 1 3507 5 view .LVU2618
3507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7431 .loc 1 3507 21 is_stmt 0 view .LVU2619
7432 0026 2121 movs r1, #33
7433 0028 84F84110 strb r1, [r4, #65]
3508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7434 .loc 1 3508 5 is_stmt 1 view .LVU2620
3508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7435 .loc 1 3508 21 is_stmt 0 view .LVU2621
7436 002c 1021 movs r1, #16
7437 002e 84F84210 strb r1, [r4, #66]
3509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7438 .loc 1 3509 5 is_stmt 1 view .LVU2622
3509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7439 .loc 1 3509 21 is_stmt 0 view .LVU2623
7440 0032 0021 movs r1, #0
7441 0034 6164 str r1, [r4, #68]
3512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7442 .loc 1 3512 5 is_stmt 1 view .LVU2624
3512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7443 .loc 1 3512 23 is_stmt 0 view .LVU2625
7444 0036 6262 str r2, [r4, #36]
3513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7445 .loc 1 3513 5 is_stmt 1 view .LVU2626
3513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7446 .loc 1 3513 23 is_stmt 0 view .LVU2627
7447 0038 6385 strh r3, [r4, #42] @ movhi
3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
7448 .loc 1 3514 5 is_stmt 1 view .LVU2628
3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
7449 .loc 1 3514 23 is_stmt 0 view .LVU2629
7450 003a E662 str r6, [r4, #44]
3515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 306
7451 .loc 1 3515 5 is_stmt 1 view .LVU2630
3515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7452 .loc 1 3515 23 is_stmt 0 view .LVU2631
7453 003c 644B ldr r3, .L513
7454 .LVL516:
3515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7455 .loc 1 3515 23 view .LVU2632
7456 003e 6363 str r3, [r4, #52]
3518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7457 .loc 1 3518 5 is_stmt 1 view .LVU2633
3518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7458 .loc 1 3518 13 is_stmt 0 view .LVU2634
7459 0040 638D ldrh r3, [r4, #42]
7460 0042 9BB2 uxth r3, r3
3518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7461 .loc 1 3518 8 view .LVU2635
7462 0044 FF2B cmp r3, #255
7463 0046 1BD9 bls .L491
3520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7464 .loc 1 3520 7 is_stmt 1 view .LVU2636
3520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7465 .loc 1 3520 22 is_stmt 0 view .LVU2637
7466 0048 FF23 movs r3, #255
7467 004a 2385 strh r3, [r4, #40] @ movhi
3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7468 .loc 1 3521 7 is_stmt 1 view .LVU2638
7469 .LVL517:
3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7470 .loc 1 3521 16 is_stmt 0 view .LVU2639
7471 004c 4FF08077 mov r7, #16777216
7472 .LVL518:
7473 .L492:
3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7474 .loc 1 3529 5 is_stmt 1 view .LVU2640
3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7475 .loc 1 3529 14 is_stmt 0 view .LVU2641
7476 0050 238D ldrh r3, [r4, #40]
3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7477 .loc 1 3529 8 view .LVU2642
7478 0052 CBB1 cbz r3, .L507
3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7479 .loc 1 3529 31 discriminator 1 view .LVU2643
7480 0054 B6F1007F cmp r6, #33554432
7481 0058 18BF it ne
7482 005a 002E cmpne r6, #0
7483 005c 29D1 bne .L508
3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7484 .loc 1 3534 7 is_stmt 1 view .LVU2644
3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7485 .loc 1 3534 11 is_stmt 0 view .LVU2645
7486 005e 2368 ldr r3, [r4]
3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7487 .loc 1 3534 30 view .LVU2646
7488 0060 1278 ldrb r2, [r2] @ zero_extendqisi2
7489 .LVL519:
3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7490 .loc 1 3534 28 view .LVU2647
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 307
7491 0062 9A62 str r2, [r3, #40]
7492 .LVL520:
3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7493 .loc 1 3537 7 is_stmt 1 view .LVU2648
3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7494 .loc 1 3537 11 is_stmt 0 view .LVU2649
7495 0064 636A ldr r3, [r4, #36]
3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7496 .loc 1 3537 21 view .LVU2650
7497 0066 0133 adds r3, r3, #1
7498 0068 6362 str r3, [r4, #36]
3539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
7499 .loc 1 3539 7 is_stmt 1 view .LVU2651
3539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
7500 .loc 1 3539 24 is_stmt 0 view .LVU2652
7501 006a B4F82880 ldrh r8, [r4, #40]
7502 .LVL521:
3540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
7503 .loc 1 3540 7 is_stmt 1 view .LVU2653
3540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
7504 .loc 1 3540 11 is_stmt 0 view .LVU2654
7505 006e 638D ldrh r3, [r4, #42]
7506 0070 9BB2 uxth r3, r3
3540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
7507 .loc 1 3540 22 view .LVU2655
7508 0072 013B subs r3, r3, #1
7509 0074 9BB2 uxth r3, r3
7510 0076 6385 strh r3, [r4, #42] @ movhi
3541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7511 .loc 1 3541 7 is_stmt 1 view .LVU2656
3541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7512 .loc 1 3541 21 is_stmt 0 view .LVU2657
7513 0078 08F1FF33 add r3, r8, #-1
7514 007c 2385 strh r3, [r4, #40] @ movhi
7515 007e 05E0 b .L493
7516 .LVL522:
7517 .L491:
3525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7518 .loc 1 3525 7 is_stmt 1 view .LVU2658
3525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7519 .loc 1 3525 28 is_stmt 0 view .LVU2659
7520 0080 638D ldrh r3, [r4, #42]
3525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7521 .loc 1 3525 22 view .LVU2660
7522 0082 2385 strh r3, [r4, #40] @ movhi
3526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7523 .loc 1 3526 7 is_stmt 1 view .LVU2661
3526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7524 .loc 1 3526 16 is_stmt 0 view .LVU2662
7525 0084 E76A ldr r7, [r4, #44]
7526 0086 E3E7 b .L492
7527 .LVL523:
7528 .L507:
3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7529 .loc 1 3497 12 view .LVU2663
7530 0088 4FF00008 mov r8, #0
7531 .LVL524:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 308
7532 .L493:
3547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7533 .loc 1 3547 5 is_stmt 1 view .LVU2664
3547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7534 .loc 1 3547 14 is_stmt 0 view .LVU2665
7535 008c 236B ldr r3, [r4, #48]
3547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7536 .loc 1 3547 8 view .LVU2666
7537 008e 112B cmp r3, #17
7538 0090 04D1 bne .L494
3547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7539 .loc 1 3547 59 discriminator 1 view .LVU2667
7540 0092 B6F52A4F cmp r6, #43520
7541 0096 18BF it ne
7542 0098 AA2E cmpne r6, #170
7543 009a 0DD1 bne .L509
7544 .L494:
3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7545 .loc 1 3555 7 is_stmt 1 view .LVU2668
7546 009c 2046 mov r0, r4
7547 009e FFF7FEFF bl I2C_ConvertOtherXferOptions
7548 .LVL525:
3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7549 .loc 1 3558 7 view .LVU2669
3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7550 .loc 1 3558 15 is_stmt 0 view .LVU2670
7551 00a2 638D ldrh r3, [r4, #42]
7552 00a4 9BB2 uxth r3, r3
3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7553 .loc 1 3558 10 view .LVU2671
7554 00a6 FF2B cmp r3, #255
7555 00a8 09D8 bhi .L510
3560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7556 .loc 1 3560 9 is_stmt 1 view .LVU2672
3560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7557 .loc 1 3560 18 is_stmt 0 view .LVU2673
7558 00aa E76A ldr r7, [r4, #44]
7559 .LVL526:
3495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7560 .loc 1 3495 12 view .LVU2674
7561 00ac DFF83091 ldr r9, .L513+16
7562 00b0 07E0 b .L495
7563 .LVL527:
7564 .L508:
3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7565 .loc 1 3497 12 view .LVU2675
7566 00b2 4FF00008 mov r8, #0
7567 00b6 E9E7 b .L493
7568 .LVL528:
7569 .L509:
3550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7570 .loc 1 3550 19 view .LVU2676
7571 00b8 4FF00009 mov r9, #0
7572 00bc 01E0 b .L495
7573 .L510:
3495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7574 .loc 1 3495 12 view .LVU2677
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 309
7575 00be DFF82091 ldr r9, .L513+16
7576 .L495:
7577 .LVL529:
3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7578 .loc 1 3564 5 is_stmt 1 view .LVU2678
3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7579 .loc 1 3564 13 is_stmt 0 view .LVU2679
7580 00c2 228D ldrh r2, [r4, #40]
3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7581 .loc 1 3564 8 view .LVU2680
7582 00c4 002A cmp r2, #0
7583 00c6 5AD0 beq .L496
3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7584 .loc 1 3566 7 is_stmt 1 view .LVU2681
3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7585 .loc 1 3566 15 is_stmt 0 view .LVU2682
7586 00c8 A36B ldr r3, [r4, #56]
3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7587 .loc 1 3566 10 view .LVU2683
7588 00ca FBB1 cbz r3, .L497
3569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7589 .loc 1 3569 9 is_stmt 1 view .LVU2684
3569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7590 .loc 1 3569 40 is_stmt 0 view .LVU2685
7591 00cc 414A ldr r2, .L513+4
7592 00ce DA63 str r2, [r3, #60]
3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7593 .loc 1 3572 9 is_stmt 1 view .LVU2686
3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7594 .loc 1 3572 13 is_stmt 0 view .LVU2687
7595 00d0 A36B ldr r3, [r4, #56]
3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7596 .loc 1 3572 41 view .LVU2688
7597 00d2 414A ldr r2, .L513+8
7598 00d4 DA64 str r2, [r3, #76]
3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7599 .loc 1 3575 9 is_stmt 1 view .LVU2689
3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7600 .loc 1 3575 13 is_stmt 0 view .LVU2690
7601 00d6 A26B ldr r2, [r4, #56]
3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7602 .loc 1 3575 44 view .LVU2691
7603 00d8 0023 movs r3, #0
7604 00da 1364 str r3, [r2, #64]
3576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7605 .loc 1 3576 9 is_stmt 1 view .LVU2692
3576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7606 .loc 1 3576 13 is_stmt 0 view .LVU2693
7607 00dc A26B ldr r2, [r4, #56]
3576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7608 .loc 1 3576 41 view .LVU2694
7609 00de 1365 str r3, [r2, #80]
3579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
7610 .loc 1 3579 9 is_stmt 1 view .LVU2695
3580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7611 .loc 1 3580 57 is_stmt 0 view .LVU2696
7612 00e0 2268 ldr r2, [r4]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 310
3579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
7613 .loc 1 3579 25 view .LVU2697
7614 00e2 238D ldrh r3, [r4, #40]
7615 00e4 2832 adds r2, r2, #40
7616 00e6 616A ldr r1, [r4, #36]
7617 00e8 A06B ldr r0, [r4, #56]
7618 00ea FFF7FEFF bl HAL_DMA_Start_IT
7619 .LVL530:
3597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7620 .loc 1 3597 7 is_stmt 1 view .LVU2698
3597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7621 .loc 1 3597 10 is_stmt 0 view .LVU2699
7622 00ee D8B1 cbz r0, .L498
3627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7623 .loc 1 3627 9 is_stmt 1 view .LVU2700
3627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7624 .loc 1 3627 25 is_stmt 0 view .LVU2701
7625 00f0 2023 movs r3, #32
7626 00f2 84F84130 strb r3, [r4, #65]
3628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7627 .loc 1 3628 9 is_stmt 1 view .LVU2702
3628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7628 .loc 1 3628 25 is_stmt 0 view .LVU2703
7629 00f6 0022 movs r2, #0
7630 00f8 84F84220 strb r2, [r4, #66]
3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7631 .loc 1 3631 9 is_stmt 1 view .LVU2704
3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7632 .loc 1 3631 13 is_stmt 0 view .LVU2705
7633 00fc 636C ldr r3, [r4, #68]
3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7634 .loc 1 3631 25 view .LVU2706
7635 00fe 43F01003 orr r3, r3, #16
7636 0102 6364 str r3, [r4, #68]
3634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7637 .loc 1 3634 9 is_stmt 1 view .LVU2707
3634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7638 .loc 1 3634 9 view .LVU2708
7639 0104 84F84020 strb r2, [r4, #64]
3634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7640 .loc 1 3634 9 view .LVU2709
3636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7641 .loc 1 3636 9 view .LVU2710
3636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7642 .loc 1 3636 16 is_stmt 0 view .LVU2711
7643 0108 0120 movs r0, #1
7644 .LVL531:
3636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7645 .loc 1 3636 16 view .LVU2712
7646 010a 5BE0 b .L490
7647 .LVL532:
7648 .L497:
3585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7649 .loc 1 3585 9 is_stmt 1 view .LVU2713
3585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7650 .loc 1 3585 25 is_stmt 0 view .LVU2714
7651 010c 2023 movs r3, #32
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 311
7652 010e 84F84130 strb r3, [r4, #65]
3586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7653 .loc 1 3586 9 is_stmt 1 view .LVU2715
3586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7654 .loc 1 3586 25 is_stmt 0 view .LVU2716
7655 0112 0022 movs r2, #0
7656 0114 84F84220 strb r2, [r4, #66]
3589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7657 .loc 1 3589 9 is_stmt 1 view .LVU2717
3589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7658 .loc 1 3589 13 is_stmt 0 view .LVU2718
7659 0118 636C ldr r3, [r4, #68]
3589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7660 .loc 1 3589 25 view .LVU2719
7661 011a 43F08003 orr r3, r3, #128
7662 011e 6364 str r3, [r4, #68]
3592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7663 .loc 1 3592 9 is_stmt 1 view .LVU2720
3592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7664 .loc 1 3592 9 view .LVU2721
7665 0120 84F84020 strb r2, [r4, #64]
3592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7666 .loc 1 3592 9 view .LVU2722
3594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7667 .loc 1 3594 9 view .LVU2723
3594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7668 .loc 1 3594 16 is_stmt 0 view .LVU2724
7669 0124 0120 movs r0, #1
7670 0126 4DE0 b .L490
7671 .LVL533:
7672 .L498:
3600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7673 .loc 1 3600 9 is_stmt 1 view .LVU2725
3600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7674 .loc 1 3600 12 is_stmt 0 view .LVU2726
7675 0128 B6F1007F cmp r6, #33554432
7676 012c 18BF it ne
7677 012e 002E cmpne r6, #0
7678 0130 1BD1 bne .L500
3602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7679 .loc 1 3602 11 is_stmt 1 view .LVU2727
7680 0132 CDF80090 str r9, [sp]
7681 0136 3B46 mov r3, r7
7682 0138 5FFA88F2 uxtb r2, r8
7683 013c 2946 mov r1, r5
7684 013e 2046 mov r0, r4
7685 .LVL534:
3602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7686 .loc 1 3602 11 is_stmt 0 view .LVU2728
7687 0140 FFF7FEFF bl I2C_TransferConfig
7688 .LVL535:
7689 .L501:
3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7690 .loc 1 3610 9 is_stmt 1 view .LVU2729
3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7691 .loc 1 3610 13 is_stmt 0 view .LVU2730
7692 0144 638D ldrh r3, [r4, #42]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 312
7693 0146 9BB2 uxth r3, r3
3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7694 .loc 1 3610 32 view .LVU2731
7695 0148 228D ldrh r2, [r4, #40]
3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7696 .loc 1 3610 25 view .LVU2732
7697 014a 9B1A subs r3, r3, r2
7698 014c 9BB2 uxth r3, r3
7699 014e 6385 strh r3, [r4, #42] @ movhi
3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7700 .loc 1 3613 9 is_stmt 1 view .LVU2733
3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7701 .loc 1 3613 9 view .LVU2734
7702 0150 0023 movs r3, #0
7703 0152 84F84030 strb r3, [r4, #64]
3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7704 .loc 1 3613 9 view .LVU2735
3619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7705 .loc 1 3619 9 view .LVU2736
7706 0156 1021 movs r1, #16
7707 0158 2046 mov r0, r4
7708 015a FFF7FEFF bl I2C_Enable_IRQ
7709 .LVL536:
3622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7710 .loc 1 3622 9 view .LVU2737
3622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7711 .loc 1 3622 13 is_stmt 0 view .LVU2738
7712 015e 2268 ldr r2, [r4]
3622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7713 .loc 1 3622 23 view .LVU2739
7714 0160 1368 ldr r3, [r2]
3622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7715 .loc 1 3622 29 view .LVU2740
7716 0162 43F48043 orr r3, r3, #16384
7717 0166 1360 str r3, [r2]
7718 0168 20E0 b .L502
7719 .LVL537:
7720 .L500:
3606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7721 .loc 1 3606 11 is_stmt 1 view .LVU2741
7722 016a CDF80090 str r9, [sp]
7723 016e 3B46 mov r3, r7
7724 0170 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
7725 0174 2946 mov r1, r5
7726 0176 2046 mov r0, r4
7727 .LVL538:
3606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7728 .loc 1 3606 11 is_stmt 0 view .LVU2742
7729 0178 FFF7FEFF bl I2C_TransferConfig
7730 .LVL539:
7731 017c E2E7 b .L501
7732 .LVL540:
7733 .L496:
3642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7734 .loc 1 3642 7 is_stmt 1 view .LVU2743
3642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7735 .loc 1 3642 21 is_stmt 0 view .LVU2744
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 313
7736 017e 174B ldr r3, .L513+12
7737 0180 6363 str r3, [r4, #52]
3646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7738 .loc 1 3646 7 is_stmt 1 view .LVU2745
3646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7739 .loc 1 3646 10 is_stmt 0 view .LVU2746
7740 0182 B6F1007F cmp r6, #33554432
7741 0186 18BF it ne
7742 0188 002E cmpne r6, #0
7743 018a 11D1 bne .L503
3648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7744 .loc 1 3648 9 is_stmt 1 view .LVU2747
7745 018c CDF80090 str r9, [sp]
7746 0190 3B46 mov r3, r7
7747 0192 5FFA88F2 uxtb r2, r8
7748 0196 2946 mov r1, r5
7749 0198 2046 mov r0, r4
7750 019a FFF7FEFF bl I2C_TransferConfig
7751 .LVL541:
7752 .L504:
3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7753 .loc 1 3656 7 view .LVU2748
3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7754 .loc 1 3656 7 view .LVU2749
7755 019e 0023 movs r3, #0
7756 01a0 84F84030 strb r3, [r4, #64]
3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7757 .loc 1 3656 7 view .LVU2750
3665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7758 .loc 1 3665 7 view .LVU2751
7759 01a4 0121 movs r1, #1
7760 01a6 2046 mov r0, r4
7761 01a8 FFF7FEFF bl I2C_Enable_IRQ
7762 .LVL542:
7763 .L502:
3668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7764 .loc 1 3668 5 view .LVU2752
3668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7765 .loc 1 3668 12 is_stmt 0 view .LVU2753
7766 01ac 0020 movs r0, #0
7767 01ae 09E0 b .L490
7768 .L503:
3652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7769 .loc 1 3652 9 is_stmt 1 view .LVU2754
7770 01b0 CDF80090 str r9, [sp]
7771 01b4 3B46 mov r3, r7
7772 01b6 D2B2 uxtb r2, r2
7773 01b8 2946 mov r1, r5
7774 01ba 2046 mov r0, r4
7775 01bc FFF7FEFF bl I2C_TransferConfig
7776 .LVL543:
7777 01c0 EDE7 b .L504
7778 .LVL544:
7779 .L505:
3672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7780 .loc 1 3672 12 is_stmt 0 view .LVU2755
7781 01c2 0220 movs r0, #2
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 314
7782 .LVL545:
7783 .L490:
3674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7784 .loc 1 3674 1 view .LVU2756
7785 01c4 03B0 add sp, sp, #12
7786 .cfi_remember_state
7787 .cfi_def_cfa_offset 28
7788 @ sp needed
7789 01c6 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc}
7790 .LVL546:
7791 .L506:
7792 .cfi_restore_state
3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7793 .loc 1 3505 5 discriminator 1 view .LVU2757
7794 01ca 0220 movs r0, #2
7795 01cc FAE7 b .L490
7796 .L514:
7797 01ce 00BF .align 2
7798 .L513:
7799 01d0 00000000 .word I2C_Master_ISR_DMA
7800 01d4 00000000 .word I2C_DMAMasterTransmitCplt
7801 01d8 00000000 .word I2C_DMAError
7802 01dc 00000000 .word I2C_Master_ISR_IT
7803 01e0 00200080 .word -2147475456
7804 .cfi_endproc
7805 .LFE359:
7807 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits
7808 .align 1
7809 .global HAL_I2C_Master_Seq_Receive_IT
7810 .syntax unified
7811 .thumb
7812 .thumb_func
7814 HAL_I2C_Master_Seq_Receive_IT:
7815 .LVL547:
7816 .LFB360:
3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7817 .loc 1 3690 1 is_stmt 1 view -0
7818 .cfi_startproc
7819 @ args = 4, pretend = 0, frame = 0
7820 @ frame_needed = 0, uses_anonymous_args = 0
3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7821 .loc 1 3690 1 is_stmt 0 view .LVU2759
7822 0000 70B5 push {r4, r5, r6, lr}
7823 .cfi_def_cfa_offset 16
7824 .cfi_offset 4, -16
7825 .cfi_offset 5, -12
7826 .cfi_offset 6, -8
7827 .cfi_offset 14, -4
7828 0002 82B0 sub sp, sp, #8
7829 .cfi_def_cfa_offset 24
7830 0004 0446 mov r4, r0
7831 0006 0D46 mov r5, r1
7832 0008 0699 ldr r1, [sp, #24]
7833 .LVL548:
3691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
7834 .loc 1 3691 3 is_stmt 1 view .LVU2760
3692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 315
7835 .loc 1 3692 3 view .LVU2761
3695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7836 .loc 1 3695 3 view .LVU2762
3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7837 .loc 1 3697 3 view .LVU2763
3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7838 .loc 1 3697 11 is_stmt 0 view .LVU2764
7839 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7840 .LVL549:
3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7841 .loc 1 3697 6 view .LVU2765
7842 000e 2028 cmp r0, #32
7843 0010 46D1 bne .L521
3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7844 .loc 1 3700 5 is_stmt 1 view .LVU2766
3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7845 .loc 1 3700 5 view .LVU2767
7846 0012 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2
7847 0016 0128 cmp r0, #1
7848 0018 44D0 beq .L522
3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7849 .loc 1 3700 5 discriminator 2 view .LVU2768
7850 001a 0120 movs r0, #1
7851 001c 84F84000 strb r0, [r4, #64]
3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7852 .loc 1 3700 5 view .LVU2769
3702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7853 .loc 1 3702 5 view .LVU2770
3702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7854 .loc 1 3702 21 is_stmt 0 view .LVU2771
7855 0020 2220 movs r0, #34
7856 0022 84F84100 strb r0, [r4, #65]
3703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7857 .loc 1 3703 5 is_stmt 1 view .LVU2772
3703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7858 .loc 1 3703 21 is_stmt 0 view .LVU2773
7859 0026 1020 movs r0, #16
7860 0028 84F84200 strb r0, [r4, #66]
3704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7861 .loc 1 3704 5 is_stmt 1 view .LVU2774
3704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7862 .loc 1 3704 21 is_stmt 0 view .LVU2775
7863 002c 0020 movs r0, #0
7864 002e 6064 str r0, [r4, #68]
3707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7865 .loc 1 3707 5 is_stmt 1 view .LVU2776
3707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7866 .loc 1 3707 23 is_stmt 0 view .LVU2777
7867 0030 6262 str r2, [r4, #36]
3708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7868 .loc 1 3708 5 is_stmt 1 view .LVU2778
3708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7869 .loc 1 3708 23 is_stmt 0 view .LVU2779
7870 0032 6385 strh r3, [r4, #42] @ movhi
3709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7871 .loc 1 3709 5 is_stmt 1 view .LVU2780
3709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 316
7872 .loc 1 3709 23 is_stmt 0 view .LVU2781
7873 0034 E162 str r1, [r4, #44]
3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7874 .loc 1 3710 5 is_stmt 1 view .LVU2782
3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7875 .loc 1 3710 23 is_stmt 0 view .LVU2783
7876 0036 1C4B ldr r3, .L526
7877 .LVL550:
3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7878 .loc 1 3710 23 view .LVU2784
7879 0038 6363 str r3, [r4, #52]
3713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7880 .loc 1 3713 5 is_stmt 1 view .LVU2785
3713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7881 .loc 1 3713 13 is_stmt 0 view .LVU2786
7882 003a 638D ldrh r3, [r4, #42]
7883 003c 9BB2 uxth r3, r3
3713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7884 .loc 1 3713 8 view .LVU2787
7885 003e FF2B cmp r3, #255
7886 0040 26D9 bls .L517
3715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7887 .loc 1 3715 7 is_stmt 1 view .LVU2788
3715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7888 .loc 1 3715 22 is_stmt 0 view .LVU2789
7889 0042 FF23 movs r3, #255
7890 0044 2385 strh r3, [r4, #40] @ movhi
3716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7891 .loc 1 3716 7 is_stmt 1 view .LVU2790
7892 .LVL551:
3716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7893 .loc 1 3716 16 is_stmt 0 view .LVU2791
7894 0046 4FF08076 mov r6, #16777216
7895 .LVL552:
7896 .L518:
3727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7897 .loc 1 3727 5 is_stmt 1 view .LVU2792
3727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7898 .loc 1 3727 14 is_stmt 0 view .LVU2793
7899 004a 236B ldr r3, [r4, #48]
3727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7900 .loc 1 3727 8 view .LVU2794
7901 004c 122B cmp r3, #18
7902 004e 04D1 bne .L519
3727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7903 .loc 1 3727 59 discriminator 1 view .LVU2795
7904 0050 B1F52A4F cmp r1, #43520
7905 0054 18BF it ne
7906 0056 AA29 cmpne r1, #170
7907 0058 1ED1 bne .L523
7908 .L519:
3735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7909 .loc 1 3735 7 is_stmt 1 view .LVU2796
7910 005a 2046 mov r0, r4
7911 005c FFF7FEFF bl I2C_ConvertOtherXferOptions
7912 .LVL553:
3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 317
7913 .loc 1 3738 7 view .LVU2797
3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7914 .loc 1 3738 15 is_stmt 0 view .LVU2798
7915 0060 638D ldrh r3, [r4, #42]
7916 0062 9BB2 uxth r3, r3
3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7917 .loc 1 3738 10 view .LVU2799
7918 0064 FF2B cmp r3, #255
7919 0066 19D8 bhi .L524
3740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7920 .loc 1 3740 9 is_stmt 1 view .LVU2800
3740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7921 .loc 1 3740 18 is_stmt 0 view .LVU2801
7922 0068 E66A ldr r6, [r4, #44]
7923 .LVL554:
3692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7924 .loc 1 3692 12 view .LVU2802
7925 006a 104B ldr r3, .L526+4
7926 .L520:
7927 .LVL555:
3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7928 .loc 1 3745 5 is_stmt 1 view .LVU2803
7929 006c 0093 str r3, [sp]
7930 006e 3346 mov r3, r6
7931 .LVL556:
3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7932 .loc 1 3745 5 is_stmt 0 view .LVU2804
7933 0070 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
7934 0074 2946 mov r1, r5
7935 0076 2046 mov r0, r4
7936 0078 FFF7FEFF bl I2C_TransferConfig
7937 .LVL557:
3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7938 .loc 1 3748 5 is_stmt 1 view .LVU2805
3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7939 .loc 1 3748 5 view .LVU2806
7940 007c 0025 movs r5, #0
7941 .LVL558:
3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7942 .loc 1 3748 5 is_stmt 0 view .LVU2807
7943 007e 84F84050 strb r5, [r4, #64]
3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7944 .loc 1 3748 5 is_stmt 1 view .LVU2808
3753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7945 .loc 1 3753 5 view .LVU2809
7946 0082 0221 movs r1, #2
7947 0084 2046 mov r0, r4
7948 0086 FFF7FEFF bl I2C_Enable_IRQ
7949 .LVL559:
3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7950 .loc 1 3755 5 view .LVU2810
3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7951 .loc 1 3755 12 is_stmt 0 view .LVU2811
7952 008a 2846 mov r0, r5
7953 .LVL560:
7954 .L516:
3761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 318
7955 .loc 1 3761 1 view .LVU2812
7956 008c 02B0 add sp, sp, #8
7957 .cfi_remember_state
7958 .cfi_def_cfa_offset 16
7959 @ sp needed
7960 008e 70BD pop {r4, r5, r6, pc}
7961 .LVL561:
7962 .L517:
7963 .cfi_restore_state
3720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7964 .loc 1 3720 7 is_stmt 1 view .LVU2813
3720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7965 .loc 1 3720 28 is_stmt 0 view .LVU2814
7966 0090 638D ldrh r3, [r4, #42]
3720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7967 .loc 1 3720 22 view .LVU2815
7968 0092 2385 strh r3, [r4, #40] @ movhi
3721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7969 .loc 1 3721 7 is_stmt 1 view .LVU2816
3721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7970 .loc 1 3721 16 is_stmt 0 view .LVU2817
7971 0094 E66A ldr r6, [r4, #44]
7972 0096 D8E7 b .L518
7973 .LVL562:
7974 .L523:
3730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7975 .loc 1 3730 19 view .LVU2818
7976 0098 0023 movs r3, #0
7977 009a E7E7 b .L520
7978 .LVL563:
7979 .L524:
3692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7980 .loc 1 3692 12 view .LVU2819
7981 009c 034B ldr r3, .L526+4
7982 009e E5E7 b .L520
7983 .LVL564:
7984 .L521:
3759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7985 .loc 1 3759 12 view .LVU2820
7986 00a0 0220 movs r0, #2
7987 00a2 F3E7 b .L516
7988 .L522:
3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7989 .loc 1 3700 5 discriminator 1 view .LVU2821
7990 00a4 0220 movs r0, #2
7991 00a6 F1E7 b .L516
7992 .L527:
7993 .align 2
7994 .L526:
7995 00a8 00000000 .word I2C_Master_ISR_IT
7996 00ac 00240080 .word -2147474432
7997 .cfi_endproc
7998 .LFE360:
8000 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits
8001 .align 1
8002 .global HAL_I2C_Master_Seq_Receive_DMA
8003 .syntax unified
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 319
8004 .thumb
8005 .thumb_func
8007 HAL_I2C_Master_Seq_Receive_DMA:
8008 .LVL565:
8009 .LFB361:
3777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
8010 .loc 1 3777 1 is_stmt 1 view -0
8011 .cfi_startproc
8012 @ args = 4, pretend = 0, frame = 0
8013 @ frame_needed = 0, uses_anonymous_args = 0
3777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
8014 .loc 1 3777 1 is_stmt 0 view .LVU2823
8015 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
8016 .cfi_def_cfa_offset 24
8017 .cfi_offset 4, -24
8018 .cfi_offset 5, -20
8019 .cfi_offset 6, -16
8020 .cfi_offset 7, -12
8021 .cfi_offset 8, -8
8022 .cfi_offset 14, -4
8023 0004 82B0 sub sp, sp, #8
8024 .cfi_def_cfa_offset 32
8025 0006 0E46 mov r6, r1
8026 0008 1546 mov r5, r2
8027 000a 089A ldr r2, [sp, #32]
8028 .LVL566:
3778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
8029 .loc 1 3778 3 is_stmt 1 view .LVU2824
3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8030 .loc 1 3779 3 view .LVU2825
3780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8031 .loc 1 3780 3 view .LVU2826
3783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8032 .loc 1 3783 3 view .LVU2827
3785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8033 .loc 1 3785 3 view .LVU2828
3785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8034 .loc 1 3785 11 is_stmt 0 view .LVU2829
8035 000c 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
8036 .LVL567:
3785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8037 .loc 1 3785 6 view .LVU2830
8038 0010 2029 cmp r1, #32
8039 0012 40F09D80 bne .L539
8040 0016 0446 mov r4, r0
3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8041 .loc 1 3788 5 is_stmt 1 view .LVU2831
3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8042 .loc 1 3788 5 view .LVU2832
8043 0018 90F84010 ldrb r1, [r0, #64] @ zero_extendqisi2
8044 001c 0129 cmp r1, #1
8045 001e 00F09B80 beq .L540
3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8046 .loc 1 3788 5 discriminator 2 view .LVU2833
8047 0022 0121 movs r1, #1
8048 0024 80F84010 strb r1, [r0, #64]
3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 320
8049 .loc 1 3788 5 view .LVU2834
3790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
8050 .loc 1 3790 5 view .LVU2835
3790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
8051 .loc 1 3790 21 is_stmt 0 view .LVU2836
8052 0028 2221 movs r1, #34
8053 002a 80F84110 strb r1, [r0, #65]
3791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8054 .loc 1 3791 5 is_stmt 1 view .LVU2837
3791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8055 .loc 1 3791 21 is_stmt 0 view .LVU2838
8056 002e 1021 movs r1, #16
8057 0030 80F84210 strb r1, [r0, #66]
3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8058 .loc 1 3792 5 is_stmt 1 view .LVU2839
3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8059 .loc 1 3792 21 is_stmt 0 view .LVU2840
8060 0034 0021 movs r1, #0
8061 0036 4164 str r1, [r0, #68]
3795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8062 .loc 1 3795 5 is_stmt 1 view .LVU2841
3795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8063 .loc 1 3795 23 is_stmt 0 view .LVU2842
8064 0038 4562 str r5, [r0, #36]
3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8065 .loc 1 3796 5 is_stmt 1 view .LVU2843
3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8066 .loc 1 3796 23 is_stmt 0 view .LVU2844
8067 003a 4385 strh r3, [r0, #42] @ movhi
3797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
8068 .loc 1 3797 5 is_stmt 1 view .LVU2845
3797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
8069 .loc 1 3797 23 is_stmt 0 view .LVU2846
8070 003c C262 str r2, [r0, #44]
3798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8071 .loc 1 3798 5 is_stmt 1 view .LVU2847
3798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8072 .loc 1 3798 23 is_stmt 0 view .LVU2848
8073 003e 474B ldr r3, .L546
8074 .LVL568:
3798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8075 .loc 1 3798 23 view .LVU2849
8076 0040 4363 str r3, [r0, #52]
3801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8077 .loc 1 3801 5 is_stmt 1 view .LVU2850
3801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8078 .loc 1 3801 13 is_stmt 0 view .LVU2851
8079 0042 438D ldrh r3, [r0, #42]
8080 0044 9BB2 uxth r3, r3
3801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8081 .loc 1 3801 8 view .LVU2852
8082 0046 FF2B cmp r3, #255
8083 0048 3AD9 bls .L530
3803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
8084 .loc 1 3803 7 is_stmt 1 view .LVU2853
3803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
8085 .loc 1 3803 22 is_stmt 0 view .LVU2854
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 321
8086 004a FF23 movs r3, #255
8087 004c 0385 strh r3, [r0, #40] @ movhi
3804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8088 .loc 1 3804 7 is_stmt 1 view .LVU2855
8089 .LVL569:
3804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8090 .loc 1 3804 16 is_stmt 0 view .LVU2856
8091 004e 4FF08077 mov r7, #16777216
8092 .LVL570:
8093 .L531:
3815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
8094 .loc 1 3815 5 is_stmt 1 view .LVU2857
3815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
8095 .loc 1 3815 14 is_stmt 0 view .LVU2858
8096 0052 236B ldr r3, [r4, #48]
3815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
8097 .loc 1 3815 8 view .LVU2859
8098 0054 122B cmp r3, #18
8099 0056 04D1 bne .L532
3815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
8100 .loc 1 3815 59 discriminator 1 view .LVU2860
8101 0058 B2F52A4F cmp r2, #43520
8102 005c 18BF it ne
8103 005e AA2A cmpne r2, #170
8104 0060 32D1 bne .L541
8105 .L532:
3823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8106 .loc 1 3823 7 is_stmt 1 view .LVU2861
8107 0062 2046 mov r0, r4
8108 .LVL571:
3823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8109 .loc 1 3823 7 is_stmt 0 view .LVU2862
8110 0064 FFF7FEFF bl I2C_ConvertOtherXferOptions
8111 .LVL572:
3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8112 .loc 1 3826 7 is_stmt 1 view .LVU2863
3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8113 .loc 1 3826 15 is_stmt 0 view .LVU2864
8114 0068 638D ldrh r3, [r4, #42]
8115 006a 9BB2 uxth r3, r3
3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8116 .loc 1 3826 10 view .LVU2865
8117 006c FF2B cmp r3, #255
8118 006e 2ED8 bhi .L542
3828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8119 .loc 1 3828 9 is_stmt 1 view .LVU2866
3828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8120 .loc 1 3828 18 is_stmt 0 view .LVU2867
8121 0070 E76A ldr r7, [r4, #44]
8122 .LVL573:
3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8123 .loc 1 3779 12 view .LVU2868
8124 0072 DFF8F880 ldr r8, .L546+16
8125 .L533:
8126 .LVL574:
3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8127 .loc 1 3832 5 is_stmt 1 view .LVU2869
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 322
3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8128 .loc 1 3832 13 is_stmt 0 view .LVU2870
8129 0076 228D ldrh r2, [r4, #40]
3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8130 .loc 1 3832 8 view .LVU2871
8131 0078 002A cmp r2, #0
8132 007a 55D0 beq .L534
3834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8133 .loc 1 3834 7 is_stmt 1 view .LVU2872
3834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8134 .loc 1 3834 15 is_stmt 0 view .LVU2873
8135 007c E36B ldr r3, [r4, #60]
3834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8136 .loc 1 3834 10 view .LVU2874
8137 007e 4BB3 cbz r3, .L535
3837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8138 .loc 1 3837 9 is_stmt 1 view .LVU2875
3837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8139 .loc 1 3837 40 is_stmt 0 view .LVU2876
8140 0080 374A ldr r2, .L546+4
8141 0082 DA63 str r2, [r3, #60]
3840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8142 .loc 1 3840 9 is_stmt 1 view .LVU2877
3840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8143 .loc 1 3840 13 is_stmt 0 view .LVU2878
8144 0084 E36B ldr r3, [r4, #60]
3840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8145 .loc 1 3840 41 view .LVU2879
8146 0086 374A ldr r2, .L546+8
8147 0088 DA64 str r2, [r3, #76]
3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8148 .loc 1 3843 9 is_stmt 1 view .LVU2880
3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8149 .loc 1 3843 13 is_stmt 0 view .LVU2881
8150 008a E26B ldr r2, [r4, #60]
3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8151 .loc 1 3843 44 view .LVU2882
8152 008c 0023 movs r3, #0
8153 008e 1364 str r3, [r2, #64]
3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8154 .loc 1 3844 9 is_stmt 1 view .LVU2883
3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8155 .loc 1 3844 13 is_stmt 0 view .LVU2884
8156 0090 E26B ldr r2, [r4, #60]
3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8157 .loc 1 3844 41 view .LVU2885
8158 0092 1365 str r3, [r2, #80]
3847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
8159 .loc 1 3847 9 is_stmt 1 view .LVU2886
3847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
8160 .loc 1 3847 71 is_stmt 0 view .LVU2887
8161 0094 2168 ldr r1, [r4]
3847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
8162 .loc 1 3847 25 view .LVU2888
8163 0096 238D ldrh r3, [r4, #40]
8164 0098 2A46 mov r2, r5
8165 009a 2431 adds r1, r1, #36
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 323
8166 009c E06B ldr r0, [r4, #60]
8167 009e FFF7FEFF bl HAL_DMA_Start_IT
8168 .LVL575:
3865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8169 .loc 1 3865 7 is_stmt 1 view .LVU2889
3865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8170 .loc 1 3865 10 is_stmt 0 view .LVU2890
8171 00a2 28B3 cbz r0, .L545
3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8172 .loc 1 3888 9 is_stmt 1 view .LVU2891
3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8173 .loc 1 3888 25 is_stmt 0 view .LVU2892
8174 00a4 2023 movs r3, #32
8175 00a6 84F84130 strb r3, [r4, #65]
3889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8176 .loc 1 3889 9 is_stmt 1 view .LVU2893
3889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8177 .loc 1 3889 25 is_stmt 0 view .LVU2894
8178 00aa 0022 movs r2, #0
8179 00ac 84F84220 strb r2, [r4, #66]
3892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8180 .loc 1 3892 9 is_stmt 1 view .LVU2895
3892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8181 .loc 1 3892 13 is_stmt 0 view .LVU2896
8182 00b0 636C ldr r3, [r4, #68]
3892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8183 .loc 1 3892 25 view .LVU2897
8184 00b2 43F01003 orr r3, r3, #16
8185 00b6 6364 str r3, [r4, #68]
3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8186 .loc 1 3895 9 is_stmt 1 view .LVU2898
3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8187 .loc 1 3895 9 view .LVU2899
8188 00b8 84F84020 strb r2, [r4, #64]
3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8189 .loc 1 3895 9 view .LVU2900
3897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8190 .loc 1 3897 9 view .LVU2901
3897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8191 .loc 1 3897 16 is_stmt 0 view .LVU2902
8192 00bc 0120 movs r0, #1
8193 .LVL576:
3897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8194 .loc 1 3897 16 view .LVU2903
8195 00be 48E0 b .L529
8196 .LVL577:
8197 .L530:
3808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
8198 .loc 1 3808 7 is_stmt 1 view .LVU2904
3808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
8199 .loc 1 3808 28 is_stmt 0 view .LVU2905
8200 00c0 438D ldrh r3, [r0, #42]
3808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
8201 .loc 1 3808 22 view .LVU2906
8202 00c2 0385 strh r3, [r0, #40] @ movhi
3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8203 .loc 1 3809 7 is_stmt 1 view .LVU2907
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 324
3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8204 .loc 1 3809 16 is_stmt 0 view .LVU2908
8205 00c4 C76A ldr r7, [r0, #44]
8206 00c6 C4E7 b .L531
8207 .LVL578:
8208 .L541:
3818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8209 .loc 1 3818 19 view .LVU2909
8210 00c8 4FF00008 mov r8, #0
8211 00cc D3E7 b .L533
8212 .LVL579:
8213 .L542:
3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8214 .loc 1 3779 12 view .LVU2910
8215 00ce DFF89C80 ldr r8, .L546+16
8216 00d2 D0E7 b .L533
8217 .LVL580:
8218 .L535:
3853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8219 .loc 1 3853 9 is_stmt 1 view .LVU2911
3853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8220 .loc 1 3853 25 is_stmt 0 view .LVU2912
8221 00d4 2023 movs r3, #32
8222 00d6 84F84130 strb r3, [r4, #65]
3854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8223 .loc 1 3854 9 is_stmt 1 view .LVU2913
3854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8224 .loc 1 3854 25 is_stmt 0 view .LVU2914
8225 00da 0022 movs r2, #0
8226 00dc 84F84220 strb r2, [r4, #66]
3857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8227 .loc 1 3857 9 is_stmt 1 view .LVU2915
3857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8228 .loc 1 3857 13 is_stmt 0 view .LVU2916
8229 00e0 636C ldr r3, [r4, #68]
3857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8230 .loc 1 3857 25 view .LVU2917
8231 00e2 43F08003 orr r3, r3, #128
8232 00e6 6364 str r3, [r4, #68]
3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8233 .loc 1 3860 9 is_stmt 1 view .LVU2918
3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8234 .loc 1 3860 9 view .LVU2919
8235 00e8 84F84020 strb r2, [r4, #64]
3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8236 .loc 1 3860 9 view .LVU2920
3862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8237 .loc 1 3862 9 view .LVU2921
3862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8238 .loc 1 3862 16 is_stmt 0 view .LVU2922
8239 00ec 0120 movs r0, #1
8240 00ee 30E0 b .L529
8241 .LVL581:
8242 .L545:
3868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8243 .loc 1 3868 9 is_stmt 1 view .LVU2923
8244 00f0 CDF80080 str r8, [sp]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 325
8245 00f4 3B46 mov r3, r7
8246 00f6 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
8247 00fa 3146 mov r1, r6
8248 00fc 2046 mov r0, r4
8249 .LVL582:
3868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8250 .loc 1 3868 9 is_stmt 0 view .LVU2924
8251 00fe FFF7FEFF bl I2C_TransferConfig
8252 .LVL583:
3871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8253 .loc 1 3871 9 is_stmt 1 view .LVU2925
3871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8254 .loc 1 3871 13 is_stmt 0 view .LVU2926
8255 0102 638D ldrh r3, [r4, #42]
8256 0104 9BB2 uxth r3, r3
3871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8257 .loc 1 3871 32 view .LVU2927
8258 0106 228D ldrh r2, [r4, #40]
3871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8259 .loc 1 3871 25 view .LVU2928
8260 0108 9B1A subs r3, r3, r2
8261 010a 9BB2 uxth r3, r3
8262 010c 6385 strh r3, [r4, #42] @ movhi
3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8263 .loc 1 3874 9 is_stmt 1 view .LVU2929
3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8264 .loc 1 3874 9 view .LVU2930
8265 010e 0023 movs r3, #0
8266 0110 84F84030 strb r3, [r4, #64]
3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8267 .loc 1 3874 9 view .LVU2931
3880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8268 .loc 1 3880 9 view .LVU2932
8269 0114 1021 movs r1, #16
8270 0116 2046 mov r0, r4
8271 0118 FFF7FEFF bl I2C_Enable_IRQ
8272 .LVL584:
3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8273 .loc 1 3883 9 view .LVU2933
3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8274 .loc 1 3883 13 is_stmt 0 view .LVU2934
8275 011c 2268 ldr r2, [r4]
3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8276 .loc 1 3883 23 view .LVU2935
8277 011e 1368 ldr r3, [r2]
3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8278 .loc 1 3883 29 view .LVU2936
8279 0120 43F40043 orr r3, r3, #32768
8280 0124 1360 str r3, [r2]
8281 0126 11E0 b .L538
8282 .LVL585:
8283 .L534:
3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8284 .loc 1 3903 7 is_stmt 1 view .LVU2937
3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8285 .loc 1 3903 21 is_stmt 0 view .LVU2938
8286 0128 0F4B ldr r3, .L546+12
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 326
8287 012a 6363 str r3, [r4, #52]
3907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ);
8288 .loc 1 3907 7 is_stmt 1 view .LVU2939
8289 012c 0F4B ldr r3, .L546+16
8290 012e 0093 str r3, [sp]
8291 0130 4FF00073 mov r3, #33554432
8292 0134 D2B2 uxtb r2, r2
8293 0136 3146 mov r1, r6
8294 0138 2046 mov r0, r4
8295 013a FFF7FEFF bl I2C_TransferConfig
8296 .LVL586:
3911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8297 .loc 1 3911 7 view .LVU2940
3911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8298 .loc 1 3911 7 view .LVU2941
8299 013e 0023 movs r3, #0
8300 0140 84F84030 strb r3, [r4, #64]
3911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8301 .loc 1 3911 7 view .LVU2942
3920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8302 .loc 1 3920 7 view .LVU2943
8303 0144 0221 movs r1, #2
8304 0146 2046 mov r0, r4
8305 0148 FFF7FEFF bl I2C_Enable_IRQ
8306 .LVL587:
8307 .L538:
3923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8308 .loc 1 3923 5 view .LVU2944
3923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8309 .loc 1 3923 12 is_stmt 0 view .LVU2945
8310 014c 0020 movs r0, #0
8311 014e 00E0 b .L529
8312 .LVL588:
8313 .L539:
3927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8314 .loc 1 3927 12 view .LVU2946
8315 0150 0220 movs r0, #2
8316 .LVL589:
8317 .L529:
3929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8318 .loc 1 3929 1 view .LVU2947
8319 0152 02B0 add sp, sp, #8
8320 .cfi_remember_state
8321 .cfi_def_cfa_offset 24
8322 @ sp needed
8323 0154 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
8324 .LVL590:
8325 .L540:
8326 .cfi_restore_state
3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8327 .loc 1 3788 5 discriminator 1 view .LVU2948
8328 0158 0220 movs r0, #2
8329 .LVL591:
3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8330 .loc 1 3788 5 discriminator 1 view .LVU2949
8331 015a FAE7 b .L529
8332 .L547:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 327
8333 .align 2
8334 .L546:
8335 015c 00000000 .word I2C_Master_ISR_DMA
8336 0160 00000000 .word I2C_DMAMasterReceiveCplt
8337 0164 00000000 .word I2C_DMAError
8338 0168 00000000 .word I2C_Master_ISR_IT
8339 016c 00240080 .word -2147474432
8340 .cfi_endproc
8341 .LFE361:
8343 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits
8344 .align 1
8345 .global HAL_I2C_Slave_Seq_Transmit_IT
8346 .syntax unified
8347 .thumb
8348 .thumb_func
8350 HAL_I2C_Slave_Seq_Transmit_IT:
8351 .LVL592:
8352 .LFB362:
3943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
8353 .loc 1 3943 1 is_stmt 1 view -0
8354 .cfi_startproc
8355 @ args = 0, pretend = 0, frame = 0
8356 @ frame_needed = 0, uses_anonymous_args = 0
3943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
8357 .loc 1 3943 1 is_stmt 0 view .LVU2951
8358 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
8359 .cfi_def_cfa_offset 24
8360 .cfi_offset 3, -24
8361 .cfi_offset 4, -20
8362 .cfi_offset 5, -16
8363 .cfi_offset 6, -12
8364 .cfi_offset 7, -8
8365 .cfi_offset 14, -4
8366 0002 0446 mov r4, r0
3945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8367 .loc 1 3945 3 is_stmt 1 view .LVU2952
3948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8368 .loc 1 3948 3 view .LVU2953
3950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8369 .loc 1 3950 3 view .LVU2954
3950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8370 .loc 1 3950 22 is_stmt 0 view .LVU2955
8371 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
8372 .LVL593:
3950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8373 .loc 1 3950 6 view .LVU2956
8374 0008 00F02800 and r0, r0, #40
8375 000c 2828 cmp r0, #40
8376 000e 5FD1 bne .L553
8377 0010 0F46 mov r7, r1
8378 0012 1646 mov r6, r2
8379 0014 1D46 mov r5, r3
3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8380 .loc 1 3952 5 is_stmt 1 view .LVU2957
3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8381 .loc 1 3952 8 is_stmt 0 view .LVU2958
8382 0016 002A cmp r2, #0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 328
8383 0018 18BF it ne
8384 001a 0029 cmpne r1, #0
8385 001c 04D1 bne .L550
3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8386 .loc 1 3954 7 is_stmt 1 view .LVU2959
3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8387 .loc 1 3954 23 is_stmt 0 view .LVU2960
8388 001e 4FF40073 mov r3, #512
8389 .LVL594:
3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8390 .loc 1 3954 23 view .LVU2961
8391 0022 6364 str r3, [r4, #68]
3955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8392 .loc 1 3955 7 is_stmt 1 view .LVU2962
3955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8393 .loc 1 3955 15 is_stmt 0 view .LVU2963
8394 0024 0120 movs r0, #1
8395 0026 54E0 b .L549
8396 .LVL595:
8397 .L550:
3959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8398 .loc 1 3959 5 is_stmt 1 view .LVU2964
8399 0028 48F20101 movw r1, #32769
8400 .LVL596:
3959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8401 .loc 1 3959 5 is_stmt 0 view .LVU2965
8402 002c 2046 mov r0, r4
8403 002e FFF7FEFF bl I2C_Disable_IRQ
8404 .LVL597:
3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8405 .loc 1 3962 5 is_stmt 1 view .LVU2966
3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8406 .loc 1 3962 5 view .LVU2967
8407 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
8408 0036 012B cmp r3, #1
8409 0038 4CD0 beq .L554
3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8410 .loc 1 3962 5 discriminator 2 view .LVU2968
8411 003a 0123 movs r3, #1
8412 003c 84F84030 strb r3, [r4, #64]
3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8413 .loc 1 3962 5 view .LVU2969
3966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8414 .loc 1 3966 5 view .LVU2970
3966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8415 .loc 1 3966 13 is_stmt 0 view .LVU2971
8416 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
3966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8417 .loc 1 3966 8 view .LVU2972
8418 0044 2A2B cmp r3, #42
8419 0046 28D0 beq .L556
8420 .L551:
3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8421 .loc 1 3992 5 is_stmt 1 view .LVU2973
3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8422 .loc 1 3992 21 is_stmt 0 view .LVU2974
8423 0048 2923 movs r3, #41
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 329
8424 004a 84F84130 strb r3, [r4, #65]
3993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8425 .loc 1 3993 5 is_stmt 1 view .LVU2975
3993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8426 .loc 1 3993 21 is_stmt 0 view .LVU2976
8427 004e 2023 movs r3, #32
8428 0050 84F84230 strb r3, [r4, #66]
3994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8429 .loc 1 3994 5 is_stmt 1 view .LVU2977
3994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8430 .loc 1 3994 21 is_stmt 0 view .LVU2978
8431 0054 0023 movs r3, #0
8432 0056 6364 str r3, [r4, #68]
3997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8433 .loc 1 3997 5 is_stmt 1 view .LVU2979
3997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8434 .loc 1 3997 9 is_stmt 0 view .LVU2980
8435 0058 2268 ldr r2, [r4]
3997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8436 .loc 1 3997 19 view .LVU2981
8437 005a 5368 ldr r3, [r2, #4]
3997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8438 .loc 1 3997 25 view .LVU2982
8439 005c 23F40043 bic r3, r3, #32768
8440 0060 5360 str r3, [r2, #4]
4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8441 .loc 1 4000 5 is_stmt 1 view .LVU2983
4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8442 .loc 1 4000 23 is_stmt 0 view .LVU2984
8443 0062 6762 str r7, [r4, #36]
4001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8444 .loc 1 4001 5 is_stmt 1 view .LVU2985
4001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8445 .loc 1 4001 23 is_stmt 0 view .LVU2986
8446 0064 6685 strh r6, [r4, #42] @ movhi
4002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8447 .loc 1 4002 5 is_stmt 1 view .LVU2987
4002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8448 .loc 1 4002 29 is_stmt 0 view .LVU2988
8449 0066 638D ldrh r3, [r4, #42]
4002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8450 .loc 1 4002 23 view .LVU2989
8451 0068 2385 strh r3, [r4, #40] @ movhi
4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
8452 .loc 1 4003 5 is_stmt 1 view .LVU2990
4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
8453 .loc 1 4003 23 is_stmt 0 view .LVU2991
8454 006a E562 str r5, [r4, #44]
4004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8455 .loc 1 4004 5 is_stmt 1 view .LVU2992
4004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8456 .loc 1 4004 23 is_stmt 0 view .LVU2993
8457 006c 1A4B ldr r3, .L557
8458 006e 6363 str r3, [r4, #52]
4006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
8459 .loc 1 4006 5 is_stmt 1 view .LVU2994
4006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 330
8460 .loc 1 4006 11 is_stmt 0 view .LVU2995
8461 0070 2268 ldr r2, [r4]
8462 0072 9369 ldr r3, [r2, #24]
8463 0074 03F00803 and r3, r3, #8
8464 .LVL598:
4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8465 .loc 1 4007 5 is_stmt 1 view .LVU2996
4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8466 .loc 1 4007 10 is_stmt 0 view .LVU2997
8467 0078 9169 ldr r1, [r2, #24]
4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8468 .loc 1 4007 8 view .LVU2998
8469 007a 11F4803F tst r1, #65536
8470 007e 02D0 beq .L552
4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8471 .loc 1 4007 54 discriminator 1 view .LVU2999
8472 0080 0BB1 cbz r3, .L552
4011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8473 .loc 1 4011 7 is_stmt 1 view .LVU3000
8474 0082 0823 movs r3, #8
8475 .LVL599:
4011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8476 .loc 1 4011 7 is_stmt 0 view .LVU3001
8477 0084 D361 str r3, [r2, #28]
8478 .L552:
4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8479 .loc 1 4015 5 is_stmt 1 view .LVU3002
4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8480 .loc 1 4015 5 view .LVU3003
8481 0086 0025 movs r5, #0
8482 .LVL600:
4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8483 .loc 1 4015 5 is_stmt 0 view .LVU3004
8484 0088 84F84050 strb r5, [r4, #64]
4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8485 .loc 1 4015 5 is_stmt 1 view .LVU3005
4021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8486 .loc 1 4021 5 view .LVU3006
8487 008c 48F20101 movw r1, #32769
8488 0090 2046 mov r0, r4
8489 0092 FFF7FEFF bl I2C_Enable_IRQ
8490 .LVL601:
4023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8491 .loc 1 4023 5 view .LVU3007
4023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8492 .loc 1 4023 12 is_stmt 0 view .LVU3008
8493 0096 2846 mov r0, r5
8494 0098 1BE0 b .L549
8495 .LVL602:
8496 .L556:
3969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8497 .loc 1 3969 7 is_stmt 1 view .LVU3009
8498 009a 0221 movs r1, #2
8499 009c 2046 mov r0, r4
8500 009e FFF7FEFF bl I2C_Disable_IRQ
8501 .LVL603:
3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 331
8502 .loc 1 3972 7 view .LVU3010
3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8503 .loc 1 3972 16 is_stmt 0 view .LVU3011
8504 00a2 2368 ldr r3, [r4]
3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8505 .loc 1 3972 26 view .LVU3012
8506 00a4 1A68 ldr r2, [r3]
3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8507 .loc 1 3972 10 view .LVU3013
8508 00a6 12F4004F tst r2, #32768
8509 00aa CDD0 beq .L551
3974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8510 .loc 1 3974 9 is_stmt 1 view .LVU3014
3974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8511 .loc 1 3974 23 is_stmt 0 view .LVU3015
8512 00ac 1A68 ldr r2, [r3]
3974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8513 .loc 1 3974 29 view .LVU3016
8514 00ae 22F40042 bic r2, r2, #32768
8515 00b2 1A60 str r2, [r3]
3976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8516 .loc 1 3976 9 is_stmt 1 view .LVU3017
3976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8517 .loc 1 3976 17 is_stmt 0 view .LVU3018
8518 00b4 E36B ldr r3, [r4, #60]
3976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8519 .loc 1 3976 12 view .LVU3019
8520 00b6 002B cmp r3, #0
8521 00b8 C6D0 beq .L551
3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8522 .loc 1 3980 11 is_stmt 1 view .LVU3020
3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8523 .loc 1 3980 43 is_stmt 0 view .LVU3021
8524 00ba 084A ldr r2, .L557+4
8525 00bc 1A65 str r2, [r3, #80]
3983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8526 .loc 1 3983 11 is_stmt 1 view .LVU3022
3983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8527 .loc 1 3983 15 is_stmt 0 view .LVU3023
8528 00be E06B ldr r0, [r4, #60]
8529 00c0 FFF7FEFF bl HAL_DMA_Abort_IT
8530 .LVL604:
3983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8531 .loc 1 3983 14 discriminator 1 view .LVU3024
8532 00c4 0028 cmp r0, #0
8533 00c6 BFD0 beq .L551
3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8534 .loc 1 3986 13 is_stmt 1 view .LVU3025
3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8535 .loc 1 3986 17 is_stmt 0 view .LVU3026
8536 00c8 E06B ldr r0, [r4, #60]
3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8537 .loc 1 3986 25 view .LVU3027
8538 00ca 036D ldr r3, [r0, #80]
3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8539 .loc 1 3986 13 view .LVU3028
8540 00cc 9847 blx r3
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 332
8541 .LVL605:
8542 00ce BBE7 b .L551
8543 .LVL606:
8544 .L553:
4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8545 .loc 1 4027 12 view .LVU3029
8546 00d0 0120 movs r0, #1
8547 .LVL607:
8548 .L549:
4029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8549 .loc 1 4029 1 view .LVU3030
8550 00d2 F8BD pop {r3, r4, r5, r6, r7, pc}
8551 .LVL608:
8552 .L554:
3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8553 .loc 1 3962 5 discriminator 1 view .LVU3031
8554 00d4 0220 movs r0, #2
8555 00d6 FCE7 b .L549
8556 .L558:
8557 .align 2
8558 .L557:
8559 00d8 00000000 .word I2C_Slave_ISR_IT
8560 00dc 00000000 .word I2C_DMAAbort
8561 .cfi_endproc
8562 .LFE362:
8564 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits
8565 .align 1
8566 .global HAL_I2C_Slave_Seq_Transmit_DMA
8567 .syntax unified
8568 .thumb
8569 .thumb_func
8571 HAL_I2C_Slave_Seq_Transmit_DMA:
8572 .LVL609:
8573 .LFB363:
4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
8574 .loc 1 4043 1 is_stmt 1 view -0
8575 .cfi_startproc
8576 @ args = 0, pretend = 0, frame = 0
8577 @ frame_needed = 0, uses_anonymous_args = 0
4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
8578 .loc 1 4043 1 is_stmt 0 view .LVU3033
8579 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
8580 .cfi_def_cfa_offset 24
8581 .cfi_offset 3, -24
8582 .cfi_offset 4, -20
8583 .cfi_offset 5, -16
8584 .cfi_offset 6, -12
8585 .cfi_offset 7, -8
8586 .cfi_offset 14, -4
8587 0002 0446 mov r4, r0
4045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8588 .loc 1 4045 3 is_stmt 1 view .LVU3034
4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8589 .loc 1 4046 3 view .LVU3035
4049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8590 .loc 1 4049 3 view .LVU3036
4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 333
8591 .loc 1 4051 3 view .LVU3037
4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8592 .loc 1 4051 22 is_stmt 0 view .LVU3038
8593 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
8594 .LVL610:
4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8595 .loc 1 4051 6 view .LVU3039
8596 0008 00F02800 and r0, r0, #40
8597 000c 2828 cmp r0, #40
8598 000e 40F0BE80 bne .L569
8599 0012 0F46 mov r7, r1
8600 0014 1646 mov r6, r2
8601 0016 1D46 mov r5, r3
4053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8602 .loc 1 4053 5 is_stmt 1 view .LVU3040
4053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8603 .loc 1 4053 8 is_stmt 0 view .LVU3041
8604 0018 002A cmp r2, #0
8605 001a 18BF it ne
8606 001c 0029 cmpne r1, #0
8607 001e 4DD0 beq .L573
4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8608 .loc 1 4060 5 is_stmt 1 view .LVU3042
4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8609 .loc 1 4060 5 view .LVU3043
8610 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
8611 .LVL611:
4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8612 .loc 1 4060 5 is_stmt 0 view .LVU3044
8613 0024 012B cmp r3, #1
8614 0026 00F0B580 beq .L570
4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8615 .loc 1 4060 5 is_stmt 1 discriminator 2 view .LVU3045
8616 002a 0123 movs r3, #1
8617 002c 84F84030 strb r3, [r4, #64]
4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8618 .loc 1 4060 5 view .LVU3046
4063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8619 .loc 1 4063 5 view .LVU3047
8620 0030 48F20101 movw r1, #32769
8621 .LVL612:
4063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8622 .loc 1 4063 5 is_stmt 0 view .LVU3048
8623 0034 2046 mov r0, r4
8624 0036 FFF7FEFF bl I2C_Disable_IRQ
8625 .LVL613:
4067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8626 .loc 1 4067 5 is_stmt 1 view .LVU3049
4067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8627 .loc 1 4067 13 is_stmt 0 view .LVU3050
8628 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
4067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8629 .loc 1 4067 8 view .LVU3051
8630 003e 2A2B cmp r3, #42
8631 0040 41D0 beq .L574
4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8632 .loc 1 4092 10 is_stmt 1 view .LVU3052
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 334
4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8633 .loc 1 4092 18 is_stmt 0 view .LVU3053
8634 0042 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8635 .loc 1 4092 13 view .LVU3054
8636 0046 292B cmp r3, #41
8637 0048 59D0 beq .L575
8638 .L563:
4117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8639 .loc 1 4117 5 is_stmt 1 view .LVU3055
4119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8640 .loc 1 4119 5 view .LVU3056
4119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8641 .loc 1 4119 21 is_stmt 0 view .LVU3057
8642 004a 2923 movs r3, #41
8643 004c 84F84130 strb r3, [r4, #65]
4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8644 .loc 1 4120 5 is_stmt 1 view .LVU3058
4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8645 .loc 1 4120 21 is_stmt 0 view .LVU3059
8646 0050 2023 movs r3, #32
8647 0052 84F84230 strb r3, [r4, #66]
4121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8648 .loc 1 4121 5 is_stmt 1 view .LVU3060
4121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8649 .loc 1 4121 21 is_stmt 0 view .LVU3061
8650 0056 0023 movs r3, #0
8651 0058 6364 str r3, [r4, #68]
4124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8652 .loc 1 4124 5 is_stmt 1 view .LVU3062
4124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8653 .loc 1 4124 9 is_stmt 0 view .LVU3063
8654 005a 2268 ldr r2, [r4]
4124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8655 .loc 1 4124 19 view .LVU3064
8656 005c 5368 ldr r3, [r2, #4]
4124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8657 .loc 1 4124 25 view .LVU3065
8658 005e 23F40043 bic r3, r3, #32768
8659 0062 5360 str r3, [r2, #4]
4127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8660 .loc 1 4127 5 is_stmt 1 view .LVU3066
4127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8661 .loc 1 4127 23 is_stmt 0 view .LVU3067
8662 0064 6762 str r7, [r4, #36]
4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8663 .loc 1 4128 5 is_stmt 1 view .LVU3068
4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8664 .loc 1 4128 23 is_stmt 0 view .LVU3069
8665 0066 6685 strh r6, [r4, #42] @ movhi
4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8666 .loc 1 4129 5 is_stmt 1 view .LVU3070
4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8667 .loc 1 4129 29 is_stmt 0 view .LVU3071
8668 0068 638D ldrh r3, [r4, #42]
4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8669 .loc 1 4129 23 view .LVU3072
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 335
8670 006a 2385 strh r3, [r4, #40] @ movhi
4130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
8671 .loc 1 4130 5 is_stmt 1 view .LVU3073
4130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
8672 .loc 1 4130 23 is_stmt 0 view .LVU3074
8673 006c E562 str r5, [r4, #44]
4131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8674 .loc 1 4131 5 is_stmt 1 view .LVU3075
4131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8675 .loc 1 4131 23 is_stmt 0 view .LVU3076
8676 006e 4A4B ldr r3, .L576
8677 0070 6363 str r3, [r4, #52]
4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8678 .loc 1 4133 5 is_stmt 1 view .LVU3077
4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8679 .loc 1 4133 13 is_stmt 0 view .LVU3078
8680 0072 A36B ldr r3, [r4, #56]
4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8681 .loc 1 4133 8 view .LVU3079
8682 0074 002B cmp r3, #0
8683 0076 59D0 beq .L564
4136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8684 .loc 1 4136 7 is_stmt 1 view .LVU3080
4136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8685 .loc 1 4136 38 is_stmt 0 view .LVU3081
8686 0078 484A ldr r2, .L576+4
8687 007a DA63 str r2, [r3, #60]
4139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8688 .loc 1 4139 7 is_stmt 1 view .LVU3082
4139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8689 .loc 1 4139 11 is_stmt 0 view .LVU3083
8690 007c A36B ldr r3, [r4, #56]
4139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8691 .loc 1 4139 39 view .LVU3084
8692 007e 484A ldr r2, .L576+8
8693 0080 DA64 str r2, [r3, #76]
4142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8694 .loc 1 4142 7 is_stmt 1 view .LVU3085
4142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8695 .loc 1 4142 11 is_stmt 0 view .LVU3086
8696 0082 A26B ldr r2, [r4, #56]
4142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8697 .loc 1 4142 42 view .LVU3087
8698 0084 0023 movs r3, #0
8699 0086 1364 str r3, [r2, #64]
4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8700 .loc 1 4143 7 is_stmt 1 view .LVU3088
4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8701 .loc 1 4143 11 is_stmt 0 view .LVU3089
8702 0088 A26B ldr r2, [r4, #56]
4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8703 .loc 1 4143 39 view .LVU3090
8704 008a 1365 str r3, [r2, #80]
4146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
8705 .loc 1 4146 7 is_stmt 1 view .LVU3091
4146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
8706 .loc 1 4146 86 is_stmt 0 view .LVU3092
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 336
8707 008c 2268 ldr r2, [r4]
4146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize);
8708 .loc 1 4146 23 view .LVU3093
8709 008e 238D ldrh r3, [r4, #40]
8710 0090 2832 adds r2, r2, #40
8711 0092 3946 mov r1, r7
8712 0094 A06B ldr r0, [r4, #56]
8713 0096 FFF7FEFF bl HAL_DMA_Start_IT
8714 .LVL614:
4164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8715 .loc 1 4164 5 is_stmt 1 view .LVU3094
4164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8716 .loc 1 4164 8 is_stmt 0 view .LVU3095
8717 009a 0546 mov r5, r0
8718 .LVL615:
4164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8719 .loc 1 4164 8 view .LVU3096
8720 009c 0028 cmp r0, #0
8721 009e 53D0 beq .L565
4175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8722 .loc 1 4175 7 is_stmt 1 view .LVU3097
4175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8723 .loc 1 4175 23 is_stmt 0 view .LVU3098
8724 00a0 2823 movs r3, #40
8725 00a2 84F84130 strb r3, [r4, #65]
4176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8726 .loc 1 4176 7 is_stmt 1 view .LVU3099
4176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8727 .loc 1 4176 23 is_stmt 0 view .LVU3100
8728 00a6 0022 movs r2, #0
8729 00a8 84F84220 strb r2, [r4, #66]
4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8730 .loc 1 4179 7 is_stmt 1 view .LVU3101
4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8731 .loc 1 4179 11 is_stmt 0 view .LVU3102
8732 00ac 636C ldr r3, [r4, #68]
4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8733 .loc 1 4179 23 view .LVU3103
8734 00ae 43F01003 orr r3, r3, #16
8735 00b2 6364 str r3, [r4, #68]
4182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8736 .loc 1 4182 7 is_stmt 1 view .LVU3104
4182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8737 .loc 1 4182 7 view .LVU3105
8738 00b4 84F84020 strb r2, [r4, #64]
4182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8739 .loc 1 4182 7 view .LVU3106
4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8740 .loc 1 4184 7 view .LVU3107
4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8741 .loc 1 4184 14 is_stmt 0 view .LVU3108
8742 00b8 0125 movs r5, #1
8743 00ba 69E0 b .L560
8744 .LVL616:
8745 .L573:
4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8746 .loc 1 4055 7 is_stmt 1 view .LVU3109
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 337
4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8747 .loc 1 4055 23 is_stmt 0 view .LVU3110
8748 00bc 4FF40073 mov r3, #512
8749 .LVL617:
4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8750 .loc 1 4055 23 view .LVU3111
8751 00c0 6364 str r3, [r4, #68]
4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8752 .loc 1 4056 7 is_stmt 1 view .LVU3112
4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8753 .loc 1 4056 15 is_stmt 0 view .LVU3113
8754 00c2 0125 movs r5, #1
8755 .LVL618:
4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8756 .loc 1 4056 15 view .LVU3114
8757 00c4 64E0 b .L560
8758 .LVL619:
8759 .L574:
4070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8760 .loc 1 4070 7 is_stmt 1 view .LVU3115
8761 00c6 0221 movs r1, #2
8762 00c8 2046 mov r0, r4
8763 00ca FFF7FEFF bl I2C_Disable_IRQ
8764 .LVL620:
4072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8765 .loc 1 4072 7 view .LVU3116
4072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8766 .loc 1 4072 16 is_stmt 0 view .LVU3117
8767 00ce 2368 ldr r3, [r4]
4072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8768 .loc 1 4072 26 view .LVU3118
8769 00d0 1A68 ldr r2, [r3]
4072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8770 .loc 1 4072 10 view .LVU3119
8771 00d2 12F4004F tst r2, #32768
8772 00d6 B8D0 beq .L563
4075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8773 .loc 1 4075 9 is_stmt 1 view .LVU3120
4075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8774 .loc 1 4075 17 is_stmt 0 view .LVU3121
8775 00d8 E26B ldr r2, [r4, #60]
4075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8776 .loc 1 4075 12 view .LVU3122
8777 00da 002A cmp r2, #0
8778 00dc B5D0 beq .L563
4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8779 .loc 1 4077 11 is_stmt 1 view .LVU3123
4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8780 .loc 1 4077 25 is_stmt 0 view .LVU3124
8781 00de 1A68 ldr r2, [r3]
4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8782 .loc 1 4077 31 view .LVU3125
8783 00e0 22F40042 bic r2, r2, #32768
8784 00e4 1A60 str r2, [r3]
4081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8785 .loc 1 4081 11 is_stmt 1 view .LVU3126
4081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 338
8786 .loc 1 4081 15 is_stmt 0 view .LVU3127
8787 00e6 E36B ldr r3, [r4, #60]
4081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8788 .loc 1 4081 43 view .LVU3128
8789 00e8 2E4A ldr r2, .L576+12
8790 00ea 1A65 str r2, [r3, #80]
4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8791 .loc 1 4084 11 is_stmt 1 view .LVU3129
4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8792 .loc 1 4084 15 is_stmt 0 view .LVU3130
8793 00ec E06B ldr r0, [r4, #60]
8794 00ee FFF7FEFF bl HAL_DMA_Abort_IT
8795 .LVL621:
4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8796 .loc 1 4084 14 discriminator 1 view .LVU3131
8797 00f2 0028 cmp r0, #0
8798 00f4 A9D0 beq .L563
4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8799 .loc 1 4087 13 is_stmt 1 view .LVU3132
4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8800 .loc 1 4087 17 is_stmt 0 view .LVU3133
8801 00f6 E06B ldr r0, [r4, #60]
4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8802 .loc 1 4087 25 view .LVU3134
8803 00f8 036D ldr r3, [r0, #80]
4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8804 .loc 1 4087 13 view .LVU3135
8805 00fa 9847 blx r3
8806 .LVL622:
8807 00fc A5E7 b .L563
8808 .L575:
4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8809 .loc 1 4094 7 is_stmt 1 view .LVU3136
4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8810 .loc 1 4094 16 is_stmt 0 view .LVU3137
8811 00fe 2368 ldr r3, [r4]
4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8812 .loc 1 4094 26 view .LVU3138
8813 0100 1A68 ldr r2, [r3]
4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8814 .loc 1 4094 10 view .LVU3139
8815 0102 12F4804F tst r2, #16384
8816 0106 A0D0 beq .L563
4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8817 .loc 1 4096 9 is_stmt 1 view .LVU3140
4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8818 .loc 1 4096 23 is_stmt 0 view .LVU3141
8819 0108 1A68 ldr r2, [r3]
4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8820 .loc 1 4096 29 view .LVU3142
8821 010a 22F48042 bic r2, r2, #16384
8822 010e 1A60 str r2, [r3]
4099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8823 .loc 1 4099 9 is_stmt 1 view .LVU3143
4099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8824 .loc 1 4099 17 is_stmt 0 view .LVU3144
8825 0110 A36B ldr r3, [r4, #56]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 339
4099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8826 .loc 1 4099 12 view .LVU3145
8827 0112 002B cmp r3, #0
8828 0114 99D0 beq .L563
4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8829 .loc 1 4103 11 is_stmt 1 view .LVU3146
4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8830 .loc 1 4103 43 is_stmt 0 view .LVU3147
8831 0116 234A ldr r2, .L576+12
8832 0118 1A65 str r2, [r3, #80]
4106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8833 .loc 1 4106 11 is_stmt 1 view .LVU3148
4106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8834 .loc 1 4106 15 is_stmt 0 view .LVU3149
8835 011a A06B ldr r0, [r4, #56]
8836 011c FFF7FEFF bl HAL_DMA_Abort_IT
8837 .LVL623:
4106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8838 .loc 1 4106 14 discriminator 1 view .LVU3150
8839 0120 0028 cmp r0, #0
8840 0122 92D0 beq .L563
4109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8841 .loc 1 4109 13 is_stmt 1 view .LVU3151
4109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8842 .loc 1 4109 17 is_stmt 0 view .LVU3152
8843 0124 A06B ldr r0, [r4, #56]
4109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8844 .loc 1 4109 25 view .LVU3153
8845 0126 036D ldr r3, [r0, #80]
4109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8846 .loc 1 4109 13 view .LVU3154
8847 0128 9847 blx r3
8848 .LVL624:
8849 012a 8EE7 b .L563
8850 .L564:
4152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8851 .loc 1 4152 7 is_stmt 1 view .LVU3155
4152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8852 .loc 1 4152 23 is_stmt 0 view .LVU3156
8853 012c 2823 movs r3, #40
8854 012e 84F84130 strb r3, [r4, #65]
4153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8855 .loc 1 4153 7 is_stmt 1 view .LVU3157
4153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8856 .loc 1 4153 23 is_stmt 0 view .LVU3158
8857 0132 0022 movs r2, #0
8858 0134 84F84220 strb r2, [r4, #66]
4156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8859 .loc 1 4156 7 is_stmt 1 view .LVU3159
4156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8860 .loc 1 4156 11 is_stmt 0 view .LVU3160
8861 0138 636C ldr r3, [r4, #68]
4156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8862 .loc 1 4156 23 view .LVU3161
8863 013a 43F08003 orr r3, r3, #128
8864 013e 6364 str r3, [r4, #68]
4159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 340
8865 .loc 1 4159 7 is_stmt 1 view .LVU3162
4159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8866 .loc 1 4159 7 view .LVU3163
8867 0140 84F84020 strb r2, [r4, #64]
4159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8868 .loc 1 4159 7 view .LVU3164
4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8869 .loc 1 4161 7 view .LVU3165
4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8870 .loc 1 4161 14 is_stmt 0 view .LVU3166
8871 0144 0125 movs r5, #1
8872 .LVL625:
4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8873 .loc 1 4161 14 view .LVU3167
8874 0146 23E0 b .L560
8875 .LVL626:
8876 .L565:
4167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8877 .loc 1 4167 7 is_stmt 1 view .LVU3168
4167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8878 .loc 1 4167 11 is_stmt 0 view .LVU3169
8879 0148 638D ldrh r3, [r4, #42]
8880 014a 9BB2 uxth r3, r3
4167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8881 .loc 1 4167 30 view .LVU3170
8882 014c 228D ldrh r2, [r4, #40]
4167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8883 .loc 1 4167 23 view .LVU3171
8884 014e 9B1A subs r3, r3, r2
8885 0150 9BB2 uxth r3, r3
8886 0152 6385 strh r3, [r4, #42] @ movhi
4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8887 .loc 1 4170 7 is_stmt 1 view .LVU3172
4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8888 .loc 1 4170 22 is_stmt 0 view .LVU3173
8889 0154 0023 movs r3, #0
8890 0156 2385 strh r3, [r4, #40] @ movhi
4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
8891 .loc 1 4187 5 is_stmt 1 view .LVU3174
4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
8892 .loc 1 4187 11 is_stmt 0 view .LVU3175
8893 0158 2268 ldr r2, [r4]
8894 015a 9369 ldr r3, [r2, #24]
8895 015c 03F00803 and r3, r3, #8
8896 .LVL627:
4188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8897 .loc 1 4188 5 is_stmt 1 view .LVU3176
4188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8898 .loc 1 4188 10 is_stmt 0 view .LVU3177
8899 0160 9169 ldr r1, [r2, #24]
4188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8900 .loc 1 4188 8 view .LVU3178
8901 0162 11F4803F tst r1, #65536
8902 0166 0DD1 bne .L567
8903 .LVL628:
8904 .L568:
4196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 341
8905 .loc 1 4196 5 is_stmt 1 view .LVU3179
4196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8906 .loc 1 4196 5 view .LVU3180
8907 0168 0023 movs r3, #0
8908 016a 84F84030 strb r3, [r4, #64]
4196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8909 .loc 1 4196 5 view .LVU3181
4199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8910 .loc 1 4199 5 view .LVU3182
4199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8911 .loc 1 4199 9 is_stmt 0 view .LVU3183
8912 016e 2268 ldr r2, [r4]
4199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8913 .loc 1 4199 19 view .LVU3184
8914 0170 1368 ldr r3, [r2]
4199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8915 .loc 1 4199 25 view .LVU3185
8916 0172 43F48043 orr r3, r3, #16384
8917 0176 1360 str r3, [r2]
4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8918 .loc 1 4205 5 is_stmt 1 view .LVU3186
8919 0178 4FF40041 mov r1, #32768
8920 017c 2046 mov r0, r4
8921 .LVL629:
4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8922 .loc 1 4205 5 is_stmt 0 view .LVU3187
8923 017e FFF7FEFF bl I2C_Enable_IRQ
8924 .LVL630:
4207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8925 .loc 1 4207 5 is_stmt 1 view .LVU3188
4207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8926 .loc 1 4207 12 is_stmt 0 view .LVU3189
8927 0182 05E0 b .L560
8928 .LVL631:
8929 .L567:
4188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8930 .loc 1 4188 54 discriminator 1 view .LVU3190
8931 0184 002B cmp r3, #0
8932 0186 EFD0 beq .L568
4192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8933 .loc 1 4192 7 is_stmt 1 view .LVU3191
8934 0188 0823 movs r3, #8
8935 .LVL632:
4192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8936 .loc 1 4192 7 is_stmt 0 view .LVU3192
8937 018a D361 str r3, [r2, #28]
8938 018c ECE7 b .L568
8939 .LVL633:
8940 .L569:
4211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8941 .loc 1 4211 12 view .LVU3193
8942 018e 0125 movs r5, #1
8943 .LVL634:
8944 .L560:
4213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8945 .loc 1 4213 1 view .LVU3194
8946 0190 2846 mov r0, r5
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 342
8947 0192 F8BD pop {r3, r4, r5, r6, r7, pc}
8948 .LVL635:
8949 .L570:
4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8950 .loc 1 4060 5 discriminator 1 view .LVU3195
8951 0194 0225 movs r5, #2
8952 .LVL636:
4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8953 .loc 1 4060 5 discriminator 1 view .LVU3196
8954 0196 FBE7 b .L560
8955 .L577:
8956 .align 2
8957 .L576:
8958 0198 00000000 .word I2C_Slave_ISR_DMA
8959 019c 00000000 .word I2C_DMASlaveTransmitCplt
8960 01a0 00000000 .word I2C_DMAError
8961 01a4 00000000 .word I2C_DMAAbort
8962 .cfi_endproc
8963 .LFE363:
8965 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits
8966 .align 1
8967 .global HAL_I2C_Slave_Seq_Receive_IT
8968 .syntax unified
8969 .thumb
8970 .thumb_func
8972 HAL_I2C_Slave_Seq_Receive_IT:
8973 .LVL637:
8974 .LFB364:
4227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
8975 .loc 1 4227 1 is_stmt 1 view -0
8976 .cfi_startproc
8977 @ args = 0, pretend = 0, frame = 0
8978 @ frame_needed = 0, uses_anonymous_args = 0
4227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
8979 .loc 1 4227 1 is_stmt 0 view .LVU3198
8980 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
8981 .cfi_def_cfa_offset 24
8982 .cfi_offset 3, -24
8983 .cfi_offset 4, -20
8984 .cfi_offset 5, -16
8985 .cfi_offset 6, -12
8986 .cfi_offset 7, -8
8987 .cfi_offset 14, -4
8988 0002 0446 mov r4, r0
4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8989 .loc 1 4229 3 is_stmt 1 view .LVU3199
4232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8990 .loc 1 4232 3 view .LVU3200
4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8991 .loc 1 4234 3 view .LVU3201
4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8992 .loc 1 4234 22 is_stmt 0 view .LVU3202
8993 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
8994 .LVL638:
4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8995 .loc 1 4234 6 view .LVU3203
8996 0008 00F02800 and r0, r0, #40
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 343
8997 000c 2828 cmp r0, #40
8998 000e 5FD1 bne .L583
8999 0010 0F46 mov r7, r1
9000 0012 1646 mov r6, r2
9001 0014 1D46 mov r5, r3
4236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9002 .loc 1 4236 5 is_stmt 1 view .LVU3204
4236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9003 .loc 1 4236 8 is_stmt 0 view .LVU3205
9004 0016 002A cmp r2, #0
9005 0018 18BF it ne
9006 001a 0029 cmpne r1, #0
9007 001c 04D1 bne .L580
4238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
9008 .loc 1 4238 7 is_stmt 1 view .LVU3206
4238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
9009 .loc 1 4238 23 is_stmt 0 view .LVU3207
9010 001e 4FF40073 mov r3, #512
9011 .LVL639:
4238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
9012 .loc 1 4238 23 view .LVU3208
9013 0022 6364 str r3, [r4, #68]
4239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9014 .loc 1 4239 7 is_stmt 1 view .LVU3209
4239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9015 .loc 1 4239 15 is_stmt 0 view .LVU3210
9016 0024 0120 movs r0, #1
9017 0026 54E0 b .L579
9018 .LVL640:
9019 .L580:
4243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9020 .loc 1 4243 5 is_stmt 1 view .LVU3211
9021 0028 48F20201 movw r1, #32770
9022 .LVL641:
4243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9023 .loc 1 4243 5 is_stmt 0 view .LVU3212
9024 002c 2046 mov r0, r4
9025 002e FFF7FEFF bl I2C_Disable_IRQ
9026 .LVL642:
4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9027 .loc 1 4246 5 is_stmt 1 view .LVU3213
4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9028 .loc 1 4246 5 view .LVU3214
9029 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
9030 0036 012B cmp r3, #1
9031 0038 4CD0 beq .L584
4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9032 .loc 1 4246 5 discriminator 2 view .LVU3215
9033 003a 0123 movs r3, #1
9034 003c 84F84030 strb r3, [r4, #64]
4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9035 .loc 1 4246 5 view .LVU3216
4250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9036 .loc 1 4250 5 view .LVU3217
4250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9037 .loc 1 4250 13 is_stmt 0 view .LVU3218
9038 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 344
4250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9039 .loc 1 4250 8 view .LVU3219
9040 0044 292B cmp r3, #41
9041 0046 28D0 beq .L586
9042 .L581:
4276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
9043 .loc 1 4276 5 is_stmt 1 view .LVU3220
4276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
9044 .loc 1 4276 21 is_stmt 0 view .LVU3221
9045 0048 2A23 movs r3, #42
9046 004a 84F84130 strb r3, [r4, #65]
4277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
9047 .loc 1 4277 5 is_stmt 1 view .LVU3222
4277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
9048 .loc 1 4277 21 is_stmt 0 view .LVU3223
9049 004e 2023 movs r3, #32
9050 0050 84F84230 strb r3, [r4, #66]
4278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9051 .loc 1 4278 5 is_stmt 1 view .LVU3224
4278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9052 .loc 1 4278 21 is_stmt 0 view .LVU3225
9053 0054 0023 movs r3, #0
9054 0056 6364 str r3, [r4, #68]
4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9055 .loc 1 4281 5 is_stmt 1 view .LVU3226
4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9056 .loc 1 4281 9 is_stmt 0 view .LVU3227
9057 0058 2268 ldr r2, [r4]
4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9058 .loc 1 4281 19 view .LVU3228
9059 005a 5368 ldr r3, [r2, #4]
4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9060 .loc 1 4281 25 view .LVU3229
9061 005c 23F40043 bic r3, r3, #32768
9062 0060 5360 str r3, [r2, #4]
4284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
9063 .loc 1 4284 5 is_stmt 1 view .LVU3230
4284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
9064 .loc 1 4284 23 is_stmt 0 view .LVU3231
9065 0062 6762 str r7, [r4, #36]
4285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
9066 .loc 1 4285 5 is_stmt 1 view .LVU3232
4285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
9067 .loc 1 4285 23 is_stmt 0 view .LVU3233
9068 0064 6685 strh r6, [r4, #42] @ movhi
4286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9069 .loc 1 4286 5 is_stmt 1 view .LVU3234
4286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9070 .loc 1 4286 29 is_stmt 0 view .LVU3235
9071 0066 638D ldrh r3, [r4, #42]
4286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9072 .loc 1 4286 23 view .LVU3236
9073 0068 2385 strh r3, [r4, #40] @ movhi
4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9074 .loc 1 4287 5 is_stmt 1 view .LVU3237
4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9075 .loc 1 4287 23 is_stmt 0 view .LVU3238
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 345
9076 006a E562 str r5, [r4, #44]
4288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9077 .loc 1 4288 5 is_stmt 1 view .LVU3239
4288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9078 .loc 1 4288 23 is_stmt 0 view .LVU3240
9079 006c 1A4B ldr r3, .L587
9080 006e 6363 str r3, [r4, #52]
4290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
9081 .loc 1 4290 5 is_stmt 1 view .LVU3241
4290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
9082 .loc 1 4290 11 is_stmt 0 view .LVU3242
9083 0070 2268 ldr r2, [r4]
9084 0072 9369 ldr r3, [r2, #24]
9085 0074 03F00803 and r3, r3, #8
9086 .LVL643:
4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9087 .loc 1 4291 5 is_stmt 1 view .LVU3243
4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9088 .loc 1 4291 10 is_stmt 0 view .LVU3244
9089 0078 9169 ldr r1, [r2, #24]
4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9090 .loc 1 4291 8 view .LVU3245
9091 007a 11F4803F tst r1, #65536
9092 007e 02D1 bne .L582
4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9093 .loc 1 4291 55 discriminator 1 view .LVU3246
9094 0080 0BB1 cbz r3, .L582
4295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9095 .loc 1 4295 7 is_stmt 1 view .LVU3247
9096 0082 0823 movs r3, #8
9097 .LVL644:
4295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9098 .loc 1 4295 7 is_stmt 0 view .LVU3248
9099 0084 D361 str r3, [r2, #28]
9100 .L582:
4299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9101 .loc 1 4299 5 is_stmt 1 view .LVU3249
4299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9102 .loc 1 4299 5 view .LVU3250
9103 0086 0025 movs r5, #0
9104 .LVL645:
4299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9105 .loc 1 4299 5 is_stmt 0 view .LVU3251
9106 0088 84F84050 strb r5, [r4, #64]
4299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9107 .loc 1 4299 5 is_stmt 1 view .LVU3252
4305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9108 .loc 1 4305 5 view .LVU3253
9109 008c 48F20201 movw r1, #32770
9110 0090 2046 mov r0, r4
9111 0092 FFF7FEFF bl I2C_Enable_IRQ
9112 .LVL646:
4307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9113 .loc 1 4307 5 view .LVU3254
4307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9114 .loc 1 4307 12 is_stmt 0 view .LVU3255
9115 0096 2846 mov r0, r5
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 346
9116 0098 1BE0 b .L579
9117 .LVL647:
9118 .L586:
4253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9119 .loc 1 4253 7 is_stmt 1 view .LVU3256
9120 009a 0121 movs r1, #1
9121 009c 2046 mov r0, r4
9122 009e FFF7FEFF bl I2C_Disable_IRQ
9123 .LVL648:
4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9124 .loc 1 4255 7 view .LVU3257
4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9125 .loc 1 4255 16 is_stmt 0 view .LVU3258
9126 00a2 2368 ldr r3, [r4]
4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9127 .loc 1 4255 26 view .LVU3259
9128 00a4 1A68 ldr r2, [r3]
4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9129 .loc 1 4255 10 view .LVU3260
9130 00a6 12F4804F tst r2, #16384
9131 00aa CDD0 beq .L581
4257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9132 .loc 1 4257 9 is_stmt 1 view .LVU3261
4257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9133 .loc 1 4257 23 is_stmt 0 view .LVU3262
9134 00ac 1A68 ldr r2, [r3]
4257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9135 .loc 1 4257 29 view .LVU3263
9136 00ae 22F48042 bic r2, r2, #16384
9137 00b2 1A60 str r2, [r3]
4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9138 .loc 1 4260 9 is_stmt 1 view .LVU3264
4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9139 .loc 1 4260 17 is_stmt 0 view .LVU3265
9140 00b4 A36B ldr r3, [r4, #56]
4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9141 .loc 1 4260 12 view .LVU3266
9142 00b6 002B cmp r3, #0
9143 00b8 C6D0 beq .L581
4264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9144 .loc 1 4264 11 is_stmt 1 view .LVU3267
4264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9145 .loc 1 4264 43 is_stmt 0 view .LVU3268
9146 00ba 084A ldr r2, .L587+4
9147 00bc 1A65 str r2, [r3, #80]
4267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9148 .loc 1 4267 11 is_stmt 1 view .LVU3269
4267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9149 .loc 1 4267 15 is_stmt 0 view .LVU3270
9150 00be A06B ldr r0, [r4, #56]
9151 00c0 FFF7FEFF bl HAL_DMA_Abort_IT
9152 .LVL649:
4267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9153 .loc 1 4267 14 discriminator 1 view .LVU3271
9154 00c4 0028 cmp r0, #0
9155 00c6 BFD0 beq .L581
4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 347
9156 .loc 1 4270 13 is_stmt 1 view .LVU3272
4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9157 .loc 1 4270 17 is_stmt 0 view .LVU3273
9158 00c8 A06B ldr r0, [r4, #56]
4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9159 .loc 1 4270 25 view .LVU3274
9160 00ca 036D ldr r3, [r0, #80]
4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9161 .loc 1 4270 13 view .LVU3275
9162 00cc 9847 blx r3
9163 .LVL650:
9164 00ce BBE7 b .L581
9165 .LVL651:
9166 .L583:
4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9167 .loc 1 4311 12 view .LVU3276
9168 00d0 0120 movs r0, #1
9169 .LVL652:
9170 .L579:
4313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9171 .loc 1 4313 1 view .LVU3277
9172 00d2 F8BD pop {r3, r4, r5, r6, r7, pc}
9173 .LVL653:
9174 .L584:
4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9175 .loc 1 4246 5 discriminator 1 view .LVU3278
9176 00d4 0220 movs r0, #2
9177 00d6 FCE7 b .L579
9178 .L588:
9179 .align 2
9180 .L587:
9181 00d8 00000000 .word I2C_Slave_ISR_IT
9182 00dc 00000000 .word I2C_DMAAbort
9183 .cfi_endproc
9184 .LFE364:
9186 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits
9187 .align 1
9188 .global HAL_I2C_Slave_Seq_Receive_DMA
9189 .syntax unified
9190 .thumb
9191 .thumb_func
9193 HAL_I2C_Slave_Seq_Receive_DMA:
9194 .LVL654:
9195 .LFB365:
4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9196 .loc 1 4327 1 is_stmt 1 view -0
9197 .cfi_startproc
9198 @ args = 0, pretend = 0, frame = 0
9199 @ frame_needed = 0, uses_anonymous_args = 0
4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9200 .loc 1 4327 1 is_stmt 0 view .LVU3280
9201 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
9202 .cfi_def_cfa_offset 24
9203 .cfi_offset 3, -24
9204 .cfi_offset 4, -20
9205 .cfi_offset 5, -16
9206 .cfi_offset 6, -12
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 348
9207 .cfi_offset 7, -8
9208 .cfi_offset 14, -4
9209 0002 0446 mov r4, r0
4329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
9210 .loc 1 4329 3 is_stmt 1 view .LVU3281
4330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9211 .loc 1 4330 3 view .LVU3282
4333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9212 .loc 1 4333 3 view .LVU3283
4335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9213 .loc 1 4335 3 view .LVU3284
4335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9214 .loc 1 4335 22 is_stmt 0 view .LVU3285
9215 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
9216 .LVL655:
4335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9217 .loc 1 4335 6 view .LVU3286
9218 0008 00F02800 and r0, r0, #40
9219 000c 2828 cmp r0, #40
9220 000e 40F0BE80 bne .L599
9221 0012 0F46 mov r7, r1
9222 0014 1646 mov r6, r2
9223 0016 1D46 mov r5, r3
4337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9224 .loc 1 4337 5 is_stmt 1 view .LVU3287
4337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9225 .loc 1 4337 8 is_stmt 0 view .LVU3288
9226 0018 002A cmp r2, #0
9227 001a 18BF it ne
9228 001c 0029 cmpne r1, #0
9229 001e 04D1 bne .L591
4339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
9230 .loc 1 4339 7 is_stmt 1 view .LVU3289
4339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
9231 .loc 1 4339 23 is_stmt 0 view .LVU3290
9232 0020 4FF40073 mov r3, #512
9233 .LVL656:
4339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
9234 .loc 1 4339 23 view .LVU3291
9235 0024 6364 str r3, [r4, #68]
4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9236 .loc 1 4340 7 is_stmt 1 view .LVU3292
4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9237 .loc 1 4340 15 is_stmt 0 view .LVU3293
9238 0026 0125 movs r5, #1
9239 .LVL657:
4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9240 .loc 1 4340 15 view .LVU3294
9241 0028 B2E0 b .L590
9242 .LVL658:
9243 .L591:
4344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9244 .loc 1 4344 5 is_stmt 1 view .LVU3295
9245 002a 48F20201 movw r1, #32770
9246 .LVL659:
4344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9247 .loc 1 4344 5 is_stmt 0 view .LVU3296
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 349
9248 002e 2046 mov r0, r4
9249 0030 FFF7FEFF bl I2C_Disable_IRQ
9250 .LVL660:
4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9251 .loc 1 4347 5 is_stmt 1 view .LVU3297
4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9252 .loc 1 4347 5 view .LVU3298
9253 0034 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
9254 0038 012B cmp r3, #1
9255 003a 00F0AB80 beq .L600
4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9256 .loc 1 4347 5 discriminator 2 view .LVU3299
9257 003e 0123 movs r3, #1
9258 0040 84F84030 strb r3, [r4, #64]
4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9259 .loc 1 4347 5 view .LVU3300
4351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9260 .loc 1 4351 5 view .LVU3301
4351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9261 .loc 1 4351 13 is_stmt 0 view .LVU3302
9262 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
4351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9263 .loc 1 4351 8 view .LVU3303
9264 0048 292B cmp r3, #41
9265 004a 3CD0 beq .L603
4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9266 .loc 1 4376 10 is_stmt 1 view .LVU3304
4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9267 .loc 1 4376 18 is_stmt 0 view .LVU3305
9268 004c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9269 .loc 1 4376 13 view .LVU3306
9270 0050 2A2B cmp r3, #42
9271 0052 54D0 beq .L604
9272 .L593:
4401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9273 .loc 1 4401 5 is_stmt 1 view .LVU3307
4403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
9274 .loc 1 4403 5 view .LVU3308
4403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
9275 .loc 1 4403 21 is_stmt 0 view .LVU3309
9276 0054 2A23 movs r3, #42
9277 0056 84F84130 strb r3, [r4, #65]
4404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
9278 .loc 1 4404 5 is_stmt 1 view .LVU3310
4404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
9279 .loc 1 4404 21 is_stmt 0 view .LVU3311
9280 005a 2023 movs r3, #32
9281 005c 84F84230 strb r3, [r4, #66]
4405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9282 .loc 1 4405 5 is_stmt 1 view .LVU3312
4405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9283 .loc 1 4405 21 is_stmt 0 view .LVU3313
9284 0060 0023 movs r3, #0
9285 0062 6364 str r3, [r4, #68]
4408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9286 .loc 1 4408 5 is_stmt 1 view .LVU3314
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 350
4408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9287 .loc 1 4408 9 is_stmt 0 view .LVU3315
9288 0064 2268 ldr r2, [r4]
4408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9289 .loc 1 4408 19 view .LVU3316
9290 0066 5368 ldr r3, [r2, #4]
4408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9291 .loc 1 4408 25 view .LVU3317
9292 0068 23F40043 bic r3, r3, #32768
9293 006c 5360 str r3, [r2, #4]
4411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
9294 .loc 1 4411 5 is_stmt 1 view .LVU3318
4411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
9295 .loc 1 4411 23 is_stmt 0 view .LVU3319
9296 006e 6762 str r7, [r4, #36]
4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
9297 .loc 1 4412 5 is_stmt 1 view .LVU3320
4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
9298 .loc 1 4412 23 is_stmt 0 view .LVU3321
9299 0070 6685 strh r6, [r4, #42] @ movhi
4413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9300 .loc 1 4413 5 is_stmt 1 view .LVU3322
4413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9301 .loc 1 4413 29 is_stmt 0 view .LVU3323
9302 0072 638D ldrh r3, [r4, #42]
4413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9303 .loc 1 4413 23 view .LVU3324
9304 0074 2385 strh r3, [r4, #40] @ movhi
4414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
9305 .loc 1 4414 5 is_stmt 1 view .LVU3325
4414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
9306 .loc 1 4414 23 is_stmt 0 view .LVU3326
9307 0076 E562 str r5, [r4, #44]
4415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9308 .loc 1 4415 5 is_stmt 1 view .LVU3327
4415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9309 .loc 1 4415 23 is_stmt 0 view .LVU3328
9310 0078 474B ldr r3, .L605
9311 007a 6363 str r3, [r4, #52]
4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9312 .loc 1 4417 5 is_stmt 1 view .LVU3329
4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9313 .loc 1 4417 13 is_stmt 0 view .LVU3330
9314 007c E36B ldr r3, [r4, #60]
4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9315 .loc 1 4417 8 view .LVU3331
9316 007e 002B cmp r3, #0
9317 0080 54D0 beq .L594
4420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9318 .loc 1 4420 7 is_stmt 1 view .LVU3332
4420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9319 .loc 1 4420 38 is_stmt 0 view .LVU3333
9320 0082 464A ldr r2, .L605+4
9321 0084 DA63 str r2, [r3, #60]
4423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9322 .loc 1 4423 7 is_stmt 1 view .LVU3334
4423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 351
9323 .loc 1 4423 11 is_stmt 0 view .LVU3335
9324 0086 E36B ldr r3, [r4, #60]
4423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9325 .loc 1 4423 39 view .LVU3336
9326 0088 454A ldr r2, .L605+8
9327 008a DA64 str r2, [r3, #76]
4426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
9328 .loc 1 4426 7 is_stmt 1 view .LVU3337
4426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
9329 .loc 1 4426 11 is_stmt 0 view .LVU3338
9330 008c E26B ldr r2, [r4, #60]
4426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
9331 .loc 1 4426 42 view .LVU3339
9332 008e 0023 movs r3, #0
9333 0090 1364 str r3, [r2, #64]
4427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9334 .loc 1 4427 7 is_stmt 1 view .LVU3340
4427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9335 .loc 1 4427 11 is_stmt 0 view .LVU3341
9336 0092 E26B ldr r2, [r4, #60]
4427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9337 .loc 1 4427 39 view .LVU3342
9338 0094 1365 str r3, [r2, #80]
4430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
9339 .loc 1 4430 7 is_stmt 1 view .LVU3343
4430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
9340 .loc 1 4430 69 is_stmt 0 view .LVU3344
9341 0096 2168 ldr r1, [r4]
4430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
9342 .loc 1 4430 23 view .LVU3345
9343 0098 238D ldrh r3, [r4, #40]
9344 009a 3A46 mov r2, r7
9345 009c 2431 adds r1, r1, #36
9346 009e E06B ldr r0, [r4, #60]
9347 00a0 FFF7FEFF bl HAL_DMA_Start_IT
9348 .LVL661:
4448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9349 .loc 1 4448 5 is_stmt 1 view .LVU3346
4448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9350 .loc 1 4448 8 is_stmt 0 view .LVU3347
9351 00a4 0546 mov r5, r0
9352 .LVL662:
4448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9353 .loc 1 4448 8 view .LVU3348
9354 00a6 0028 cmp r0, #0
9355 00a8 4ED0 beq .L595
4459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9356 .loc 1 4459 7 is_stmt 1 view .LVU3349
4459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9357 .loc 1 4459 23 is_stmt 0 view .LVU3350
9358 00aa 2823 movs r3, #40
9359 00ac 84F84130 strb r3, [r4, #65]
4460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9360 .loc 1 4460 7 is_stmt 1 view .LVU3351
4460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9361 .loc 1 4460 23 is_stmt 0 view .LVU3352
9362 00b0 0022 movs r2, #0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 352
9363 00b2 84F84220 strb r2, [r4, #66]
4463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9364 .loc 1 4463 7 is_stmt 1 view .LVU3353
4463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9365 .loc 1 4463 11 is_stmt 0 view .LVU3354
9366 00b6 636C ldr r3, [r4, #68]
4463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9367 .loc 1 4463 23 view .LVU3355
9368 00b8 43F01003 orr r3, r3, #16
9369 00bc 6364 str r3, [r4, #68]
4466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9370 .loc 1 4466 7 is_stmt 1 view .LVU3356
4466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9371 .loc 1 4466 7 view .LVU3357
9372 00be 84F84020 strb r2, [r4, #64]
4466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9373 .loc 1 4466 7 view .LVU3358
4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9374 .loc 1 4468 7 view .LVU3359
4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9375 .loc 1 4468 14 is_stmt 0 view .LVU3360
9376 00c2 0125 movs r5, #1
9377 00c4 64E0 b .L590
9378 .LVL663:
9379 .L603:
4354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9380 .loc 1 4354 7 is_stmt 1 view .LVU3361
9381 00c6 0121 movs r1, #1
9382 00c8 2046 mov r0, r4
9383 00ca FFF7FEFF bl I2C_Disable_IRQ
9384 .LVL664:
4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9385 .loc 1 4356 7 view .LVU3362
4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9386 .loc 1 4356 16 is_stmt 0 view .LVU3363
9387 00ce 2368 ldr r3, [r4]
4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9388 .loc 1 4356 26 view .LVU3364
9389 00d0 1A68 ldr r2, [r3]
4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9390 .loc 1 4356 10 view .LVU3365
9391 00d2 12F4804F tst r2, #16384
9392 00d6 BDD0 beq .L593
4359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9393 .loc 1 4359 9 is_stmt 1 view .LVU3366
4359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9394 .loc 1 4359 17 is_stmt 0 view .LVU3367
9395 00d8 A26B ldr r2, [r4, #56]
4359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9396 .loc 1 4359 12 view .LVU3368
9397 00da 002A cmp r2, #0
9398 00dc BAD0 beq .L593
4361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9399 .loc 1 4361 11 is_stmt 1 view .LVU3369
4361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9400 .loc 1 4361 25 is_stmt 0 view .LVU3370
9401 00de 1A68 ldr r2, [r3]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 353
4361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9402 .loc 1 4361 31 view .LVU3371
9403 00e0 22F48042 bic r2, r2, #16384
9404 00e4 1A60 str r2, [r3]
4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9405 .loc 1 4365 11 is_stmt 1 view .LVU3372
4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9406 .loc 1 4365 15 is_stmt 0 view .LVU3373
9407 00e6 A36B ldr r3, [r4, #56]
4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9408 .loc 1 4365 43 view .LVU3374
9409 00e8 2E4A ldr r2, .L605+12
9410 00ea 1A65 str r2, [r3, #80]
4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9411 .loc 1 4368 11 is_stmt 1 view .LVU3375
4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9412 .loc 1 4368 15 is_stmt 0 view .LVU3376
9413 00ec A06B ldr r0, [r4, #56]
9414 00ee FFF7FEFF bl HAL_DMA_Abort_IT
9415 .LVL665:
4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9416 .loc 1 4368 14 discriminator 1 view .LVU3377
9417 00f2 0028 cmp r0, #0
9418 00f4 AED0 beq .L593
4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9419 .loc 1 4371 13 is_stmt 1 view .LVU3378
4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9420 .loc 1 4371 17 is_stmt 0 view .LVU3379
9421 00f6 A06B ldr r0, [r4, #56]
4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9422 .loc 1 4371 25 view .LVU3380
9423 00f8 036D ldr r3, [r0, #80]
4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9424 .loc 1 4371 13 view .LVU3381
9425 00fa 9847 blx r3
9426 .LVL666:
9427 00fc AAE7 b .L593
9428 .L604:
4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9429 .loc 1 4378 7 is_stmt 1 view .LVU3382
4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9430 .loc 1 4378 16 is_stmt 0 view .LVU3383
9431 00fe 2368 ldr r3, [r4]
4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9432 .loc 1 4378 26 view .LVU3384
9433 0100 1A68 ldr r2, [r3]
4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9434 .loc 1 4378 10 view .LVU3385
9435 0102 12F4004F tst r2, #32768
9436 0106 A5D0 beq .L593
4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9437 .loc 1 4380 9 is_stmt 1 view .LVU3386
4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9438 .loc 1 4380 23 is_stmt 0 view .LVU3387
9439 0108 1A68 ldr r2, [r3]
4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9440 .loc 1 4380 29 view .LVU3388
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 354
9441 010a 22F40042 bic r2, r2, #32768
9442 010e 1A60 str r2, [r3]
4383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9443 .loc 1 4383 9 is_stmt 1 view .LVU3389
4383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9444 .loc 1 4383 17 is_stmt 0 view .LVU3390
9445 0110 E36B ldr r3, [r4, #60]
4383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9446 .loc 1 4383 12 view .LVU3391
9447 0112 002B cmp r3, #0
9448 0114 9ED0 beq .L593
4387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9449 .loc 1 4387 11 is_stmt 1 view .LVU3392
4387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9450 .loc 1 4387 43 is_stmt 0 view .LVU3393
9451 0116 234A ldr r2, .L605+12
9452 0118 1A65 str r2, [r3, #80]
4390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9453 .loc 1 4390 11 is_stmt 1 view .LVU3394
4390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9454 .loc 1 4390 15 is_stmt 0 view .LVU3395
9455 011a E06B ldr r0, [r4, #60]
9456 011c FFF7FEFF bl HAL_DMA_Abort_IT
9457 .LVL667:
4390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9458 .loc 1 4390 14 discriminator 1 view .LVU3396
9459 0120 0028 cmp r0, #0
9460 0122 97D0 beq .L593
4393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9461 .loc 1 4393 13 is_stmt 1 view .LVU3397
4393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9462 .loc 1 4393 17 is_stmt 0 view .LVU3398
9463 0124 E06B ldr r0, [r4, #60]
4393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9464 .loc 1 4393 25 view .LVU3399
9465 0126 036D ldr r3, [r0, #80]
4393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9466 .loc 1 4393 13 view .LVU3400
9467 0128 9847 blx r3
9468 .LVL668:
9469 012a 93E7 b .L593
9470 .L594:
4436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9471 .loc 1 4436 7 is_stmt 1 view .LVU3401
4436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9472 .loc 1 4436 23 is_stmt 0 view .LVU3402
9473 012c 2823 movs r3, #40
9474 012e 84F84130 strb r3, [r4, #65]
4437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9475 .loc 1 4437 7 is_stmt 1 view .LVU3403
4437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9476 .loc 1 4437 23 is_stmt 0 view .LVU3404
9477 0132 0022 movs r2, #0
9478 0134 84F84220 strb r2, [r4, #66]
4440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9479 .loc 1 4440 7 is_stmt 1 view .LVU3405
4440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 355
9480 .loc 1 4440 11 is_stmt 0 view .LVU3406
9481 0138 636C ldr r3, [r4, #68]
4440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9482 .loc 1 4440 23 view .LVU3407
9483 013a 43F08003 orr r3, r3, #128
9484 013e 6364 str r3, [r4, #68]
4443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9485 .loc 1 4443 7 is_stmt 1 view .LVU3408
4443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9486 .loc 1 4443 7 view .LVU3409
9487 0140 84F84020 strb r2, [r4, #64]
4443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9488 .loc 1 4443 7 view .LVU3410
4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9489 .loc 1 4445 7 view .LVU3411
4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9490 .loc 1 4445 14 is_stmt 0 view .LVU3412
9491 0144 0125 movs r5, #1
9492 .LVL669:
4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9493 .loc 1 4445 14 view .LVU3413
9494 0146 23E0 b .L590
9495 .LVL670:
9496 .L595:
4451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9497 .loc 1 4451 7 is_stmt 1 view .LVU3414
4451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9498 .loc 1 4451 11 is_stmt 0 view .LVU3415
9499 0148 638D ldrh r3, [r4, #42]
9500 014a 9BB2 uxth r3, r3
4451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9501 .loc 1 4451 30 view .LVU3416
9502 014c 228D ldrh r2, [r4, #40]
4451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9503 .loc 1 4451 23 view .LVU3417
9504 014e 9B1A subs r3, r3, r2
9505 0150 9BB2 uxth r3, r3
9506 0152 6385 strh r3, [r4, #42] @ movhi
4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9507 .loc 1 4454 7 is_stmt 1 view .LVU3418
4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9508 .loc 1 4454 22 is_stmt 0 view .LVU3419
9509 0154 0023 movs r3, #0
9510 0156 2385 strh r3, [r4, #40] @ movhi
4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
9511 .loc 1 4471 5 is_stmt 1 view .LVU3420
4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
9512 .loc 1 4471 11 is_stmt 0 view .LVU3421
9513 0158 2268 ldr r2, [r4]
9514 015a 9369 ldr r3, [r2, #24]
9515 015c 03F00803 and r3, r3, #8
9516 .LVL671:
4472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9517 .loc 1 4472 5 is_stmt 1 view .LVU3422
4472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9518 .loc 1 4472 10 is_stmt 0 view .LVU3423
9519 0160 9169 ldr r1, [r2, #24]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 356
4472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9520 .loc 1 4472 8 view .LVU3424
9521 0162 11F4803F tst r1, #65536
9522 0166 0DD0 beq .L597
9523 .LVL672:
9524 .L598:
4480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9525 .loc 1 4480 5 is_stmt 1 view .LVU3425
4480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9526 .loc 1 4480 5 view .LVU3426
9527 0168 0023 movs r3, #0
9528 016a 84F84030 strb r3, [r4, #64]
4480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9529 .loc 1 4480 5 view .LVU3427
4483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9530 .loc 1 4483 5 view .LVU3428
4483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9531 .loc 1 4483 9 is_stmt 0 view .LVU3429
9532 016e 2268 ldr r2, [r4]
4483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9533 .loc 1 4483 19 view .LVU3430
9534 0170 1368 ldr r3, [r2]
4483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9535 .loc 1 4483 25 view .LVU3431
9536 0172 43F40043 orr r3, r3, #32768
9537 0176 1360 str r3, [r2]
4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9538 .loc 1 4489 5 is_stmt 1 view .LVU3432
9539 0178 48F20201 movw r1, #32770
9540 017c 2046 mov r0, r4
9541 .LVL673:
4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9542 .loc 1 4489 5 is_stmt 0 view .LVU3433
9543 017e FFF7FEFF bl I2C_Enable_IRQ
9544 .LVL674:
4491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9545 .loc 1 4491 5 is_stmt 1 view .LVU3434
4491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9546 .loc 1 4491 12 is_stmt 0 view .LVU3435
9547 0182 05E0 b .L590
9548 .LVL675:
9549 .L597:
4472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9550 .loc 1 4472 55 discriminator 1 view .LVU3436
9551 0184 002B cmp r3, #0
9552 0186 EFD0 beq .L598
4476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9553 .loc 1 4476 7 is_stmt 1 view .LVU3437
9554 0188 0823 movs r3, #8
9555 .LVL676:
4476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9556 .loc 1 4476 7 is_stmt 0 view .LVU3438
9557 018a D361 str r3, [r2, #28]
9558 018c ECE7 b .L598
9559 .LVL677:
9560 .L599:
4495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 357
9561 .loc 1 4495 12 view .LVU3439
9562 018e 0125 movs r5, #1
9563 .LVL678:
9564 .L590:
4497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9565 .loc 1 4497 1 view .LVU3440
9566 0190 2846 mov r0, r5
9567 0192 F8BD pop {r3, r4, r5, r6, r7, pc}
9568 .LVL679:
9569 .L600:
4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9570 .loc 1 4347 5 discriminator 1 view .LVU3441
9571 0194 0225 movs r5, #2
9572 .LVL680:
4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9573 .loc 1 4347 5 discriminator 1 view .LVU3442
9574 0196 FBE7 b .L590
9575 .L606:
9576 .align 2
9577 .L605:
9578 0198 00000000 .word I2C_Slave_ISR_DMA
9579 019c 00000000 .word I2C_DMASlaveReceiveCplt
9580 01a0 00000000 .word I2C_DMAError
9581 01a4 00000000 .word I2C_DMAAbort
9582 .cfi_endproc
9583 .LFE365:
9585 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits
9586 .align 1
9587 .global HAL_I2C_EnableListen_IT
9588 .syntax unified
9589 .thumb
9590 .thumb_func
9592 HAL_I2C_EnableListen_IT:
9593 .LVL681:
9594 .LFB366:
4506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
9595 .loc 1 4506 1 is_stmt 1 view -0
9596 .cfi_startproc
9597 @ args = 0, pretend = 0, frame = 0
9598 @ frame_needed = 0, uses_anonymous_args = 0
4506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
9599 .loc 1 4506 1 is_stmt 0 view .LVU3444
9600 0000 08B5 push {r3, lr}
9601 .cfi_def_cfa_offset 8
9602 .cfi_offset 3, -8
9603 .cfi_offset 14, -4
4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9604 .loc 1 4507 3 is_stmt 1 view .LVU3445
4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9605 .loc 1 4507 11 is_stmt 0 view .LVU3446
9606 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9607 .loc 1 4507 6 view .LVU3447
9608 0006 202B cmp r3, #32
9609 0008 01D0 beq .L611
4519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9610 .loc 1 4519 12 view .LVU3448
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 358
9611 000a 0220 movs r0, #2
9612 .LVL682:
9613 .L608:
4521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9614 .loc 1 4521 1 view .LVU3449
9615 000c 08BD pop {r3, pc}
9616 .LVL683:
9617 .L611:
4509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9618 .loc 1 4509 5 is_stmt 1 view .LVU3450
4509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9619 .loc 1 4509 17 is_stmt 0 view .LVU3451
9620 000e 2823 movs r3, #40
9621 0010 80F84130 strb r3, [r0, #65]
4510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9622 .loc 1 4510 5 is_stmt 1 view .LVU3452
4510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9623 .loc 1 4510 19 is_stmt 0 view .LVU3453
9624 0014 034B ldr r3, .L612
9625 0016 4363 str r3, [r0, #52]
4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9626 .loc 1 4513 5 is_stmt 1 view .LVU3454
9627 0018 4FF40041 mov r1, #32768
9628 001c FFF7FEFF bl I2C_Enable_IRQ
9629 .LVL684:
4515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9630 .loc 1 4515 5 view .LVU3455
4515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9631 .loc 1 4515 12 is_stmt 0 view .LVU3456
9632 0020 0020 movs r0, #0
9633 0022 F3E7 b .L608
9634 .L613:
9635 .align 2
9636 .L612:
9637 0024 00000000 .word I2C_Slave_ISR_IT
9638 .cfi_endproc
9639 .LFE366:
9641 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits
9642 .align 1
9643 .global HAL_I2C_DisableListen_IT
9644 .syntax unified
9645 .thumb
9646 .thumb_func
9648 HAL_I2C_DisableListen_IT:
9649 .LVL685:
9650 .LFB367:
4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9651 .loc 1 4530 1 is_stmt 1 view -0
9652 .cfi_startproc
9653 @ args = 0, pretend = 0, frame = 0
9654 @ frame_needed = 0, uses_anonymous_args = 0
4532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9655 .loc 1 4532 3 view .LVU3458
4535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9656 .loc 1 4535 3 view .LVU3459
4535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9657 .loc 1 4535 11 is_stmt 0 view .LVU3460
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 359
9658 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
4535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9659 .loc 1 4535 6 view .LVU3461
9660 0004 282B cmp r3, #40
9661 0006 01D0 beq .L621
4550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9662 .loc 1 4550 12 view .LVU3462
9663 0008 0220 movs r0, #2
9664 .LVL686:
4552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9665 .loc 1 4552 1 view .LVU3463
9666 000a 7047 bx lr
9667 .LVL687:
9668 .L621:
4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9669 .loc 1 4530 1 view .LVU3464
9670 000c 10B5 push {r4, lr}
9671 .cfi_def_cfa_offset 8
9672 .cfi_offset 4, -8
9673 .cfi_offset 14, -4
4537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
9674 .loc 1 4537 5 is_stmt 1 view .LVU3465
4537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
9675 .loc 1 4537 26 is_stmt 0 view .LVU3466
9676 000e 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2
9677 .LVL688:
4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9678 .loc 1 4538 5 is_stmt 1 view .LVU3467
4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9679 .loc 1 4538 48 is_stmt 0 view .LVU3468
9680 0012 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2
4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9681 .loc 1 4538 31 view .LVU3469
9682 0016 02F00302 and r2, r2, #3
9683 .LVL689:
4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9684 .loc 1 4538 31 view .LVU3470
9685 001a 1343 orrs r3, r3, r2
4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9686 .loc 1 4538 25 view .LVU3471
9687 001c 0363 str r3, [r0, #48]
4539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9688 .loc 1 4539 5 is_stmt 1 view .LVU3472
4539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9689 .loc 1 4539 17 is_stmt 0 view .LVU3473
9690 001e 2023 movs r3, #32
9691 0020 80F84130 strb r3, [r0, #65]
4540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
9692 .loc 1 4540 5 is_stmt 1 view .LVU3474
4540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
9693 .loc 1 4540 16 is_stmt 0 view .LVU3475
9694 0024 0024 movs r4, #0
9695 0026 80F84240 strb r4, [r0, #66]
4541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9696 .loc 1 4541 5 is_stmt 1 view .LVU3476
4541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9697 .loc 1 4541 19 is_stmt 0 view .LVU3477
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 360
9698 002a 4463 str r4, [r0, #52]
4544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9699 .loc 1 4544 5 is_stmt 1 view .LVU3478
9700 002c 4FF40041 mov r1, #32768
9701 0030 FFF7FEFF bl I2C_Disable_IRQ
9702 .LVL690:
4546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9703 .loc 1 4546 5 view .LVU3479
4546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9704 .loc 1 4546 12 is_stmt 0 view .LVU3480
9705 0034 2046 mov r0, r4
4552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9706 .loc 1 4552 1 view .LVU3481
9707 0036 10BD pop {r4, pc}
9708 .cfi_endproc
9709 .LFE367:
9711 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits
9712 .align 1
9713 .global HAL_I2C_Master_Abort_IT
9714 .syntax unified
9715 .thumb
9716 .thumb_func
9718 HAL_I2C_Master_Abort_IT:
9719 .LVL691:
9720 .LFB368:
4563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER)
9721 .loc 1 4563 1 is_stmt 1 view -0
9722 .cfi_startproc
9723 @ args = 0, pretend = 0, frame = 0
9724 @ frame_needed = 0, uses_anonymous_args = 0
4564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9725 .loc 1 4564 3 view .LVU3483
4564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9726 .loc 1 4564 11 is_stmt 0 view .LVU3484
9727 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2
4564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9728 .loc 1 4564 6 view .LVU3485
9729 0004 102B cmp r3, #16
9730 0006 34D1 bne .L626
4563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER)
9731 .loc 1 4563 1 view .LVU3486
9732 0008 30B5 push {r4, r5, lr}
9733 .cfi_def_cfa_offset 12
9734 .cfi_offset 4, -12
9735 .cfi_offset 5, -8
9736 .cfi_offset 14, -4
9737 000a 83B0 sub sp, sp, #12
9738 .cfi_def_cfa_offset 24
9739 000c 0446 mov r4, r0
9740 000e 0D46 mov r5, r1
4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9741 .loc 1 4567 5 is_stmt 1 view .LVU3487
4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9742 .loc 1 4567 5 view .LVU3488
9743 0010 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
9744 0014 012B cmp r3, #1
9745 0016 2ED0 beq .L627
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 361
4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9746 .loc 1 4567 5 discriminator 2 view .LVU3489
9747 0018 0123 movs r3, #1
9748 001a 80F84030 strb r3, [r0, #64]
4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9749 .loc 1 4567 5 view .LVU3490
4570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9750 .loc 1 4570 5 view .LVU3491
4570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9751 .loc 1 4570 13 is_stmt 0 view .LVU3492
9752 001e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
4570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9753 .loc 1 4570 8 view .LVU3493
9754 0022 212B cmp r3, #33
9755 0024 19D0 beq .L632
4575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9756 .loc 1 4575 10 is_stmt 1 view .LVU3494
4575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9757 .loc 1 4575 18 is_stmt 0 view .LVU3495
9758 0026 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
4575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9759 .loc 1 4575 13 view .LVU3496
9760 002a 222B cmp r3, #34
9761 002c 1BD0 beq .L633
9762 .LVL692:
9763 .L625:
4583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9764 .loc 1 4583 5 is_stmt 1 view .LVU3497
4586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9765 .loc 1 4586 5 view .LVU3498
4586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9766 .loc 1 4586 17 is_stmt 0 view .LVU3499
9767 002e 6023 movs r3, #96
9768 0030 84F84130 strb r3, [r4, #65]
4590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9769 .loc 1 4590 5 is_stmt 1 view .LVU3500
9770 0034 114B ldr r3, .L634
9771 0036 0093 str r3, [sp]
9772 0038 4FF00073 mov r3, #33554432
9773 003c 0122 movs r2, #1
9774 003e 2946 mov r1, r5
9775 0040 2046 mov r0, r4
9776 0042 FFF7FEFF bl I2C_TransferConfig
9777 .LVL693:
4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9778 .loc 1 4593 5 view .LVU3501
4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9779 .loc 1 4593 5 view .LVU3502
9780 0046 0025 movs r5, #0
9781 .LVL694:
4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9782 .loc 1 4593 5 is_stmt 0 view .LVU3503
9783 0048 84F84050 strb r5, [r4, #64]
4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9784 .loc 1 4593 5 is_stmt 1 view .LVU3504
4598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9785 .loc 1 4598 5 view .LVU3505
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 362
9786 004c 2021 movs r1, #32
9787 004e 2046 mov r0, r4
9788 0050 FFF7FEFF bl I2C_Enable_IRQ
9789 .LVL695:
4600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9790 .loc 1 4600 5 view .LVU3506
4600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9791 .loc 1 4600 12 is_stmt 0 view .LVU3507
9792 0054 2846 mov r0, r5
9793 .L623:
4608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9794 .loc 1 4608 1 view .LVU3508
9795 0056 03B0 add sp, sp, #12
9796 .cfi_remember_state
9797 .cfi_def_cfa_offset 12
9798 @ sp needed
9799 0058 30BD pop {r4, r5, pc}
9800 .LVL696:
9801 .L632:
9802 .cfi_restore_state
4572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9803 .loc 1 4572 7 is_stmt 1 view .LVU3509
9804 005a 0121 movs r1, #1
9805 .LVL697:
4572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9806 .loc 1 4572 7 is_stmt 0 view .LVU3510
9807 005c FFF7FEFF bl I2C_Disable_IRQ
9808 .LVL698:
4573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9809 .loc 1 4573 7 is_stmt 1 view .LVU3511
4573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9810 .loc 1 4573 27 is_stmt 0 view .LVU3512
9811 0060 1123 movs r3, #17
9812 0062 2363 str r3, [r4, #48]
9813 0064 E3E7 b .L625
9814 .LVL699:
9815 .L633:
4577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9816 .loc 1 4577 7 is_stmt 1 view .LVU3513
9817 0066 0221 movs r1, #2
9818 .LVL700:
4577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9819 .loc 1 4577 7 is_stmt 0 view .LVU3514
9820 0068 FFF7FEFF bl I2C_Disable_IRQ
9821 .LVL701:
4578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9822 .loc 1 4578 7 is_stmt 1 view .LVU3515
4578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9823 .loc 1 4578 27 is_stmt 0 view .LVU3516
9824 006c 1223 movs r3, #18
9825 006e 2363 str r3, [r4, #48]
9826 0070 DDE7 b .L625
9827 .LVL702:
9828 .L626:
9829 .cfi_def_cfa_offset 0
9830 .cfi_restore 4
9831 .cfi_restore 5
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 363
9832 .cfi_restore 14
4606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9833 .loc 1 4606 12 view .LVU3517
9834 0072 0120 movs r0, #1
9835 .LVL703:
4608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9836 .loc 1 4608 1 view .LVU3518
9837 0074 7047 bx lr
9838 .LVL704:
9839 .L627:
9840 .cfi_def_cfa_offset 24
9841 .cfi_offset 4, -12
9842 .cfi_offset 5, -8
9843 .cfi_offset 14, -4
4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9844 .loc 1 4567 5 discriminator 1 view .LVU3519
9845 0076 0220 movs r0, #2
9846 .LVL705:
4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9847 .loc 1 4567 5 discriminator 1 view .LVU3520
9848 0078 EDE7 b .L623
9849 .L635:
9850 007a 00BF .align 2
9851 .L634:
9852 007c 00400080 .word -2147467264
9853 .cfi_endproc
9854 .LFE368:
9856 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits
9857 .align 1
9858 .global HAL_I2C_EV_IRQHandler
9859 .syntax unified
9860 .thumb
9861 .thumb_func
9863 HAL_I2C_EV_IRQHandler:
9864 .LVL706:
9865 .LFB369:
4625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
9866 .loc 1 4625 1 is_stmt 1 view -0
9867 .cfi_startproc
9868 @ args = 0, pretend = 0, frame = 0
9869 @ frame_needed = 0, uses_anonymous_args = 0
4625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
9870 .loc 1 4625 1 is_stmt 0 view .LVU3522
9871 0000 08B5 push {r3, lr}
9872 .cfi_def_cfa_offset 8
9873 .cfi_offset 3, -8
9874 .cfi_offset 14, -4
4627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
9875 .loc 1 4627 3 is_stmt 1 view .LVU3523
4627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
9876 .loc 1 4627 24 is_stmt 0 view .LVU3524
9877 0002 0368 ldr r3, [r0]
4627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
9878 .loc 1 4627 12 view .LVU3525
9879 0004 9969 ldr r1, [r3, #24]
9880 .LVL707:
4628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 364
9881 .loc 1 4628 3 is_stmt 1 view .LVU3526
4628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9882 .loc 1 4628 12 is_stmt 0 view .LVU3527
9883 0006 1A68 ldr r2, [r3]
9884 .LVL708:
4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9885 .loc 1 4631 3 is_stmt 1 view .LVU3528
4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9886 .loc 1 4631 11 is_stmt 0 view .LVU3529
9887 0008 436B ldr r3, [r0, #52]
4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9888 .loc 1 4631 6 view .LVU3530
9889 000a 03B1 cbz r3, .L636
4633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9890 .loc 1 4633 5 is_stmt 1 view .LVU3531
9891 000c 9847 blx r3
9892 .LVL709:
9893 .L636:
4635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9894 .loc 1 4635 1 is_stmt 0 view .LVU3532
9895 000e 08BD pop {r3, pc}
9896 .cfi_endproc
9897 .LFE369:
9899 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits
9900 .align 1
9901 .weak HAL_I2C_MasterTxCpltCallback
9902 .syntax unified
9903 .thumb
9904 .thumb_func
9906 HAL_I2C_MasterTxCpltCallback:
9907 .LVL710:
9908 .LFB371:
4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9909 .loc 1 4696 1 is_stmt 1 view -0
9910 .cfi_startproc
9911 @ args = 0, pretend = 0, frame = 0
9912 @ frame_needed = 0, uses_anonymous_args = 0
9913 @ link register save eliminated.
4698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9914 .loc 1 4698 3 view .LVU3534
4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9915 .loc 1 4703 1 is_stmt 0 view .LVU3535
9916 0000 7047 bx lr
9917 .cfi_endproc
9918 .LFE371:
9920 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits
9921 .align 1
9922 .weak HAL_I2C_MasterRxCpltCallback
9923 .syntax unified
9924 .thumb
9925 .thumb_func
9927 HAL_I2C_MasterRxCpltCallback:
9928 .LVL711:
9929 .LFB372:
4712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9930 .loc 1 4712 1 is_stmt 1 view -0
9931 .cfi_startproc
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 365
9932 @ args = 0, pretend = 0, frame = 0
9933 @ frame_needed = 0, uses_anonymous_args = 0
9934 @ link register save eliminated.
4714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9935 .loc 1 4714 3 view .LVU3537
4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9936 .loc 1 4719 1 is_stmt 0 view .LVU3538
9937 0000 7047 bx lr
9938 .cfi_endproc
9939 .LFE372:
9941 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits
9942 .align 1
9943 .syntax unified
9944 .thumb
9945 .thumb_func
9947 I2C_ITMasterSeqCplt:
9948 .LVL712:
9949 .LFB393:
5991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */
9950 .loc 1 5991 1 is_stmt 1 view -0
9951 .cfi_startproc
9952 @ args = 0, pretend = 0, frame = 0
9953 @ frame_needed = 0, uses_anonymous_args = 0
5991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */
9954 .loc 1 5991 1 is_stmt 0 view .LVU3540
9955 0000 38B5 push {r3, r4, r5, lr}
9956 .cfi_def_cfa_offset 16
9957 .cfi_offset 3, -16
9958 .cfi_offset 4, -12
9959 .cfi_offset 5, -8
9960 .cfi_offset 14, -4
9961 0002 0446 mov r4, r0
5993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9962 .loc 1 5993 3 is_stmt 1 view .LVU3541
5993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9963 .loc 1 5993 14 is_stmt 0 view .LVU3542
9964 0004 0023 movs r3, #0
9965 0006 80F84230 strb r3, [r0, #66]
5997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9966 .loc 1 5997 3 is_stmt 1 view .LVU3543
5997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9967 .loc 1 5997 11 is_stmt 0 view .LVU3544
9968 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
5997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9969 .loc 1 5997 6 view .LVU3545
9970 000e 212B cmp r3, #33
9971 0010 0FD0 beq .L645
6019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9972 .loc 1 6019 5 is_stmt 1 view .LVU3546
6019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9973 .loc 1 6019 25 is_stmt 0 view .LVU3547
9974 0012 2023 movs r3, #32
9975 0014 80F84130 strb r3, [r0, #65]
6020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
9976 .loc 1 6020 5 is_stmt 1 view .LVU3548
6020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
9977 .loc 1 6020 25 is_stmt 0 view .LVU3549
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 366
9978 0018 1223 movs r3, #18
9979 001a 0363 str r3, [r0, #48]
6021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9980 .loc 1 6021 5 is_stmt 1 view .LVU3550
6021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9981 .loc 1 6021 25 is_stmt 0 view .LVU3551
9982 001c 0025 movs r5, #0
9983 001e 4563 str r5, [r0, #52]
6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9984 .loc 1 6024 5 is_stmt 1 view .LVU3552
9985 0020 0221 movs r1, #2
9986 0022 FFF7FEFF bl I2C_Disable_IRQ
9987 .LVL713:
6027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9988 .loc 1 6027 5 view .LVU3553
6027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9989 .loc 1 6027 5 view .LVU3554
9990 0026 84F84050 strb r5, [r4, #64]
6027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9991 .loc 1 6027 5 view .LVU3555
6033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9992 .loc 1 6033 5 view .LVU3556
9993 002a 2046 mov r0, r4
9994 002c FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
9995 .LVL714:
9996 .L641:
6036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9997 .loc 1 6036 1 is_stmt 0 view .LVU3557
9998 0030 38BD pop {r3, r4, r5, pc}
9999 .LVL715:
10000 .L645:
5999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
10001 .loc 1 5999 5 is_stmt 1 view .LVU3558
5999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
10002 .loc 1 5999 25 is_stmt 0 view .LVU3559
10003 0032 2023 movs r3, #32
10004 0034 80F84130 strb r3, [r0, #65]
6000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
10005 .loc 1 6000 5 is_stmt 1 view .LVU3560
6000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
10006 .loc 1 6000 25 is_stmt 0 view .LVU3561
10007 0038 1123 movs r3, #17
10008 003a 0363 str r3, [r0, #48]
6001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10009 .loc 1 6001 5 is_stmt 1 view .LVU3562
6001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10010 .loc 1 6001 25 is_stmt 0 view .LVU3563
10011 003c 0025 movs r5, #0
10012 003e 4563 str r5, [r0, #52]
6004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10013 .loc 1 6004 5 is_stmt 1 view .LVU3564
10014 0040 0121 movs r1, #1
10015 0042 FFF7FEFF bl I2C_Disable_IRQ
10016 .LVL716:
6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10017 .loc 1 6007 5 view .LVU3565
6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 367
10018 .loc 1 6007 5 view .LVU3566
10019 0046 84F84050 strb r5, [r4, #64]
6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10020 .loc 1 6007 5 view .LVU3567
6013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10021 .loc 1 6013 5 view .LVU3568
10022 004a 2046 mov r0, r4
10023 004c FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
10024 .LVL717:
10025 0050 EEE7 b .L641
10026 .cfi_endproc
10027 .LFE393:
10029 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits
10030 .align 1
10031 .weak HAL_I2C_SlaveTxCpltCallback
10032 .syntax unified
10033 .thumb
10034 .thumb_func
10036 HAL_I2C_SlaveTxCpltCallback:
10037 .LVL718:
10038 .LFB373:
4727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10039 .loc 1 4727 1 view -0
10040 .cfi_startproc
10041 @ args = 0, pretend = 0, frame = 0
10042 @ frame_needed = 0, uses_anonymous_args = 0
10043 @ link register save eliminated.
4729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10044 .loc 1 4729 3 view .LVU3570
4734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10045 .loc 1 4734 1 is_stmt 0 view .LVU3571
10046 0000 7047 bx lr
10047 .cfi_endproc
10048 .LFE373:
10050 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits
10051 .align 1
10052 .weak HAL_I2C_SlaveRxCpltCallback
10053 .syntax unified
10054 .thumb
10055 .thumb_func
10057 HAL_I2C_SlaveRxCpltCallback:
10058 .LVL719:
10059 .LFB374:
4743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10060 .loc 1 4743 1 is_stmt 1 view -0
10061 .cfi_startproc
10062 @ args = 0, pretend = 0, frame = 0
10063 @ frame_needed = 0, uses_anonymous_args = 0
10064 @ link register save eliminated.
4745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10065 .loc 1 4745 3 view .LVU3573
4750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10066 .loc 1 4750 1 is_stmt 0 view .LVU3574
10067 0000 7047 bx lr
10068 .cfi_endproc
10069 .LFE374:
10071 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 368
10072 .align 1
10073 .syntax unified
10074 .thumb
10075 .thumb_func
10077 I2C_ITSlaveSeqCplt:
10078 .LVL720:
10079 .LFB394:
6044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
10080 .loc 1 6044 1 is_stmt 1 view -0
10081 .cfi_startproc
10082 @ args = 0, pretend = 0, frame = 0
10083 @ frame_needed = 0, uses_anonymous_args = 0
6044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
10084 .loc 1 6044 1 is_stmt 0 view .LVU3576
10085 0000 10B5 push {r4, lr}
10086 .cfi_def_cfa_offset 8
10087 .cfi_offset 4, -8
10088 .cfi_offset 14, -4
10089 0002 0446 mov r4, r0
6045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10090 .loc 1 6045 3 is_stmt 1 view .LVU3577
6045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10091 .loc 1 6045 26 is_stmt 0 view .LVU3578
10092 0004 0368 ldr r3, [r0]
6045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10093 .loc 1 6045 12 view .LVU3579
10094 0006 1A68 ldr r2, [r3]
10095 .LVL721:
6048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10096 .loc 1 6048 3 is_stmt 1 view .LVU3580
6048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10097 .loc 1 6048 14 is_stmt 0 view .LVU3581
10098 0008 0021 movs r1, #0
10099 000a 80F84210 strb r1, [r0, #66]
6051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10100 .loc 1 6051 3 is_stmt 1 view .LVU3582
6051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10101 .loc 1 6051 6 is_stmt 0 view .LVU3583
10102 000e 12F4804F tst r2, #16384
10103 0012 0CD0 beq .L649
6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10104 .loc 1 6054 5 is_stmt 1 view .LVU3584
6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10105 .loc 1 6054 19 is_stmt 0 view .LVU3585
10106 0014 1A68 ldr r2, [r3]
10107 .LVL722:
6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10108 .loc 1 6054 25 view .LVU3586
10109 0016 22F48042 bic r2, r2, #16384
10110 001a 1A60 str r2, [r3]
10111 .L650:
6064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10112 .loc 1 6064 3 is_stmt 1 view .LVU3587
6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10113 .loc 1 6066 3 view .LVU3588
6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10114 .loc 1 6066 11 is_stmt 0 view .LVU3589
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 369
10115 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10116 .loc 1 6066 6 view .LVU3590
10117 0020 292B cmp r3, #41
10118 0022 0CD0 beq .L654
6086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10119 .loc 1 6086 8 is_stmt 1 view .LVU3591
6086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10120 .loc 1 6086 16 is_stmt 0 view .LVU3592
10121 0024 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10122 .loc 1 6086 11 view .LVU3593
10123 0028 2A2B cmp r3, #42
10124 002a 18D0 beq .L655
10125 .LVL723:
10126 .L648:
6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10127 .loc 1 6109 1 view .LVU3594
10128 002c 10BD pop {r4, pc}
10129 .LVL724:
10130 .L649:
6056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10131 .loc 1 6056 8 is_stmt 1 view .LVU3595
6056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10132 .loc 1 6056 11 is_stmt 0 view .LVU3596
10133 002e 12F4004F tst r2, #32768
10134 0032 F3D0 beq .L650
6059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10135 .loc 1 6059 5 is_stmt 1 view .LVU3597
6059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10136 .loc 1 6059 19 is_stmt 0 view .LVU3598
10137 0034 1A68 ldr r2, [r3]
10138 .LVL725:
6059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10139 .loc 1 6059 25 view .LVU3599
10140 0036 22F40042 bic r2, r2, #32768
10141 003a 1A60 str r2, [r3]
10142 003c EEE7 b .L650
10143 .L654:
6069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
10144 .loc 1 6069 5 is_stmt 1 view .LVU3600
6069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
10145 .loc 1 6069 25 is_stmt 0 view .LVU3601
10146 003e 2823 movs r3, #40
10147 0040 84F84130 strb r3, [r4, #65]
6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10148 .loc 1 6070 5 is_stmt 1 view .LVU3602
6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10149 .loc 1 6070 25 is_stmt 0 view .LVU3603
10150 0044 2123 movs r3, #33
10151 0046 2363 str r3, [r4, #48]
6073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10152 .loc 1 6073 5 is_stmt 1 view .LVU3604
10153 0048 0121 movs r1, #1
10154 004a 2046 mov r0, r4
10155 .LVL726:
6073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 370
10156 .loc 1 6073 5 is_stmt 0 view .LVU3605
10157 004c FFF7FEFF bl I2C_Disable_IRQ
10158 .LVL727:
6076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10159 .loc 1 6076 5 is_stmt 1 view .LVU3606
6076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10160 .loc 1 6076 5 view .LVU3607
10161 0050 0023 movs r3, #0
10162 0052 84F84030 strb r3, [r4, #64]
6076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10163 .loc 1 6076 5 view .LVU3608
6082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10164 .loc 1 6082 5 view .LVU3609
10165 0056 2046 mov r0, r4
10166 0058 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
10167 .LVL728:
10168 005c E6E7 b .L648
10169 .LVL729:
10170 .L655:
6089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
10171 .loc 1 6089 5 view .LVU3610
6089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
10172 .loc 1 6089 25 is_stmt 0 view .LVU3611
10173 005e 2823 movs r3, #40
10174 0060 84F84130 strb r3, [r4, #65]
6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10175 .loc 1 6090 5 is_stmt 1 view .LVU3612
6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10176 .loc 1 6090 25 is_stmt 0 view .LVU3613
10177 0064 2223 movs r3, #34
10178 0066 2363 str r3, [r4, #48]
6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10179 .loc 1 6093 5 is_stmt 1 view .LVU3614
10180 0068 0221 movs r1, #2
10181 006a 2046 mov r0, r4
10182 .LVL730:
6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10183 .loc 1 6093 5 is_stmt 0 view .LVU3615
10184 006c FFF7FEFF bl I2C_Disable_IRQ
10185 .LVL731:
6096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10186 .loc 1 6096 5 is_stmt 1 view .LVU3616
6096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10187 .loc 1 6096 5 view .LVU3617
10188 0070 0023 movs r3, #0
10189 0072 84F84030 strb r3, [r4, #64]
6096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10190 .loc 1 6096 5 view .LVU3618
6102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10191 .loc 1 6102 5 view .LVU3619
10192 0076 2046 mov r0, r4
10193 0078 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
10194 .LVL732:
6108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10195 .loc 1 6108 3 view .LVU3620
6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10196 .loc 1 6109 1 is_stmt 0 view .LVU3621
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 371
10197 007c D6E7 b .L648
10198 .cfi_endproc
10199 .LFE394:
10201 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits
10202 .align 1
10203 .syntax unified
10204 .thumb
10205 .thumb_func
10207 I2C_DMASlaveTransmitCplt:
10208 .LVL733:
10209 .LFB402:
6769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
10210 .loc 1 6769 1 is_stmt 1 view -0
10211 .cfi_startproc
10212 @ args = 0, pretend = 0, frame = 0
10213 @ frame_needed = 0, uses_anonymous_args = 0
6769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
10214 .loc 1 6769 1 is_stmt 0 view .LVU3623
10215 0000 08B5 push {r3, lr}
10216 .cfi_def_cfa_offset 8
10217 .cfi_offset 3, -8
10218 .cfi_offset 14, -4
6771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10219 .loc 1 6771 3 is_stmt 1 view .LVU3624
6771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10220 .loc 1 6771 22 is_stmt 0 view .LVU3625
10221 0002 806B ldr r0, [r0, #56]
10222 .LVL734:
6772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10223 .loc 1 6772 3 is_stmt 1 view .LVU3626
6772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10224 .loc 1 6772 12 is_stmt 0 view .LVU3627
10225 0004 C36A ldr r3, [r0, #44]
10226 .LVL735:
6774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10227 .loc 1 6774 3 is_stmt 1 view .LVU3628
6774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10228 .loc 1 6774 6 is_stmt 0 view .LVU3629
10229 0006 002B cmp r3, #0
10230 0008 18BF it ne
10231 000a B3F1807F cmpne r3, #16777216
10232 000e 00D0 beq .L659
10233 .LVL736:
10234 .L656:
6789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10235 .loc 1 6789 1 view .LVU3630
10236 0010 08BD pop {r3, pc}
10237 .LVL737:
10238 .L659:
6777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10239 .loc 1 6777 5 is_stmt 1 view .LVU3631
6777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10240 .loc 1 6777 9 is_stmt 0 view .LVU3632
10241 0012 0268 ldr r2, [r0]
6777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10242 .loc 1 6777 19 view .LVU3633
10243 0014 1368 ldr r3, [r2]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 372
10244 .LVL738:
6777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10245 .loc 1 6777 25 view .LVU3634
10246 0016 23F48043 bic r3, r3, #16384
10247 001a 1360 str r3, [r2]
6781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10248 .loc 1 6781 5 is_stmt 1 view .LVU3635
10249 001c FFF7FEFF bl I2C_ITSlaveSeqCplt
10250 .LVL739:
6788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10251 .loc 1 6788 3 view .LVU3636
6789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10252 .loc 1 6789 1 is_stmt 0 view .LVU3637
10253 0020 F6E7 b .L656
10254 .cfi_endproc
10255 .LFE402:
10257 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits
10258 .align 1
10259 .syntax unified
10260 .thumb
10261 .thumb_func
10263 I2C_DMASlaveReceiveCplt:
10264 .LVL740:
10265 .LFB404:
6849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
10266 .loc 1 6849 1 is_stmt 1 view -0
10267 .cfi_startproc
10268 @ args = 0, pretend = 0, frame = 0
10269 @ frame_needed = 0, uses_anonymous_args = 0
6849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
10270 .loc 1 6849 1 is_stmt 0 view .LVU3639
10271 0000 10B5 push {r4, lr}
10272 .cfi_def_cfa_offset 8
10273 .cfi_offset 4, -8
10274 .cfi_offset 14, -4
6851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10275 .loc 1 6851 3 is_stmt 1 view .LVU3640
6851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10276 .loc 1 6851 22 is_stmt 0 view .LVU3641
10277 0002 806B ldr r0, [r0, #56]
10278 .LVL741:
6852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10279 .loc 1 6852 3 is_stmt 1 view .LVU3642
6852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10280 .loc 1 6852 12 is_stmt 0 view .LVU3643
10281 0004 C46A ldr r4, [r0, #44]
10282 .LVL742:
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10283 .loc 1 6854 3 is_stmt 1 view .LVU3644
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10284 .loc 1 6854 8 is_stmt 0 view .LVU3645
10285 0006 C36B ldr r3, [r0, #60]
10286 0008 1B68 ldr r3, [r3]
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10287 .loc 1 6854 46 view .LVU3646
10288 000a 2349 ldr r1, .L667
10289 000c 234A ldr r2, .L667+4
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 373
10290 000e 9342 cmp r3, r2
10291 0010 18BF it ne
10292 0012 8B42 cmpne r3, r1
10293 0014 2FD0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10294 .loc 1 6854 8 discriminator 2 view .LVU3647
10295 0016 1832 adds r2, r2, #24
10296 0018 9342 cmp r3, r2
10297 001a 2CD0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10298 .loc 1 6854 8 discriminator 4 view .LVU3648
10299 001c 1832 adds r2, r2, #24
10300 001e 9342 cmp r3, r2
10301 0020 29D0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10302 .loc 1 6854 8 discriminator 6 view .LVU3649
10303 0022 1832 adds r2, r2, #24
10304 0024 9342 cmp r3, r2
10305 0026 26D0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10306 .loc 1 6854 8 discriminator 8 view .LVU3650
10307 0028 1832 adds r2, r2, #24
10308 002a 9342 cmp r3, r2
10309 002c 23D0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10310 .loc 1 6854 8 discriminator 10 view .LVU3651
10311 002e 1832 adds r2, r2, #24
10312 0030 9342 cmp r3, r2
10313 0032 20D0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10314 .loc 1 6854 8 discriminator 12 view .LVU3652
10315 0034 1832 adds r2, r2, #24
10316 0036 9342 cmp r3, r2
10317 0038 1DD0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10318 .loc 1 6854 8 discriminator 14 view .LVU3653
10319 003a 02F55672 add r2, r2, #856
10320 003e 9342 cmp r3, r2
10321 0040 19D0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10322 .loc 1 6854 8 discriminator 16 view .LVU3654
10323 0042 1832 adds r2, r2, #24
10324 0044 9342 cmp r3, r2
10325 0046 16D0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10326 .loc 1 6854 8 discriminator 18 view .LVU3655
10327 0048 1832 adds r2, r2, #24
10328 004a 9342 cmp r3, r2
10329 004c 13D0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10330 .loc 1 6854 8 discriminator 20 view .LVU3656
10331 004e 1832 adds r2, r2, #24
10332 0050 9342 cmp r3, r2
10333 0052 10D0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10334 .loc 1 6854 8 discriminator 22 view .LVU3657
10335 0054 1832 adds r2, r2, #24
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 374
10336 0056 9342 cmp r3, r2
10337 0058 0DD0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10338 .loc 1 6854 8 discriminator 24 view .LVU3658
10339 005a 1832 adds r2, r2, #24
10340 005c 9342 cmp r3, r2
10341 005e 0AD0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10342 .loc 1 6854 8 discriminator 26 view .LVU3659
10343 0060 1832 adds r2, r2, #24
10344 0062 9342 cmp r3, r2
10345 0064 07D0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10346 .loc 1 6854 8 discriminator 28 view .LVU3660
10347 0066 1832 adds r2, r2, #24
10348 0068 9342 cmp r3, r2
10349 006a 04D0 beq .L661
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10350 .loc 1 6854 8 discriminator 30 view .LVU3661
10351 006c 5B68 ldr r3, [r3, #4]
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10352 .loc 1 6854 46 discriminator 30 view .LVU3662
10353 006e B3FA83F3 clz r3, r3
10354 0072 5B09 lsrs r3, r3, #5
10355 0074 03E0 b .L663
10356 .L661:
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10357 .loc 1 6854 8 discriminator 29 view .LVU3663
10358 0076 5B68 ldr r3, [r3, #4]
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10359 .loc 1 6854 46 discriminator 29 view .LVU3664
10360 0078 B3FA83F3 clz r3, r3
10361 007c 5B09 lsrs r3, r3, #5
10362 .L663:
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10363 .loc 1 6854 6 discriminator 32 view .LVU3665
10364 007e 13B1 cbz r3, .L660
6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10365 .loc 1 6854 53 discriminator 33 view .LVU3666
10366 0080 14F5803F cmn r4, #65536
10367 0084 00D1 bne .L666
10368 .LVL743:
10369 .L660:
6869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10370 .loc 1 6869 1 view .LVU3667
10371 0086 10BD pop {r4, pc}
10372 .LVL744:
10373 .L666:
6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10374 .loc 1 6858 5 is_stmt 1 view .LVU3668
6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10375 .loc 1 6858 9 is_stmt 0 view .LVU3669
10376 0088 0268 ldr r2, [r0]
6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10377 .loc 1 6858 19 view .LVU3670
10378 008a 1368 ldr r3, [r2]
6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 375
10379 .loc 1 6858 25 view .LVU3671
10380 008c 23F40043 bic r3, r3, #32768
10381 0090 1360 str r3, [r2]
6861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10382 .loc 1 6861 5 is_stmt 1 view .LVU3672
10383 0092 FFF7FEFF bl I2C_ITSlaveSeqCplt
10384 .LVL745:
6868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10385 .loc 1 6868 3 view .LVU3673
6869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10386 .loc 1 6869 1 is_stmt 0 view .LVU3674
10387 0096 F6E7 b .L660
10388 .L668:
10389 .align 2
10390 .L667:
10391 0098 10000240 .word 1073872912
10392 009c 28000240 .word 1073872936
10393 .cfi_endproc
10394 .LFE404:
10396 .section .text.HAL_I2C_AddrCallback,"ax",%progbits
10397 .align 1
10398 .weak HAL_I2C_AddrCallback
10399 .syntax unified
10400 .thumb
10401 .thumb_func
10403 HAL_I2C_AddrCallback:
10404 .LVL746:
10405 .LFB375:
4761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10406 .loc 1 4761 1 is_stmt 1 view -0
10407 .cfi_startproc
10408 @ args = 0, pretend = 0, frame = 0
10409 @ frame_needed = 0, uses_anonymous_args = 0
10410 @ link register save eliminated.
4763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(TransferDirection);
10411 .loc 1 4763 3 view .LVU3676
4764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(AddrMatchCode);
10412 .loc 1 4764 3 view .LVU3677
4765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10413 .loc 1 4765 3 view .LVU3678
4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10414 .loc 1 4770 1 is_stmt 0 view .LVU3679
10415 0000 7047 bx lr
10416 .cfi_endproc
10417 .LFE375:
10419 .section .text.I2C_ITAddrCplt,"ax",%progbits
10420 .align 1
10421 .syntax unified
10422 .thumb
10423 .thumb_func
10425 I2C_ITAddrCplt:
10426 .LVL747:
10427 .LFB392:
5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection;
10428 .loc 1 5896 1 is_stmt 1 view -0
10429 .cfi_startproc
10430 @ args = 0, pretend = 0, frame = 0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 376
10431 @ frame_needed = 0, uses_anonymous_args = 0
5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection;
10432 .loc 1 5896 1 is_stmt 0 view .LVU3681
10433 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
10434 .cfi_def_cfa_offset 24
10435 .cfi_offset 3, -24
10436 .cfi_offset 4, -20
10437 .cfi_offset 5, -16
10438 .cfi_offset 6, -12
10439 .cfi_offset 7, -8
10440 .cfi_offset 14, -4
10441 0002 0446 mov r4, r0
5897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t slaveaddrcode;
10442 .loc 1 5897 3 is_stmt 1 view .LVU3682
5898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd1code;
10443 .loc 1 5898 3 view .LVU3683
5899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd2code;
10444 .loc 1 5899 3 view .LVU3684
5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10445 .loc 1 5900 3 view .LVU3685
5903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10446 .loc 1 5903 3 view .LVU3686
5906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10447 .loc 1 5906 3 view .LVU3687
5906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10448 .loc 1 5906 22 is_stmt 0 view .LVU3688
10449 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
5906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10450 .loc 1 5906 6 view .LVU3689
10451 0008 03F02803 and r3, r3, #40
10452 000c 282B cmp r3, #40
10453 000e 06D0 beq .L676
5978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10454 .loc 1 5978 5 is_stmt 1 view .LVU3690
10455 0010 0368 ldr r3, [r0]
10456 0012 0822 movs r2, #8
10457 0014 DA61 str r2, [r3, #28]
5981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10458 .loc 1 5981 5 view .LVU3691
5981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10459 .loc 1 5981 5 view .LVU3692
10460 0016 0023 movs r3, #0
10461 0018 80F84030 strb r3, [r0, #64]
5981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10462 .loc 1 5981 5 discriminator 1 view .LVU3693
10463 .LVL748:
10464 .L670:
5983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10465 .loc 1 5983 1 is_stmt 0 view .LVU3694
10466 001c F8BD pop {r3, r4, r5, r6, r7, pc}
10467 .LVL749:
10468 .L676:
5908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
10469 .loc 1 5908 5 is_stmt 1 view .LVU3695
5908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
10470 .loc 1 5908 25 is_stmt 0 view .LVU3696
10471 001e 0368 ldr r3, [r0]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 377
10472 0020 9E69 ldr r6, [r3, #24]
5908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
10473 .loc 1 5908 23 view .LVU3697
10474 0022 C6F30046 ubfx r6, r6, #16, #1
10475 .LVL750:
5909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
10476 .loc 1 5909 5 is_stmt 1 view .LVU3698
5909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
10477 .loc 1 5909 25 is_stmt 0 view .LVU3699
10478 0026 9A69 ldr r2, [r3, #24]
10479 0028 120C lsrs r2, r2, #16
5909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
10480 .loc 1 5909 23 view .LVU3700
10481 002a 02F0FE05 and r5, r2, #254
10482 .LVL751:
5910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
10483 .loc 1 5910 5 is_stmt 1 view .LVU3701
5910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
10484 .loc 1 5910 25 is_stmt 0 view .LVU3702
10485 002e 9A68 ldr r2, [r3, #8]
5910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
10486 .loc 1 5910 23 view .LVU3703
10487 0030 C2F30902 ubfx r2, r2, #0, #10
10488 .LVL752:
5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10489 .loc 1 5911 5 is_stmt 1 view .LVU3704
5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10490 .loc 1 5911 25 is_stmt 0 view .LVU3705
10491 0034 DF68 ldr r7, [r3, #12]
5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10492 .loc 1 5911 23 view .LVU3706
10493 0036 07F0FE07 and r7, r7, #254
10494 .LVL753:
5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10495 .loc 1 5914 5 is_stmt 1 view .LVU3707
5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10496 .loc 1 5914 19 is_stmt 0 view .LVU3708
10497 003a C168 ldr r1, [r0, #12]
10498 .LVL754:
5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10499 .loc 1 5914 8 view .LVU3709
10500 003c 0229 cmp r1, #2
10501 003e 22D1 bne .L672
5916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10502 .loc 1 5916 7 is_stmt 1 view .LVU3710
5916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10503 .loc 1 5916 44 is_stmt 0 view .LVU3711
10504 0040 85EAD215 eor r5, r5, r2, lsr #7
10505 .LVL755:
5916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10506 .loc 1 5916 10 view .LVU3712
10507 0044 15F0060F tst r5, #6
10508 0048 10D1 bne .L673
5918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount++;
10509 .loc 1 5918 9 is_stmt 1 view .LVU3713
10510 .LVL756:
5919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 378
10511 .loc 1 5919 9 view .LVU3714
5919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
10512 .loc 1 5919 13 is_stmt 0 view .LVU3715
10513 004a 816C ldr r1, [r0, #72]
5919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
10514 .loc 1 5919 29 view .LVU3716
10515 004c 0131 adds r1, r1, #1
10516 004e 8164 str r1, [r0, #72]
5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10517 .loc 1 5920 9 is_stmt 1 view .LVU3717
5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10518 .loc 1 5920 17 is_stmt 0 view .LVU3718
10519 0050 816C ldr r1, [r0, #72]
5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10520 .loc 1 5920 12 view .LVU3719
10521 0052 0229 cmp r1, #2
10522 0054 E2D1 bne .L670
5923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10523 .loc 1 5923 11 is_stmt 1 view .LVU3720
5923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10524 .loc 1 5923 32 is_stmt 0 view .LVU3721
10525 0056 0021 movs r1, #0
10526 0058 8164 str r1, [r0, #72]
5926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10527 .loc 1 5926 11 is_stmt 1 view .LVU3722
10528 005a 0820 movs r0, #8
10529 .LVL757:
5926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10530 .loc 1 5926 11 is_stmt 0 view .LVU3723
10531 005c D861 str r0, [r3, #28]
5929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10532 .loc 1 5929 11 is_stmt 1 view .LVU3724
5929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10533 .loc 1 5929 11 view .LVU3725
10534 005e 84F84010 strb r1, [r4, #64]
5929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10535 .loc 1 5929 11 view .LVU3726
5935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10536 .loc 1 5935 11 view .LVU3727
10537 0062 3146 mov r1, r6
10538 0064 2046 mov r0, r4
10539 0066 FFF7FEFF bl HAL_I2C_AddrCallback
10540 .LVL758:
5935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10541 .loc 1 5935 11 is_stmt 0 view .LVU3728
10542 006a D7E7 b .L670
10543 .LVL759:
10544 .L673:
5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10545 .loc 1 5941 9 is_stmt 1 view .LVU3729
5944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10546 .loc 1 5944 9 view .LVU3730
10547 006c 4FF40041 mov r1, #32768
10548 0070 FFF7FEFF bl I2C_Disable_IRQ
10549 .LVL760:
5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10550 .loc 1 5947 9 view .LVU3731
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 379
5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10551 .loc 1 5947 9 view .LVU3732
10552 0074 0023 movs r3, #0
10553 0076 84F84030 strb r3, [r4, #64]
5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10554 .loc 1 5947 9 view .LVU3733
5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10555 .loc 1 5953 9 view .LVU3734
10556 007a 3A46 mov r2, r7
10557 007c 3146 mov r1, r6
10558 007e 2046 mov r0, r4
10559 0080 FFF7FEFF bl HAL_I2C_AddrCallback
10560 .LVL761:
10561 0084 CAE7 b .L670
10562 .LVL762:
10563 .L672:
5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10564 .loc 1 5961 7 view .LVU3735
10565 0086 4FF40041 mov r1, #32768
10566 008a FFF7FEFF bl I2C_Disable_IRQ
10567 .LVL763:
5964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10568 .loc 1 5964 7 view .LVU3736
5964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10569 .loc 1 5964 7 view .LVU3737
10570 008e 0023 movs r3, #0
10571 0090 84F84030 strb r3, [r4, #64]
5964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10572 .loc 1 5964 7 view .LVU3738
5970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10573 .loc 1 5970 7 view .LVU3739
10574 0094 2A46 mov r2, r5
10575 0096 3146 mov r1, r6
10576 0098 2046 mov r0, r4
10577 009a FFF7FEFF bl HAL_I2C_AddrCallback
10578 .LVL764:
10579 009e BDE7 b .L670
10580 .cfi_endproc
10581 .LFE392:
10583 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits
10584 .align 1
10585 .weak HAL_I2C_ListenCpltCallback
10586 .syntax unified
10587 .thumb
10588 .thumb_func
10590 HAL_I2C_ListenCpltCallback:
10591 .LVL765:
10592 .LFB376:
4779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10593 .loc 1 4779 1 view -0
10594 .cfi_startproc
10595 @ args = 0, pretend = 0, frame = 0
10596 @ frame_needed = 0, uses_anonymous_args = 0
10597 @ link register save eliminated.
4781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10598 .loc 1 4781 3 view .LVU3741
4786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 380
10599 .loc 1 4786 1 is_stmt 0 view .LVU3742
10600 0000 7047 bx lr
10601 .cfi_endproc
10602 .LFE376:
10604 .section .text.I2C_ITListenCplt,"ax",%progbits
10605 .align 1
10606 .syntax unified
10607 .thumb
10608 .thumb_func
10610 I2C_ITListenCplt:
10611 .LVL766:
10612 .LFB397:
6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
10613 .loc 1 6477 1 is_stmt 1 view -0
10614 .cfi_startproc
10615 @ args = 0, pretend = 0, frame = 0
10616 @ frame_needed = 0, uses_anonymous_args = 0
6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
10617 .loc 1 6477 1 is_stmt 0 view .LVU3744
10618 0000 10B5 push {r4, lr}
10619 .cfi_def_cfa_offset 8
10620 .cfi_offset 4, -8
10621 .cfi_offset 14, -4
10622 0002 0446 mov r4, r0
6479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10623 .loc 1 6479 3 is_stmt 1 view .LVU3745
6479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10624 .loc 1 6479 21 is_stmt 0 view .LVU3746
10625 0004 174B ldr r3, .L681
10626 0006 C362 str r3, [r0, #44]
6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
10627 .loc 1 6480 3 is_stmt 1 view .LVU3747
6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
10628 .loc 1 6480 23 is_stmt 0 view .LVU3748
10629 0008 0023 movs r3, #0
10630 000a 0363 str r3, [r0, #48]
6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
10631 .loc 1 6481 3 is_stmt 1 view .LVU3749
6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
10632 .loc 1 6481 15 is_stmt 0 view .LVU3750
10633 000c 2022 movs r2, #32
10634 000e 80F84120 strb r2, [r0, #65]
6482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
10635 .loc 1 6482 3 is_stmt 1 view .LVU3751
6482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
10636 .loc 1 6482 14 is_stmt 0 view .LVU3752
10637 0012 80F84230 strb r3, [r0, #66]
6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10638 .loc 1 6483 3 is_stmt 1 view .LVU3753
6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10639 .loc 1 6483 17 is_stmt 0 view .LVU3754
10640 0016 4363 str r3, [r0, #52]
6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10641 .loc 1 6486 3 is_stmt 1 view .LVU3755
6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10642 .loc 1 6486 6 is_stmt 0 view .LVU3756
10643 0018 11F0040F tst r1, #4
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 381
10644 001c 13D0 beq .L679
6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10645 .loc 1 6489 5 is_stmt 1 view .LVU3757
6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10646 .loc 1 6489 36 is_stmt 0 view .LVU3758
10647 001e 0368 ldr r3, [r0]
6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10648 .loc 1 6489 46 view .LVU3759
10649 0020 5A6A ldr r2, [r3, #36]
6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10650 .loc 1 6489 10 view .LVU3760
10651 0022 436A ldr r3, [r0, #36]
6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10652 .loc 1 6489 21 view .LVU3761
10653 0024 1A70 strb r2, [r3]
6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10654 .loc 1 6492 5 is_stmt 1 view .LVU3762
6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10655 .loc 1 6492 9 is_stmt 0 view .LVU3763
10656 0026 436A ldr r3, [r0, #36]
6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10657 .loc 1 6492 19 view .LVU3764
10658 0028 0133 adds r3, r3, #1
10659 002a 4362 str r3, [r0, #36]
6494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10660 .loc 1 6494 5 is_stmt 1 view .LVU3765
6494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10661 .loc 1 6494 14 is_stmt 0 view .LVU3766
10662 002c 038D ldrh r3, [r0, #40]
6494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10663 .loc 1 6494 8 view .LVU3767
10664 002e 53B1 cbz r3, .L679
6496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
10665 .loc 1 6496 7 is_stmt 1 view .LVU3768
6496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
10666 .loc 1 6496 21 is_stmt 0 view .LVU3769
10667 0030 013B subs r3, r3, #1
10668 0032 0385 strh r3, [r0, #40] @ movhi
6497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10669 .loc 1 6497 7 is_stmt 1 view .LVU3770
6497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10670 .loc 1 6497 11 is_stmt 0 view .LVU3771
10671 0034 438D ldrh r3, [r0, #42]
10672 0036 9BB2 uxth r3, r3
6497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10673 .loc 1 6497 22 view .LVU3772
10674 0038 013B subs r3, r3, #1
10675 003a 9BB2 uxth r3, r3
10676 003c 4385 strh r3, [r0, #42] @ movhi
6500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10677 .loc 1 6500 7 is_stmt 1 view .LVU3773
6500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10678 .loc 1 6500 11 is_stmt 0 view .LVU3774
10679 003e 436C ldr r3, [r0, #68]
6500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10680 .loc 1 6500 23 view .LVU3775
10681 0040 43F00403 orr r3, r3, #4
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 382
10682 0044 4364 str r3, [r0, #68]
10683 .L679:
6505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10684 .loc 1 6505 3 is_stmt 1 view .LVU3776
10685 0046 48F20301 movw r1, #32771
10686 .LVL767:
6505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10687 .loc 1 6505 3 is_stmt 0 view .LVU3777
10688 004a 2046 mov r0, r4
10689 .LVL768:
6505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10690 .loc 1 6505 3 view .LVU3778
10691 004c FFF7FEFF bl I2C_Disable_IRQ
10692 .LVL769:
6508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10693 .loc 1 6508 3 is_stmt 1 view .LVU3779
10694 0050 2368 ldr r3, [r4]
10695 0052 1022 movs r2, #16
10696 0054 DA61 str r2, [r3, #28]
6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10697 .loc 1 6511 3 view .LVU3780
6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10698 .loc 1 6511 3 view .LVU3781
10699 0056 0023 movs r3, #0
10700 0058 84F84030 strb r3, [r4, #64]
6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10701 .loc 1 6511 3 view .LVU3782
6517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10702 .loc 1 6517 3 view .LVU3783
10703 005c 2046 mov r0, r4
10704 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback
10705 .LVL770:
6519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10706 .loc 1 6519 1 is_stmt 0 view .LVU3784
10707 0062 10BD pop {r4, pc}
10708 .LVL771:
10709 .L682:
6519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10710 .loc 1 6519 1 view .LVU3785
10711 .align 2
10712 .L681:
10713 0064 0000FFFF .word -65536
10714 .cfi_endproc
10715 .LFE397:
10717 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits
10718 .align 1
10719 .weak HAL_I2C_MemTxCpltCallback
10720 .syntax unified
10721 .thumb
10722 .thumb_func
10724 HAL_I2C_MemTxCpltCallback:
10725 .LVL772:
10726 .LFB377:
4795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10727 .loc 1 4795 1 is_stmt 1 view -0
10728 .cfi_startproc
10729 @ args = 0, pretend = 0, frame = 0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 383
10730 @ frame_needed = 0, uses_anonymous_args = 0
10731 @ link register save eliminated.
4797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10732 .loc 1 4797 3 view .LVU3787
4802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10733 .loc 1 4802 1 is_stmt 0 view .LVU3788
10734 0000 7047 bx lr
10735 .cfi_endproc
10736 .LFE377:
10738 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits
10739 .align 1
10740 .weak HAL_I2C_MemRxCpltCallback
10741 .syntax unified
10742 .thumb
10743 .thumb_func
10745 HAL_I2C_MemRxCpltCallback:
10746 .LVL773:
10747 .LFB378:
4811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10748 .loc 1 4811 1 is_stmt 1 view -0
10749 .cfi_startproc
10750 @ args = 0, pretend = 0, frame = 0
10751 @ frame_needed = 0, uses_anonymous_args = 0
10752 @ link register save eliminated.
4813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10753 .loc 1 4813 3 view .LVU3790
4818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10754 .loc 1 4818 1 is_stmt 0 view .LVU3791
10755 0000 7047 bx lr
10756 .cfi_endproc
10757 .LFE378:
10759 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits
10760 .align 1
10761 .weak HAL_I2C_ErrorCallback
10762 .syntax unified
10763 .thumb
10764 .thumb_func
10766 HAL_I2C_ErrorCallback:
10767 .LVL774:
10768 .LFB379:
4827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10769 .loc 1 4827 1 is_stmt 1 view -0
10770 .cfi_startproc
10771 @ args = 0, pretend = 0, frame = 0
10772 @ frame_needed = 0, uses_anonymous_args = 0
10773 @ link register save eliminated.
4829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10774 .loc 1 4829 3 view .LVU3793
4834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10775 .loc 1 4834 1 is_stmt 0 view .LVU3794
10776 0000 7047 bx lr
10777 .cfi_endproc
10778 .LFE379:
10780 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits
10781 .align 1
10782 .weak HAL_I2C_AbortCpltCallback
10783 .syntax unified
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 384
10784 .thumb
10785 .thumb_func
10787 HAL_I2C_AbortCpltCallback:
10788 .LVL775:
10789 .LFB380:
4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10790 .loc 1 4843 1 is_stmt 1 view -0
10791 .cfi_startproc
10792 @ args = 0, pretend = 0, frame = 0
10793 @ frame_needed = 0, uses_anonymous_args = 0
10794 @ link register save eliminated.
4845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10795 .loc 1 4845 3 view .LVU3796
4850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10796 .loc 1 4850 1 is_stmt 0 view .LVU3797
10797 0000 7047 bx lr
10798 .cfi_endproc
10799 .LFE380:
10801 .section .text.I2C_TreatErrorCallback,"ax",%progbits
10802 .align 1
10803 .syntax unified
10804 .thumb
10805 .thumb_func
10807 I2C_TreatErrorCallback:
10808 .LVL776:
10809 .LFB399:
6659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
10810 .loc 1 6659 1 is_stmt 1 view -0
10811 .cfi_startproc
10812 @ args = 0, pretend = 0, frame = 0
10813 @ frame_needed = 0, uses_anonymous_args = 0
6659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
10814 .loc 1 6659 1 is_stmt 0 view .LVU3799
10815 0000 08B5 push {r3, lr}
10816 .cfi_def_cfa_offset 8
10817 .cfi_offset 3, -8
10818 .cfi_offset 14, -4
6660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10819 .loc 1 6660 3 is_stmt 1 view .LVU3800
6660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10820 .loc 1 6660 11 is_stmt 0 view .LVU3801
10821 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
6660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10822 .loc 1 6660 6 view .LVU3802
10823 0006 602B cmp r3, #96
10824 0008 06D0 beq .L691
6677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10825 .loc 1 6677 5 is_stmt 1 view .LVU3803
6677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10826 .loc 1 6677 25 is_stmt 0 view .LVU3804
10827 000a 0023 movs r3, #0
10828 000c 0363 str r3, [r0, #48]
6680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10829 .loc 1 6680 5 is_stmt 1 view .LVU3805
6680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10830 .loc 1 6680 5 view .LVU3806
10831 000e 80F84030 strb r3, [r0, #64]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 385
6680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10832 .loc 1 6680 5 view .LVU3807
6686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10833 .loc 1 6686 5 view .LVU3808
10834 0012 FFF7FEFF bl HAL_I2C_ErrorCallback
10835 .LVL777:
10836 .L687:
6689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10837 .loc 1 6689 1 is_stmt 0 view .LVU3809
10838 0016 08BD pop {r3, pc}
10839 .LVL778:
10840 .L691:
6662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10841 .loc 1 6662 5 is_stmt 1 view .LVU3810
6662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10842 .loc 1 6662 17 is_stmt 0 view .LVU3811
10843 0018 2023 movs r3, #32
10844 001a 80F84130 strb r3, [r0, #65]
6663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10845 .loc 1 6663 5 is_stmt 1 view .LVU3812
6663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10846 .loc 1 6663 25 is_stmt 0 view .LVU3813
10847 001e 0023 movs r3, #0
10848 0020 0363 str r3, [r0, #48]
6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10849 .loc 1 6666 5 is_stmt 1 view .LVU3814
6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10850 .loc 1 6666 5 view .LVU3815
10851 0022 80F84030 strb r3, [r0, #64]
6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10852 .loc 1 6666 5 view .LVU3816
6672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10853 .loc 1 6672 5 view .LVU3817
10854 0026 FFF7FEFF bl HAL_I2C_AbortCpltCallback
10855 .LVL779:
6672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10856 .loc 1 6672 5 is_stmt 0 view .LVU3818
10857 002a F4E7 b .L687
10858 .cfi_endproc
10859 .LFE399:
10861 .section .text.I2C_ITError,"ax",%progbits
10862 .align 1
10863 .syntax unified
10864 .thumb
10865 .thumb_func
10867 I2C_ITError:
10868 .LVL780:
10869 .LFB398:
6528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
10870 .loc 1 6528 1 is_stmt 1 view -0
10871 .cfi_startproc
10872 @ args = 0, pretend = 0, frame = 0
10873 @ frame_needed = 0, uses_anonymous_args = 0
6528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
10874 .loc 1 6528 1 is_stmt 0 view .LVU3820
10875 0000 10B5 push {r4, lr}
10876 .cfi_def_cfa_offset 8
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 386
10877 .cfi_offset 4, -8
10878 .cfi_offset 14, -4
10879 0002 0446 mov r4, r0
6529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10880 .loc 1 6529 3 is_stmt 1 view .LVU3821
6529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10881 .loc 1 6529 24 is_stmt 0 view .LVU3822
10882 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
10883 .LVL781:
6531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10884 .loc 1 6531 3 is_stmt 1 view .LVU3823
6534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
10885 .loc 1 6534 3 view .LVU3824
6534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
10886 .loc 1 6534 23 is_stmt 0 view .LVU3825
10887 0008 0022 movs r2, #0
10888 000a 80F84220 strb r2, [r0, #66]
6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U;
10889 .loc 1 6535 3 is_stmt 1 view .LVU3826
6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U;
10890 .loc 1 6535 23 is_stmt 0 view .LVU3827
10891 000e 4548 ldr r0, .L705
10892 .LVL782:
6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U;
10893 .loc 1 6535 23 view .LVU3828
10894 0010 E062 str r0, [r4, #44]
6536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10895 .loc 1 6536 3 is_stmt 1 view .LVU3829
6536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10896 .loc 1 6536 23 is_stmt 0 view .LVU3830
10897 0012 6285 strh r2, [r4, #42] @ movhi
6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10898 .loc 1 6539 3 is_stmt 1 view .LVU3831
6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10899 .loc 1 6539 7 is_stmt 0 view .LVU3832
10900 0014 626C ldr r2, [r4, #68]
6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10901 .loc 1 6539 19 view .LVU3833
10902 0016 0A43 orrs r2, r2, r1
10903 0018 6264 str r2, [r4, #68]
6542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
10904 .loc 1 6542 3 is_stmt 1 view .LVU3834
6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
10905 .loc 1 6543 50 is_stmt 0 view .LVU3835
10906 001a 283B subs r3, r3, #40
10907 .LVL783:
6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
10908 .loc 1 6543 50 view .LVU3836
10909 001c DBB2 uxtb r3, r3
10910 .LVL784:
6542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
10911 .loc 1 6542 6 view .LVU3837
10912 001e 022B cmp r3, #2
10913 0020 2DD8 bhi .L693
6547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10914 .loc 1 6547 5 is_stmt 1 view .LVU3838
10915 0022 0321 movs r1, #3
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 387
10916 .LVL785:
6547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10917 .loc 1 6547 5 is_stmt 0 view .LVU3839
10918 0024 2046 mov r0, r4
10919 0026 FFF7FEFF bl I2C_Disable_IRQ
10920 .LVL786:
6550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
10921 .loc 1 6550 5 is_stmt 1 view .LVU3840
6550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
10922 .loc 1 6550 25 is_stmt 0 view .LVU3841
10923 002a 2823 movs r3, #40
10924 002c 84F84130 strb r3, [r4, #65]
6551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10925 .loc 1 6551 5 is_stmt 1 view .LVU3842
6551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10926 .loc 1 6551 25 is_stmt 0 view .LVU3843
10927 0030 3D4B ldr r3, .L705+4
10928 0032 6363 str r3, [r4, #52]
10929 .L694:
6586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10930 .loc 1 6586 3 is_stmt 1 view .LVU3844
6586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10931 .loc 1 6586 20 is_stmt 0 view .LVU3845
10932 0034 236B ldr r3, [r4, #48]
10933 .LVL787:
6588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10934 .loc 1 6588 3 is_stmt 1 view .LVU3846
6588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10935 .loc 1 6588 12 is_stmt 0 view .LVU3847
10936 0036 A26B ldr r2, [r4, #56]
6588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10937 .loc 1 6588 6 view .LVU3848
10938 0038 002A cmp r2, #0
10939 003a 48D0 beq .L697
6588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10940 .loc 1 6588 30 discriminator 1 view .LVU3849
10941 003c 212B cmp r3, #33
10942 003e 18BF it ne
10943 0040 112B cmpne r3, #17
10944 0042 44D1 bne .L697
6591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10945 .loc 1 6591 5 is_stmt 1 view .LVU3850
6591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10946 .loc 1 6591 14 is_stmt 0 view .LVU3851
10947 0044 2368 ldr r3, [r4]
10948 .LVL788:
6591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10949 .loc 1 6591 24 view .LVU3852
10950 0046 1A68 ldr r2, [r3]
6591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10951 .loc 1 6591 8 view .LVU3853
10952 0048 12F4804F tst r2, #16384
10953 004c 03D0 beq .L698
6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10954 .loc 1 6593 7 is_stmt 1 view .LVU3854
6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10955 .loc 1 6593 21 is_stmt 0 view .LVU3855
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 388
10956 004e 1A68 ldr r2, [r3]
6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10957 .loc 1 6593 27 view .LVU3856
10958 0050 22F48042 bic r2, r2, #16384
10959 0054 1A60 str r2, [r3]
10960 .L698:
6596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10961 .loc 1 6596 5 is_stmt 1 view .LVU3857
6596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10962 .loc 1 6596 9 is_stmt 0 view .LVU3858
10963 0056 A06B ldr r0, [r4, #56]
10964 0058 FFF7FEFF bl HAL_DMA_GetState
10965 .LVL789:
6596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10966 .loc 1 6596 8 discriminator 1 view .LVU3859
10967 005c 0128 cmp r0, #1
10968 005e 32D0 beq .L699
6600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10969 .loc 1 6600 7 is_stmt 1 view .LVU3860
6600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10970 .loc 1 6600 11 is_stmt 0 view .LVU3861
10971 0060 A36B ldr r3, [r4, #56]
6600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10972 .loc 1 6600 39 view .LVU3862
10973 0062 324A ldr r2, .L705+8
10974 0064 1A65 str r2, [r3, #80]
6603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10975 .loc 1 6603 7 is_stmt 1 view .LVU3863
6603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10976 .loc 1 6603 7 view .LVU3864
10977 0066 0023 movs r3, #0
10978 0068 84F84030 strb r3, [r4, #64]
6603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10979 .loc 1 6603 7 view .LVU3865
6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10980 .loc 1 6606 7 view .LVU3866
6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10981 .loc 1 6606 11 is_stmt 0 view .LVU3867
10982 006c A06B ldr r0, [r4, #56]
10983 006e FFF7FEFF bl HAL_DMA_Abort_IT
10984 .LVL790:
6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10985 .loc 1 6606 10 discriminator 1 view .LVU3868
10986 0072 0028 cmp r0, #0
10987 0074 54D0 beq .L692
6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10988 .loc 1 6609 9 is_stmt 1 view .LVU3869
6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10989 .loc 1 6609 13 is_stmt 0 view .LVU3870
10990 0076 A06B ldr r0, [r4, #56]
6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10991 .loc 1 6609 21 view .LVU3871
10992 0078 036D ldr r3, [r0, #80]
6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10993 .loc 1 6609 9 view .LVU3872
10994 007a 9847 blx r3
10995 .LVL791:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 389
10996 007c 50E0 b .L692
10997 .LVL792:
10998 .L693:
6556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10999 .loc 1 6556 5 is_stmt 1 view .LVU3873
11000 007e 48F20301 movw r1, #32771
11001 .LVL793:
6556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11002 .loc 1 6556 5 is_stmt 0 view .LVU3874
11003 0082 2046 mov r0, r4
11004 0084 FFF7FEFF bl I2C_Disable_IRQ
11005 .LVL794:
6559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11006 .loc 1 6559 5 is_stmt 1 view .LVU3875
11007 0088 2046 mov r0, r4
11008 008a FFF7FEFF bl I2C_Flush_TXDR
11009 .LVL795:
6563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11010 .loc 1 6563 5 view .LVU3876
6563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11011 .loc 1 6563 13 is_stmt 0 view .LVU3877
11012 008e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11013 .loc 1 6563 8 view .LVU3878
11014 0092 602B cmp r3, #96
11015 0094 14D0 beq .L695
6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11016 .loc 1 6566 7 is_stmt 1 view .LVU3879
6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11017 .loc 1 6566 27 is_stmt 0 view .LVU3880
11018 0096 2023 movs r3, #32
11019 0098 84F84130 strb r3, [r4, #65]
6569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11020 .loc 1 6569 7 is_stmt 1 view .LVU3881
6569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11021 .loc 1 6569 11 is_stmt 0 view .LVU3882
11022 009c 2368 ldr r3, [r4]
11023 009e 9A69 ldr r2, [r3, #24]
6569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11024 .loc 1 6569 10 view .LVU3883
11025 00a0 12F0200F tst r2, #32
11026 00a4 0CD0 beq .L695
6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11027 .loc 1 6571 9 is_stmt 1 view .LVU3884
6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11028 .loc 1 6571 13 is_stmt 0 view .LVU3885
11029 00a6 9A69 ldr r2, [r3, #24]
6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11030 .loc 1 6571 12 view .LVU3886
11031 00a8 12F0100F tst r2, #16
11032 00ac 05D0 beq .L696
6573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
11033 .loc 1 6573 11 is_stmt 1 view .LVU3887
11034 00ae 1022 movs r2, #16
11035 00b0 DA61 str r2, [r3, #28]
6574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11036 .loc 1 6574 11 view .LVU3888
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 390
6574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11037 .loc 1 6574 15 is_stmt 0 view .LVU3889
11038 00b2 636C ldr r3, [r4, #68]
6574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11039 .loc 1 6574 27 view .LVU3890
11040 00b4 43F00403 orr r3, r3, #4
11041 00b8 6364 str r3, [r4, #68]
11042 .L696:
6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11043 .loc 1 6578 9 is_stmt 1 view .LVU3891
11044 00ba 2368 ldr r3, [r4]
11045 00bc 2022 movs r2, #32
11046 00be DA61 str r2, [r3, #28]
11047 .L695:
6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11048 .loc 1 6582 5 view .LVU3892
6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11049 .loc 1 6582 25 is_stmt 0 view .LVU3893
11050 00c0 0023 movs r3, #0
11051 00c2 6363 str r3, [r4, #52]
11052 00c4 B6E7 b .L694
11053 .LVL796:
11054 .L699:
6614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11055 .loc 1 6614 7 is_stmt 1 view .LVU3894
11056 00c6 2046 mov r0, r4
11057 00c8 FFF7FEFF bl I2C_TreatErrorCallback
11058 .LVL797:
11059 00cc 28E0 b .L692
11060 .LVL798:
11061 .L697:
6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
11062 .loc 1 6618 8 view .LVU3895
6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
11063 .loc 1 6618 17 is_stmt 0 view .LVU3896
11064 00ce E26B ldr r2, [r4, #60]
6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
11065 .loc 1 6618 11 view .LVU3897
11066 00d0 1AB3 cbz r2, .L701
6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
11067 .loc 1 6618 35 discriminator 1 view .LVU3898
11068 00d2 222B cmp r3, #34
11069 00d4 18BF it ne
11070 00d6 122B cmpne r3, #18
11071 00d8 1FD1 bne .L701
6621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11072 .loc 1 6621 5 is_stmt 1 view .LVU3899
6621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11073 .loc 1 6621 14 is_stmt 0 view .LVU3900
11074 00da 2368 ldr r3, [r4]
11075 .LVL799:
6621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11076 .loc 1 6621 24 view .LVU3901
11077 00dc 1A68 ldr r2, [r3]
6621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11078 .loc 1 6621 8 view .LVU3902
11079 00de 12F4004F tst r2, #32768
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 391
11080 00e2 03D0 beq .L702
6623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11081 .loc 1 6623 7 is_stmt 1 view .LVU3903
6623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11082 .loc 1 6623 21 is_stmt 0 view .LVU3904
11083 00e4 1A68 ldr r2, [r3]
6623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11084 .loc 1 6623 27 view .LVU3905
11085 00e6 22F40042 bic r2, r2, #32768
11086 00ea 1A60 str r2, [r3]
11087 .L702:
6626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11088 .loc 1 6626 5 is_stmt 1 view .LVU3906
6626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11089 .loc 1 6626 9 is_stmt 0 view .LVU3907
11090 00ec E06B ldr r0, [r4, #60]
11091 00ee FFF7FEFF bl HAL_DMA_GetState
11092 .LVL800:
6626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11093 .loc 1 6626 8 discriminator 1 view .LVU3908
11094 00f2 0128 cmp r0, #1
11095 00f4 0DD0 beq .L703
6630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11096 .loc 1 6630 7 is_stmt 1 view .LVU3909
6630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11097 .loc 1 6630 11 is_stmt 0 view .LVU3910
11098 00f6 E36B ldr r3, [r4, #60]
6630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11099 .loc 1 6630 39 view .LVU3911
11100 00f8 0C4A ldr r2, .L705+8
11101 00fa 1A65 str r2, [r3, #80]
6633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11102 .loc 1 6633 7 is_stmt 1 view .LVU3912
6633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11103 .loc 1 6633 7 view .LVU3913
11104 00fc 0023 movs r3, #0
11105 00fe 84F84030 strb r3, [r4, #64]
6633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11106 .loc 1 6633 7 view .LVU3914
6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11107 .loc 1 6636 7 view .LVU3915
6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11108 .loc 1 6636 11 is_stmt 0 view .LVU3916
11109 0102 E06B ldr r0, [r4, #60]
11110 0104 FFF7FEFF bl HAL_DMA_Abort_IT
11111 .LVL801:
6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11112 .loc 1 6636 10 discriminator 1 view .LVU3917
11113 0108 50B1 cbz r0, .L692
6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11114 .loc 1 6639 9 is_stmt 1 view .LVU3918
6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11115 .loc 1 6639 13 is_stmt 0 view .LVU3919
11116 010a E06B ldr r0, [r4, #60]
6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11117 .loc 1 6639 21 view .LVU3920
11118 010c 036D ldr r3, [r0, #80]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 392
6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11119 .loc 1 6639 9 view .LVU3921
11120 010e 9847 blx r3
11121 .LVL802:
11122 0110 06E0 b .L692
11123 .L703:
6644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11124 .loc 1 6644 7 is_stmt 1 view .LVU3922
11125 0112 2046 mov r0, r4
11126 0114 FFF7FEFF bl I2C_TreatErrorCallback
11127 .LVL803:
11128 0118 02E0 b .L692
11129 .LVL804:
11130 .L701:
6649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11131 .loc 1 6649 5 view .LVU3923
11132 011a 2046 mov r0, r4
11133 011c FFF7FEFF bl I2C_TreatErrorCallback
11134 .LVL805:
11135 .L692:
6651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11136 .loc 1 6651 1 is_stmt 0 view .LVU3924
11137 0120 10BD pop {r4, pc}
11138 .LVL806:
11139 .L706:
6651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11140 .loc 1 6651 1 view .LVU3925
11141 0122 00BF .align 2
11142 .L705:
11143 0124 0000FFFF .word -65536
11144 0128 00000000 .word I2C_Slave_ISR_IT
11145 012c 00000000 .word I2C_DMAAbort
11146 .cfi_endproc
11147 .LFE398:
11149 .section .text.I2C_ITSlaveCplt,"ax",%progbits
11150 .align 1
11151 .syntax unified
11152 .thumb
11153 .thumb_func
11155 I2C_ITSlaveCplt:
11156 .LVL807:
11157 .LFB396:
6261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
11158 .loc 1 6261 1 is_stmt 1 view -0
11159 .cfi_startproc
11160 @ args = 0, pretend = 0, frame = 0
11161 @ frame_needed = 0, uses_anonymous_args = 0
6261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
11162 .loc 1 6261 1 is_stmt 0 view .LVU3927
11163 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
11164 .cfi_def_cfa_offset 24
11165 .cfi_offset 3, -24
11166 .cfi_offset 4, -20
11167 .cfi_offset 5, -16
11168 .cfi_offset 6, -12
11169 .cfi_offset 7, -8
11170 .cfi_offset 14, -4
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 393
11171 0002 0446 mov r4, r0
11172 0004 0D46 mov r5, r1
6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11173 .loc 1 6262 3 is_stmt 1 view .LVU3928
6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11174 .loc 1 6262 26 is_stmt 0 view .LVU3929
11175 0006 0268 ldr r2, [r0]
6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11176 .loc 1 6262 12 view .LVU3930
11177 0008 1668 ldr r6, [r2]
11178 .LVL808:
6263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
11179 .loc 1 6263 3 is_stmt 1 view .LVU3931
6264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
11180 .loc 1 6264 3 view .LVU3932
6264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
11181 .loc 1 6264 12 is_stmt 0 view .LVU3933
11182 000a C76A ldr r7, [r0, #44]
11183 .LVL809:
6265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11184 .loc 1 6265 3 is_stmt 1 view .LVU3934
6265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11185 .loc 1 6265 24 is_stmt 0 view .LVU3935
11186 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
11187 .LVL810:
6268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11188 .loc 1 6268 3 is_stmt 1 view .LVU3936
11189 0010 2021 movs r1, #32
11190 .LVL811:
6268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11191 .loc 1 6268 3 is_stmt 0 view .LVU3937
11192 0012 D161 str r1, [r2, #28]
6271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11193 .loc 1 6271 3 is_stmt 1 view .LVU3938
11194 0014 213B subs r3, r3, #33
11195 .LVL812:
6271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11196 .loc 1 6271 3 is_stmt 0 view .LVU3939
11197 0016 092B cmp r3, #9
11198 0018 0CD8 bhi .L708
11199 001a DFE803F0 tbb [pc, r3]
11200 .L710:
11201 001e 05 .byte (.L711-.L710)/2
11202 001f 5F .byte (.L709-.L710)/2
11203 0020 0B .byte (.L708-.L710)/2
11204 0021 0B .byte (.L708-.L710)/2
11205 0022 0B .byte (.L708-.L710)/2
11206 0023 0B .byte (.L708-.L710)/2
11207 0024 0B .byte (.L708-.L710)/2
11208 0025 66 .byte (.L712-.L710)/2
11209 0026 05 .byte (.L711-.L710)/2
11210 0027 5F .byte (.L709-.L710)/2
11211 .p2align 1
11212 .L711:
6273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
11213 .loc 1 6273 5 is_stmt 1 view .LVU3940
11214 0028 48F20101 movw r1, #32769
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 394
11215 002c FFF7FEFF bl I2C_Disable_IRQ
11216 .LVL813:
6274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11217 .loc 1 6274 5 view .LVU3941
6274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11218 .loc 1 6274 25 is_stmt 0 view .LVU3942
11219 0030 2123 movs r3, #33
11220 0032 2363 str r3, [r4, #48]
11221 .L708:
6289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11222 .loc 1 6289 3 is_stmt 1 view .LVU3943
6292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11223 .loc 1 6292 3 view .LVU3944
6292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11224 .loc 1 6292 7 is_stmt 0 view .LVU3945
11225 0034 2268 ldr r2, [r4]
6292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11226 .loc 1 6292 17 view .LVU3946
11227 0036 5368 ldr r3, [r2, #4]
6292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11228 .loc 1 6292 23 view .LVU3947
11229 0038 43F40043 orr r3, r3, #32768
11230 003c 5360 str r3, [r2, #4]
6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11231 .loc 1 6295 3 is_stmt 1 view .LVU3948
11232 003e 2268 ldr r2, [r4]
11233 0040 5368 ldr r3, [r2, #4]
11234 0042 23F0FF73 bic r3, r3, #33423360
11235 0046 23F48B33 bic r3, r3, #71168
11236 004a 23F4FF73 bic r3, r3, #510
11237 004e 23F00103 bic r3, r3, #1
11238 0052 5360 str r3, [r2, #4]
6298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11239 .loc 1 6298 3 view .LVU3949
11240 0054 2046 mov r0, r4
11241 0056 FFF7FEFF bl I2C_Flush_TXDR
11242 .LVL814:
6301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11243 .loc 1 6301 3 view .LVU3950
6301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11244 .loc 1 6301 6 is_stmt 0 view .LVU3951
11245 005a 16F4804F tst r6, #16384
11246 005e 00F09B80 beq .L713
6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11247 .loc 1 6304 5 is_stmt 1 view .LVU3952
6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11248 .loc 1 6304 9 is_stmt 0 view .LVU3953
11249 0062 2268 ldr r2, [r4]
6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11250 .loc 1 6304 19 view .LVU3954
11251 0064 1368 ldr r3, [r2]
6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11252 .loc 1 6304 25 view .LVU3955
11253 0066 23F48043 bic r3, r3, #16384
11254 006a 1360 str r3, [r2]
6306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11255 .loc 1 6306 5 is_stmt 1 view .LVU3956
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 395
6306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11256 .loc 1 6306 13 is_stmt 0 view .LVU3957
11257 006c A36B ldr r3, [r4, #56]
6306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11258 .loc 1 6306 8 view .LVU3958
11259 006e 002B cmp r3, #0
11260 0070 45D0 beq .L714
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11261 .loc 1 6308 7 is_stmt 1 view .LVU3959
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11262 .loc 1 6308 35 is_stmt 0 view .LVU3960
11263 0072 1B68 ldr r3, [r3]
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11264 .loc 1 6308 25 view .LVU3961
11265 0074 9249 ldr r1, .L738
11266 0076 934A ldr r2, .L738+4
11267 0078 9342 cmp r3, r2
11268 007a 18BF it ne
11269 007c 8B42 cmpne r3, r1
11270 007e 3BD0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11271 .loc 1 6308 35 discriminator 2 view .LVU3962
11272 0080 1832 adds r2, r2, #24
11273 0082 9342 cmp r3, r2
11274 0084 38D0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11275 .loc 1 6308 35 discriminator 4 view .LVU3963
11276 0086 1832 adds r2, r2, #24
11277 0088 9342 cmp r3, r2
11278 008a 35D0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11279 .loc 1 6308 35 discriminator 6 view .LVU3964
11280 008c 1832 adds r2, r2, #24
11281 008e 9342 cmp r3, r2
11282 0090 32D0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11283 .loc 1 6308 35 discriminator 8 view .LVU3965
11284 0092 1832 adds r2, r2, #24
11285 0094 9342 cmp r3, r2
11286 0096 2FD0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11287 .loc 1 6308 35 discriminator 10 view .LVU3966
11288 0098 1832 adds r2, r2, #24
11289 009a 9342 cmp r3, r2
11290 009c 2CD0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11291 .loc 1 6308 35 discriminator 12 view .LVU3967
11292 009e 1832 adds r2, r2, #24
11293 00a0 9342 cmp r3, r2
11294 00a2 29D0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11295 .loc 1 6308 35 discriminator 14 view .LVU3968
11296 00a4 02F55672 add r2, r2, #856
11297 00a8 9342 cmp r3, r2
11298 00aa 25D0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11299 .loc 1 6308 35 discriminator 16 view .LVU3969
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 396
11300 00ac 1832 adds r2, r2, #24
11301 00ae 9342 cmp r3, r2
11302 00b0 22D0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11303 .loc 1 6308 35 discriminator 18 view .LVU3970
11304 00b2 1832 adds r2, r2, #24
11305 00b4 9342 cmp r3, r2
11306 00b6 1FD0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11307 .loc 1 6308 35 discriminator 20 view .LVU3971
11308 00b8 1832 adds r2, r2, #24
11309 00ba 9342 cmp r3, r2
11310 00bc 1CD0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11311 .loc 1 6308 35 discriminator 22 view .LVU3972
11312 00be 1832 adds r2, r2, #24
11313 00c0 9342 cmp r3, r2
11314 00c2 19D0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11315 .loc 1 6308 35 discriminator 24 view .LVU3973
11316 00c4 1832 adds r2, r2, #24
11317 00c6 9342 cmp r3, r2
11318 00c8 16D0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11319 .loc 1 6308 35 discriminator 26 view .LVU3974
11320 00ca 1832 adds r2, r2, #24
11321 00cc 9342 cmp r3, r2
11322 00ce 13D0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11323 .loc 1 6308 35 discriminator 28 view .LVU3975
11324 00d0 1832 adds r2, r2, #24
11325 00d2 9342 cmp r3, r2
11326 00d4 10D0 beq .L715
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11327 .loc 1 6308 35 discriminator 30 view .LVU3976
11328 00d6 5B68 ldr r3, [r3, #4]
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11329 .loc 1 6308 25 discriminator 30 view .LVU3977
11330 00d8 9BB2 uxth r3, r3
11331 00da 0FE0 b .L717
11332 .LVL815:
11333 .L709:
6278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
11334 .loc 1 6278 5 is_stmt 1 view .LVU3978
11335 00dc 48F20201 movw r1, #32770
11336 00e0 FFF7FEFF bl I2C_Disable_IRQ
11337 .LVL816:
6279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11338 .loc 1 6279 5 view .LVU3979
6279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11339 .loc 1 6279 25 is_stmt 0 view .LVU3980
11340 00e4 2223 movs r3, #34
11341 00e6 2363 str r3, [r4, #48]
11342 00e8 A4E7 b .L708
11343 .LVL817:
11344 .L712:
6283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 397
11345 .loc 1 6283 5 is_stmt 1 view .LVU3981
11346 00ea 48F20301 movw r1, #32771
11347 00ee FFF7FEFF bl I2C_Disable_IRQ
11348 .LVL818:
6284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11349 .loc 1 6284 5 view .LVU3982
6284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11350 .loc 1 6284 25 is_stmt 0 view .LVU3983
11351 00f2 0023 movs r3, #0
11352 00f4 2363 str r3, [r4, #48]
11353 00f6 9DE7 b .L708
11354 .L715:
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11355 .loc 1 6308 35 discriminator 29 view .LVU3984
11356 00f8 5B68 ldr r3, [r3, #4]
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11357 .loc 1 6308 25 discriminator 29 view .LVU3985
11358 00fa 9BB2 uxth r3, r3
11359 .L717:
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11360 .loc 1 6308 23 discriminator 32 view .LVU3986
11361 00fc 6385 strh r3, [r4, #42] @ movhi
11362 .L714:
6324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11363 .loc 1 6324 3 is_stmt 1 view .LVU3987
6327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11364 .loc 1 6327 3 view .LVU3988
6327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11365 .loc 1 6327 6 is_stmt 0 view .LVU3989
11366 00fe 15F0040F tst r5, #4
11367 0102 11D0 beq .L721
6330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11368 .loc 1 6330 5 is_stmt 1 view .LVU3990
6330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11369 .loc 1 6330 16 is_stmt 0 view .LVU3991
11370 0104 25F00405 bic r5, r5, #4
11371 .LVL819:
6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11372 .loc 1 6333 5 is_stmt 1 view .LVU3992
6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11373 .loc 1 6333 36 is_stmt 0 view .LVU3993
11374 0108 2368 ldr r3, [r4]
6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11375 .loc 1 6333 46 view .LVU3994
11376 010a 5A6A ldr r2, [r3, #36]
6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11377 .loc 1 6333 10 view .LVU3995
11378 010c 636A ldr r3, [r4, #36]
6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11379 .loc 1 6333 21 view .LVU3996
11380 010e 1A70 strb r2, [r3]
6336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11381 .loc 1 6336 5 is_stmt 1 view .LVU3997
6336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11382 .loc 1 6336 9 is_stmt 0 view .LVU3998
11383 0110 636A ldr r3, [r4, #36]
6336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 398
11384 .loc 1 6336 19 view .LVU3999
11385 0112 0133 adds r3, r3, #1
11386 0114 6362 str r3, [r4, #36]
6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11387 .loc 1 6338 5 is_stmt 1 view .LVU4000
6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11388 .loc 1 6338 14 is_stmt 0 view .LVU4001
11389 0116 238D ldrh r3, [r4, #40]
6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11390 .loc 1 6338 8 view .LVU4002
11391 0118 33B1 cbz r3, .L721
6340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11392 .loc 1 6340 7 is_stmt 1 view .LVU4003
6340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11393 .loc 1 6340 21 is_stmt 0 view .LVU4004
11394 011a 013B subs r3, r3, #1
11395 011c 2385 strh r3, [r4, #40] @ movhi
6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11396 .loc 1 6341 7 is_stmt 1 view .LVU4005
6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11397 .loc 1 6341 11 is_stmt 0 view .LVU4006
11398 011e 638D ldrh r3, [r4, #42]
11399 0120 9BB2 uxth r3, r3
6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11400 .loc 1 6341 22 view .LVU4007
11401 0122 013B subs r3, r3, #1
11402 0124 9BB2 uxth r3, r3
11403 0126 6385 strh r3, [r4, #42] @ movhi
11404 .L721:
6346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11405 .loc 1 6346 3 is_stmt 1 view .LVU4008
6346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11406 .loc 1 6346 11 is_stmt 0 view .LVU4009
11407 0128 638D ldrh r3, [r4, #42]
11408 012a 9BB2 uxth r3, r3
6346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11409 .loc 1 6346 6 view .LVU4010
11410 012c 1BB1 cbz r3, .L722
6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11411 .loc 1 6349 5 is_stmt 1 view .LVU4011
6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11412 .loc 1 6349 9 is_stmt 0 view .LVU4012
11413 012e 636C ldr r3, [r4, #68]
6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11414 .loc 1 6349 21 view .LVU4013
11415 0130 43F00403 orr r3, r3, #4
11416 0134 6364 str r3, [r4, #68]
11417 .L722:
6352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
11418 .loc 1 6352 3 is_stmt 1 view .LVU4014
6352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
11419 .loc 1 6352 6 is_stmt 0 view .LVU4015
11420 0136 15F0100F tst r5, #16
11421 013a 11D0 beq .L723
6352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
11422 .loc 1 6352 58 discriminator 1 view .LVU4016
11423 013c 16F0100F tst r6, #16
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 399
11424 0140 0ED0 beq .L723
6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11425 .loc 1 6359 5 is_stmt 1 view .LVU4017
6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11426 .loc 1 6359 13 is_stmt 0 view .LVU4018
11427 0142 638D ldrh r3, [r4, #42]
11428 0144 9BB2 uxth r3, r3
6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11429 .loc 1 6359 8 view .LVU4019
11430 0146 002B cmp r3, #0
11431 0148 7FD1 bne .L724
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11432 .loc 1 6361 7 is_stmt 1 view .LVU4020
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11433 .loc 1 6361 16 is_stmt 0 view .LVU4021
11434 014a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11435 .loc 1 6361 10 view .LVU4022
11436 014e 282B cmp r3, #40
11437 0150 66D0 beq .L733
11438 .L725:
6368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11439 .loc 1 6368 12 is_stmt 1 view .LVU4023
6368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11440 .loc 1 6368 21 is_stmt 0 view .LVU4024
11441 0152 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11442 .loc 1 6368 15 view .LVU4025
11443 0156 292B cmp r3, #41
11444 0158 6AD0 beq .L734
11445 .L726:
6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11446 .loc 1 6383 9 is_stmt 1 view .LVU4026
11447 015a 2368 ldr r3, [r4]
11448 015c 1022 movs r2, #16
11449 015e DA61 str r2, [r3, #28]
11450 .L723:
6403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
11451 .loc 1 6403 3 view .LVU4027
6403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
11452 .loc 1 6403 14 is_stmt 0 view .LVU4028
11453 0160 0023 movs r3, #0
11454 0162 84F84230 strb r3, [r4, #66]
6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11455 .loc 1 6404 3 is_stmt 1 view .LVU4029
6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11456 .loc 1 6404 17 is_stmt 0 view .LVU4030
11457 0166 6363 str r3, [r4, #52]
6406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11458 .loc 1 6406 3 is_stmt 1 view .LVU4031
6406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11459 .loc 1 6406 11 is_stmt 0 view .LVU4032
11460 0168 636C ldr r3, [r4, #68]
6406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11461 .loc 1 6406 6 view .LVU4033
11462 016a 002B cmp r3, #0
11463 016c 7FD1 bne .L735
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 400
6418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11464 .loc 1 6418 8 is_stmt 1 view .LVU4034
6418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11465 .loc 1 6418 16 is_stmt 0 view .LVU4035
11466 016e E36A ldr r3, [r4, #44]
6418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11467 .loc 1 6418 11 view .LVU4036
11468 0170 13F5803F cmn r3, #65536
11469 0174 40F08880 bne .L736
6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11470 .loc 1 6438 8 is_stmt 1 view .LVU4037
6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11471 .loc 1 6438 16 is_stmt 0 view .LVU4038
11472 0178 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11473 .loc 1 6438 11 view .LVU4039
11474 017c 222B cmp r3, #34
11475 017e 00F09380 beq .L737
6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11476 .loc 1 6455 5 is_stmt 1 view .LVU4040
6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11477 .loc 1 6455 17 is_stmt 0 view .LVU4041
11478 0182 2023 movs r3, #32
11479 0184 84F84130 strb r3, [r4, #65]
6456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11480 .loc 1 6456 5 is_stmt 1 view .LVU4042
6456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11481 .loc 1 6456 25 is_stmt 0 view .LVU4043
11482 0188 0023 movs r3, #0
11483 018a 2363 str r3, [r4, #48]
6459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11484 .loc 1 6459 5 is_stmt 1 view .LVU4044
6459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11485 .loc 1 6459 5 view .LVU4045
11486 018c 84F84030 strb r3, [r4, #64]
6459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11487 .loc 1 6459 5 view .LVU4046
6465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11488 .loc 1 6465 5 view .LVU4047
11489 0190 2046 mov r0, r4
11490 0192 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
11491 .LVL820:
6468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11492 .loc 1 6468 1 is_stmt 0 view .LVU4048
11493 0196 86E0 b .L707
11494 .LVL821:
11495 .L713:
6311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11496 .loc 1 6311 8 is_stmt 1 view .LVU4049
6311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11497 .loc 1 6311 11 is_stmt 0 view .LVU4050
11498 0198 16F4004F tst r6, #32768
11499 019c AFD0 beq .L714
6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11500 .loc 1 6314 5 is_stmt 1 view .LVU4051
6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11501 .loc 1 6314 9 is_stmt 0 view .LVU4052
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 401
11502 019e 2268 ldr r2, [r4]
6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11503 .loc 1 6314 19 view .LVU4053
11504 01a0 1368 ldr r3, [r2]
6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11505 .loc 1 6314 25 view .LVU4054
11506 01a2 23F40043 bic r3, r3, #32768
11507 01a6 1360 str r3, [r2]
6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11508 .loc 1 6316 5 is_stmt 1 view .LVU4055
6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11509 .loc 1 6316 13 is_stmt 0 view .LVU4056
11510 01a8 E36B ldr r3, [r4, #60]
6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11511 .loc 1 6316 8 view .LVU4057
11512 01aa 002B cmp r3, #0
11513 01ac A7D0 beq .L714
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11514 .loc 1 6318 7 is_stmt 1 view .LVU4058
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11515 .loc 1 6318 35 is_stmt 0 view .LVU4059
11516 01ae 1B68 ldr r3, [r3]
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11517 .loc 1 6318 25 view .LVU4060
11518 01b0 4349 ldr r1, .L738
11519 01b2 444A ldr r2, .L738+4
11520 01b4 9342 cmp r3, r2
11521 01b6 18BF it ne
11522 01b8 8B42 cmpne r3, r1
11523 01ba 2DD0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11524 .loc 1 6318 35 discriminator 2 view .LVU4061
11525 01bc 1832 adds r2, r2, #24
11526 01be 9342 cmp r3, r2
11527 01c0 2AD0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11528 .loc 1 6318 35 discriminator 4 view .LVU4062
11529 01c2 1832 adds r2, r2, #24
11530 01c4 9342 cmp r3, r2
11531 01c6 27D0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11532 .loc 1 6318 35 discriminator 6 view .LVU4063
11533 01c8 1832 adds r2, r2, #24
11534 01ca 9342 cmp r3, r2
11535 01cc 24D0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11536 .loc 1 6318 35 discriminator 8 view .LVU4064
11537 01ce 1832 adds r2, r2, #24
11538 01d0 9342 cmp r3, r2
11539 01d2 21D0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11540 .loc 1 6318 35 discriminator 10 view .LVU4065
11541 01d4 1832 adds r2, r2, #24
11542 01d6 9342 cmp r3, r2
11543 01d8 1ED0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11544 .loc 1 6318 35 discriminator 12 view .LVU4066
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 402
11545 01da 1832 adds r2, r2, #24
11546 01dc 9342 cmp r3, r2
11547 01de 1BD0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11548 .loc 1 6318 35 discriminator 14 view .LVU4067
11549 01e0 02F55672 add r2, r2, #856
11550 01e4 9342 cmp r3, r2
11551 01e6 17D0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11552 .loc 1 6318 35 discriminator 16 view .LVU4068
11553 01e8 1832 adds r2, r2, #24
11554 01ea 9342 cmp r3, r2
11555 01ec 14D0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11556 .loc 1 6318 35 discriminator 18 view .LVU4069
11557 01ee 1832 adds r2, r2, #24
11558 01f0 9342 cmp r3, r2
11559 01f2 11D0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11560 .loc 1 6318 35 discriminator 20 view .LVU4070
11561 01f4 1832 adds r2, r2, #24
11562 01f6 9342 cmp r3, r2
11563 01f8 0ED0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11564 .loc 1 6318 35 discriminator 22 view .LVU4071
11565 01fa 1832 adds r2, r2, #24
11566 01fc 9342 cmp r3, r2
11567 01fe 0BD0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11568 .loc 1 6318 35 discriminator 24 view .LVU4072
11569 0200 1832 adds r2, r2, #24
11570 0202 9342 cmp r3, r2
11571 0204 08D0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11572 .loc 1 6318 35 discriminator 26 view .LVU4073
11573 0206 1832 adds r2, r2, #24
11574 0208 9342 cmp r3, r2
11575 020a 05D0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11576 .loc 1 6318 35 discriminator 28 view .LVU4074
11577 020c 1832 adds r2, r2, #24
11578 020e 9342 cmp r3, r2
11579 0210 02D0 beq .L718
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11580 .loc 1 6318 35 discriminator 30 view .LVU4075
11581 0212 5B68 ldr r3, [r3, #4]
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11582 .loc 1 6318 25 discriminator 30 view .LVU4076
11583 0214 9BB2 uxth r3, r3
11584 0216 01E0 b .L720
11585 .L718:
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11586 .loc 1 6318 35 discriminator 29 view .LVU4077
11587 0218 5B68 ldr r3, [r3, #4]
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11588 .loc 1 6318 25 discriminator 29 view .LVU4078
11589 021a 9BB2 uxth r3, r3
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 403
11590 .L720:
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11591 .loc 1 6318 23 discriminator 32 view .LVU4079
11592 021c 6385 strh r3, [r4, #42] @ movhi
11593 021e 6EE7 b .L714
11594 .LVL822:
11595 .L733:
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11596 .loc 1 6361 49 discriminator 1 view .LVU4080
11597 0220 B7F1007F cmp r7, #33554432
11598 0224 95D1 bne .L725
6366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11599 .loc 1 6366 9 is_stmt 1 view .LVU4081
11600 0226 2946 mov r1, r5
11601 0228 2046 mov r0, r4
11602 022a FFF7FEFF bl I2C_ITListenCplt
11603 .LVL823:
11604 022e 97E7 b .L723
11605 .L734:
6368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11606 .loc 1 6368 62 is_stmt 0 discriminator 1 view .LVU4082
11607 0230 17F5803F cmn r7, #65536
11608 0234 91D0 beq .L726
6371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11609 .loc 1 6371 9 is_stmt 1 view .LVU4083
11610 0236 2368 ldr r3, [r4]
11611 0238 1022 movs r2, #16
11612 023a DA61 str r2, [r3, #28]
6374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11613 .loc 1 6374 9 view .LVU4084
11614 023c 2046 mov r0, r4
11615 023e FFF7FEFF bl I2C_Flush_TXDR
11616 .LVL824:
6378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11617 .loc 1 6378 9 view .LVU4085
11618 0242 2046 mov r0, r4
11619 0244 FFF7FEFF bl I2C_ITSlaveSeqCplt
11620 .LVL825:
11621 0248 8AE7 b .L723
11622 .L724:
6390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11623 .loc 1 6390 7 view .LVU4086
11624 024a 2368 ldr r3, [r4]
11625 024c 1022 movs r2, #16
11626 024e DA61 str r2, [r3, #28]
6393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11627 .loc 1 6393 7 view .LVU4087
6393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11628 .loc 1 6393 11 is_stmt 0 view .LVU4088
11629 0250 636C ldr r3, [r4, #68]
6393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11630 .loc 1 6393 23 view .LVU4089
11631 0252 43F00403 orr r3, r3, #4
11632 0256 6364 str r3, [r4, #68]
6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11633 .loc 1 6395 7 is_stmt 1 view .LVU4090
6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 404
11634 .loc 1 6395 10 is_stmt 0 view .LVU4091
11635 0258 B7F1807F cmp r7, #16777216
11636 025c 18BF it ne
11637 025e 002F cmpne r7, #0
11638 0260 7FF47EAF bne .L723
6398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11639 .loc 1 6398 9 is_stmt 1 view .LVU4092
6398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11640 .loc 1 6398 31 is_stmt 0 view .LVU4093
11641 0264 616C ldr r1, [r4, #68]
6398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11642 .loc 1 6398 9 view .LVU4094
11643 0266 2046 mov r0, r4
11644 0268 FFF7FEFF bl I2C_ITError
11645 .LVL826:
11646 026c 78E7 b .L723
11647 .L735:
6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11648 .loc 1 6409 5 is_stmt 1 view .LVU4095
6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11649 .loc 1 6409 27 is_stmt 0 view .LVU4096
11650 026e 616C ldr r1, [r4, #68]
6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11651 .loc 1 6409 5 view .LVU4097
11652 0270 2046 mov r0, r4
11653 0272 FFF7FEFF bl I2C_ITError
11654 .LVL827:
6412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11655 .loc 1 6412 5 is_stmt 1 view .LVU4098
6412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11656 .loc 1 6412 13 is_stmt 0 view .LVU4099
11657 0276 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11658 .loc 1 6412 8 view .LVU4100
11659 027a 282B cmp r3, #40
11660 027c 13D1 bne .L707
6415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11661 .loc 1 6415 7 is_stmt 1 view .LVU4101
11662 027e 2946 mov r1, r5
11663 0280 2046 mov r0, r4
11664 0282 FFF7FEFF bl I2C_ITListenCplt
11665 .LVL828:
11666 0286 0EE0 b .L707
11667 .L736:
6421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11668 .loc 1 6421 5 view .LVU4102
11669 0288 2046 mov r0, r4
11670 028a FFF7FEFF bl I2C_ITSlaveSeqCplt
11671 .LVL829:
6423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
11672 .loc 1 6423 5 view .LVU4103
6423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
11673 .loc 1 6423 23 is_stmt 0 view .LVU4104
11674 028e 0E4B ldr r3, .L738+8
11675 0290 E362 str r3, [r4, #44]
6424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11676 .loc 1 6424 5 is_stmt 1 view .LVU4105
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 405
6424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11677 .loc 1 6424 17 is_stmt 0 view .LVU4106
11678 0292 2023 movs r3, #32
11679 0294 84F84130 strb r3, [r4, #65]
6425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11680 .loc 1 6425 5 is_stmt 1 view .LVU4107
6425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11681 .loc 1 6425 25 is_stmt 0 view .LVU4108
11682 0298 0023 movs r3, #0
11683 029a 2363 str r3, [r4, #48]
6428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11684 .loc 1 6428 5 is_stmt 1 view .LVU4109
6428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11685 .loc 1 6428 5 view .LVU4110
11686 029c 84F84030 strb r3, [r4, #64]
6428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11687 .loc 1 6428 5 view .LVU4111
6434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11688 .loc 1 6434 5 view .LVU4112
11689 02a0 2046 mov r0, r4
11690 02a2 FFF7FEFF bl HAL_I2C_ListenCpltCallback
11691 .LVL830:
11692 .L707:
6468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11693 .loc 1 6468 1 is_stmt 0 view .LVU4113
11694 02a6 F8BD pop {r3, r4, r5, r6, r7, pc}
11695 .LVL831:
11696 .L737:
6440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11697 .loc 1 6440 5 is_stmt 1 view .LVU4114
6440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11698 .loc 1 6440 17 is_stmt 0 view .LVU4115
11699 02a8 2023 movs r3, #32
11700 02aa 84F84130 strb r3, [r4, #65]
6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11701 .loc 1 6441 5 is_stmt 1 view .LVU4116
6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11702 .loc 1 6441 25 is_stmt 0 view .LVU4117
11703 02ae 0023 movs r3, #0
11704 02b0 2363 str r3, [r4, #48]
6444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11705 .loc 1 6444 5 is_stmt 1 view .LVU4118
6444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11706 .loc 1 6444 5 view .LVU4119
11707 02b2 84F84030 strb r3, [r4, #64]
6444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11708 .loc 1 6444 5 view .LVU4120
6450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11709 .loc 1 6450 5 view .LVU4121
11710 02b6 2046 mov r0, r4
11711 02b8 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
11712 .LVL832:
11713 02bc F3E7 b .L707
11714 .L739:
11715 02be 00BF .align 2
11716 .L738:
11717 02c0 10000240 .word 1073872912
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 406
11718 02c4 28000240 .word 1073872936
11719 02c8 0000FFFF .word -65536
11720 .cfi_endproc
11721 .LFE396:
11723 .section .text.I2C_Slave_ISR_IT,"ax",%progbits
11724 .align 1
11725 .syntax unified
11726 .thumb
11727 .thumb_func
11729 I2C_Slave_ISR_IT:
11730 .LVL833:
11731 .LFB386:
5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
11732 .loc 1 5221 1 view -0
11733 .cfi_startproc
11734 @ args = 0, pretend = 0, frame = 0
11735 @ frame_needed = 0, uses_anonymous_args = 0
5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
11736 .loc 1 5221 1 is_stmt 0 view .LVU4123
11737 0000 10B5 push {r4, lr}
11738 .cfi_def_cfa_offset 8
11739 .cfi_offset 4, -8
11740 .cfi_offset 14, -4
11741 0002 0446 mov r4, r0
5222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11742 .loc 1 5222 3 is_stmt 1 view .LVU4124
5222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11743 .loc 1 5222 12 is_stmt 0 view .LVU4125
11744 0004 C06A ldr r0, [r0, #44]
11745 .LVL834:
5223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11746 .loc 1 5223 3 is_stmt 1 view .LVU4126
5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11747 .loc 1 5226 3 view .LVU4127
5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11748 .loc 1 5226 3 view .LVU4128
11749 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
11750 000a 012B cmp r3, #1
11751 000c 00F09980 beq .L752
5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11752 .loc 1 5226 3 discriminator 2 view .LVU4129
11753 0010 0123 movs r3, #1
11754 0012 84F84030 strb r3, [r4, #64]
5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11755 .loc 1 5226 3 view .LVU4130
5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11756 .loc 1 5229 3 view .LVU4131
5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11757 .loc 1 5229 6 is_stmt 0 view .LVU4132
11758 0016 11F0200F tst r1, #32
11759 001a 02D0 beq .L742
5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11760 .loc 1 5229 61 discriminator 1 view .LVU4133
11761 001c 12F0200F tst r2, #32
11762 0020 14D1 bne .L754
11763 .L742:
5235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 407
11764 .loc 1 5235 8 is_stmt 1 view .LVU4134
5235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
11765 .loc 1 5235 11 is_stmt 0 view .LVU4135
11766 0022 11F0100F tst r1, #16
11767 0026 3DD0 beq .L744
5235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
11768 .loc 1 5235 63 discriminator 1 view .LVU4136
11769 0028 12F0100F tst r2, #16
11770 002c 3AD0 beq .L744
5242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11771 .loc 1 5242 5 is_stmt 1 view .LVU4137
5242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11772 .loc 1 5242 13 is_stmt 0 view .LVU4138
11773 002e 638D ldrh r3, [r4, #42]
11774 0030 9BB2 uxth r3, r3
5242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11775 .loc 1 5242 8 view .LVU4139
11776 0032 33BB cbnz r3, .L745
5244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11777 .loc 1 5244 7 is_stmt 1 view .LVU4140
5244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11778 .loc 1 5244 16 is_stmt 0 view .LVU4141
11779 0034 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11780 .loc 1 5244 10 view .LVU4142
11781 0038 282B cmp r3, #40
11782 003a 0ED0 beq .L755
11783 .L746:
5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11784 .loc 1 5251 12 is_stmt 1 view .LVU4143
5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11785 .loc 1 5251 21 is_stmt 0 view .LVU4144
11786 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11787 .loc 1 5251 15 view .LVU4145
11788 0040 292B cmp r3, #41
11789 0042 11D0 beq .L756
11790 .L747:
5266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11791 .loc 1 5266 9 is_stmt 1 view .LVU4146
11792 0044 2368 ldr r3, [r4]
11793 0046 1022 movs r2, #16
11794 .LVL835:
5266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11795 .loc 1 5266 9 is_stmt 0 view .LVU4147
11796 0048 DA61 str r2, [r3, #28]
11797 004a 02E0 b .L743
11798 .LVL836:
11799 .L754:
5233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11800 .loc 1 5233 5 is_stmt 1 view .LVU4148
11801 004c 2046 mov r0, r4
11802 .LVL837:
5233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11803 .loc 1 5233 5 is_stmt 0 view .LVU4149
11804 004e FFF7FEFF bl I2C_ITSlaveCplt
11805 .LVL838:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 408
11806 .L743:
5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11807 .loc 1 5343 3 is_stmt 1 view .LVU4150
5346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11808 .loc 1 5346 3 view .LVU4151
5346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11809 .loc 1 5346 3 view .LVU4152
11810 0052 0020 movs r0, #0
11811 0054 84F84000 strb r0, [r4, #64]
5346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11812 .loc 1 5346 3 view .LVU4153
5348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11813 .loc 1 5348 3 view .LVU4154
11814 .L741:
5349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11815 .loc 1 5349 1 is_stmt 0 view .LVU4155
11816 0058 10BD pop {r4, pc}
11817 .LVL839:
11818 .L755:
5244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11819 .loc 1 5244 49 discriminator 1 view .LVU4156
11820 005a B0F1007F cmp r0, #33554432
11821 005e EDD1 bne .L746
5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11822 .loc 1 5249 9 is_stmt 1 view .LVU4157
11823 0060 2046 mov r0, r4
11824 .LVL840:
5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11825 .loc 1 5249 9 is_stmt 0 view .LVU4158
11826 0062 FFF7FEFF bl I2C_ITListenCplt
11827 .LVL841:
5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11828 .loc 1 5249 9 view .LVU4159
11829 0066 F4E7 b .L743
11830 .LVL842:
11831 .L756:
5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11832 .loc 1 5251 62 discriminator 1 view .LVU4160
11833 0068 10F5803F cmn r0, #65536
11834 006c EAD0 beq .L747
5254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11835 .loc 1 5254 9 is_stmt 1 view .LVU4161
11836 006e 2368 ldr r3, [r4]
11837 0070 1022 movs r2, #16
11838 .LVL843:
5254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11839 .loc 1 5254 9 is_stmt 0 view .LVU4162
11840 0072 DA61 str r2, [r3, #28]
5257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11841 .loc 1 5257 9 is_stmt 1 view .LVU4163
11842 0074 2046 mov r0, r4
11843 .LVL844:
5257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11844 .loc 1 5257 9 is_stmt 0 view .LVU4164
11845 0076 FFF7FEFF bl I2C_Flush_TXDR
11846 .LVL845:
5261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 409
11847 .loc 1 5261 9 is_stmt 1 view .LVU4165
11848 007a 2046 mov r0, r4
11849 007c FFF7FEFF bl I2C_ITSlaveSeqCplt
11850 .LVL846:
11851 0080 E7E7 b .L743
11852 .LVL847:
11853 .L745:
5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11854 .loc 1 5273 7 view .LVU4166
11855 0082 2368 ldr r3, [r4]
11856 0084 1022 movs r2, #16
11857 .LVL848:
5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11858 .loc 1 5273 7 is_stmt 0 view .LVU4167
11859 0086 DA61 str r2, [r3, #28]
5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11860 .loc 1 5276 7 is_stmt 1 view .LVU4168
5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11861 .loc 1 5276 11 is_stmt 0 view .LVU4169
11862 0088 636C ldr r3, [r4, #68]
5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11863 .loc 1 5276 23 view .LVU4170
11864 008a 43F00403 orr r3, r3, #4
11865 008e 6364 str r3, [r4, #68]
5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11866 .loc 1 5278 7 is_stmt 1 view .LVU4171
5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11867 .loc 1 5278 10 is_stmt 0 view .LVU4172
11868 0090 B0F1807F cmp r0, #16777216
11869 0094 18BF it ne
11870 0096 0028 cmpne r0, #0
11871 0098 DBD1 bne .L743
5281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11872 .loc 1 5281 9 is_stmt 1 view .LVU4173
5281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11873 .loc 1 5281 31 is_stmt 0 view .LVU4174
11874 009a 616C ldr r1, [r4, #68]
11875 .LVL849:
5281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11876 .loc 1 5281 9 view .LVU4175
11877 009c 2046 mov r0, r4
11878 .LVL850:
5281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11879 .loc 1 5281 9 view .LVU4176
11880 009e FFF7FEFF bl I2C_ITError
11881 .LVL851:
11882 00a2 D6E7 b .L743
11883 .LVL852:
11884 .L744:
5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
11885 .loc 1 5285 8 is_stmt 1 view .LVU4177
5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
11886 .loc 1 5285 11 is_stmt 0 view .LVU4178
11887 00a4 11F0040F tst r1, #4
11888 00a8 1FD0 beq .L748
5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
11889 .loc 1 5285 65 discriminator 1 view .LVU4179
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 410
11890 00aa 12F0040F tst r2, #4
11891 00ae 1CD0 beq .L748
5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11892 .loc 1 5288 5 is_stmt 1 view .LVU4180
5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11893 .loc 1 5288 13 is_stmt 0 view .LVU4181
11894 00b0 638D ldrh r3, [r4, #42]
11895 00b2 9BB2 uxth r3, r3
5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11896 .loc 1 5288 8 view .LVU4182
11897 00b4 73B1 cbz r3, .L749
5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11898 .loc 1 5291 7 is_stmt 1 view .LVU4183
5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11899 .loc 1 5291 38 is_stmt 0 view .LVU4184
11900 00b6 2368 ldr r3, [r4]
5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11901 .loc 1 5291 48 view .LVU4185
11902 00b8 5A6A ldr r2, [r3, #36]
11903 .LVL853:
5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11904 .loc 1 5291 12 view .LVU4186
11905 00ba 636A ldr r3, [r4, #36]
5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11906 .loc 1 5291 23 view .LVU4187
11907 00bc 1A70 strb r2, [r3]
5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11908 .loc 1 5294 7 is_stmt 1 view .LVU4188
5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11909 .loc 1 5294 11 is_stmt 0 view .LVU4189
11910 00be 636A ldr r3, [r4, #36]
5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11911 .loc 1 5294 21 view .LVU4190
11912 00c0 0133 adds r3, r3, #1
11913 00c2 6362 str r3, [r4, #36]
5296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11914 .loc 1 5296 7 is_stmt 1 view .LVU4191
5296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11915 .loc 1 5296 11 is_stmt 0 view .LVU4192
11916 00c4 238D ldrh r3, [r4, #40]
5296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11917 .loc 1 5296 21 view .LVU4193
11918 00c6 013B subs r3, r3, #1
11919 00c8 2385 strh r3, [r4, #40] @ movhi
5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11920 .loc 1 5297 7 is_stmt 1 view .LVU4194
5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11921 .loc 1 5297 11 is_stmt 0 view .LVU4195
11922 00ca 638D ldrh r3, [r4, #42]
11923 00cc 9BB2 uxth r3, r3
5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11924 .loc 1 5297 22 view .LVU4196
11925 00ce 013B subs r3, r3, #1
11926 00d0 9BB2 uxth r3, r3
11927 00d2 6385 strh r3, [r4, #42] @ movhi
11928 .L749:
5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 411
11929 .loc 1 5300 5 is_stmt 1 view .LVU4197
5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11930 .loc 1 5300 14 is_stmt 0 view .LVU4198
11931 00d4 638D ldrh r3, [r4, #42]
11932 00d6 9BB2 uxth r3, r3
5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11933 .loc 1 5300 8 view .LVU4199
11934 00d8 002B cmp r3, #0
11935 00da BAD1 bne .L743
5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11936 .loc 1 5300 33 discriminator 1 view .LVU4200
11937 00dc 10F5803F cmn r0, #65536
11938 00e0 B7D0 beq .L743
5304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11939 .loc 1 5304 7 is_stmt 1 view .LVU4201
11940 00e2 2046 mov r0, r4
11941 .LVL854:
5304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11942 .loc 1 5304 7 is_stmt 0 view .LVU4202
11943 00e4 FFF7FEFF bl I2C_ITSlaveSeqCplt
11944 .LVL855:
5304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11945 .loc 1 5304 7 view .LVU4203
11946 00e8 B3E7 b .L743
11947 .LVL856:
11948 .L748:
5307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
11949 .loc 1 5307 8 is_stmt 1 view .LVU4204
5307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
11950 .loc 1 5307 11 is_stmt 0 view .LVU4205
11951 00ea 11F0080F tst r1, #8
11952 00ee 02D0 beq .L750
5307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
11953 .loc 1 5307 65 discriminator 1 view .LVU4206
11954 00f0 12F0080F tst r2, #8
11955 00f4 18D1 bne .L757
11956 .L750:
5312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
11957 .loc 1 5312 8 is_stmt 1 view .LVU4207
5312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
11958 .loc 1 5312 11 is_stmt 0 view .LVU4208
11959 00f6 11F0020F tst r1, #2
11960 00fa AAD0 beq .L743
5312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
11961 .loc 1 5312 65 discriminator 1 view .LVU4209
11962 00fc 12F0020F tst r2, #2
11963 0100 A7D0 beq .L743
5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11964 .loc 1 5319 5 is_stmt 1 view .LVU4210
5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11965 .loc 1 5319 13 is_stmt 0 view .LVU4211
11966 0102 638D ldrh r3, [r4, #42]
11967 0104 9BB2 uxth r3, r3
5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11968 .loc 1 5319 8 view .LVU4212
11969 0106 9BB1 cbz r3, .L751
5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 412
11970 .loc 1 5322 7 is_stmt 1 view .LVU4213
5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11971 .loc 1 5322 35 is_stmt 0 view .LVU4214
11972 0108 626A ldr r2, [r4, #36]
11973 .LVL857:
5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11974 .loc 1 5322 11 view .LVU4215
11975 010a 2368 ldr r3, [r4]
5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11976 .loc 1 5322 30 view .LVU4216
11977 010c 1278 ldrb r2, [r2] @ zero_extendqisi2
5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11978 .loc 1 5322 28 view .LVU4217
11979 010e 9A62 str r2, [r3, #40]
5325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11980 .loc 1 5325 7 is_stmt 1 view .LVU4218
5325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11981 .loc 1 5325 11 is_stmt 0 view .LVU4219
11982 0110 636A ldr r3, [r4, #36]
5325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11983 .loc 1 5325 21 view .LVU4220
11984 0112 0133 adds r3, r3, #1
11985 0114 6362 str r3, [r4, #36]
5327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
11986 .loc 1 5327 7 is_stmt 1 view .LVU4221
5327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
11987 .loc 1 5327 11 is_stmt 0 view .LVU4222
11988 0116 638D ldrh r3, [r4, #42]
11989 0118 9BB2 uxth r3, r3
5327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
11990 .loc 1 5327 22 view .LVU4223
11991 011a 013B subs r3, r3, #1
11992 011c 9BB2 uxth r3, r3
11993 011e 6385 strh r3, [r4, #42] @ movhi
5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11994 .loc 1 5328 7 is_stmt 1 view .LVU4224
5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11995 .loc 1 5328 11 is_stmt 0 view .LVU4225
11996 0120 238D ldrh r3, [r4, #40]
5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11997 .loc 1 5328 21 view .LVU4226
11998 0122 013B subs r3, r3, #1
11999 0124 2385 strh r3, [r4, #40] @ movhi
12000 0126 94E7 b .L743
12001 .LVL858:
12002 .L757:
5310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12003 .loc 1 5310 5 is_stmt 1 view .LVU4227
12004 0128 2046 mov r0, r4
12005 .LVL859:
5310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12006 .loc 1 5310 5 is_stmt 0 view .LVU4228
12007 012a FFF7FEFF bl I2C_ITAddrCplt
12008 .LVL860:
5310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12009 .loc 1 5310 5 view .LVU4229
12010 012e 90E7 b .L743
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 413
12011 .LVL861:
12012 .L751:
5332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12013 .loc 1 5332 7 is_stmt 1 view .LVU4230
5332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12014 .loc 1 5332 10 is_stmt 0 view .LVU4231
12015 0130 0028 cmp r0, #0
12016 0132 18BF it ne
12017 0134 B0F1807F cmpne r0, #16777216
12018 0138 8BD1 bne .L743
5336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12019 .loc 1 5336 9 is_stmt 1 view .LVU4232
12020 013a 2046 mov r0, r4
12021 .LVL862:
5336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12022 .loc 1 5336 9 is_stmt 0 view .LVU4233
12023 013c FFF7FEFF bl I2C_ITSlaveSeqCplt
12024 .LVL863:
5336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12025 .loc 1 5336 9 view .LVU4234
12026 0140 87E7 b .L743
12027 .LVL864:
12028 .L752:
5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12029 .loc 1 5226 3 discriminator 1 view .LVU4235
12030 0142 0220 movs r0, #2
12031 .LVL865:
5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12032 .loc 1 5226 3 discriminator 1 view .LVU4236
12033 0144 88E7 b .L741
12034 .cfi_endproc
12035 .LFE386:
12037 .section .text.I2C_ITMasterCplt,"ax",%progbits
12038 .align 1
12039 .syntax unified
12040 .thumb
12041 .thumb_func
12043 I2C_ITMasterCplt:
12044 .LVL866:
12045 .LFB395:
6118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
12046 .loc 1 6118 1 is_stmt 1 view -0
12047 .cfi_startproc
12048 @ args = 0, pretend = 0, frame = 8
12049 @ frame_needed = 0, uses_anonymous_args = 0
6118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
12050 .loc 1 6118 1 is_stmt 0 view .LVU4238
12051 0000 30B5 push {r4, r5, lr}
12052 .cfi_def_cfa_offset 12
12053 .cfi_offset 4, -12
12054 .cfi_offset 5, -8
12055 .cfi_offset 14, -4
12056 0002 83B0 sub sp, sp, #12
12057 .cfi_def_cfa_offset 24
12058 0004 0446 mov r4, r0
12059 0006 0D46 mov r5, r1
6119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 414
12060 .loc 1 6119 3 is_stmt 1 view .LVU4239
6120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t tmpreg;
12061 .loc 1 6120 3 view .LVU4240
12062 .LVL867:
6121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12063 .loc 1 6121 3 view .LVU4241
6124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12064 .loc 1 6124 3 view .LVU4242
12065 0008 0368 ldr r3, [r0]
12066 000a 2022 movs r2, #32
12067 000c DA61 str r2, [r3, #28]
6127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12068 .loc 1 6127 3 view .LVU4243
6127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12069 .loc 1 6127 11 is_stmt 0 view .LVU4244
12070 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
6127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12071 .loc 1 6127 6 view .LVU4245
12072 0012 212B cmp r3, #33
12073 0014 30D0 beq .L770
6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12074 .loc 1 6132 8 is_stmt 1 view .LVU4246
6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12075 .loc 1 6132 16 is_stmt 0 view .LVU4247
12076 0016 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12077 .loc 1 6132 11 view .LVU4248
12078 001a 222B cmp r3, #34
12079 001c 32D0 beq .L771
12080 .LVL868:
12081 .L760:
6140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12082 .loc 1 6140 3 is_stmt 1 view .LVU4249
6143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12083 .loc 1 6143 3 view .LVU4250
12084 001e 2268 ldr r2, [r4]
12085 0020 5368 ldr r3, [r2, #4]
12086 0022 23F0FF73 bic r3, r3, #33423360
12087 0026 23F48B33 bic r3, r3, #71168
12088 002a 23F4FF73 bic r3, r3, #510
12089 002e 23F00103 bic r3, r3, #1
12090 0032 5360 str r3, [r2, #4]
6146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
12091 .loc 1 6146 3 view .LVU4251
6146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
12092 .loc 1 6146 23 is_stmt 0 view .LVU4252
12093 0034 0023 movs r3, #0
12094 0036 6363 str r3, [r4, #52]
6147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12095 .loc 1 6147 3 is_stmt 1 view .LVU4253
6147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12096 .loc 1 6147 23 is_stmt 0 view .LVU4254
12097 0038 A3F58033 sub r3, r3, #65536
12098 003c E362 str r3, [r4, #44]
6149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12099 .loc 1 6149 3 is_stmt 1 view .LVU4255
6149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 415
12100 .loc 1 6149 6 is_stmt 0 view .LVU4256
12101 003e 15F0100F tst r5, #16
12102 0042 06D0 beq .L761
6152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12103 .loc 1 6152 5 is_stmt 1 view .LVU4257
12104 0044 2368 ldr r3, [r4]
12105 0046 1022 movs r2, #16
12106 0048 DA61 str r2, [r3, #28]
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12107 .loc 1 6155 5 view .LVU4258
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12108 .loc 1 6155 9 is_stmt 0 view .LVU4259
12109 004a 636C ldr r3, [r4, #68]
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12110 .loc 1 6155 21 view .LVU4260
12111 004c 43F00403 orr r3, r3, #4
12112 0050 6364 str r3, [r4, #68]
12113 .L761:
6159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12114 .loc 1 6159 3 is_stmt 1 view .LVU4261
6159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12115 .loc 1 6159 12 is_stmt 0 view .LVU4262
12116 0052 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12117 .loc 1 6159 6 view .LVU4263
12118 0056 602B cmp r3, #96
12119 0058 1AD0 beq .L772
12120 .L762:
6167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12121 .loc 1 6167 3 is_stmt 1 view .LVU4264
12122 005a 2046 mov r0, r4
12123 005c FFF7FEFF bl I2C_Flush_TXDR
12124 .LVL869:
6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12125 .loc 1 6170 3 view .LVU4265
6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12126 .loc 1 6170 12 is_stmt 0 view .LVU4266
12127 0060 626C ldr r2, [r4, #68]
12128 .LVL870:
6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12129 .loc 1 6173 3 is_stmt 1 view .LVU4267
6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12130 .loc 1 6173 12 is_stmt 0 view .LVU4268
12131 0062 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12132 .loc 1 6173 6 view .LVU4269
12133 0066 602B cmp r3, #96
12134 0068 00D0 beq .L763
6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12135 .loc 1 6173 44 discriminator 1 view .LVU4270
12136 006a D2B1 cbz r2, .L764
12137 .L763:
6176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12138 .loc 1 6176 5 is_stmt 1 view .LVU4271
6176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12139 .loc 1 6176 27 is_stmt 0 view .LVU4272
12140 006c 616C ldr r1, [r4, #68]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 416
6176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12141 .loc 1 6176 5 view .LVU4273
12142 006e 2046 mov r0, r4
12143 0070 FFF7FEFF bl I2C_ITError
12144 .LVL871:
12145 .L758:
6252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12146 .loc 1 6252 1 view .LVU4274
12147 0074 03B0 add sp, sp, #12
12148 .cfi_remember_state
12149 .cfi_def_cfa_offset 12
12150 @ sp needed
12151 0076 30BD pop {r4, r5, pc}
12152 .LVL872:
12153 .L770:
12154 .cfi_restore_state
6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
12155 .loc 1 6129 5 is_stmt 1 view .LVU4275
12156 0078 0121 movs r1, #1
12157 .LVL873:
6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
12158 .loc 1 6129 5 is_stmt 0 view .LVU4276
12159 007a FFF7FEFF bl I2C_Disable_IRQ
12160 .LVL874:
6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12161 .loc 1 6130 5 is_stmt 1 view .LVU4277
6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12162 .loc 1 6130 25 is_stmt 0 view .LVU4278
12163 007e 1123 movs r3, #17
12164 0080 2363 str r3, [r4, #48]
12165 0082 CCE7 b .L760
12166 .LVL875:
12167 .L771:
6134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
12168 .loc 1 6134 5 is_stmt 1 view .LVU4279
12169 0084 0221 movs r1, #2
12170 .LVL876:
6134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
12171 .loc 1 6134 5 is_stmt 0 view .LVU4280
12172 0086 FFF7FEFF bl I2C_Disable_IRQ
12173 .LVL877:
6135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12174 .loc 1 6135 5 is_stmt 1 view .LVU4281
6135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12175 .loc 1 6135 25 is_stmt 0 view .LVU4282
12176 008a 1223 movs r3, #18
12177 008c 2363 str r3, [r4, #48]
12178 008e C6E7 b .L760
12179 .L772:
6159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12180 .loc 1 6159 44 discriminator 1 view .LVU4283
12181 0090 15F0040F tst r5, #4
12182 0094 E1D0 beq .L762
6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
12183 .loc 1 6162 5 is_stmt 1 view .LVU4284
6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
12184 .loc 1 6162 27 is_stmt 0 view .LVU4285
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 417
12185 0096 2368 ldr r3, [r4]
6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
12186 .loc 1 6162 37 view .LVU4286
12187 0098 5B6A ldr r3, [r3, #36]
12188 009a DBB2 uxtb r3, r3
6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
12189 .loc 1 6162 12 view .LVU4287
12190 009c 0193 str r3, [sp, #4]
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12191 .loc 1 6163 5 is_stmt 1 view .LVU4288
12192 009e 019B ldr r3, [sp, #4]
12193 00a0 DBE7 b .L762
12194 .LVL878:
12195 .L764:
6179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12196 .loc 1 6179 8 view .LVU4289
6179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12197 .loc 1 6179 16 is_stmt 0 view .LVU4290
12198 00a2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12199 .loc 1 6179 11 view .LVU4291
12200 00a6 212B cmp r3, #33
12201 00a8 15D0 beq .L773
6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12202 .loc 1 6214 8 is_stmt 1 view .LVU4292
6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12203 .loc 1 6214 16 is_stmt 0 view .LVU4293
12204 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12205 .loc 1 6214 11 view .LVU4294
12206 00ae 222B cmp r3, #34
12207 00b0 E0D1 bne .L758
6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
12208 .loc 1 6216 5 is_stmt 1 view .LVU4295
6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
12209 .loc 1 6216 17 is_stmt 0 view .LVU4296
12210 00b2 2023 movs r3, #32
12211 00b4 84F84130 strb r3, [r4, #65]
6217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12212 .loc 1 6217 5 is_stmt 1 view .LVU4297
6217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12213 .loc 1 6217 25 is_stmt 0 view .LVU4298
12214 00b8 0023 movs r3, #0
12215 00ba 2363 str r3, [r4, #48]
6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12216 .loc 1 6219 5 is_stmt 1 view .LVU4299
6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12217 .loc 1 6219 13 is_stmt 0 view .LVU4300
12218 00bc 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2
6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12219 .loc 1 6219 8 view .LVU4301
12220 00c0 402B cmp r3, #64
12221 00c2 23D0 beq .L774
6235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12222 .loc 1 6235 7 is_stmt 1 view .LVU4302
6235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12223 .loc 1 6235 18 is_stmt 0 view .LVU4303
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 418
12224 00c4 0023 movs r3, #0
12225 00c6 84F84230 strb r3, [r4, #66]
6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12226 .loc 1 6238 7 is_stmt 1 view .LVU4304
6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12227 .loc 1 6238 7 view .LVU4305
12228 00ca 84F84030 strb r3, [r4, #64]
6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12229 .loc 1 6238 7 view .LVU4306
6244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12230 .loc 1 6244 7 view .LVU4307
12231 00ce 2046 mov r0, r4
12232 00d0 FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
12233 .LVL879:
6251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12234 .loc 1 6251 3 view .LVU4308
6252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12235 .loc 1 6252 1 is_stmt 0 view .LVU4309
12236 00d4 CEE7 b .L758
12237 .LVL880:
12238 .L773:
6181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
12239 .loc 1 6181 5 is_stmt 1 view .LVU4310
6181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
12240 .loc 1 6181 17 is_stmt 0 view .LVU4311
12241 00d6 2023 movs r3, #32
12242 00d8 84F84130 strb r3, [r4, #65]
6182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12243 .loc 1 6182 5 is_stmt 1 view .LVU4312
6182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12244 .loc 1 6182 25 is_stmt 0 view .LVU4313
12245 00dc 0023 movs r3, #0
12246 00de 2363 str r3, [r4, #48]
6184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12247 .loc 1 6184 5 is_stmt 1 view .LVU4314
6184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12248 .loc 1 6184 13 is_stmt 0 view .LVU4315
12249 00e0 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2
6184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12250 .loc 1 6184 8 view .LVU4316
12251 00e4 402B cmp r3, #64
12252 00e6 08D0 beq .L775
6200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12253 .loc 1 6200 7 is_stmt 1 view .LVU4317
6200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12254 .loc 1 6200 18 is_stmt 0 view .LVU4318
12255 00e8 0023 movs r3, #0
12256 00ea 84F84230 strb r3, [r4, #66]
6203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12257 .loc 1 6203 7 is_stmt 1 view .LVU4319
6203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12258 .loc 1 6203 7 view .LVU4320
12259 00ee 84F84030 strb r3, [r4, #64]
6203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12260 .loc 1 6203 7 view .LVU4321
6209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12261 .loc 1 6209 7 view .LVU4322
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 419
12262 00f2 2046 mov r0, r4
12263 00f4 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
12264 .LVL881:
6209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12265 .loc 1 6209 7 is_stmt 0 view .LVU4323
12266 00f8 BCE7 b .L758
12267 .LVL882:
12268 .L775:
6186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12269 .loc 1 6186 7 is_stmt 1 view .LVU4324
6186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12270 .loc 1 6186 18 is_stmt 0 view .LVU4325
12271 00fa 0023 movs r3, #0
12272 00fc 84F84230 strb r3, [r4, #66]
6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12273 .loc 1 6189 7 is_stmt 1 view .LVU4326
6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12274 .loc 1 6189 7 view .LVU4327
12275 0100 84F84030 strb r3, [r4, #64]
6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12276 .loc 1 6189 7 view .LVU4328
6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12277 .loc 1 6195 7 view .LVU4329
12278 0104 2046 mov r0, r4
12279 0106 FFF7FEFF bl HAL_I2C_MemTxCpltCallback
12280 .LVL883:
6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12281 .loc 1 6195 7 is_stmt 0 view .LVU4330
12282 010a B3E7 b .L758
12283 .LVL884:
12284 .L774:
6221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12285 .loc 1 6221 7 is_stmt 1 view .LVU4331
6221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12286 .loc 1 6221 18 is_stmt 0 view .LVU4332
12287 010c 0023 movs r3, #0
12288 010e 84F84230 strb r3, [r4, #66]
6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12289 .loc 1 6224 7 is_stmt 1 view .LVU4333
6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12290 .loc 1 6224 7 view .LVU4334
12291 0112 84F84030 strb r3, [r4, #64]
6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12292 .loc 1 6224 7 view .LVU4335
6230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12293 .loc 1 6230 7 view .LVU4336
12294 0116 2046 mov r0, r4
12295 0118 FFF7FEFF bl HAL_I2C_MemRxCpltCallback
12296 .LVL885:
6230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12297 .loc 1 6230 7 is_stmt 0 view .LVU4337
12298 011c AAE7 b .L758
12299 .cfi_endproc
12300 .LFE395:
12302 .section .text.I2C_Master_ISR_IT,"ax",%progbits
12303 .align 1
12304 .syntax unified
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 420
12305 .thumb
12306 .thumb_func
12308 I2C_Master_ISR_IT:
12309 .LVL886:
12310 .LFB384:
4927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
12311 .loc 1 4927 1 is_stmt 1 view -0
12312 .cfi_startproc
12313 @ args = 0, pretend = 0, frame = 0
12314 @ frame_needed = 0, uses_anonymous_args = 0
4928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
12315 .loc 1 4928 3 view .LVU4339
4929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12316 .loc 1 4929 3 view .LVU4340
4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12317 .loc 1 4932 3 view .LVU4341
4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12318 .loc 1 4932 3 view .LVU4342
12319 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
12320 0004 012B cmp r3, #1
12321 0006 00F0C280 beq .L790
4927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
12322 .loc 1 4927 1 is_stmt 0 view .LVU4343
12323 000a 70B5 push {r4, r5, r6, lr}
12324 .cfi_def_cfa_offset 16
12325 .cfi_offset 4, -16
12326 .cfi_offset 5, -12
12327 .cfi_offset 6, -8
12328 .cfi_offset 14, -4
12329 000c 82B0 sub sp, sp, #8
12330 .cfi_def_cfa_offset 24
12331 000e 0446 mov r4, r0
12332 0010 0D46 mov r5, r1
12333 0012 1646 mov r6, r2
4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12334 .loc 1 4932 3 is_stmt 1 discriminator 2 view .LVU4344
12335 0014 0123 movs r3, #1
12336 0016 80F84030 strb r3, [r0, #64]
4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12337 .loc 1 4932 3 view .LVU4345
4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12338 .loc 1 4934 3 view .LVU4346
4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12339 .loc 1 4934 6 is_stmt 0 view .LVU4347
12340 001a 11F0100F tst r1, #16
12341 001e 02D0 beq .L778
4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12342 .loc 1 4934 58 discriminator 1 view .LVU4348
12343 0020 12F0100F tst r2, #16
12344 0024 22D1 bne .L795
12345 .L778:
4948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
12346 .loc 1 4948 8 is_stmt 1 view .LVU4349
4948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
12347 .loc 1 4948 11 is_stmt 0 view .LVU4350
12348 0026 15F0040F tst r5, #4
12349 002a 29D0 beq .L780
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 421
4948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
12350 .loc 1 4948 65 discriminator 1 view .LVU4351
12351 002c 16F0040F tst r6, #4
12352 0030 26D0 beq .L780
4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12353 .loc 1 4952 5 is_stmt 1 view .LVU4352
4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12354 .loc 1 4952 16 is_stmt 0 view .LVU4353
12355 0032 25F00405 bic r5, r5, #4
12356 .LVL887:
4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12357 .loc 1 4955 5 is_stmt 1 view .LVU4354
4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12358 .loc 1 4955 36 is_stmt 0 view .LVU4355
12359 0036 2368 ldr r3, [r4]
4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12360 .loc 1 4955 46 view .LVU4356
12361 0038 5A6A ldr r2, [r3, #36]
12362 .LVL888:
4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12363 .loc 1 4955 10 view .LVU4357
12364 003a 636A ldr r3, [r4, #36]
4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12365 .loc 1 4955 21 view .LVU4358
12366 003c 1A70 strb r2, [r3]
4958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12367 .loc 1 4958 5 is_stmt 1 view .LVU4359
4958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12368 .loc 1 4958 9 is_stmt 0 view .LVU4360
12369 003e 636A ldr r3, [r4, #36]
4958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12370 .loc 1 4958 19 view .LVU4361
12371 0040 0133 adds r3, r3, #1
12372 0042 6362 str r3, [r4, #36]
4960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
12373 .loc 1 4960 5 is_stmt 1 view .LVU4362
4960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
12374 .loc 1 4960 9 is_stmt 0 view .LVU4363
12375 0044 238D ldrh r3, [r4, #40]
4960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
12376 .loc 1 4960 19 view .LVU4364
12377 0046 013B subs r3, r3, #1
12378 0048 2385 strh r3, [r4, #40] @ movhi
4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12379 .loc 1 4961 5 is_stmt 1 view .LVU4365
4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12380 .loc 1 4961 9 is_stmt 0 view .LVU4366
12381 004a 638D ldrh r3, [r4, #42]
12382 004c 9BB2 uxth r3, r3
4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12383 .loc 1 4961 20 view .LVU4367
12384 004e 013B subs r3, r3, #1
12385 0050 9BB2 uxth r3, r3
12386 0052 6385 strh r3, [r4, #42] @ movhi
12387 .LVL889:
12388 .L779:
5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 422
12389 .loc 1 5053 3 is_stmt 1 view .LVU4368
5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12390 .loc 1 5055 3 view .LVU4369
5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12391 .loc 1 5055 6 is_stmt 0 view .LVU4370
12392 0054 15F0200F tst r5, #32
12393 0058 03D0 beq .L789
5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12394 .loc 1 5055 61 discriminator 1 view .LVU4371
12395 005a 16F0200F tst r6, #32
12396 005e 40F09180 bne .L796
12397 .L789:
5063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12398 .loc 1 5063 3 is_stmt 1 view .LVU4372
5063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12399 .loc 1 5063 3 view .LVU4373
12400 0062 0020 movs r0, #0
12401 0064 84F84000 strb r0, [r4, #64]
5063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12402 .loc 1 5063 3 view .LVU4374
5065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12403 .loc 1 5065 3 view .LVU4375
5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12404 .loc 1 5066 1 is_stmt 0 view .LVU4376
12405 0068 02B0 add sp, sp, #8
12406 .cfi_remember_state
12407 .cfi_def_cfa_offset 16
12408 @ sp needed
12409 006a 70BD pop {r4, r5, r6, pc}
12410 .LVL890:
12411 .L795:
12412 .cfi_restore_state
4938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12413 .loc 1 4938 5 is_stmt 1 view .LVU4377
12414 006c 0368 ldr r3, [r0]
12415 006e 1022 movs r2, #16
12416 .LVL891:
4938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12417 .loc 1 4938 5 is_stmt 0 view .LVU4378
12418 0070 DA61 str r2, [r3, #28]
4943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12419 .loc 1 4943 5 is_stmt 1 view .LVU4379
4943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12420 .loc 1 4943 9 is_stmt 0 view .LVU4380
12421 0072 436C ldr r3, [r0, #68]
4943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12422 .loc 1 4943 21 view .LVU4381
12423 0074 43F00403 orr r3, r3, #4
12424 0078 4364 str r3, [r0, #68]
4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12425 .loc 1 4946 5 is_stmt 1 view .LVU4382
12426 007a FFF7FEFF bl I2C_Flush_TXDR
12427 .LVL892:
4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12428 .loc 1 4946 5 is_stmt 0 view .LVU4383
12429 007e E9E7 b .L779
12430 .LVL893:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 423
12431 .L780:
4963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
12432 .loc 1 4963 8 is_stmt 1 view .LVU4384
12433 0080 C5F38013 ubfx r3, r5, #6, #1
4963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
12434 .loc 1 4963 11 is_stmt 0 view .LVU4385
12435 0084 15F0400F tst r5, #64
12436 0088 19D1 bne .L781
4963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
12437 .loc 1 4963 63 discriminator 1 view .LVU4386
12438 008a 15F0020F tst r5, #2
12439 008e 16D0 beq .L781
4964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)))
12440 .loc 1 4964 66 view .LVU4387
12441 0090 16F0020F tst r6, #2
12442 0094 13D0 beq .L781
4968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12443 .loc 1 4968 5 is_stmt 1 view .LVU4388
4968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12444 .loc 1 4968 13 is_stmt 0 view .LVU4389
12445 0096 638D ldrh r3, [r4, #42]
12446 0098 9BB2 uxth r3, r3
4968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12447 .loc 1 4968 8 view .LVU4390
12448 009a 002B cmp r3, #0
12449 009c DAD0 beq .L779
4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12450 .loc 1 4971 7 is_stmt 1 view .LVU4391
4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12451 .loc 1 4971 35 is_stmt 0 view .LVU4392
12452 009e 626A ldr r2, [r4, #36]
12453 .LVL894:
4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12454 .loc 1 4971 11 view .LVU4393
12455 00a0 2368 ldr r3, [r4]
4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12456 .loc 1 4971 30 view .LVU4394
12457 00a2 1278 ldrb r2, [r2] @ zero_extendqisi2
4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12458 .loc 1 4971 28 view .LVU4395
12459 00a4 9A62 str r2, [r3, #40]
4974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12460 .loc 1 4974 7 is_stmt 1 view .LVU4396
4974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12461 .loc 1 4974 11 is_stmt 0 view .LVU4397
12462 00a6 636A ldr r3, [r4, #36]
4974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12463 .loc 1 4974 21 view .LVU4398
12464 00a8 0133 adds r3, r3, #1
12465 00aa 6362 str r3, [r4, #36]
4976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
12466 .loc 1 4976 7 is_stmt 1 view .LVU4399
4976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
12467 .loc 1 4976 11 is_stmt 0 view .LVU4400
12468 00ac 238D ldrh r3, [r4, #40]
4976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
12469 .loc 1 4976 21 view .LVU4401
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 424
12470 00ae 013B subs r3, r3, #1
12471 00b0 2385 strh r3, [r4, #40] @ movhi
4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12472 .loc 1 4977 7 is_stmt 1 view .LVU4402
4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12473 .loc 1 4977 11 is_stmt 0 view .LVU4403
12474 00b2 638D ldrh r3, [r4, #42]
12475 00b4 9BB2 uxth r3, r3
4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12476 .loc 1 4977 22 view .LVU4404
12477 00b6 013B subs r3, r3, #1
12478 00b8 9BB2 uxth r3, r3
12479 00ba 6385 strh r3, [r4, #42] @ movhi
12480 00bc CAE7 b .L779
12481 .LVL895:
12482 .L781:
4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12483 .loc 1 4980 8 is_stmt 1 view .LVU4405
4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12484 .loc 1 4980 11 is_stmt 0 view .LVU4406
12485 00be 15F0800F tst r5, #128
12486 00c2 3FD0 beq .L782
4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12487 .loc 1 4980 64 discriminator 1 view .LVU4407
12488 00c4 16F0400F tst r6, #64
12489 00c8 3CD0 beq .L782
4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12490 .loc 1 4983 5 is_stmt 1 view .LVU4408
4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12491 .loc 1 4983 14 is_stmt 0 view .LVU4409
12492 00ca 638D ldrh r3, [r4, #42]
12493 00cc 9BB2 uxth r3, r3
4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12494 .loc 1 4983 8 view .LVU4410
12495 00ce 5BB3 cbz r3, .L783
4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12496 .loc 1 4983 41 discriminator 1 view .LVU4411
12497 00d0 238D ldrh r3, [r4, #40]
4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12498 .loc 1 4983 33 discriminator 1 view .LVU4412
12499 00d2 4BBB cbnz r3, .L783
4985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12500 .loc 1 4985 7 is_stmt 1 view .LVU4413
4985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12501 .loc 1 4985 35 is_stmt 0 view .LVU4414
12502 00d4 2368 ldr r3, [r4]
4985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12503 .loc 1 4985 45 view .LVU4415
12504 00d6 5968 ldr r1, [r3, #4]
12505 .LVL896:
4985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12506 .loc 1 4985 18 view .LVU4416
12507 00d8 C1F30901 ubfx r1, r1, #0, #10
12508 .LVL897:
4987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12509 .loc 1 4987 7 is_stmt 1 view .LVU4417
4987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 425
12510 .loc 1 4987 15 is_stmt 0 view .LVU4418
12511 00dc 638D ldrh r3, [r4, #42]
12512 00de 9BB2 uxth r3, r3
4987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12513 .loc 1 4987 10 view .LVU4419
12514 00e0 FF2B cmp r3, #255
12515 00e2 0ED8 bhi .L797
4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12516 .loc 1 4994 9 is_stmt 1 view .LVU4420
4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12517 .loc 1 4994 30 is_stmt 0 view .LVU4421
12518 00e4 628D ldrh r2, [r4, #42]
12519 .LVL898:
4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12520 .loc 1 4994 30 view .LVU4422
12521 00e6 92B2 uxth r2, r2
4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12522 .loc 1 4994 24 view .LVU4423
12523 00e8 2285 strh r2, [r4, #40] @ movhi
4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12524 .loc 1 4995 9 is_stmt 1 view .LVU4424
4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12525 .loc 1 4995 17 is_stmt 0 view .LVU4425
12526 00ea E36A ldr r3, [r4, #44]
4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12527 .loc 1 4995 12 view .LVU4426
12528 00ec 13F5803F cmn r3, #65536
12529 00f0 11D0 beq .L785
4997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
12530 .loc 1 4997 11 is_stmt 1 view .LVU4427
4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12531 .loc 1 4998 34 is_stmt 0 view .LVU4428
12532 00f2 E36A ldr r3, [r4, #44]
4997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
12533 .loc 1 4997 11 view .LVU4429
12534 00f4 0020 movs r0, #0
12535 .LVL899:
4997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
12536 .loc 1 4997 11 view .LVU4430
12537 00f6 0090 str r0, [sp]
12538 00f8 D2B2 uxtb r2, r2
12539 00fa 2046 mov r0, r4
12540 00fc FFF7FEFF bl I2C_TransferConfig
12541 .LVL900:
4997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
12542 .loc 1 4997 11 view .LVU4431
12543 0100 A8E7 b .L779
12544 .LVL901:
12545 .L797:
4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
12546 .loc 1 4989 9 is_stmt 1 view .LVU4432
4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
12547 .loc 1 4989 24 is_stmt 0 view .LVU4433
12548 0102 FF22 movs r2, #255
12549 .LVL902:
4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
12550 .loc 1 4989 24 view .LVU4434
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 426
12551 0104 2285 strh r2, [r4, #40] @ movhi
4990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12552 .loc 1 4990 9 is_stmt 1 view .LVU4435
12553 0106 0023 movs r3, #0
12554 0108 0093 str r3, [sp]
12555 010a 4FF08073 mov r3, #16777216
12556 010e 2046 mov r0, r4
12557 .LVL903:
4990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12558 .loc 1 4990 9 is_stmt 0 view .LVU4436
12559 0110 FFF7FEFF bl I2C_TransferConfig
12560 .LVL904:
4990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12561 .loc 1 4990 9 view .LVU4437
12562 0114 9EE7 b .L779
12563 .LVL905:
12564 .L785:
5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12565 .loc 1 5002 11 is_stmt 1 view .LVU4438
12566 0116 0023 movs r3, #0
12567 0118 0093 str r3, [sp]
12568 011a 4FF00073 mov r3, #33554432
12569 011e D2B2 uxtb r2, r2
12570 0120 2046 mov r0, r4
12571 .LVL906:
5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12572 .loc 1 5002 11 is_stmt 0 view .LVU4439
12573 0122 FFF7FEFF bl I2C_TransferConfig
12574 .LVL907:
5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12575 .loc 1 5002 11 view .LVU4440
12576 0126 95E7 b .L779
12577 .LVL908:
12578 .L783:
5010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12579 .loc 1 5010 7 is_stmt 1 view .LVU4441
5010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12580 .loc 1 5010 11 is_stmt 0 view .LVU4442
12581 0128 2368 ldr r3, [r4]
12582 012a 5B68 ldr r3, [r3, #4]
5010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12583 .loc 1 5010 10 view .LVU4443
12584 012c 13F0007F tst r3, #33554432
12585 0130 03D1 bne .L786
5013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12586 .loc 1 5013 9 is_stmt 1 view .LVU4444
12587 0132 2046 mov r0, r4
12588 .LVL909:
5013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12589 .loc 1 5013 9 is_stmt 0 view .LVU4445
12590 0134 FFF7FEFF bl I2C_ITMasterSeqCplt
12591 .LVL910:
5013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12592 .loc 1 5013 9 view .LVU4446
12593 0138 8CE7 b .L779
12594 .LVL911:
12595 .L786:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 427
5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12596 .loc 1 5019 9 is_stmt 1 view .LVU4447
12597 013a 4021 movs r1, #64
12598 .LVL912:
5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12599 .loc 1 5019 9 is_stmt 0 view .LVU4448
12600 013c 2046 mov r0, r4
12601 .LVL913:
5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12602 .loc 1 5019 9 view .LVU4449
12603 013e FFF7FEFF bl I2C_ITError
12604 .LVL914:
5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12605 .loc 1 5019 9 view .LVU4450
12606 0142 87E7 b .L779
12607 .LVL915:
12608 .L782:
5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12609 .loc 1 5023 8 is_stmt 1 view .LVU4451
5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12610 .loc 1 5023 11 is_stmt 0 view .LVU4452
12611 0144 002B cmp r3, #0
12612 0146 85D0 beq .L779
5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12613 .loc 1 5023 63 discriminator 1 view .LVU4453
12614 0148 16F0400F tst r6, #64
12615 014c 82D0 beq .L779
5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12616 .loc 1 5026 5 is_stmt 1 view .LVU4454
5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12617 .loc 1 5026 13 is_stmt 0 view .LVU4455
12618 014e 638D ldrh r3, [r4, #42]
12619 0150 9BB2 uxth r3, r3
5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12620 .loc 1 5026 8 view .LVU4456
12621 0152 93B9 cbnz r3, .L787
5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12622 .loc 1 5028 7 is_stmt 1 view .LVU4457
5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12623 .loc 1 5028 11 is_stmt 0 view .LVU4458
12624 0154 2368 ldr r3, [r4]
12625 0156 5A68 ldr r2, [r3, #4]
12626 .LVL916:
5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12627 .loc 1 5028 10 view .LVU4459
12628 0158 12F0007F tst r2, #33554432
12629 015c 7FF47AAF bne .L779
5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12630 .loc 1 5031 9 is_stmt 1 view .LVU4460
5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12631 .loc 1 5031 17 is_stmt 0 view .LVU4461
12632 0160 E26A ldr r2, [r4, #44]
5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12633 .loc 1 5031 12 view .LVU4462
12634 0162 12F5803F cmn r2, #65536
12635 0166 04D1 bne .L788
5034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 428
12636 .loc 1 5034 11 is_stmt 1 view .LVU4463
5034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12637 .loc 1 5034 25 is_stmt 0 view .LVU4464
12638 0168 5A68 ldr r2, [r3, #4]
5034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12639 .loc 1 5034 31 view .LVU4465
12640 016a 42F48042 orr r2, r2, #16384
12641 016e 5A60 str r2, [r3, #4]
12642 0170 70E7 b .L779
12643 .L788:
5039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12644 .loc 1 5039 11 is_stmt 1 view .LVU4466
12645 0172 2046 mov r0, r4
12646 .LVL917:
5039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12647 .loc 1 5039 11 is_stmt 0 view .LVU4467
12648 0174 FFF7FEFF bl I2C_ITMasterSeqCplt
12649 .LVL918:
5039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12650 .loc 1 5039 11 view .LVU4468
12651 0178 6CE7 b .L779
12652 .LVL919:
12653 .L787:
5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12654 .loc 1 5047 7 is_stmt 1 view .LVU4469
12655 017a 4021 movs r1, #64
12656 .LVL920:
5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12657 .loc 1 5047 7 is_stmt 0 view .LVU4470
12658 017c 2046 mov r0, r4
12659 .LVL921:
5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12660 .loc 1 5047 7 view .LVU4471
12661 017e FFF7FEFF bl I2C_ITError
12662 .LVL922:
5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12663 .loc 1 5047 7 view .LVU4472
12664 0182 67E7 b .L779
12665 .LVL923:
12666 .L796:
5059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12667 .loc 1 5059 5 is_stmt 1 view .LVU4473
12668 0184 2946 mov r1, r5
12669 0186 2046 mov r0, r4
12670 0188 FFF7FEFF bl I2C_ITMasterCplt
12671 .LVL924:
12672 018c 69E7 b .L789
12673 .LVL925:
12674 .L790:
12675 .cfi_def_cfa_offset 0
12676 .cfi_restore 4
12677 .cfi_restore 5
12678 .cfi_restore 6
12679 .cfi_restore 14
4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12680 .loc 1 4932 3 is_stmt 0 discriminator 1 view .LVU4474
12681 018e 0220 movs r0, #2
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 429
12682 .LVL926:
5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12683 .loc 1 5066 1 view .LVU4475
12684 0190 7047 bx lr
12685 .cfi_endproc
12686 .LFE384:
12688 .section .text.I2C_Mem_ISR_DMA,"ax",%progbits
12689 .align 1
12690 .syntax unified
12691 .thumb
12692 .thumb_func
12694 I2C_Mem_ISR_DMA:
12695 .LVL927:
12696 .LFB388:
5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
12697 .loc 1 5501 1 is_stmt 1 view -0
12698 .cfi_startproc
12699 @ args = 0, pretend = 0, frame = 0
12700 @ frame_needed = 0, uses_anonymous_args = 0
5502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12701 .loc 1 5502 3 view .LVU4477
5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12702 .loc 1 5505 3 view .LVU4478
5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12703 .loc 1 5505 3 view .LVU4479
12704 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
12705 0004 012B cmp r3, #1
12706 0006 00F0C580 beq .L813
5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
12707 .loc 1 5501 1 is_stmt 0 view .LVU4480
12708 000a 10B5 push {r4, lr}
12709 .cfi_def_cfa_offset 8
12710 .cfi_offset 4, -8
12711 .cfi_offset 14, -4
12712 000c 82B0 sub sp, sp, #8
12713 .cfi_def_cfa_offset 16
12714 000e 0446 mov r4, r0
5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12715 .loc 1 5505 3 is_stmt 1 discriminator 2 view .LVU4481
12716 0010 0123 movs r3, #1
12717 0012 80F84030 strb r3, [r0, #64]
5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12718 .loc 1 5505 3 view .LVU4482
5507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12719 .loc 1 5507 3 view .LVU4483
5507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12720 .loc 1 5507 6 is_stmt 0 view .LVU4484
12721 0016 11F0100F tst r1, #16
12722 001a 02D0 beq .L800
5507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12723 .loc 1 5507 55 discriminator 1 view .LVU4485
12724 001c 12F0100F tst r2, #16
12725 0020 10D1 bne .L819
12726 .L800:
5524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
12727 .loc 1 5524 8 is_stmt 1 view .LVU4486
5524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 430
12728 .loc 1 5524 11 is_stmt 0 view .LVU4487
12729 0022 11F0020F tst r1, #2
12730 0026 1BD0 beq .L802
5524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
12731 .loc 1 5524 62 discriminator 1 view .LVU4488
12732 0028 12F0020F tst r2, #2
12733 002c 18D0 beq .L802
5528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12734 .loc 1 5528 5 is_stmt 1 view .LVU4489
5528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12735 .loc 1 5528 9 is_stmt 0 view .LVU4490
12736 002e 2368 ldr r3, [r4]
5528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12737 .loc 1 5528 32 view .LVU4491
12738 0030 226D ldr r2, [r4, #80]
12739 .LVL928:
5528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12740 .loc 1 5528 26 view .LVU4492
12741 0032 9A62 str r2, [r3, #40]
5531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12742 .loc 1 5531 5 is_stmt 1 view .LVU4493
5531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12743 .loc 1 5531 22 is_stmt 0 view .LVU4494
12744 0034 4FF0FF33 mov r3, #-1
12745 0038 2365 str r3, [r4, #80]
12746 .LVL929:
12747 .L801:
5631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12748 .loc 1 5631 3 is_stmt 1 view .LVU4495
5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12749 .loc 1 5634 3 view .LVU4496
5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12750 .loc 1 5634 3 view .LVU4497
12751 003a 0020 movs r0, #0
12752 003c 84F84000 strb r0, [r4, #64]
5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12753 .loc 1 5634 3 view .LVU4498
5636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12754 .loc 1 5636 3 view .LVU4499
5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12755 .loc 1 5637 1 is_stmt 0 view .LVU4500
12756 0040 02B0 add sp, sp, #8
12757 .cfi_remember_state
12758 .cfi_def_cfa_offset 8
12759 @ sp needed
12760 0042 10BD pop {r4, pc}
12761 .LVL930:
12762 .L819:
12763 .cfi_restore_state
5511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12764 .loc 1 5511 5 is_stmt 1 view .LVU4501
12765 0044 0368 ldr r3, [r0]
12766 0046 1022 movs r2, #16
12767 .LVL931:
5511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12768 .loc 1 5511 5 is_stmt 0 view .LVU4502
12769 0048 DA61 str r2, [r3, #28]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 431
5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12770 .loc 1 5514 5 is_stmt 1 view .LVU4503
5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12771 .loc 1 5514 9 is_stmt 0 view .LVU4504
12772 004a 436C ldr r3, [r0, #68]
5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12773 .loc 1 5514 21 view .LVU4505
12774 004c 43F00403 orr r3, r3, #4
12775 0050 4364 str r3, [r0, #68]
5519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12776 .loc 1 5519 5 is_stmt 1 view .LVU4506
12777 0052 2021 movs r1, #32
12778 .LVL932:
5519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12779 .loc 1 5519 5 is_stmt 0 view .LVU4507
12780 0054 FFF7FEFF bl I2C_Enable_IRQ
12781 .LVL933:
5522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12782 .loc 1 5522 5 is_stmt 1 view .LVU4508
12783 0058 2046 mov r0, r4
12784 005a FFF7FEFF bl I2C_Flush_TXDR
12785 .LVL934:
12786 005e ECE7 b .L801
12787 .LVL935:
12788 .L802:
5533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12789 .loc 1 5533 8 view .LVU4509
5533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12790 .loc 1 5533 11 is_stmt 0 view .LVU4510
12791 0060 11F0800F tst r1, #128
12792 0064 02D0 beq .L803
5533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12793 .loc 1 5533 61 discriminator 1 view .LVU4511
12794 0066 12F0400F tst r2, #64
12795 006a 0FD1 bne .L820
12796 .L803:
5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12797 .loc 1 5578 8 is_stmt 1 view .LVU4512
5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12798 .loc 1 5578 11 is_stmt 0 view .LVU4513
12799 006c 11F0400F tst r1, #64
12800 0070 02D0 beq .L808
5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12801 .loc 1 5578 60 discriminator 1 view .LVU4514
12802 0072 12F0400F tst r2, #64
12803 0076 4DD1 bne .L821
12804 .L808:
5622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12805 .loc 1 5622 8 is_stmt 1 view .LVU4515
5622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12806 .loc 1 5622 11 is_stmt 0 view .LVU4516
12807 0078 11F0200F tst r1, #32
12808 007c DDD0 beq .L801
5622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12809 .loc 1 5622 63 discriminator 1 view .LVU4517
12810 007e 12F0200F tst r2, #32
12811 0082 DAD0 beq .L801
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 432
5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12812 .loc 1 5626 5 is_stmt 1 view .LVU4518
12813 0084 2046 mov r0, r4
12814 .LVL936:
5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12815 .loc 1 5626 5 is_stmt 0 view .LVU4519
12816 0086 FFF7FEFF bl I2C_ITMasterCplt
12817 .LVL937:
5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12818 .loc 1 5626 5 view .LVU4520
12819 008a D6E7 b .L801
12820 .LVL938:
12821 .L820:
5537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12822 .loc 1 5537 5 is_stmt 1 view .LVU4521
12823 008c 0121 movs r1, #1
12824 .LVL939:
5537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12825 .loc 1 5537 5 is_stmt 0 view .LVU4522
12826 008e 2046 mov r0, r4
12827 .LVL940:
5537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12828 .loc 1 5537 5 view .LVU4523
12829 0090 FFF7FEFF bl I2C_Disable_IRQ
12830 .LVL941:
5540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12831 .loc 1 5540 5 is_stmt 1 view .LVU4524
12832 0094 1021 movs r1, #16
12833 0096 2046 mov r0, r4
12834 0098 FFF7FEFF bl I2C_Enable_IRQ
12835 .LVL942:
5542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12836 .loc 1 5542 5 view .LVU4525
5542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12837 .loc 1 5542 13 is_stmt 0 view .LVU4526
12838 009c 638D ldrh r3, [r4, #42]
12839 009e 9BB2 uxth r3, r3
5542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12840 .loc 1 5542 8 view .LVU4527
12841 00a0 002B cmp r3, #0
12842 00a2 32D0 beq .L804
5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12843 .loc 1 5545 7 is_stmt 1 view .LVU4528
5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12844 .loc 1 5545 15 is_stmt 0 view .LVU4529
12845 00a4 638D ldrh r3, [r4, #42]
12846 00a6 9BB2 uxth r3, r3
5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12847 .loc 1 5545 10 view .LVU4530
12848 00a8 FF2B cmp r3, #255
12849 00aa 1AD9 bls .L805
5547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
12850 .loc 1 5547 9 is_stmt 1 view .LVU4531
5547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
12851 .loc 1 5547 24 is_stmt 0 view .LVU4532
12852 00ac FF22 movs r2, #255
12853 00ae 2285 strh r2, [r4, #40] @ movhi
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 433
5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
12854 .loc 1 5548 9 is_stmt 1 view .LVU4533
5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
12855 .loc 1 5548 48 is_stmt 0 view .LVU4534
12856 00b0 E16C ldr r1, [r4, #76]
5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
12857 .loc 1 5548 9 view .LVU4535
12858 00b2 0023 movs r3, #0
12859 00b4 0093 str r3, [sp]
12860 00b6 4FF08073 mov r3, #16777216
12861 00ba 89B2 uxth r1, r1
12862 00bc 2046 mov r0, r4
12863 00be FFF7FEFF bl I2C_TransferConfig
12864 .LVL943:
12865 .L806:
5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12866 .loc 1 5559 7 is_stmt 1 view .LVU4536
5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12867 .loc 1 5559 11 is_stmt 0 view .LVU4537
12868 00c2 638D ldrh r3, [r4, #42]
12869 00c4 9BB2 uxth r3, r3
5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12870 .loc 1 5559 30 view .LVU4538
12871 00c6 228D ldrh r2, [r4, #40]
5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12872 .loc 1 5559 23 view .LVU4539
12873 00c8 9B1A subs r3, r3, r2
12874 00ca 9BB2 uxth r3, r3
12875 00cc 6385 strh r3, [r4, #42] @ movhi
5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12876 .loc 1 5562 7 is_stmt 1 view .LVU4540
5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12877 .loc 1 5562 15 is_stmt 0 view .LVU4541
12878 00ce 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12879 .loc 1 5562 10 view .LVU4542
12880 00d2 222B cmp r3, #34
12881 00d4 13D0 beq .L822
5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12882 .loc 1 5568 9 is_stmt 1 view .LVU4543
5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12883 .loc 1 5568 13 is_stmt 0 view .LVU4544
12884 00d6 2268 ldr r2, [r4]
5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12885 .loc 1 5568 23 view .LVU4545
12886 00d8 1368 ldr r3, [r2]
5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12887 .loc 1 5568 29 view .LVU4546
12888 00da 43F48043 orr r3, r3, #16384
12889 00de 1360 str r3, [r2]
12890 00e0 ABE7 b .L801
12891 .L805:
5553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
12892 .loc 1 5553 9 is_stmt 1 view .LVU4547
5553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
12893 .loc 1 5553 30 is_stmt 0 view .LVU4548
12894 00e2 628D ldrh r2, [r4, #42]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 434
12895 00e4 92B2 uxth r2, r2
5553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
12896 .loc 1 5553 24 view .LVU4549
12897 00e6 2285 strh r2, [r4, #40] @ movhi
5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12898 .loc 1 5554 9 is_stmt 1 view .LVU4550
5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12899 .loc 1 5554 48 is_stmt 0 view .LVU4551
12900 00e8 E16C ldr r1, [r4, #76]
5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12901 .loc 1 5554 9 view .LVU4552
12902 00ea 0023 movs r3, #0
12903 00ec 0093 str r3, [sp]
12904 00ee 4FF00073 mov r3, #33554432
12905 00f2 D2B2 uxtb r2, r2
12906 00f4 89B2 uxth r1, r1
12907 00f6 2046 mov r0, r4
12908 00f8 FFF7FEFF bl I2C_TransferConfig
12909 .LVL944:
12910 00fc E1E7 b .L806
12911 .L822:
5564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12912 .loc 1 5564 9 is_stmt 1 view .LVU4553
5564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12913 .loc 1 5564 13 is_stmt 0 view .LVU4554
12914 00fe 2268 ldr r2, [r4]
5564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12915 .loc 1 5564 23 view .LVU4555
12916 0100 1368 ldr r3, [r2]
5564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12917 .loc 1 5564 29 view .LVU4556
12918 0102 43F40043 orr r3, r3, #32768
12919 0106 1360 str r3, [r2]
12920 0108 97E7 b .L801
12921 .L804:
5575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12922 .loc 1 5575 7 is_stmt 1 view .LVU4557
12923 010a 4021 movs r1, #64
12924 010c 2046 mov r0, r4
12925 010e FFF7FEFF bl I2C_ITError
12926 .LVL945:
12927 0112 92E7 b .L801
12928 .LVL946:
12929 .L821:
5582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12930 .loc 1 5582 5 view .LVU4558
12931 0114 0121 movs r1, #1
12932 .LVL947:
5582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12933 .loc 1 5582 5 is_stmt 0 view .LVU4559
12934 0116 2046 mov r0, r4
12935 .LVL948:
5582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12936 .loc 1 5582 5 view .LVU4560
12937 0118 FFF7FEFF bl I2C_Disable_IRQ
12938 .LVL949:
5585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 435
12939 .loc 1 5585 5 is_stmt 1 view .LVU4561
12940 011c 1021 movs r1, #16
12941 011e 2046 mov r0, r4
12942 0120 FFF7FEFF bl I2C_Enable_IRQ
12943 .LVL950:
5587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12944 .loc 1 5587 5 view .LVU4562
5587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12945 .loc 1 5587 13 is_stmt 0 view .LVU4563
12946 0124 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12947 .loc 1 5587 8 view .LVU4564
12948 0128 222B cmp r3, #34
12949 012a 1ED0 beq .L814
5502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12950 .loc 1 5502 12 view .LVU4565
12951 012c 1A48 ldr r0, .L824
12952 .L809:
12953 .LVL951:
5592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12954 .loc 1 5592 5 is_stmt 1 view .LVU4566
5592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12955 .loc 1 5592 13 is_stmt 0 view .LVU4567
12956 012e 638D ldrh r3, [r4, #42]
12957 0130 9BB2 uxth r3, r3
5592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12958 .loc 1 5592 8 view .LVU4568
12959 0132 FF2B cmp r3, #255
12960 0134 1BD9 bls .L810
5594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12961 .loc 1 5594 7 is_stmt 1 view .LVU4569
5594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12962 .loc 1 5594 22 is_stmt 0 view .LVU4570
12963 0136 FF22 movs r2, #255
12964 0138 2285 strh r2, [r4, #40] @ movhi
5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
12965 .loc 1 5597 7 is_stmt 1 view .LVU4571
5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
12966 .loc 1 5597 46 is_stmt 0 view .LVU4572
12967 013a E16C ldr r1, [r4, #76]
5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
12968 .loc 1 5597 7 view .LVU4573
12969 013c 0090 str r0, [sp]
12970 013e 4FF08073 mov r3, #16777216
12971 0142 89B2 uxth r1, r1
12972 0144 2046 mov r0, r4
12973 .LVL952:
5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
12974 .loc 1 5597 7 view .LVU4574
12975 0146 FFF7FEFF bl I2C_TransferConfig
12976 .LVL953:
12977 .L811:
5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12978 .loc 1 5610 5 is_stmt 1 view .LVU4575
5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12979 .loc 1 5610 9 is_stmt 0 view .LVU4576
12980 014a 638D ldrh r3, [r4, #42]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 436
12981 014c 9BB2 uxth r3, r3
5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12982 .loc 1 5610 28 view .LVU4577
12983 014e 228D ldrh r2, [r4, #40]
5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12984 .loc 1 5610 21 view .LVU4578
12985 0150 9B1A subs r3, r3, r2
12986 0152 9BB2 uxth r3, r3
12987 0154 6385 strh r3, [r4, #42] @ movhi
5613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12988 .loc 1 5613 5 is_stmt 1 view .LVU4579
5613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12989 .loc 1 5613 13 is_stmt 0 view .LVU4580
12990 0156 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12991 .loc 1 5613 8 view .LVU4581
12992 015a 222B cmp r3, #34
12993 015c 14D0 beq .L823
5619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12994 .loc 1 5619 7 is_stmt 1 view .LVU4582
5619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12995 .loc 1 5619 11 is_stmt 0 view .LVU4583
12996 015e 2268 ldr r2, [r4]
5619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12997 .loc 1 5619 21 view .LVU4584
12998 0160 1368 ldr r3, [r2]
5619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12999 .loc 1 5619 27 view .LVU4585
13000 0162 43F48043 orr r3, r3, #16384
13001 0166 1360 str r3, [r2]
13002 0168 67E7 b .L801
13003 .LVL954:
13004 .L814:
5589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13005 .loc 1 5589 17 view .LVU4586
13006 016a 0C48 ldr r0, .L824+4
13007 016c DFE7 b .L809
13008 .LVL955:
13009 .L810:
5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13010 .loc 1 5602 7 is_stmt 1 view .LVU4587
5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13011 .loc 1 5602 28 is_stmt 0 view .LVU4588
13012 016e 628D ldrh r2, [r4, #42]
13013 0170 92B2 uxth r2, r2
5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13014 .loc 1 5602 22 view .LVU4589
13015 0172 2285 strh r2, [r4, #40] @ movhi
5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
13016 .loc 1 5605 7 is_stmt 1 view .LVU4590
5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
13017 .loc 1 5605 46 is_stmt 0 view .LVU4591
13018 0174 E16C ldr r1, [r4, #76]
5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
13019 .loc 1 5605 7 view .LVU4592
13020 0176 0090 str r0, [sp]
13021 0178 4FF00073 mov r3, #33554432
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 437
13022 017c D2B2 uxtb r2, r2
13023 017e 89B2 uxth r1, r1
13024 0180 2046 mov r0, r4
13025 .LVL956:
5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
13026 .loc 1 5605 7 view .LVU4593
13027 0182 FFF7FEFF bl I2C_TransferConfig
13028 .LVL957:
5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
13029 .loc 1 5605 7 view .LVU4594
13030 0186 E0E7 b .L811
13031 .L823:
5615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13032 .loc 1 5615 7 is_stmt 1 view .LVU4595
5615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13033 .loc 1 5615 11 is_stmt 0 view .LVU4596
13034 0188 2268 ldr r2, [r4]
5615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13035 .loc 1 5615 21 view .LVU4597
13036 018a 1368 ldr r3, [r2]
5615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13037 .loc 1 5615 27 view .LVU4598
13038 018c 43F40043 orr r3, r3, #32768
13039 0190 1360 str r3, [r2]
13040 0192 52E7 b .L801
13041 .LVL958:
13042 .L813:
13043 .cfi_def_cfa_offset 0
13044 .cfi_restore 4
13045 .cfi_restore 14
5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13046 .loc 1 5505 3 discriminator 1 view .LVU4599
13047 0194 0220 movs r0, #2
13048 .LVL959:
5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13049 .loc 1 5637 1 view .LVU4600
13050 0196 7047 bx lr
13051 .L825:
13052 .align 2
13053 .L824:
13054 0198 00200080 .word -2147475456
13055 019c 00240080 .word -2147474432
13056 .cfi_endproc
13057 .LFE388:
13059 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits
13060 .align 1
13061 .syntax unified
13062 .thumb
13063 .thumb_func
13065 I2C_Slave_ISR_DMA:
13066 .LVL960:
13067 .LFB389:
5649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
13068 .loc 1 5649 1 is_stmt 1 view -0
13069 .cfi_startproc
13070 @ args = 0, pretend = 0, frame = 0
13071 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 438
5649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
13072 .loc 1 5649 1 is_stmt 0 view .LVU4602
13073 0000 70B5 push {r4, r5, r6, lr}
13074 .cfi_def_cfa_offset 16
13075 .cfi_offset 4, -16
13076 .cfi_offset 5, -12
13077 .cfi_offset 6, -8
13078 .cfi_offset 14, -4
13079 0002 0446 mov r4, r0
5650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
13080 .loc 1 5650 3 is_stmt 1 view .LVU4603
5650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
13081 .loc 1 5650 12 is_stmt 0 view .LVU4604
13082 0004 C06A ldr r0, [r0, #44]
13083 .LVL961:
5651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
13084 .loc 1 5651 3 is_stmt 1 view .LVU4605
5652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13085 .loc 1 5652 3 view .LVU4606
5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13086 .loc 1 5655 3 view .LVU4607
5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13087 .loc 1 5655 3 view .LVU4608
13088 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
13089 000a 012B cmp r3, #1
13090 000c 00F0FF80 beq .L849
5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13091 .loc 1 5655 3 discriminator 2 view .LVU4609
13092 0010 0123 movs r3, #1
13093 0012 84F84030 strb r3, [r4, #64]
5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13094 .loc 1 5655 3 view .LVU4610
5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13095 .loc 1 5658 3 view .LVU4611
5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13096 .loc 1 5658 6 is_stmt 0 view .LVU4612
13097 0016 11F0200F tst r1, #32
13098 001a 02D0 beq .L828
5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13099 .loc 1 5658 58 discriminator 1 view .LVU4613
13100 001c 12F0200F tst r2, #32
13101 0020 4FD1 bne .L854
13102 .L828:
5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13103 .loc 1 5664 8 is_stmt 1 view .LVU4614
5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13104 .loc 1 5664 11 is_stmt 0 view .LVU4615
13105 0022 11F0100F tst r1, #16
13106 0026 00F0E480 beq .L830
5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13107 .loc 1 5664 60 discriminator 1 view .LVU4616
13108 002a 12F0100F tst r2, #16
13109 002e 00F0E080 beq .L830
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
13110 .loc 1 5671 5 is_stmt 1 view .LVU4617
13111 0032 C2F38036 ubfx r6, r2, #14, #1
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 439
13112 .loc 1 5671 8 is_stmt 0 view .LVU4618
13113 0036 12F4804F tst r2, #16384
13114 003a 03D1 bne .L831
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
13115 .loc 1 5671 68 discriminator 1 view .LVU4619
13116 003c 12F4004F tst r2, #32768
13117 0040 00F0D380 beq .L832
13118 .L831:
5675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13119 .loc 1 5675 7 is_stmt 1 view .LVU4620
5675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13120 .loc 1 5675 15 is_stmt 0 view .LVU4621
13121 0044 E36B ldr r3, [r4, #60]
5675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13122 .loc 1 5675 10 view .LVU4622
13123 0046 002B cmp r3, #0
13124 0048 47D0 beq .L850
5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13125 .loc 1 5677 9 is_stmt 1 view .LVU4623
13126 004a C2F3C035 ubfx r5, r2, #15, #1
5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13127 .loc 1 5677 12 is_stmt 0 view .LVU4624
13128 004e 12F4004F tst r2, #32768
13129 0052 43D0 beq .L833
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13130 .loc 1 5679 11 is_stmt 1 view .LVU4625
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13131 .loc 1 5679 15 is_stmt 0 view .LVU4626
13132 0054 1B68 ldr r3, [r3]
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13133 .loc 1 5679 53 view .LVU4627
13134 0056 6F4D ldr r5, .L858
13135 0058 6F4A ldr r2, .L858+4
13136 .LVL962:
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13137 .loc 1 5679 53 view .LVU4628
13138 005a 9342 cmp r3, r2
13139 005c 18BF it ne
13140 005e AB42 cmpne r3, r5
13141 0060 33D0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13142 .loc 1 5679 15 discriminator 2 view .LVU4629
13143 0062 1832 adds r2, r2, #24
13144 0064 9342 cmp r3, r2
13145 0066 30D0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13146 .loc 1 5679 15 discriminator 4 view .LVU4630
13147 0068 1832 adds r2, r2, #24
13148 006a 9342 cmp r3, r2
13149 006c 2DD0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13150 .loc 1 5679 15 discriminator 6 view .LVU4631
13151 006e 1832 adds r2, r2, #24
13152 0070 9342 cmp r3, r2
13153 0072 2AD0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13154 .loc 1 5679 15 discriminator 8 view .LVU4632
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 440
13155 0074 1832 adds r2, r2, #24
13156 0076 9342 cmp r3, r2
13157 0078 27D0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13158 .loc 1 5679 15 discriminator 10 view .LVU4633
13159 007a 1832 adds r2, r2, #24
13160 007c 9342 cmp r3, r2
13161 007e 24D0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13162 .loc 1 5679 15 discriminator 12 view .LVU4634
13163 0080 1832 adds r2, r2, #24
13164 0082 9342 cmp r3, r2
13165 0084 21D0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13166 .loc 1 5679 15 discriminator 14 view .LVU4635
13167 0086 02F55672 add r2, r2, #856
13168 008a 9342 cmp r3, r2
13169 008c 1DD0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13170 .loc 1 5679 15 discriminator 16 view .LVU4636
13171 008e 1832 adds r2, r2, #24
13172 0090 9342 cmp r3, r2
13173 0092 1AD0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13174 .loc 1 5679 15 discriminator 18 view .LVU4637
13175 0094 1832 adds r2, r2, #24
13176 0096 9342 cmp r3, r2
13177 0098 17D0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13178 .loc 1 5679 15 discriminator 20 view .LVU4638
13179 009a 1832 adds r2, r2, #24
13180 009c 9342 cmp r3, r2
13181 009e 14D0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13182 .loc 1 5679 15 discriminator 22 view .LVU4639
13183 00a0 1832 adds r2, r2, #24
13184 00a2 9342 cmp r3, r2
13185 00a4 11D0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13186 .loc 1 5679 15 discriminator 24 view .LVU4640
13187 00a6 1832 adds r2, r2, #24
13188 00a8 9342 cmp r3, r2
13189 00aa 0ED0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13190 .loc 1 5679 15 discriminator 26 view .LVU4641
13191 00ac 1832 adds r2, r2, #24
13192 00ae 9342 cmp r3, r2
13193 00b0 0BD0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13194 .loc 1 5679 15 discriminator 28 view .LVU4642
13195 00b2 1832 adds r2, r2, #24
13196 00b4 9342 cmp r3, r2
13197 00b6 08D0 beq .L834
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13198 .loc 1 5679 15 discriminator 30 view .LVU4643
13199 00b8 5B68 ldr r3, [r3, #4]
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 441
13200 .loc 1 5679 53 discriminator 30 view .LVU4644
13201 00ba B3FA83F3 clz r3, r3
13202 00be 5B09 lsrs r3, r3, #5
13203 00c0 07E0 b .L836
13204 .LVL963:
13205 .L854:
5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13206 .loc 1 5662 5 is_stmt 1 view .LVU4645
13207 00c2 2046 mov r0, r4
13208 .LVL964:
5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13209 .loc 1 5662 5 is_stmt 0 view .LVU4646
13210 00c4 FFF7FEFF bl I2C_ITSlaveCplt
13211 .LVL965:
5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13212 .loc 1 5662 5 view .LVU4647
13213 00c8 99E0 b .L829
13214 .LVL966:
13215 .L834:
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13216 .loc 1 5679 15 discriminator 29 view .LVU4648
13217 00ca 5B68 ldr r3, [r3, #4]
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13218 .loc 1 5679 53 discriminator 29 view .LVU4649
13219 00cc B3FA83F3 clz r3, r3
13220 00d0 5B09 lsrs r3, r3, #5
13221 .L836:
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13222 .loc 1 5679 14 discriminator 32 view .LVU4650
13223 00d2 002B cmp r3, #0
13224 00d4 3ED1 bne .L851
5651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
13225 .loc 1 5651 12 view .LVU4651
13226 00d6 0025 movs r5, #0
13227 00d8 00E0 b .L833
13228 .LVL967:
13229 .L850:
5651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
13230 .loc 1 5651 12 view .LVU4652
13231 00da 0025 movs r5, #0
13232 .LVL968:
13233 .L833:
5687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13234 .loc 1 5687 7 is_stmt 1 view .LVU4653
5687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13235 .loc 1 5687 15 is_stmt 0 view .LVU4654
13236 00dc A36B ldr r3, [r4, #56]
5687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13237 .loc 1 5687 10 view .LVU4655
13238 00de 002B cmp r3, #0
13239 00e0 3FD0 beq .L837
5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13240 .loc 1 5689 9 is_stmt 1 view .LVU4656
5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13241 .loc 1 5689 12 is_stmt 0 view .LVU4657
13242 00e2 002E cmp r6, #0
13243 00e4 3DD0 beq .L837
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 442
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13244 .loc 1 5691 11 is_stmt 1 view .LVU4658
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13245 .loc 1 5691 15 is_stmt 0 view .LVU4659
13246 00e6 1B68 ldr r3, [r3]
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13247 .loc 1 5691 53 view .LVU4660
13248 00e8 4A4E ldr r6, .L858
13249 00ea 4B4A ldr r2, .L858+4
13250 00ec 9342 cmp r3, r2
13251 00ee 18BF it ne
13252 00f0 B342 cmpne r3, r6
13253 00f2 31D0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13254 .loc 1 5691 15 discriminator 2 view .LVU4661
13255 00f4 1832 adds r2, r2, #24
13256 00f6 9342 cmp r3, r2
13257 00f8 2ED0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13258 .loc 1 5691 15 discriminator 4 view .LVU4662
13259 00fa 1832 adds r2, r2, #24
13260 00fc 9342 cmp r3, r2
13261 00fe 2BD0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13262 .loc 1 5691 15 discriminator 6 view .LVU4663
13263 0100 1832 adds r2, r2, #24
13264 0102 9342 cmp r3, r2
13265 0104 28D0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13266 .loc 1 5691 15 discriminator 8 view .LVU4664
13267 0106 1832 adds r2, r2, #24
13268 0108 9342 cmp r3, r2
13269 010a 25D0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13270 .loc 1 5691 15 discriminator 10 view .LVU4665
13271 010c 1832 adds r2, r2, #24
13272 010e 9342 cmp r3, r2
13273 0110 22D0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13274 .loc 1 5691 15 discriminator 12 view .LVU4666
13275 0112 1832 adds r2, r2, #24
13276 0114 9342 cmp r3, r2
13277 0116 1FD0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13278 .loc 1 5691 15 discriminator 14 view .LVU4667
13279 0118 02F55672 add r2, r2, #856
13280 011c 9342 cmp r3, r2
13281 011e 1BD0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13282 .loc 1 5691 15 discriminator 16 view .LVU4668
13283 0120 1832 adds r2, r2, #24
13284 0122 9342 cmp r3, r2
13285 0124 18D0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13286 .loc 1 5691 15 discriminator 18 view .LVU4669
13287 0126 1832 adds r2, r2, #24
13288 0128 9342 cmp r3, r2
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 443
13289 012a 15D0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13290 .loc 1 5691 15 discriminator 20 view .LVU4670
13291 012c 1832 adds r2, r2, #24
13292 012e 9342 cmp r3, r2
13293 0130 12D0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13294 .loc 1 5691 15 discriminator 22 view .LVU4671
13295 0132 1832 adds r2, r2, #24
13296 0134 9342 cmp r3, r2
13297 0136 0FD0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13298 .loc 1 5691 15 discriminator 24 view .LVU4672
13299 0138 1832 adds r2, r2, #24
13300 013a 9342 cmp r3, r2
13301 013c 0CD0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13302 .loc 1 5691 15 discriminator 26 view .LVU4673
13303 013e 1832 adds r2, r2, #24
13304 0140 9342 cmp r3, r2
13305 0142 09D0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13306 .loc 1 5691 15 discriminator 28 view .LVU4674
13307 0144 1832 adds r2, r2, #24
13308 0146 9342 cmp r3, r2
13309 0148 06D0 beq .L838
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13310 .loc 1 5691 15 discriminator 30 view .LVU4675
13311 014a 5B68 ldr r3, [r3, #4]
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13312 .loc 1 5691 53 discriminator 30 view .LVU4676
13313 014c B3FA83F3 clz r3, r3
13314 0150 5B09 lsrs r3, r3, #5
13315 0152 05E0 b .L840
13316 .LVL969:
13317 .L851:
5681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13318 .loc 1 5681 26 view .LVU4677
13319 0154 0125 movs r5, #1
13320 0156 C1E7 b .L833
13321 .LVL970:
13322 .L838:
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13323 .loc 1 5691 15 discriminator 29 view .LVU4678
13324 0158 5B68 ldr r3, [r3, #4]
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13325 .loc 1 5691 53 discriminator 29 view .LVU4679
13326 015a B3FA83F3 clz r3, r3
13327 015e 5B09 lsrs r3, r3, #5
13328 .L840:
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13329 .loc 1 5691 14 discriminator 32 view .LVU4680
13330 0160 CBB9 cbnz r3, .L841
13331 .L837:
5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13332 .loc 1 5698 7 is_stmt 1 view .LVU4681
5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 444
13333 .loc 1 5698 10 is_stmt 0 view .LVU4682
13334 0162 C5B9 cbnz r5, .L841
5729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13335 .loc 1 5729 9 is_stmt 1 view .LVU4683
13336 0164 2368 ldr r3, [r4]
13337 0166 1022 movs r2, #16
13338 0168 DA61 str r2, [r3, #28]
5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13339 .loc 1 5732 9 view .LVU4684
5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13340 .loc 1 5732 13 is_stmt 0 view .LVU4685
13341 016a 636C ldr r3, [r4, #68]
5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13342 .loc 1 5732 25 view .LVU4686
13343 016c 43F00403 orr r3, r3, #4
13344 0170 6364 str r3, [r4, #68]
5735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13345 .loc 1 5735 9 is_stmt 1 view .LVU4687
5735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13346 .loc 1 5735 18 is_stmt 0 view .LVU4688
13347 0172 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
13348 0176 DBB2 uxtb r3, r3
13349 .LVL971:
5737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13350 .loc 1 5737 9 is_stmt 1 view .LVU4689
5737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13351 .loc 1 5737 12 is_stmt 0 view .LVU4690
13352 0178 B0F1807F cmp r0, #16777216
13353 017c 18BF it ne
13354 017e 0028 cmpne r0, #0
13355 0180 3DD1 bne .L829
5739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13356 .loc 1 5739 11 is_stmt 1 view .LVU4691
13357 0182 213B subs r3, r3, #33
13358 .LVL972:
5739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13359 .loc 1 5739 11 is_stmt 0 view .LVU4692
13360 0184 092B cmp r3, #9
13361 0186 28D8 bhi .L845
13362 0188 DFE803F0 tbb [pc, r3]
13363 .L847:
13364 018c 25 .byte (.L848-.L847)/2
13365 018d 2C .byte (.L846-.L847)/2
13366 018e 27 .byte (.L845-.L847)/2
13367 018f 27 .byte (.L845-.L847)/2
13368 0190 27 .byte (.L845-.L847)/2
13369 0191 27 .byte (.L845-.L847)/2
13370 0192 27 .byte (.L845-.L847)/2
13371 0193 27 .byte (.L845-.L847)/2
13372 0194 25 .byte (.L848-.L847)/2
13373 0195 2C .byte (.L846-.L847)/2
13374 .LVL973:
13375 .p2align 1
13376 .L841:
5700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
13377 .loc 1 5700 9 is_stmt 1 view .LVU4693
5700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 445
13378 .loc 1 5700 18 is_stmt 0 view .LVU4694
13379 0196 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
13380 .loc 1 5700 12 view .LVU4695
13381 019a 282B cmp r3, #40
13382 019c 07D0 beq .L855
13383 .L843:
5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13384 .loc 1 5707 14 is_stmt 1 view .LVU4696
5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13385 .loc 1 5707 23 is_stmt 0 view .LVU4697
13386 019e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13387 .loc 1 5707 17 view .LVU4698
13388 01a2 292B cmp r3, #41
13389 01a4 0AD0 beq .L856
13390 .L844:
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13391 .loc 1 5722 11 is_stmt 1 view .LVU4699
13392 01a6 2368 ldr r3, [r4]
13393 01a8 1022 movs r2, #16
13394 01aa DA61 str r2, [r3, #28]
13395 01ac 27E0 b .L829
13396 .L855:
5700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
13397 .loc 1 5700 51 is_stmt 0 discriminator 1 view .LVU4700
13398 01ae B0F1007F cmp r0, #33554432
13399 01b2 F4D1 bne .L843
5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13400 .loc 1 5705 11 is_stmt 1 view .LVU4701
13401 01b4 2046 mov r0, r4
13402 .LVL974:
5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13403 .loc 1 5705 11 is_stmt 0 view .LVU4702
13404 01b6 FFF7FEFF bl I2C_ITListenCplt
13405 .LVL975:
5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13406 .loc 1 5705 11 view .LVU4703
13407 01ba 20E0 b .L829
13408 .LVL976:
13409 .L856:
5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13410 .loc 1 5707 64 discriminator 1 view .LVU4704
13411 01bc 10F5803F cmn r0, #65536
13412 01c0 F1D0 beq .L844
5710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13413 .loc 1 5710 11 is_stmt 1 view .LVU4705
13414 01c2 2368 ldr r3, [r4]
13415 01c4 1022 movs r2, #16
13416 01c6 DA61 str r2, [r3, #28]
5713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13417 .loc 1 5713 11 view .LVU4706
13418 01c8 2046 mov r0, r4
13419 .LVL977:
5713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13420 .loc 1 5713 11 is_stmt 0 view .LVU4707
13421 01ca FFF7FEFF bl I2C_Flush_TXDR
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 446
13422 .LVL978:
5717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13423 .loc 1 5717 11 is_stmt 1 view .LVU4708
13424 01ce 2046 mov r0, r4
13425 01d0 FFF7FEFF bl I2C_ITSlaveSeqCplt
13426 .LVL979:
13427 01d4 13E0 b .L829
13428 .LVL980:
13429 .L848:
5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13430 .loc 1 5741 13 view .LVU4709
5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13431 .loc 1 5741 33 is_stmt 0 view .LVU4710
13432 01d6 2123 movs r3, #33
13433 .LVL981:
5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13434 .loc 1 5741 33 view .LVU4711
13435 01d8 2363 str r3, [r4, #48]
13436 .L845:
5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13437 .loc 1 5750 11 is_stmt 1 view .LVU4712
5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13438 .loc 1 5753 11 view .LVU4713
5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13439 .loc 1 5753 33 is_stmt 0 view .LVU4714
13440 01da 616C ldr r1, [r4, #68]
13441 .LVL982:
5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13442 .loc 1 5753 11 view .LVU4715
13443 01dc 2046 mov r0, r4
13444 .LVL983:
5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13445 .loc 1 5753 11 view .LVU4716
13446 01de FFF7FEFF bl I2C_ITError
13447 .LVL984:
13448 01e2 0CE0 b .L829
13449 .LVL985:
13450 .L846:
5745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13451 .loc 1 5745 13 is_stmt 1 view .LVU4717
5745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13452 .loc 1 5745 33 is_stmt 0 view .LVU4718
13453 01e4 2223 movs r3, #34
13454 .LVL986:
5745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13455 .loc 1 5745 33 view .LVU4719
13456 01e6 2363 str r3, [r4, #48]
13457 01e8 F7E7 b .L845
13458 .LVL987:
13459 .L832:
5760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13460 .loc 1 5760 7 is_stmt 1 view .LVU4720
13461 01ea 2368 ldr r3, [r4]
13462 01ec 1022 movs r2, #16
13463 .LVL988:
5760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13464 .loc 1 5760 7 is_stmt 0 view .LVU4721
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 447
13465 01ee DA61 str r2, [r3, #28]
13466 01f0 05E0 b .L829
13467 .LVL989:
13468 .L830:
5763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
13469 .loc 1 5763 8 is_stmt 1 view .LVU4722
5763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
13470 .loc 1 5763 11 is_stmt 0 view .LVU4723
13471 01f2 11F0080F tst r1, #8
13472 01f6 02D0 beq .L829
5763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
13473 .loc 1 5763 62 discriminator 1 view .LVU4724
13474 01f8 12F0080F tst r2, #8
13475 01fc 03D1 bne .L857
13476 .LVL990:
13477 .L829:
5771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13478 .loc 1 5771 3 is_stmt 1 view .LVU4725
5774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13479 .loc 1 5774 3 view .LVU4726
5774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13480 .loc 1 5774 3 view .LVU4727
13481 01fe 0020 movs r0, #0
13482 0200 84F84000 strb r0, [r4, #64]
5774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13483 .loc 1 5774 3 view .LVU4728
5776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13484 .loc 1 5776 3 view .LVU4729
13485 .L827:
5777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13486 .loc 1 5777 1 is_stmt 0 view .LVU4730
13487 0204 70BD pop {r4, r5, r6, pc}
13488 .LVL991:
13489 .L857:
5766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13490 .loc 1 5766 5 is_stmt 1 view .LVU4731
13491 0206 2046 mov r0, r4
13492 .LVL992:
5766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13493 .loc 1 5766 5 is_stmt 0 view .LVU4732
13494 0208 FFF7FEFF bl I2C_ITAddrCplt
13495 .LVL993:
5766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13496 .loc 1 5766 5 view .LVU4733
13497 020c F7E7 b .L829
13498 .LVL994:
13499 .L849:
5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13500 .loc 1 5655 3 discriminator 1 view .LVU4734
13501 020e 0220 movs r0, #2
13502 .LVL995:
5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13503 .loc 1 5655 3 discriminator 1 view .LVU4735
13504 0210 F8E7 b .L827
13505 .L859:
13506 0212 00BF .align 2
13507 .L858:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 448
13508 0214 10000240 .word 1073872912
13509 0218 28000240 .word 1073872936
13510 .cfi_endproc
13511 .LFE389:
13513 .section .text.I2C_Master_ISR_DMA,"ax",%progbits
13514 .align 1
13515 .syntax unified
13516 .thumb
13517 .thumb_func
13519 I2C_Master_ISR_DMA:
13520 .LVL996:
13521 .LFB387:
5361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
13522 .loc 1 5361 1 is_stmt 1 view -0
13523 .cfi_startproc
13524 @ args = 0, pretend = 0, frame = 0
13525 @ frame_needed = 0, uses_anonymous_args = 0
5362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
13526 .loc 1 5362 3 view .LVU4737
5363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13527 .loc 1 5363 3 view .LVU4738
5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13528 .loc 1 5366 3 view .LVU4739
5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13529 .loc 1 5366 3 view .LVU4740
13530 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
13531 0004 012B cmp r3, #1
13532 0006 00F09980 beq .L873
5361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
13533 .loc 1 5361 1 is_stmt 0 view .LVU4741
13534 000a 10B5 push {r4, lr}
13535 .cfi_def_cfa_offset 8
13536 .cfi_offset 4, -8
13537 .cfi_offset 14, -4
13538 000c 82B0 sub sp, sp, #8
13539 .cfi_def_cfa_offset 16
13540 000e 0446 mov r4, r0
5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13541 .loc 1 5366 3 is_stmt 1 discriminator 2 view .LVU4742
13542 0010 0123 movs r3, #1
13543 0012 80F84030 strb r3, [r0, #64]
5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13544 .loc 1 5366 3 view .LVU4743
5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13545 .loc 1 5368 3 view .LVU4744
5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13546 .loc 1 5368 6 is_stmt 0 view .LVU4745
13547 0016 11F0100F tst r1, #16
13548 001a 02D0 beq .L862
5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13549 .loc 1 5368 55 discriminator 1 view .LVU4746
13550 001c 12F0100F tst r2, #16
13551 0020 31D1 bne .L879
13552 .L862:
5385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13553 .loc 1 5385 8 is_stmt 1 view .LVU4747
5385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 449
13554 .loc 1 5385 11 is_stmt 0 view .LVU4748
13555 0022 11F0800F tst r1, #128
13556 0026 5FD0 beq .L864
5385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13557 .loc 1 5385 61 discriminator 1 view .LVU4749
13558 0028 12F0400F tst r2, #64
13559 002c 5CD0 beq .L864
5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13560 .loc 1 5389 5 is_stmt 1 view .LVU4750
13561 002e 2268 ldr r2, [r4]
13562 .LVL997:
5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13563 .loc 1 5389 5 is_stmt 0 view .LVU4751
13564 0030 1368 ldr r3, [r2]
13565 0032 23F04003 bic r3, r3, #64
13566 0036 1360 str r3, [r2]
5391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13567 .loc 1 5391 5 is_stmt 1 view .LVU4752
5391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13568 .loc 1 5391 13 is_stmt 0 view .LVU4753
13569 0038 638D ldrh r3, [r4, #42]
13570 003a 9BB2 uxth r3, r3
5391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13571 .loc 1 5391 8 view .LVU4754
13572 003c 002B cmp r3, #0
13573 003e 45D0 beq .L865
5394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13574 .loc 1 5394 7 is_stmt 1 view .LVU4755
5394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13575 .loc 1 5394 35 is_stmt 0 view .LVU4756
13576 0040 2368 ldr r3, [r4]
5394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13577 .loc 1 5394 45 view .LVU4757
13578 0042 5968 ldr r1, [r3, #4]
13579 .LVL998:
5394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13580 .loc 1 5394 18 view .LVU4758
13581 0044 C1F30901 ubfx r1, r1, #0, #10
13582 .LVL999:
5397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13583 .loc 1 5397 7 is_stmt 1 view .LVU4759
5397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13584 .loc 1 5397 15 is_stmt 0 view .LVU4760
13585 0048 638D ldrh r3, [r4, #42]
13586 004a 9BB2 uxth r3, r3
5397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13587 .loc 1 5397 10 view .LVU4761
13588 004c FF2B cmp r3, #255
13589 004e 2CD9 bls .L866
5399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
13590 .loc 1 5399 9 is_stmt 1 view .LVU4762
5399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
13591 .loc 1 5399 24 is_stmt 0 view .LVU4763
13592 0050 FF23 movs r3, #255
13593 0052 2385 strh r3, [r4, #40] @ movhi
5400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13594 .loc 1 5400 9 is_stmt 1 view .LVU4764
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 450
13595 .LVL1000:
5400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13596 .loc 1 5400 18 is_stmt 0 view .LVU4765
13597 0054 4FF08073 mov r3, #16777216
13598 .LVL1001:
13599 .L867:
5416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13600 .loc 1 5416 7 is_stmt 1 view .LVU4766
13601 0058 0022 movs r2, #0
13602 005a 0092 str r2, [sp]
13603 005c 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
13604 0060 2046 mov r0, r4
13605 .LVL1002:
5416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13606 .loc 1 5416 7 is_stmt 0 view .LVU4767
13607 0062 FFF7FEFF bl I2C_TransferConfig
13608 .LVL1003:
5419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13609 .loc 1 5419 7 is_stmt 1 view .LVU4768
5419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13610 .loc 1 5419 11 is_stmt 0 view .LVU4769
13611 0066 638D ldrh r3, [r4, #42]
13612 0068 9BB2 uxth r3, r3
5419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13613 .loc 1 5419 30 view .LVU4770
13614 006a 228D ldrh r2, [r4, #40]
5419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13615 .loc 1 5419 23 view .LVU4771
13616 006c 9B1A subs r3, r3, r2
13617 006e 9BB2 uxth r3, r3
13618 0070 6385 strh r3, [r4, #42] @ movhi
5422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13619 .loc 1 5422 7 is_stmt 1 view .LVU4772
5422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13620 .loc 1 5422 15 is_stmt 0 view .LVU4773
13621 0072 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13622 .loc 1 5422 10 view .LVU4774
13623 0076 222B cmp r3, #34
13624 0078 22D0 beq .L880
5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13625 .loc 1 5428 9 is_stmt 1 view .LVU4775
5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13626 .loc 1 5428 13 is_stmt 0 view .LVU4776
13627 007a 2268 ldr r2, [r4]
5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13628 .loc 1 5428 23 view .LVU4777
13629 007c 1368 ldr r3, [r2]
5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13630 .loc 1 5428 29 view .LVU4778
13631 007e 43F48043 orr r3, r3, #16384
13632 0082 1360 str r3, [r2]
13633 0084 0CE0 b .L863
13634 .LVL1004:
13635 .L879:
5372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13636 .loc 1 5372 5 is_stmt 1 view .LVU4779
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 451
13637 0086 0368 ldr r3, [r0]
13638 0088 1022 movs r2, #16
13639 .LVL1005:
5372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13640 .loc 1 5372 5 is_stmt 0 view .LVU4780
13641 008a DA61 str r2, [r3, #28]
5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13642 .loc 1 5375 5 is_stmt 1 view .LVU4781
5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13643 .loc 1 5375 9 is_stmt 0 view .LVU4782
13644 008c 436C ldr r3, [r0, #68]
5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13645 .loc 1 5375 21 view .LVU4783
13646 008e 43F00403 orr r3, r3, #4
13647 0092 4364 str r3, [r0, #68]
5380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13648 .loc 1 5380 5 is_stmt 1 view .LVU4784
13649 0094 2021 movs r1, #32
13650 .LVL1006:
5380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13651 .loc 1 5380 5 is_stmt 0 view .LVU4785
13652 0096 FFF7FEFF bl I2C_Enable_IRQ
13653 .LVL1007:
5383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13654 .loc 1 5383 5 is_stmt 1 view .LVU4786
13655 009a 2046 mov r0, r4
13656 009c FFF7FEFF bl I2C_Flush_TXDR
13657 .LVL1008:
13658 .L863:
5483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13659 .loc 1 5483 3 view .LVU4787
5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13660 .loc 1 5486 3 view .LVU4788
5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13661 .loc 1 5486 3 view .LVU4789
13662 00a0 0020 movs r0, #0
13663 00a2 84F84000 strb r0, [r4, #64]
5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13664 .loc 1 5486 3 view .LVU4790
5488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13665 .loc 1 5488 3 view .LVU4791
5489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13666 .loc 1 5489 1 is_stmt 0 view .LVU4792
13667 00a6 02B0 add sp, sp, #8
13668 .cfi_remember_state
13669 .cfi_def_cfa_offset 8
13670 @ sp needed
13671 00a8 10BD pop {r4, pc}
13672 .LVL1009:
13673 .L866:
13674 .cfi_restore_state
5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
13675 .loc 1 5404 9 is_stmt 1 view .LVU4793
5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
13676 .loc 1 5404 30 is_stmt 0 view .LVU4794
13677 00aa 638D ldrh r3, [r4, #42]
5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 452
13678 .loc 1 5404 24 view .LVU4795
13679 00ac 2385 strh r3, [r4, #40] @ movhi
5405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13680 .loc 1 5405 9 is_stmt 1 view .LVU4796
5405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13681 .loc 1 5405 17 is_stmt 0 view .LVU4797
13682 00ae E36A ldr r3, [r4, #44]
5405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13683 .loc 1 5405 12 view .LVU4798
13684 00b0 13F5803F cmn r3, #65536
13685 00b4 01D0 beq .L874
5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13686 .loc 1 5407 11 is_stmt 1 view .LVU4799
5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13687 .loc 1 5407 20 is_stmt 0 view .LVU4800
13688 00b6 E36A ldr r3, [r4, #44]
13689 .LVL1010:
5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13690 .loc 1 5407 20 view .LVU4801
13691 00b8 CEE7 b .L867
13692 .LVL1011:
13693 .L874:
5411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13694 .loc 1 5411 20 view .LVU4802
13695 00ba 4FF00073 mov r3, #33554432
13696 00be CBE7 b .L867
13697 .LVL1012:
13698 .L880:
5424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13699 .loc 1 5424 9 is_stmt 1 view .LVU4803
5424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13700 .loc 1 5424 13 is_stmt 0 view .LVU4804
13701 00c0 2268 ldr r2, [r4]
5424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13702 .loc 1 5424 23 view .LVU4805
13703 00c2 1368 ldr r3, [r2]
5424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13704 .loc 1 5424 29 view .LVU4806
13705 00c4 43F40043 orr r3, r3, #32768
13706 00c8 1360 str r3, [r2]
13707 00ca E9E7 b .L863
13708 .LVL1013:
13709 .L865:
5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13710 .loc 1 5434 7 is_stmt 1 view .LVU4807
5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13711 .loc 1 5434 11 is_stmt 0 view .LVU4808
13712 00cc 2368 ldr r3, [r4]
13713 00ce 5B68 ldr r3, [r3, #4]
5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13714 .loc 1 5434 10 view .LVU4809
13715 00d0 13F0007F tst r3, #33554432
13716 00d4 03D1 bne .L869
5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13717 .loc 1 5437 9 is_stmt 1 view .LVU4810
13718 00d6 2046 mov r0, r4
13719 .LVL1014:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 453
5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13720 .loc 1 5437 9 is_stmt 0 view .LVU4811
13721 00d8 FFF7FEFF bl I2C_ITMasterSeqCplt
13722 .LVL1015:
5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13723 .loc 1 5437 9 view .LVU4812
13724 00dc E0E7 b .L863
13725 .LVL1016:
13726 .L869:
5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13727 .loc 1 5443 9 is_stmt 1 view .LVU4813
13728 00de 4021 movs r1, #64
13729 .LVL1017:
5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13730 .loc 1 5443 9 is_stmt 0 view .LVU4814
13731 00e0 2046 mov r0, r4
13732 .LVL1018:
5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13733 .loc 1 5443 9 view .LVU4815
13734 00e2 FFF7FEFF bl I2C_ITError
13735 .LVL1019:
13736 00e6 DBE7 b .L863
13737 .LVL1020:
13738 .L864:
5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13739 .loc 1 5447 8 is_stmt 1 view .LVU4816
5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13740 .loc 1 5447 11 is_stmt 0 view .LVU4817
13741 00e8 11F0400F tst r1, #64
13742 00ec 1CD0 beq .L870
5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13743 .loc 1 5447 60 discriminator 1 view .LVU4818
13744 00ee 12F0400F tst r2, #64
13745 00f2 19D0 beq .L870
5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13746 .loc 1 5450 5 is_stmt 1 view .LVU4819
5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13747 .loc 1 5450 13 is_stmt 0 view .LVU4820
13748 00f4 638D ldrh r3, [r4, #42]
13749 00f6 9BB2 uxth r3, r3
5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13750 .loc 1 5450 8 view .LVU4821
13751 00f8 8BB9 cbnz r3, .L871
5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13752 .loc 1 5452 7 is_stmt 1 view .LVU4822
5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13753 .loc 1 5452 11 is_stmt 0 view .LVU4823
13754 00fa 2368 ldr r3, [r4]
13755 00fc 5A68 ldr r2, [r3, #4]
13756 .LVL1021:
5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13757 .loc 1 5452 10 view .LVU4824
13758 00fe 12F0007F tst r2, #33554432
13759 0102 CDD1 bne .L863
5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13760 .loc 1 5455 9 is_stmt 1 view .LVU4825
5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 454
13761 .loc 1 5455 17 is_stmt 0 view .LVU4826
13762 0104 E26A ldr r2, [r4, #44]
5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13763 .loc 1 5455 12 view .LVU4827
13764 0106 12F5803F cmn r2, #65536
13765 010a 04D1 bne .L872
5458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13766 .loc 1 5458 11 is_stmt 1 view .LVU4828
5458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13767 .loc 1 5458 25 is_stmt 0 view .LVU4829
13768 010c 5A68 ldr r2, [r3, #4]
5458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13769 .loc 1 5458 31 view .LVU4830
13770 010e 42F48042 orr r2, r2, #16384
13771 0112 5A60 str r2, [r3, #4]
13772 0114 C4E7 b .L863
13773 .L872:
5463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13774 .loc 1 5463 11 is_stmt 1 view .LVU4831
13775 0116 2046 mov r0, r4
13776 .LVL1022:
5463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13777 .loc 1 5463 11 is_stmt 0 view .LVU4832
13778 0118 FFF7FEFF bl I2C_ITMasterSeqCplt
13779 .LVL1023:
5463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13780 .loc 1 5463 11 view .LVU4833
13781 011c C0E7 b .L863
13782 .LVL1024:
13783 .L871:
5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13784 .loc 1 5471 7 is_stmt 1 view .LVU4834
13785 011e 4021 movs r1, #64
13786 .LVL1025:
5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13787 .loc 1 5471 7 is_stmt 0 view .LVU4835
13788 0120 2046 mov r0, r4
13789 .LVL1026:
5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13790 .loc 1 5471 7 view .LVU4836
13791 0122 FFF7FEFF bl I2C_ITError
13792 .LVL1027:
5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13793 .loc 1 5471 7 view .LVU4837
13794 0126 BBE7 b .L863
13795 .LVL1028:
13796 .L870:
5474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13797 .loc 1 5474 8 is_stmt 1 view .LVU4838
5474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13798 .loc 1 5474 11 is_stmt 0 view .LVU4839
13799 0128 11F0200F tst r1, #32
13800 012c B8D0 beq .L863
5474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13801 .loc 1 5474 63 discriminator 1 view .LVU4840
13802 012e 12F0200F tst r2, #32
13803 0132 B5D0 beq .L863
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 455
5478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13804 .loc 1 5478 5 is_stmt 1 view .LVU4841
13805 0134 2046 mov r0, r4
13806 .LVL1029:
5478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13807 .loc 1 5478 5 is_stmt 0 view .LVU4842
13808 0136 FFF7FEFF bl I2C_ITMasterCplt
13809 .LVL1030:
5478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13810 .loc 1 5478 5 view .LVU4843
13811 013a B1E7 b .L863
13812 .LVL1031:
13813 .L873:
13814 .cfi_def_cfa_offset 0
13815 .cfi_restore 4
13816 .cfi_restore 14
5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13817 .loc 1 5366 3 discriminator 1 view .LVU4844
13818 013c 0220 movs r0, #2
13819 .LVL1032:
5489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13820 .loc 1 5489 1 view .LVU4845
13821 013e 7047 bx lr
13822 .cfi_endproc
13823 .LFE387:
13825 .section .text.I2C_DMAError,"ax",%progbits
13826 .align 1
13827 .syntax unified
13828 .thumb
13829 .thumb_func
13831 I2C_DMAError:
13832 .LVL1033:
13833 .LFB405:
6878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U;
13834 .loc 1 6878 1 is_stmt 1 view -0
13835 .cfi_startproc
13836 @ args = 0, pretend = 0, frame = 0
13837 @ frame_needed = 0, uses_anonymous_args = 0
6878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U;
13838 .loc 1 6878 1 is_stmt 0 view .LVU4847
13839 0000 38B5 push {r3, r4, r5, lr}
13840 .cfi_def_cfa_offset 16
13841 .cfi_offset 3, -16
13842 .cfi_offset 4, -12
13843 .cfi_offset 5, -8
13844 .cfi_offset 14, -4
6879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
13845 .loc 1 6879 3 is_stmt 1 view .LVU4848
13846 .LVL1034:
6881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13847 .loc 1 6881 3 view .LVU4849
6881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13848 .loc 1 6881 22 is_stmt 0 view .LVU4850
13849 0002 846B ldr r4, [r0, #56]
13850 .LVL1035:
6883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13851 .loc 1 6883 3 is_stmt 1 view .LVU4851
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 456
6883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13852 .loc 1 6883 11 is_stmt 0 view .LVU4852
13853 0004 A36B ldr r3, [r4, #56]
6883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13854 .loc 1 6883 6 view .LVU4853
13855 0006 002B cmp r3, #0
13856 0008 77D0 beq .L891
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13857 .loc 1 6885 5 is_stmt 1 view .LVU4854
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13858 .loc 1 6885 9 is_stmt 0 view .LVU4855
13859 000a 1B68 ldr r3, [r3]
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13860 .loc 1 6885 47 view .LVU4856
13861 000c 4849 ldr r1, .L896
13862 000e 494A ldr r2, .L896+4
13863 0010 9342 cmp r3, r2
13864 0012 18BF it ne
13865 0014 8B42 cmpne r3, r1
13866 0016 2FD0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13867 .loc 1 6885 9 discriminator 2 view .LVU4857
13868 0018 1832 adds r2, r2, #24
13869 001a 9342 cmp r3, r2
13870 001c 2CD0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13871 .loc 1 6885 9 discriminator 4 view .LVU4858
13872 001e 1832 adds r2, r2, #24
13873 0020 9342 cmp r3, r2
13874 0022 29D0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13875 .loc 1 6885 9 discriminator 6 view .LVU4859
13876 0024 1832 adds r2, r2, #24
13877 0026 9342 cmp r3, r2
13878 0028 26D0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13879 .loc 1 6885 9 discriminator 8 view .LVU4860
13880 002a 1832 adds r2, r2, #24
13881 002c 9342 cmp r3, r2
13882 002e 23D0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13883 .loc 1 6885 9 discriminator 10 view .LVU4861
13884 0030 1832 adds r2, r2, #24
13885 0032 9342 cmp r3, r2
13886 0034 20D0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13887 .loc 1 6885 9 discriminator 12 view .LVU4862
13888 0036 1832 adds r2, r2, #24
13889 0038 9342 cmp r3, r2
13890 003a 1DD0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13891 .loc 1 6885 9 discriminator 14 view .LVU4863
13892 003c 02F55672 add r2, r2, #856
13893 0040 9342 cmp r3, r2
13894 0042 19D0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13895 .loc 1 6885 9 discriminator 16 view .LVU4864
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 457
13896 0044 1832 adds r2, r2, #24
13897 0046 9342 cmp r3, r2
13898 0048 16D0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13899 .loc 1 6885 9 discriminator 18 view .LVU4865
13900 004a 1832 adds r2, r2, #24
13901 004c 9342 cmp r3, r2
13902 004e 13D0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13903 .loc 1 6885 9 discriminator 20 view .LVU4866
13904 0050 1832 adds r2, r2, #24
13905 0052 9342 cmp r3, r2
13906 0054 10D0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13907 .loc 1 6885 9 discriminator 22 view .LVU4867
13908 0056 1832 adds r2, r2, #24
13909 0058 9342 cmp r3, r2
13910 005a 0DD0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13911 .loc 1 6885 9 discriminator 24 view .LVU4868
13912 005c 1832 adds r2, r2, #24
13913 005e 9342 cmp r3, r2
13914 0060 0AD0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13915 .loc 1 6885 9 discriminator 26 view .LVU4869
13916 0062 1832 adds r2, r2, #24
13917 0064 9342 cmp r3, r2
13918 0066 07D0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13919 .loc 1 6885 9 discriminator 28 view .LVU4870
13920 0068 1832 adds r2, r2, #24
13921 006a 9342 cmp r3, r2
13922 006c 04D0 beq .L883
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13923 .loc 1 6885 9 discriminator 30 view .LVU4871
13924 006e 5B68 ldr r3, [r3, #4]
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13925 .loc 1 6885 47 discriminator 30 view .LVU4872
13926 0070 B3FA83F3 clz r3, r3
13927 0074 5B09 lsrs r3, r3, #5
13928 0076 03E0 b .L885
13929 .L883:
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13930 .loc 1 6885 9 discriminator 29 view .LVU4873
13931 0078 5B68 ldr r3, [r3, #4]
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13932 .loc 1 6885 47 discriminator 29 view .LVU4874
13933 007a B3FA83F3 clz r3, r3
13934 007e 5B09 lsrs r3, r3, #5
13935 .L885:
6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13936 .loc 1 6885 8 discriminator 32 view .LVU4875
13937 0080 002B cmp r3, #0
13938 0082 3CD1 bne .L892
6879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
13939 .loc 1 6879 12 view .LVU4876
13940 0084 0025 movs r5, #0
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 458
13941 .L882:
13942 .LVL1036:
6891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13943 .loc 1 6891 3 is_stmt 1 view .LVU4877
6891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13944 .loc 1 6891 11 is_stmt 0 view .LVU4878
13945 0086 E36B ldr r3, [r4, #60]
6891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13946 .loc 1 6891 6 view .LVU4879
13947 0088 002B cmp r3, #0
13948 008a 40D0 beq .L886
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13949 .loc 1 6893 5 is_stmt 1 view .LVU4880
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13950 .loc 1 6893 9 is_stmt 0 view .LVU4881
13951 008c 1B68 ldr r3, [r3]
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13952 .loc 1 6893 47 view .LVU4882
13953 008e 2849 ldr r1, .L896
13954 0090 284A ldr r2, .L896+4
13955 0092 9342 cmp r3, r2
13956 0094 18BF it ne
13957 0096 8B42 cmpne r3, r1
13958 0098 33D0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13959 .loc 1 6893 9 discriminator 2 view .LVU4883
13960 009a 1832 adds r2, r2, #24
13961 009c 9342 cmp r3, r2
13962 009e 30D0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13963 .loc 1 6893 9 discriminator 4 view .LVU4884
13964 00a0 1832 adds r2, r2, #24
13965 00a2 9342 cmp r3, r2
13966 00a4 2DD0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13967 .loc 1 6893 9 discriminator 6 view .LVU4885
13968 00a6 1832 adds r2, r2, #24
13969 00a8 9342 cmp r3, r2
13970 00aa 2AD0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13971 .loc 1 6893 9 discriminator 8 view .LVU4886
13972 00ac 1832 adds r2, r2, #24
13973 00ae 9342 cmp r3, r2
13974 00b0 27D0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13975 .loc 1 6893 9 discriminator 10 view .LVU4887
13976 00b2 1832 adds r2, r2, #24
13977 00b4 9342 cmp r3, r2
13978 00b6 24D0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13979 .loc 1 6893 9 discriminator 12 view .LVU4888
13980 00b8 1832 adds r2, r2, #24
13981 00ba 9342 cmp r3, r2
13982 00bc 21D0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13983 .loc 1 6893 9 discriminator 14 view .LVU4889
13984 00be 02F55672 add r2, r2, #856
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 459
13985 00c2 9342 cmp r3, r2
13986 00c4 1DD0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13987 .loc 1 6893 9 discriminator 16 view .LVU4890
13988 00c6 1832 adds r2, r2, #24
13989 00c8 9342 cmp r3, r2
13990 00ca 1AD0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13991 .loc 1 6893 9 discriminator 18 view .LVU4891
13992 00cc 1832 adds r2, r2, #24
13993 00ce 9342 cmp r3, r2
13994 00d0 17D0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13995 .loc 1 6893 9 discriminator 20 view .LVU4892
13996 00d2 1832 adds r2, r2, #24
13997 00d4 9342 cmp r3, r2
13998 00d6 14D0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13999 .loc 1 6893 9 discriminator 22 view .LVU4893
14000 00d8 1832 adds r2, r2, #24
14001 00da 9342 cmp r3, r2
14002 00dc 11D0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14003 .loc 1 6893 9 discriminator 24 view .LVU4894
14004 00de 1832 adds r2, r2, #24
14005 00e0 9342 cmp r3, r2
14006 00e2 0ED0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14007 .loc 1 6893 9 discriminator 26 view .LVU4895
14008 00e4 1832 adds r2, r2, #24
14009 00e6 9342 cmp r3, r2
14010 00e8 0BD0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14011 .loc 1 6893 9 discriminator 28 view .LVU4896
14012 00ea 1832 adds r2, r2, #24
14013 00ec 9342 cmp r3, r2
14014 00ee 08D0 beq .L887
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14015 .loc 1 6893 9 discriminator 30 view .LVU4897
14016 00f0 5B68 ldr r3, [r3, #4]
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14017 .loc 1 6893 47 discriminator 30 view .LVU4898
14018 00f2 B3FA83F3 clz r3, r3
14019 00f6 5B09 lsrs r3, r3, #5
14020 00f8 07E0 b .L889
14021 .LVL1037:
14022 .L891:
6879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14023 .loc 1 6879 12 view .LVU4899
14024 00fa 0025 movs r5, #0
14025 00fc C3E7 b .L882
14026 .L892:
6887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14027 .loc 1 6887 21 view .LVU4900
14028 00fe 0125 movs r5, #1
14029 0100 C1E7 b .L882
14030 .LVL1038:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 460
14031 .L887:
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14032 .loc 1 6893 9 discriminator 29 view .LVU4901
14033 0102 5B68 ldr r3, [r3, #4]
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14034 .loc 1 6893 47 discriminator 29 view .LVU4902
14035 0104 B3FA83F3 clz r3, r3
14036 0108 5B09 lsrs r3, r3, #5
14037 .L889:
6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14038 .loc 1 6893 8 discriminator 32 view .LVU4903
14039 010a 03B1 cbz r3, .L886
6895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14040 .loc 1 6895 21 view .LVU4904
14041 010c 0125 movs r5, #1
14042 .LVL1039:
14043 .L886:
6900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14044 .loc 1 6900 3 is_stmt 1 view .LVU4905
6900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14045 .loc 1 6900 10 is_stmt 0 view .LVU4906
14046 010e FFF7FEFF bl HAL_DMA_GetError
14047 .LVL1040:
6900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14048 .loc 1 6900 6 discriminator 1 view .LVU4907
14049 0112 0228 cmp r0, #2
14050 0114 00D0 beq .L881
6900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14051 .loc 1 6900 55 discriminator 1 view .LVU4908
14052 0116 05B9 cbnz r5, .L895
14053 .L881:
6908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14054 .loc 1 6908 1 view .LVU4909
14055 0118 38BD pop {r3, r4, r5, pc}
14056 .LVL1041:
14057 .L895:
6903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14058 .loc 1 6903 5 is_stmt 1 view .LVU4910
6903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14059 .loc 1 6903 9 is_stmt 0 view .LVU4911
14060 011a 2268 ldr r2, [r4]
6903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14061 .loc 1 6903 19 view .LVU4912
14062 011c 5368 ldr r3, [r2, #4]
6903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14063 .loc 1 6903 25 view .LVU4913
14064 011e 43F40043 orr r3, r3, #32768
14065 0122 5360 str r3, [r2, #4]
6906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14066 .loc 1 6906 5 is_stmt 1 view .LVU4914
14067 0124 1021 movs r1, #16
14068 0126 2046 mov r0, r4
14069 0128 FFF7FEFF bl I2C_ITError
14070 .LVL1042:
6908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14071 .loc 1 6908 1 is_stmt 0 view .LVU4915
14072 012c F4E7 b .L881
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 461
14073 .L897:
14074 012e 00BF .align 2
14075 .L896:
14076 0130 10000240 .word 1073872912
14077 0134 28000240 .word 1073872936
14078 .cfi_endproc
14079 .LFE405:
14081 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits
14082 .align 1
14083 .syntax unified
14084 .thumb
14085 .thumb_func
14087 I2C_DMAMasterTransmitCplt:
14088 .LVL1043:
14089 .LFB401:
6718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14090 .loc 1 6718 1 is_stmt 1 view -0
14091 .cfi_startproc
14092 @ args = 0, pretend = 0, frame = 0
14093 @ frame_needed = 0, uses_anonymous_args = 0
6718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14094 .loc 1 6718 1 is_stmt 0 view .LVU4917
14095 0000 10B5 push {r4, lr}
14096 .cfi_def_cfa_offset 8
14097 .cfi_offset 4, -8
14098 .cfi_offset 14, -4
6720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14099 .loc 1 6720 3 is_stmt 1 view .LVU4918
6720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14100 .loc 1 6720 22 is_stmt 0 view .LVU4919
14101 0002 846B ldr r4, [r0, #56]
14102 .LVL1044:
6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14103 .loc 1 6723 3 is_stmt 1 view .LVU4920
6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14104 .loc 1 6723 7 is_stmt 0 view .LVU4921
14105 0004 2268 ldr r2, [r4]
6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14106 .loc 1 6723 17 view .LVU4922
14107 0006 1368 ldr r3, [r2]
6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14108 .loc 1 6723 23 view .LVU4923
14109 0008 23F48043 bic r3, r3, #16384
14110 000c 1360 str r3, [r2]
6726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14111 .loc 1 6726 3 is_stmt 1 view .LVU4924
6726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14112 .loc 1 6726 11 is_stmt 0 view .LVU4925
14113 000e 638D ldrh r3, [r4, #42]
14114 0010 9BB2 uxth r3, r3
6726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14115 .loc 1 6726 6 view .LVU4926
14116 0012 ABB1 cbz r3, .L905
6735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14117 .loc 1 6735 5 is_stmt 1 view .LVU4927
6735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14118 .loc 1 6735 9 is_stmt 0 view .LVU4928
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 462
14119 0014 616A ldr r1, [r4, #36]
6735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14120 .loc 1 6735 27 view .LVU4929
14121 0016 238D ldrh r3, [r4, #40]
6735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14122 .loc 1 6735 20 view .LVU4930
14123 0018 1944 add r1, r1, r3
14124 001a 6162 str r1, [r4, #36]
6738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14125 .loc 1 6738 5 is_stmt 1 view .LVU4931
6738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14126 .loc 1 6738 13 is_stmt 0 view .LVU4932
14127 001c 638D ldrh r3, [r4, #42]
14128 001e 9BB2 uxth r3, r3
6738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14129 .loc 1 6738 8 view .LVU4933
14130 0020 FF2B cmp r3, #255
14131 0022 12D9 bls .L901
6740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14132 .loc 1 6740 7 is_stmt 1 view .LVU4934
6740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14133 .loc 1 6740 22 is_stmt 0 view .LVU4935
14134 0024 FF23 movs r3, #255
14135 0026 2385 strh r3, [r4, #40] @ movhi
14136 .L902:
6748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14137 .loc 1 6748 5 is_stmt 1 view .LVU4936
6748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14138 .loc 1 6748 81 is_stmt 0 view .LVU4937
14139 0028 2268 ldr r2, [r4]
6748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14140 .loc 1 6748 9 view .LVU4938
14141 002a 238D ldrh r3, [r4, #40]
14142 002c 2832 adds r2, r2, #40
14143 002e A06B ldr r0, [r4, #56]
14144 .LVL1045:
6748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14145 .loc 1 6748 9 view .LVU4939
14146 0030 FFF7FEFF bl HAL_DMA_Start_IT
14147 .LVL1046:
6748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14148 .loc 1 6748 8 discriminator 1 view .LVU4940
14149 0034 60B1 cbz r0, .L903
6752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14150 .loc 1 6752 7 is_stmt 1 view .LVU4941
14151 0036 1021 movs r1, #16
14152 0038 2046 mov r0, r4
14153 003a FFF7FEFF bl I2C_ITError
14154 .LVL1047:
14155 .L898:
6760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14156 .loc 1 6760 1 is_stmt 0 view .LVU4942
14157 003e 10BD pop {r4, pc}
14158 .LVL1048:
14159 .L905:
6729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14160 .loc 1 6729 5 is_stmt 1 view .LVU4943
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 463
14161 0040 2021 movs r1, #32
14162 0042 2046 mov r0, r4
14163 .LVL1049:
6729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14164 .loc 1 6729 5 is_stmt 0 view .LVU4944
14165 0044 FFF7FEFF bl I2C_Enable_IRQ
14166 .LVL1050:
14167 0048 F9E7 b .L898
14168 .LVL1051:
14169 .L901:
6744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14170 .loc 1 6744 7 is_stmt 1 view .LVU4945
6744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14171 .loc 1 6744 28 is_stmt 0 view .LVU4946
14172 004a 638D ldrh r3, [r4, #42]
6744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14173 .loc 1 6744 22 view .LVU4947
14174 004c 2385 strh r3, [r4, #40] @ movhi
14175 004e EBE7 b .L902
14176 .LVL1052:
14177 .L903:
6757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14178 .loc 1 6757 7 is_stmt 1 view .LVU4948
14179 0050 4021 movs r1, #64
14180 0052 2046 mov r0, r4
14181 0054 FFF7FEFF bl I2C_Enable_IRQ
14182 .LVL1053:
6760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14183 .loc 1 6760 1 is_stmt 0 view .LVU4949
14184 0058 F1E7 b .L898
14185 .cfi_endproc
14186 .LFE401:
14188 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits
14189 .align 1
14190 .syntax unified
14191 .thumb
14192 .thumb_func
14194 I2C_DMAMasterReceiveCplt:
14195 .LVL1054:
14196 .LFB403:
6798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14197 .loc 1 6798 1 is_stmt 1 view -0
14198 .cfi_startproc
14199 @ args = 0, pretend = 0, frame = 0
14200 @ frame_needed = 0, uses_anonymous_args = 0
6798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14201 .loc 1 6798 1 is_stmt 0 view .LVU4951
14202 0000 10B5 push {r4, lr}
14203 .cfi_def_cfa_offset 8
14204 .cfi_offset 4, -8
14205 .cfi_offset 14, -4
6800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14206 .loc 1 6800 3 is_stmt 1 view .LVU4952
6800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14207 .loc 1 6800 22 is_stmt 0 view .LVU4953
14208 0002 846B ldr r4, [r0, #56]
14209 .LVL1055:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 464
6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14210 .loc 1 6803 3 is_stmt 1 view .LVU4954
6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14211 .loc 1 6803 7 is_stmt 0 view .LVU4955
14212 0004 2268 ldr r2, [r4]
6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14213 .loc 1 6803 17 view .LVU4956
14214 0006 1368 ldr r3, [r2]
6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14215 .loc 1 6803 23 view .LVU4957
14216 0008 23F40043 bic r3, r3, #32768
14217 000c 1360 str r3, [r2]
6806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14218 .loc 1 6806 3 is_stmt 1 view .LVU4958
6806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14219 .loc 1 6806 11 is_stmt 0 view .LVU4959
14220 000e 638D ldrh r3, [r4, #42]
14221 0010 9BB2 uxth r3, r3
6806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14222 .loc 1 6806 6 view .LVU4960
14223 0012 ABB1 cbz r3, .L913
6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14224 .loc 1 6815 5 is_stmt 1 view .LVU4961
6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14225 .loc 1 6815 9 is_stmt 0 view .LVU4962
14226 0014 626A ldr r2, [r4, #36]
6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14227 .loc 1 6815 27 view .LVU4963
14228 0016 238D ldrh r3, [r4, #40]
6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14229 .loc 1 6815 20 view .LVU4964
14230 0018 1A44 add r2, r2, r3
14231 001a 6262 str r2, [r4, #36]
6818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14232 .loc 1 6818 5 is_stmt 1 view .LVU4965
6818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14233 .loc 1 6818 13 is_stmt 0 view .LVU4966
14234 001c 638D ldrh r3, [r4, #42]
14235 001e 9BB2 uxth r3, r3
6818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14236 .loc 1 6818 8 view .LVU4967
14237 0020 FF2B cmp r3, #255
14238 0022 12D9 bls .L909
6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14239 .loc 1 6820 7 is_stmt 1 view .LVU4968
6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14240 .loc 1 6820 22 is_stmt 0 view .LVU4969
14241 0024 FF23 movs r3, #255
14242 0026 2385 strh r3, [r4, #40] @ movhi
14243 .L910:
6828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14244 .loc 1 6828 5 is_stmt 1 view .LVU4970
6828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14245 .loc 1 6828 55 is_stmt 0 view .LVU4971
14246 0028 2168 ldr r1, [r4]
6828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14247 .loc 1 6828 9 view .LVU4972
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 465
14248 002a 238D ldrh r3, [r4, #40]
14249 002c 2431 adds r1, r1, #36
14250 002e E06B ldr r0, [r4, #60]
14251 .LVL1056:
6828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14252 .loc 1 6828 9 view .LVU4973
14253 0030 FFF7FEFF bl HAL_DMA_Start_IT
14254 .LVL1057:
6828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
14255 .loc 1 6828 8 discriminator 1 view .LVU4974
14256 0034 60B1 cbz r0, .L911
6832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14257 .loc 1 6832 7 is_stmt 1 view .LVU4975
14258 0036 1021 movs r1, #16
14259 0038 2046 mov r0, r4
14260 003a FFF7FEFF bl I2C_ITError
14261 .LVL1058:
14262 .L906:
6840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14263 .loc 1 6840 1 is_stmt 0 view .LVU4976
14264 003e 10BD pop {r4, pc}
14265 .LVL1059:
14266 .L913:
6809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14267 .loc 1 6809 5 is_stmt 1 view .LVU4977
14268 0040 2021 movs r1, #32
14269 0042 2046 mov r0, r4
14270 .LVL1060:
6809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14271 .loc 1 6809 5 is_stmt 0 view .LVU4978
14272 0044 FFF7FEFF bl I2C_Enable_IRQ
14273 .LVL1061:
14274 0048 F9E7 b .L906
14275 .LVL1062:
14276 .L909:
6824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14277 .loc 1 6824 7 is_stmt 1 view .LVU4979
6824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14278 .loc 1 6824 28 is_stmt 0 view .LVU4980
14279 004a 638D ldrh r3, [r4, #42]
6824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14280 .loc 1 6824 22 view .LVU4981
14281 004c 2385 strh r3, [r4, #40] @ movhi
14282 004e EBE7 b .L910
14283 .LVL1063:
14284 .L911:
6837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14285 .loc 1 6837 7 is_stmt 1 view .LVU4982
14286 0050 4021 movs r1, #64
14287 0052 2046 mov r0, r4
14288 0054 FFF7FEFF bl I2C_Enable_IRQ
14289 .LVL1064:
6840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14290 .loc 1 6840 1 is_stmt 0 view .LVU4983
14291 0058 F1E7 b .L906
14292 .cfi_endproc
14293 .LFE403:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 466
14295 .section .text.I2C_Mem_ISR_IT,"ax",%progbits
14296 .align 1
14297 .syntax unified
14298 .thumb
14299 .thumb_func
14301 I2C_Mem_ISR_IT:
14302 .LVL1065:
14303 .LFB385:
5078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
14304 .loc 1 5078 1 is_stmt 1 view -0
14305 .cfi_startproc
14306 @ args = 0, pretend = 0, frame = 0
14307 @ frame_needed = 0, uses_anonymous_args = 0
5079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
14308 .loc 1 5079 3 view .LVU4985
5080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14309 .loc 1 5080 3 view .LVU4986
5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14310 .loc 1 5083 3 view .LVU4987
5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14311 .loc 1 5083 3 view .LVU4988
14312 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
14313 0004 012B cmp r3, #1
14314 0006 00F0C080 beq .L927
5078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
14315 .loc 1 5078 1 is_stmt 0 view .LVU4989
14316 000a 70B5 push {r4, r5, r6, lr}
14317 .cfi_def_cfa_offset 16
14318 .cfi_offset 4, -16
14319 .cfi_offset 5, -12
14320 .cfi_offset 6, -8
14321 .cfi_offset 14, -4
14322 000c 82B0 sub sp, sp, #8
14323 .cfi_def_cfa_offset 24
14324 000e 0446 mov r4, r0
14325 0010 0D46 mov r5, r1
14326 0012 1646 mov r6, r2
5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14327 .loc 1 5083 3 is_stmt 1 discriminator 2 view .LVU4990
14328 0014 0123 movs r3, #1
14329 0016 80F84030 strb r3, [r0, #64]
5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14330 .loc 1 5083 3 view .LVU4991
5085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
14331 .loc 1 5085 3 view .LVU4992
5085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
14332 .loc 1 5085 6 is_stmt 0 view .LVU4993
14333 001a 11F0100F tst r1, #16
14334 001e 02D0 beq .L916
5085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
14335 .loc 1 5085 58 discriminator 1 view .LVU4994
14336 0020 12F0100F tst r2, #16
14337 0024 22D1 bne .L933
14338 .L916:
5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
14339 .loc 1 5099 8 is_stmt 1 view .LVU4995
5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 467
14340 .loc 1 5099 11 is_stmt 0 view .LVU4996
14341 0026 15F0040F tst r5, #4
14342 002a 29D0 beq .L918
5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
14343 .loc 1 5099 65 discriminator 1 view .LVU4997
14344 002c 16F0040F tst r6, #4
14345 0030 26D0 beq .L918
5103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14346 .loc 1 5103 5 is_stmt 1 view .LVU4998
5103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14347 .loc 1 5103 16 is_stmt 0 view .LVU4999
14348 0032 25F00405 bic r5, r5, #4
14349 .LVL1066:
5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14350 .loc 1 5106 5 is_stmt 1 view .LVU5000
5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14351 .loc 1 5106 36 is_stmt 0 view .LVU5001
14352 0036 2368 ldr r3, [r4]
5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14353 .loc 1 5106 46 view .LVU5002
14354 0038 5A6A ldr r2, [r3, #36]
14355 .LVL1067:
5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14356 .loc 1 5106 10 view .LVU5003
14357 003a 636A ldr r3, [r4, #36]
5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14358 .loc 1 5106 21 view .LVU5004
14359 003c 1A70 strb r2, [r3]
5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14360 .loc 1 5109 5 is_stmt 1 view .LVU5005
5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14361 .loc 1 5109 9 is_stmt 0 view .LVU5006
14362 003e 636A ldr r3, [r4, #36]
5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14363 .loc 1 5109 19 view .LVU5007
14364 0040 0133 adds r3, r3, #1
14365 0042 6362 str r3, [r4, #36]
5111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
14366 .loc 1 5111 5 is_stmt 1 view .LVU5008
5111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
14367 .loc 1 5111 9 is_stmt 0 view .LVU5009
14368 0044 238D ldrh r3, [r4, #40]
5111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
14369 .loc 1 5111 19 view .LVU5010
14370 0046 013B subs r3, r3, #1
14371 0048 2385 strh r3, [r4, #40] @ movhi
5112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14372 .loc 1 5112 5 is_stmt 1 view .LVU5011
5112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14373 .loc 1 5112 9 is_stmt 0 view .LVU5012
14374 004a 638D ldrh r3, [r4, #42]
14375 004c 9BB2 uxth r3, r3
5112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14376 .loc 1 5112 20 view .LVU5013
14377 004e 013B subs r3, r3, #1
14378 0050 9BB2 uxth r3, r3
14379 0052 6385 strh r3, [r4, #42] @ movhi
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 468
14380 .LVL1068:
14381 .L917:
5196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14382 .loc 1 5196 3 is_stmt 1 view .LVU5014
5198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
14383 .loc 1 5198 3 view .LVU5015
5198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
14384 .loc 1 5198 6 is_stmt 0 view .LVU5016
14385 0054 15F0200F tst r5, #32
14386 0058 03D0 beq .L926
5198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
14387 .loc 1 5198 61 discriminator 1 view .LVU5017
14388 005a 16F0200F tst r6, #32
14389 005e 40F08F80 bne .L934
14390 .L926:
5206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14391 .loc 1 5206 3 is_stmt 1 view .LVU5018
5206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14392 .loc 1 5206 3 view .LVU5019
14393 0062 0020 movs r0, #0
14394 0064 84F84000 strb r0, [r4, #64]
5206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14395 .loc 1 5206 3 view .LVU5020
5208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14396 .loc 1 5208 3 view .LVU5021
5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14397 .loc 1 5209 1 is_stmt 0 view .LVU5022
14398 0068 02B0 add sp, sp, #8
14399 .cfi_remember_state
14400 .cfi_def_cfa_offset 16
14401 @ sp needed
14402 006a 70BD pop {r4, r5, r6, pc}
14403 .LVL1069:
14404 .L933:
14405 .cfi_restore_state
5089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14406 .loc 1 5089 5 is_stmt 1 view .LVU5023
14407 006c 0368 ldr r3, [r0]
14408 006e 1022 movs r2, #16
14409 .LVL1070:
5089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14410 .loc 1 5089 5 is_stmt 0 view .LVU5024
14411 0070 DA61 str r2, [r3, #28]
5094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14412 .loc 1 5094 5 is_stmt 1 view .LVU5025
5094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14413 .loc 1 5094 9 is_stmt 0 view .LVU5026
14414 0072 436C ldr r3, [r0, #68]
5094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14415 .loc 1 5094 21 view .LVU5027
14416 0074 43F00403 orr r3, r3, #4
14417 0078 4364 str r3, [r0, #68]
5097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14418 .loc 1 5097 5 is_stmt 1 view .LVU5028
14419 007a FFF7FEFF bl I2C_Flush_TXDR
14420 .LVL1071:
5097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 469
14421 .loc 1 5097 5 is_stmt 0 view .LVU5029
14422 007e E9E7 b .L917
14423 .LVL1072:
14424 .L918:
5114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
14425 .loc 1 5114 8 is_stmt 1 view .LVU5030
5114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
14426 .loc 1 5114 11 is_stmt 0 view .LVU5031
14427 0080 15F0020F tst r5, #2
14428 0084 1DD0 beq .L919
5114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
14429 .loc 1 5114 65 discriminator 1 view .LVU5032
14430 0086 16F0020F tst r6, #2
14431 008a 1AD0 beq .L919
5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14432 .loc 1 5117 5 is_stmt 1 view .LVU5033
5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14433 .loc 1 5117 13 is_stmt 0 view .LVU5034
14434 008c 236D ldr r3, [r4, #80]
5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14435 .loc 1 5117 8 view .LVU5035
14436 008e B3F1FF3F cmp r3, #-1
14437 0092 06D0 beq .L935
5131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14438 .loc 1 5131 7 is_stmt 1 view .LVU5036
5131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14439 .loc 1 5131 11 is_stmt 0 view .LVU5037
14440 0094 2368 ldr r3, [r4]
5131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14441 .loc 1 5131 34 view .LVU5038
14442 0096 226D ldr r2, [r4, #80]
14443 .LVL1073:
5131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14444 .loc 1 5131 28 view .LVU5039
14445 0098 9A62 str r2, [r3, #40]
5134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14446 .loc 1 5134 7 is_stmt 1 view .LVU5040
5134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14447 .loc 1 5134 24 is_stmt 0 view .LVU5041
14448 009a 4FF0FF33 mov r3, #-1
14449 009e 2365 str r3, [r4, #80]
14450 00a0 D8E7 b .L917
14451 .LVL1074:
14452 .L935:
5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14453 .loc 1 5120 7 is_stmt 1 view .LVU5042
5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14454 .loc 1 5120 35 is_stmt 0 view .LVU5043
14455 00a2 626A ldr r2, [r4, #36]
14456 .LVL1075:
5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14457 .loc 1 5120 11 view .LVU5044
14458 00a4 2368 ldr r3, [r4]
5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14459 .loc 1 5120 30 view .LVU5045
14460 00a6 1278 ldrb r2, [r2] @ zero_extendqisi2
5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 470
14461 .loc 1 5120 28 view .LVU5046
14462 00a8 9A62 str r2, [r3, #40]
5123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14463 .loc 1 5123 7 is_stmt 1 view .LVU5047
5123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14464 .loc 1 5123 11 is_stmt 0 view .LVU5048
14465 00aa 636A ldr r3, [r4, #36]
5123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14466 .loc 1 5123 21 view .LVU5049
14467 00ac 0133 adds r3, r3, #1
14468 00ae 6362 str r3, [r4, #36]
5125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
14469 .loc 1 5125 7 is_stmt 1 view .LVU5050
5125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
14470 .loc 1 5125 11 is_stmt 0 view .LVU5051
14471 00b0 238D ldrh r3, [r4, #40]
5125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
14472 .loc 1 5125 21 view .LVU5052
14473 00b2 013B subs r3, r3, #1
14474 00b4 2385 strh r3, [r4, #40] @ movhi
5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14475 .loc 1 5126 7 is_stmt 1 view .LVU5053
5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14476 .loc 1 5126 11 is_stmt 0 view .LVU5054
14477 00b6 638D ldrh r3, [r4, #42]
14478 00b8 9BB2 uxth r3, r3
5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14479 .loc 1 5126 22 view .LVU5055
14480 00ba 013B subs r3, r3, #1
14481 00bc 9BB2 uxth r3, r3
14482 00be 6385 strh r3, [r4, #42] @ movhi
14483 00c0 C8E7 b .L917
14484 .LVL1076:
14485 .L919:
5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14486 .loc 1 5137 8 is_stmt 1 view .LVU5056
5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14487 .loc 1 5137 11 is_stmt 0 view .LVU5057
14488 00c2 15F0800F tst r5, #128
14489 00c6 2AD0 beq .L921
5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14490 .loc 1 5137 64 discriminator 1 view .LVU5058
14491 00c8 16F0400F tst r6, #64
14492 00cc 27D0 beq .L921
5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14493 .loc 1 5140 5 is_stmt 1 view .LVU5059
5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14494 .loc 1 5140 14 is_stmt 0 view .LVU5060
14495 00ce 638D ldrh r3, [r4, #42]
14496 00d0 9BB2 uxth r3, r3
5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14497 .loc 1 5140 8 view .LVU5061
14498 00d2 FBB1 cbz r3, .L922
5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14499 .loc 1 5140 41 discriminator 1 view .LVU5062
14500 00d4 238D ldrh r3, [r4, #40]
5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 471
14501 .loc 1 5140 33 discriminator 1 view .LVU5063
14502 00d6 EBB9 cbnz r3, .L922
5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14503 .loc 1 5142 7 is_stmt 1 view .LVU5064
5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14504 .loc 1 5142 15 is_stmt 0 view .LVU5065
14505 00d8 638D ldrh r3, [r4, #42]
14506 00da 9BB2 uxth r3, r3
5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14507 .loc 1 5142 10 view .LVU5066
14508 00dc FF2B cmp r3, #255
14509 00de 0BD9 bls .L923
5144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14510 .loc 1 5144 9 is_stmt 1 view .LVU5067
5144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14511 .loc 1 5144 24 is_stmt 0 view .LVU5068
14512 00e0 FF22 movs r2, #255
14513 .LVL1077:
5144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14514 .loc 1 5144 24 view .LVU5069
14515 00e2 2285 strh r2, [r4, #40] @ movhi
5145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
14516 .loc 1 5145 9 is_stmt 1 view .LVU5070
5145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
14517 .loc 1 5145 48 is_stmt 0 view .LVU5071
14518 00e4 E16C ldr r1, [r4, #76]
14519 .LVL1078:
5145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
14520 .loc 1 5145 9 view .LVU5072
14521 00e6 0023 movs r3, #0
14522 00e8 0093 str r3, [sp]
14523 00ea 4FF08073 mov r3, #16777216
14524 00ee 89B2 uxth r1, r1
14525 00f0 2046 mov r0, r4
14526 .LVL1079:
5145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
14527 .loc 1 5145 9 view .LVU5073
14528 00f2 FFF7FEFF bl I2C_TransferConfig
14529 .LVL1080:
14530 00f6 ADE7 b .L917
14531 .LVL1081:
14532 .L923:
5150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14533 .loc 1 5150 9 is_stmt 1 view .LVU5074
5150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14534 .loc 1 5150 30 is_stmt 0 view .LVU5075
14535 00f8 628D ldrh r2, [r4, #42]
14536 .LVL1082:
5150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14537 .loc 1 5150 30 view .LVU5076
14538 00fa 92B2 uxth r2, r2
5150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14539 .loc 1 5150 24 view .LVU5077
14540 00fc 2285 strh r2, [r4, #40] @ movhi
5151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
14541 .loc 1 5151 9 is_stmt 1 view .LVU5078
5151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 472
14542 .loc 1 5151 48 is_stmt 0 view .LVU5079
14543 00fe E16C ldr r1, [r4, #76]
14544 .LVL1083:
5151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
14545 .loc 1 5151 9 view .LVU5080
14546 0100 0023 movs r3, #0
14547 0102 0093 str r3, [sp]
14548 0104 4FF00073 mov r3, #33554432
14549 0108 D2B2 uxtb r2, r2
14550 010a 89B2 uxth r1, r1
14551 010c 2046 mov r0, r4
14552 .LVL1084:
5151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
14553 .loc 1 5151 9 view .LVU5081
14554 010e FFF7FEFF bl I2C_TransferConfig
14555 .LVL1085:
14556 0112 9FE7 b .L917
14557 .LVL1086:
14558 .L922:
5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14559 .loc 1 5159 7 is_stmt 1 view .LVU5082
14560 0114 4021 movs r1, #64
14561 .LVL1087:
5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14562 .loc 1 5159 7 is_stmt 0 view .LVU5083
14563 0116 2046 mov r0, r4
14564 .LVL1088:
5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14565 .loc 1 5159 7 view .LVU5084
14566 0118 FFF7FEFF bl I2C_ITError
14567 .LVL1089:
5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14568 .loc 1 5159 7 view .LVU5085
14569 011c 9AE7 b .L917
14570 .LVL1090:
14571 .L921:
5162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14572 .loc 1 5162 8 is_stmt 1 view .LVU5086
5162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14573 .loc 1 5162 11 is_stmt 0 view .LVU5087
14574 011e 15F0400F tst r5, #64
14575 0122 97D0 beq .L917
5162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14576 .loc 1 5162 63 discriminator 1 view .LVU5088
14577 0124 16F0400F tst r6, #64
14578 0128 94D0 beq .L917
5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14579 .loc 1 5166 5 is_stmt 1 view .LVU5089
14580 012a 0121 movs r1, #1
14581 .LVL1091:
5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14582 .loc 1 5166 5 is_stmt 0 view .LVU5090
14583 012c 2046 mov r0, r4
14584 .LVL1092:
5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14585 .loc 1 5166 5 view .LVU5091
14586 012e FFF7FEFF bl I2C_Disable_IRQ
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 473
14587 .LVL1093:
5169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14588 .loc 1 5169 5 is_stmt 1 view .LVU5092
14589 0132 0221 movs r1, #2
14590 0134 2046 mov r0, r4
14591 0136 FFF7FEFF bl I2C_Enable_IRQ
14592 .LVL1094:
5171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14593 .loc 1 5171 5 view .LVU5093
5171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14594 .loc 1 5171 13 is_stmt 0 view .LVU5094
14595 013a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
5171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14596 .loc 1 5171 8 view .LVU5095
14597 013e 222B cmp r3, #34
14598 0140 0FD0 beq .L928
5079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
14599 .loc 1 5079 12 view .LVU5096
14600 0142 1348 ldr r0, .L936
14601 .L924:
14602 .LVL1095:
5176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14603 .loc 1 5176 5 is_stmt 1 view .LVU5097
5176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14604 .loc 1 5176 13 is_stmt 0 view .LVU5098
14605 0144 638D ldrh r3, [r4, #42]
14606 0146 9BB2 uxth r3, r3
5176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14607 .loc 1 5176 8 view .LVU5099
14608 0148 FF2B cmp r3, #255
14609 014a 0CD9 bls .L925
5178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14610 .loc 1 5178 7 is_stmt 1 view .LVU5100
5178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14611 .loc 1 5178 22 is_stmt 0 view .LVU5101
14612 014c FF22 movs r2, #255
14613 014e 2285 strh r2, [r4, #40] @ movhi
5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14614 .loc 1 5181 7 is_stmt 1 view .LVU5102
5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14615 .loc 1 5181 46 is_stmt 0 view .LVU5103
14616 0150 E16C ldr r1, [r4, #76]
5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14617 .loc 1 5181 7 view .LVU5104
14618 0152 0090 str r0, [sp]
14619 0154 4FF08073 mov r3, #16777216
14620 0158 89B2 uxth r1, r1
14621 015a 2046 mov r0, r4
14622 .LVL1096:
5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14623 .loc 1 5181 7 view .LVU5105
14624 015c FFF7FEFF bl I2C_TransferConfig
14625 .LVL1097:
5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14626 .loc 1 5181 7 view .LVU5106
14627 0160 78E7 b .L917
14628 .LVL1098:
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 474
14629 .L928:
5173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14630 .loc 1 5173 17 view .LVU5107
14631 0162 0C48 ldr r0, .L936+4
14632 0164 EEE7 b .L924
14633 .LVL1099:
14634 .L925:
5186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14635 .loc 1 5186 7 is_stmt 1 view .LVU5108
5186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14636 .loc 1 5186 28 is_stmt 0 view .LVU5109
14637 0166 628D ldrh r2, [r4, #42]
14638 0168 92B2 uxth r2, r2
5186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14639 .loc 1 5186 22 view .LVU5110
14640 016a 2285 strh r2, [r4, #40] @ movhi
5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14641 .loc 1 5189 7 is_stmt 1 view .LVU5111
5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14642 .loc 1 5189 46 is_stmt 0 view .LVU5112
14643 016c E16C ldr r1, [r4, #76]
5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14644 .loc 1 5189 7 view .LVU5113
14645 016e 0090 str r0, [sp]
14646 0170 4FF00073 mov r3, #33554432
14647 0174 D2B2 uxtb r2, r2
14648 0176 89B2 uxth r1, r1
14649 0178 2046 mov r0, r4
14650 .LVL1100:
5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14651 .loc 1 5189 7 view .LVU5114
14652 017a FFF7FEFF bl I2C_TransferConfig
14653 .LVL1101:
5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14654 .loc 1 5189 7 view .LVU5115
14655 017e 69E7 b .L917
14656 .LVL1102:
14657 .L934:
5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14658 .loc 1 5202 5 is_stmt 1 view .LVU5116
14659 0180 2946 mov r1, r5
14660 0182 2046 mov r0, r4
14661 0184 FFF7FEFF bl I2C_ITMasterCplt
14662 .LVL1103:
14663 0188 6BE7 b .L926
14664 .LVL1104:
14665 .L927:
14666 .cfi_def_cfa_offset 0
14667 .cfi_restore 4
14668 .cfi_restore 5
14669 .cfi_restore 6
14670 .cfi_restore 14
5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14671 .loc 1 5083 3 is_stmt 0 discriminator 1 view .LVU5117
14672 018a 0220 movs r0, #2
14673 .LVL1105:
5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 475
14674 .loc 1 5209 1 view .LVU5118
14675 018c 7047 bx lr
14676 .L937:
14677 018e 00BF .align 2
14678 .L936:
14679 0190 00200080 .word -2147475456
14680 0194 00240080 .word -2147474432
14681 .cfi_endproc
14682 .LFE385:
14684 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits
14685 .align 1
14686 .global HAL_I2C_ER_IRQHandler
14687 .syntax unified
14688 .thumb
14689 .thumb_func
14691 HAL_I2C_ER_IRQHandler:
14692 .LVL1106:
14693 .LFB370:
4644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
14694 .loc 1 4644 1 is_stmt 1 view -0
14695 .cfi_startproc
14696 @ args = 0, pretend = 0, frame = 0
14697 @ frame_needed = 0, uses_anonymous_args = 0
4644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
14698 .loc 1 4644 1 is_stmt 0 view .LVU5120
14699 0000 10B5 push {r4, lr}
14700 .cfi_def_cfa_offset 8
14701 .cfi_offset 4, -8
14702 .cfi_offset 14, -4
4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
14703 .loc 1 4645 3 is_stmt 1 view .LVU5121
4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
14704 .loc 1 4645 24 is_stmt 0 view .LVU5122
14705 0002 0268 ldr r2, [r0]
4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
14706 .loc 1 4645 12 view .LVU5123
14707 0004 9369 ldr r3, [r2, #24]
14708 .LVL1107:
4646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
14709 .loc 1 4646 3 is_stmt 1 view .LVU5124
4646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
14710 .loc 1 4646 12 is_stmt 0 view .LVU5125
14711 0006 1168 ldr r1, [r2]
14712 .LVL1108:
4647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14713 .loc 1 4647 3 is_stmt 1 view .LVU5126
4650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14714 .loc 1 4650 3 view .LVU5127
4650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14715 .loc 1 4650 6 is_stmt 0 view .LVU5128
14716 0008 13F4807F tst r3, #256
14717 000c 09D0 beq .L939
4650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14718 .loc 1 4650 57 discriminator 1 view .LVU5129
14719 000e 11F0800F tst r1, #128
14720 0012 06D0 beq .L939
4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 476
14721 .loc 1 4653 5 is_stmt 1 view .LVU5130
4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14722 .loc 1 4653 9 is_stmt 0 view .LVU5131
14723 0014 446C ldr r4, [r0, #68]
4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14724 .loc 1 4653 21 view .LVU5132
14725 0016 44F00104 orr r4, r4, #1
14726 001a 4464 str r4, [r0, #68]
4656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14727 .loc 1 4656 5 is_stmt 1 view .LVU5133
14728 001c 4FF48074 mov r4, #256
14729 0020 D461 str r4, [r2, #28]
14730 .L939:
4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14731 .loc 1 4660 3 view .LVU5134
4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14732 .loc 1 4660 6 is_stmt 0 view .LVU5135
14733 0022 13F4806F tst r3, #1024
14734 0026 0AD0 beq .L940
4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14735 .loc 1 4660 56 discriminator 1 view .LVU5136
14736 0028 11F0800F tst r1, #128
14737 002c 07D0 beq .L940
4663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14738 .loc 1 4663 5 is_stmt 1 view .LVU5137
4663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14739 .loc 1 4663 9 is_stmt 0 view .LVU5138
14740 002e 426C ldr r2, [r0, #68]
4663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14741 .loc 1 4663 21 view .LVU5139
14742 0030 42F00802 orr r2, r2, #8
14743 0034 4264 str r2, [r0, #68]
4666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14744 .loc 1 4666 5 is_stmt 1 view .LVU5140
14745 0036 0268 ldr r2, [r0]
14746 0038 4FF48064 mov r4, #1024
14747 003c D461 str r4, [r2, #28]
14748 .L940:
4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14749 .loc 1 4670 3 view .LVU5141
4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14750 .loc 1 4670 6 is_stmt 0 view .LVU5142
14751 003e 13F4007F tst r3, #512
14752 0042 0AD0 beq .L941
4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14753 .loc 1 4670 57 discriminator 1 view .LVU5143
14754 0044 11F0800F tst r1, #128
14755 0048 07D0 beq .L941
4673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14756 .loc 1 4673 5 is_stmt 1 view .LVU5144
4673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14757 .loc 1 4673 9 is_stmt 0 view .LVU5145
14758 004a 436C ldr r3, [r0, #68]
14759 .LVL1109:
4673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14760 .loc 1 4673 21 view .LVU5146
14761 004c 43F00203 orr r3, r3, #2
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 477
14762 0050 4364 str r3, [r0, #68]
4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14763 .loc 1 4676 5 is_stmt 1 view .LVU5147
14764 0052 0368 ldr r3, [r0]
14765 0054 4FF40072 mov r2, #512
14766 0058 DA61 str r2, [r3, #28]
14767 .L941:
4680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14768 .loc 1 4680 3 view .LVU5148
4680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14769 .loc 1 4680 12 is_stmt 0 view .LVU5149
14770 005a 416C ldr r1, [r0, #68]
14771 .LVL1110:
4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14772 .loc 1 4683 3 is_stmt 1 view .LVU5150
4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14773 .loc 1 4683 6 is_stmt 0 view .LVU5151
14774 005c 11F00B0F tst r1, #11
14775 0060 00D1 bne .L944
14776 .LVL1111:
14777 .L938:
4687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14778 .loc 1 4687 1 view .LVU5152
14779 0062 10BD pop {r4, pc}
14780 .LVL1112:
14781 .L944:
4685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14782 .loc 1 4685 5 is_stmt 1 view .LVU5153
14783 0064 FFF7FEFF bl I2C_ITError
14784 .LVL1113:
4687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14785 .loc 1 4687 1 is_stmt 0 view .LVU5154
14786 0068 FBE7 b .L938
14787 .cfi_endproc
14788 .LFE370:
14790 .section .text.I2C_DMAAbort,"ax",%progbits
14791 .align 1
14792 .syntax unified
14793 .thumb
14794 .thumb_func
14796 I2C_DMAAbort:
14797 .LVL1114:
14798 .LFB406:
6918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14799 .loc 1 6918 1 is_stmt 1 view -0
14800 .cfi_startproc
14801 @ args = 0, pretend = 0, frame = 0
14802 @ frame_needed = 0, uses_anonymous_args = 0
6918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14803 .loc 1 6918 1 is_stmt 0 view .LVU5156
14804 0000 08B5 push {r3, lr}
14805 .cfi_def_cfa_offset 8
14806 .cfi_offset 3, -8
14807 .cfi_offset 14, -4
6920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14808 .loc 1 6920 3 is_stmt 1 view .LVU5157
6920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 478
14809 .loc 1 6920 22 is_stmt 0 view .LVU5158
14810 0002 806B ldr r0, [r0, #56]
14811 .LVL1115:
6923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14812 .loc 1 6923 3 is_stmt 1 view .LVU5159
6923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14813 .loc 1 6923 11 is_stmt 0 view .LVU5160
14814 0004 836B ldr r3, [r0, #56]
6923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14815 .loc 1 6923 6 view .LVU5161
14816 0006 0BB1 cbz r3, .L946
6925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14817 .loc 1 6925 5 is_stmt 1 view .LVU5162
6925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14818 .loc 1 6925 37 is_stmt 0 view .LVU5163
14819 0008 0022 movs r2, #0
14820 000a 1A65 str r2, [r3, #80]
14821 .L946:
6927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14822 .loc 1 6927 3 is_stmt 1 view .LVU5164
6927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14823 .loc 1 6927 11 is_stmt 0 view .LVU5165
14824 000c C36B ldr r3, [r0, #60]
6927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
14825 .loc 1 6927 6 view .LVU5166
14826 000e 0BB1 cbz r3, .L947
6929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14827 .loc 1 6929 5 is_stmt 1 view .LVU5167
6929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14828 .loc 1 6929 37 is_stmt 0 view .LVU5168
14829 0010 0022 movs r2, #0
14830 0012 1A65 str r2, [r3, #80]
14831 .L947:
6932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14832 .loc 1 6932 3 is_stmt 1 view .LVU5169
14833 0014 FFF7FEFF bl I2C_TreatErrorCallback
14834 .LVL1116:
6933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14835 .loc 1 6933 1 is_stmt 0 view .LVU5170
14836 0018 08BD pop {r3, pc}
14837 .cfi_endproc
14838 .LFE406:
14840 .section .text.HAL_I2C_GetState,"ax",%progbits
14841 .align 1
14842 .global HAL_I2C_GetState
14843 .syntax unified
14844 .thumb
14845 .thumb_func
14847 HAL_I2C_GetState:
14848 .LVL1117:
14849 .LFB381:
4878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return I2C handle state */
14850 .loc 1 4878 1 is_stmt 1 view -0
14851 .cfi_startproc
14852 @ args = 0, pretend = 0, frame = 0
14853 @ frame_needed = 0, uses_anonymous_args = 0
14854 @ link register save eliminated.
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 479
4880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14855 .loc 1 4880 3 view .LVU5172
4880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14856 .loc 1 4880 14 is_stmt 0 view .LVU5173
14857 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
14858 .LVL1118:
4881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14859 .loc 1 4881 1 view .LVU5174
14860 0004 7047 bx lr
14861 .cfi_endproc
14862 .LFE381:
14864 .section .text.HAL_I2C_GetMode,"ax",%progbits
14865 .align 1
14866 .global HAL_I2C_GetMode
14867 .syntax unified
14868 .thumb
14869 .thumb_func
14871 HAL_I2C_GetMode:
14872 .LVL1119:
14873 .LFB382:
4890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->Mode;
14874 .loc 1 4890 1 is_stmt 1 view -0
14875 .cfi_startproc
14876 @ args = 0, pretend = 0, frame = 0
14877 @ frame_needed = 0, uses_anonymous_args = 0
14878 @ link register save eliminated.
4891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14879 .loc 1 4891 3 view .LVU5176
4891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14880 .loc 1 4891 14 is_stmt 0 view .LVU5177
14881 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2
14882 .LVL1120:
4892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14883 .loc 1 4892 1 view .LVU5178
14884 0004 7047 bx lr
14885 .cfi_endproc
14886 .LFE382:
14888 .section .text.HAL_I2C_GetError,"ax",%progbits
14889 .align 1
14890 .global HAL_I2C_GetError
14891 .syntax unified
14892 .thumb
14893 .thumb_func
14895 HAL_I2C_GetError:
14896 .LVL1121:
14897 .LFB383:
4901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->ErrorCode;
14898 .loc 1 4901 1 is_stmt 1 view -0
14899 .cfi_startproc
14900 @ args = 0, pretend = 0, frame = 0
14901 @ frame_needed = 0, uses_anonymous_args = 0
14902 @ link register save eliminated.
4902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14903 .loc 1 4902 3 view .LVU5180
4902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
14904 .loc 1 4902 14 is_stmt 0 view .LVU5181
14905 0000 406C ldr r0, [r0, #68]
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 480
14906 .LVL1122:
4903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
14907 .loc 1 4903 1 view .LVU5182
14908 0002 7047 bx lr
14909 .cfi_endproc
14910 .LFE383:
14912 .text
14913 .Letext0:
14914 .file 2 "C:/Users/lenex/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-to
14915 .file 3 "C:/Users/lenex/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-to
14916 .file 4 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7a3xx.h"
14917 .file 5 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h"
14918 .file 6 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h"
14919 .file 7 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h"
14920 .file 8 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h"
14921 .file 9 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h"
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 481
DEFINED SYMBOLS
*ABS*:00000000 stm32h7xx_hal_i2c.c
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:20 .text.I2C_Flush_TXDR:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:25 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:63 .text.I2C_TransferConfig:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:68 .text.I2C_TransferConfig:00000000 I2C_TransferConfig
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:124 .text.I2C_Enable_IRQ:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:129 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:292 .text.I2C_Enable_IRQ:00000090 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13519 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13065 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:12694 .text.I2C_Mem_ISR_DMA:00000000 I2C_Mem_ISR_DMA
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:299 .text.I2C_Disable_IRQ:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:304 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:427 .text.I2C_ConvertOtherXferOptions:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:432 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:473 .text.I2C_IsErrorOccurred:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:478 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:758 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:763 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:860 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:865 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:976 .text.I2C_RequestMemoryWrite:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:981 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1096 .text.I2C_RequestMemoryWrite:00000078 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1101 .text.I2C_RequestMemoryRead:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1106 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1221 .text.I2C_RequestMemoryRead:00000074 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1226 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1231 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1328 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1333 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1497 .text.HAL_I2C_MspInit:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1503 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1518 .text.HAL_I2C_Init:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1524 .text.HAL_I2C_Init:00000000 HAL_I2C_Init
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1717 .text.HAL_I2C_Init:000000c4 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1722 .text.HAL_I2C_MspDeInit:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1728 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1743 .text.HAL_I2C_DeInit:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1749 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1812 .text.HAL_I2C_Master_Transmit:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1818 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2172 .text.HAL_I2C_Master_Transmit:000001a0 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2177 .text.HAL_I2C_Master_Receive:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2183 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2486 .text.HAL_I2C_Master_Receive:00000174 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2491 .text.HAL_I2C_Slave_Transmit:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2497 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2930 .text.HAL_I2C_Slave_Receive:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2936 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3281 .text.HAL_I2C_Master_Transmit_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3287 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3480 .text.HAL_I2C_Master_Transmit_IT:000000b8 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:12308 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3487 .text.HAL_I2C_Master_Receive_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3493 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 482
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3640 .text.HAL_I2C_Master_Receive_IT:0000008c $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3647 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3653 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3794 .text.HAL_I2C_Slave_Transmit_IT:00000084 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11729 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3800 .text.HAL_I2C_Slave_Receive_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3806 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3907 .text.HAL_I2C_Slave_Receive_IT:0000005c $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3913 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3919 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4261 .text.HAL_I2C_Master_Transmit_DMA:00000158 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14087 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13831 .text.I2C_DMAError:00000000 I2C_DMAError
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4271 .text.HAL_I2C_Master_Receive_DMA:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4277 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4573 .text.HAL_I2C_Master_Receive_DMA:00000138 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14194 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4583 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4589 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4890 .text.HAL_I2C_Slave_Transmit_DMA:0000012c $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10207 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4898 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4904 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5124 .text.HAL_I2C_Slave_Receive_DMA:000000e0 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10263 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5132 .text.HAL_I2C_Mem_Write:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5138 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5490 .text.HAL_I2C_Mem_Read:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5496 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5848 .text.HAL_I2C_Mem_Read:000001ac $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5853 .text.HAL_I2C_Mem_Write_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5859 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6030 .text.HAL_I2C_Mem_Write_IT:000000ac $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14301 .text.I2C_Mem_ISR_IT:00000000 I2C_Mem_ISR_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6037 .text.HAL_I2C_Mem_Read_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6043 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6211 .text.HAL_I2C_Mem_Read_IT:000000a8 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6218 .text.HAL_I2C_Mem_Write_DMA:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6224 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6503 .text.HAL_I2C_Mem_Write_DMA:00000120 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6512 .text.HAL_I2C_Mem_Read_DMA:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6518 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6799 .text.HAL_I2C_Mem_Read_DMA:00000120 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6808 .text.HAL_I2C_IsDeviceReady:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6814 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7100 .text.HAL_I2C_IsDeviceReady:00000130 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7106 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7112 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7372 .text.HAL_I2C_Master_Seq_Transmit_IT:00000104 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7378 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7384 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7799 .text.HAL_I2C_Master_Seq_Transmit_DMA:000001d0 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7808 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7814 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7995 .text.HAL_I2C_Master_Seq_Receive_IT:000000a8 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8001 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8007 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 483
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8335 .text.HAL_I2C_Master_Seq_Receive_DMA:0000015c $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8344 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8350 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8559 .text.HAL_I2C_Slave_Seq_Transmit_IT:000000d8 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14796 .text.I2C_DMAAbort:00000000 I2C_DMAAbort
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8565 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8571 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8958 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000198 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8966 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8972 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9181 .text.HAL_I2C_Slave_Seq_Receive_IT:000000d8 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9187 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9193 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9578 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000198 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9586 .text.HAL_I2C_EnableListen_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9592 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9637 .text.HAL_I2C_EnableListen_IT:00000024 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9642 .text.HAL_I2C_DisableListen_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9648 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9712 .text.HAL_I2C_Master_Abort_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9718 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9852 .text.HAL_I2C_Master_Abort_IT:0000007c $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9857 .text.HAL_I2C_EV_IRQHandler:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9863 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9900 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9906 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9921 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9927 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9942 .text.I2C_ITMasterSeqCplt:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9947 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10030 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10036 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10051 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10057 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10072 .text.I2C_ITSlaveSeqCplt:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10077 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10202 .text.I2C_DMASlaveTransmitCplt:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10258 .text.I2C_DMASlaveReceiveCplt:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10391 .text.I2C_DMASlaveReceiveCplt:00000098 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10397 .text.HAL_I2C_AddrCallback:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10403 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10420 .text.I2C_ITAddrCplt:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10425 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10584 .text.HAL_I2C_ListenCpltCallback:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10590 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10605 .text.I2C_ITListenCplt:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10610 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10713 .text.I2C_ITListenCplt:00000064 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10718 .text.HAL_I2C_MemTxCpltCallback:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10724 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10739 .text.HAL_I2C_MemRxCpltCallback:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10745 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10760 .text.HAL_I2C_ErrorCallback:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10766 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10781 .text.HAL_I2C_AbortCpltCallback:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10787 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10802 .text.I2C_TreatErrorCallback:00000000 $t
ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 484
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10807 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10862 .text.I2C_ITError:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10867 .text.I2C_ITError:00000000 I2C_ITError
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11143 .text.I2C_ITError:00000124 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11150 .text.I2C_ITSlaveCplt:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11155 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11201 .text.I2C_ITSlaveCplt:0000001e $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11211 .text.I2C_ITSlaveCplt:00000028 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11717 .text.I2C_ITSlaveCplt:000002c0 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11724 .text.I2C_Slave_ISR_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:12038 .text.I2C_ITMasterCplt:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:12043 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:12303 .text.I2C_Master_ISR_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:12689 .text.I2C_Mem_ISR_DMA:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13054 .text.I2C_Mem_ISR_DMA:00000198 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13060 .text.I2C_Slave_ISR_DMA:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13364 .text.I2C_Slave_ISR_DMA:0000018c $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13375 .text.I2C_Slave_ISR_DMA:00000196 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13508 .text.I2C_Slave_ISR_DMA:00000214 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13514 .text.I2C_Master_ISR_DMA:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13826 .text.I2C_DMAError:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14076 .text.I2C_DMAError:00000130 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14082 .text.I2C_DMAMasterTransmitCplt:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14189 .text.I2C_DMAMasterReceiveCplt:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14296 .text.I2C_Mem_ISR_IT:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14679 .text.I2C_Mem_ISR_IT:00000190 $d
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14685 .text.HAL_I2C_ER_IRQHandler:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14691 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14791 .text.I2C_DMAAbort:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14841 .text.HAL_I2C_GetState:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14847 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14865 .text.HAL_I2C_GetMode:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14871 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14889 .text.HAL_I2C_GetError:00000000 $t
C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14895 .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