ARM GAS /tmp/ccpK4Ax4.s page 1
1 .cpu cortex-m0
2 .eabi_attribute 20, 1
3 .eabi_attribute 21, 1
4 .eabi_attribute 23, 3
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 1
9 .eabi_attribute 34, 0
10 .eabi_attribute 18, 4
11 .file "stm32f0xx_hal_i2c.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.I2C_Flush_TXDR,"ax",%progbits
16 .align 1
17 .syntax unified
18 .code 16
19 .thumb_func
20 .fpu softvfp
22 I2C_Flush_TXDR:
23 .LFB102:
24 .file 1 "Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c"
1:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
2:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ******************************************************************************
3:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @file stm32f0xx_hal_i2c.c
4:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @author MCD Application Team
5:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C HAL module driver.
6:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral:
8:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * + Initialization and de-initialization functions
9:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * + IO operation functions
10:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * + Peripheral State and Errors functions
11:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *
12:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim
13:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ==============================================================================
14:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### How to use this driver #####
15:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ==============================================================================
16:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
17:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** The I2C HAL driver can be used as follows:
18:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
19:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example:
20:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef hi2c;
21:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
22:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the @ref HAL_I2C_MspInit() API:
23:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (##) Enable the I2Cx interface clock
24:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (##) I2C pins configuration
25:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs
26:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain
27:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process
28:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority
29:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel
30:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process
31:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for the transmit or receive channel
32:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using
33:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure the DMA handle parameters
34:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx channel
ARM GAS /tmp/ccpK4Ax4.s page 2
35:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle
36:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on
37:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the DMA Tx or Rx channel
38:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
39:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres
40:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure
41:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
42:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the @ref HAL_I2C_Init(), configures also the low le
43:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized @ref HAL_I2C_MspInit(&hi2c) API.
44:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
45:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function @ref HAL_I2C_IsDevic
46:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
47:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver :
48:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
49:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Polling mode IO operation ***
50:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =================================
51:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
52:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using @ref HAL_I2C_Master_Tran
53:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using @ref HAL_I2C_Master_Recei
54:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using @ref HAL_I2C_Slave_Transm
55:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using @ref HAL_I2C_Slave_Receive
56:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
57:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Polling mode IO MEM operation ***
58:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =====================================
59:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
60:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using @ref HAL_I2C_
61:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using @ref HAL_I2C
62:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
63:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
64:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Interrupt mode IO operation ***
65:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ===================================
66:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
67:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using @ref HAL_I2C_Master_
68:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_MasterTxCpltCallback() is executed and user
69:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterTxCpltCallback(
70:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using @ref HAL_I2C_Master_R
71:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_MasterRxCpltCallback() is executed and user ca
72:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterRxCpltCallback(
73:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using @ref HAL_I2C_Slave_Tr
74:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_SlaveTxCpltCallback() is executed and user
75:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveTxCpltCallback()
76:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using @ref HAL_I2C_Slave_Rec
77:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_SlaveRxCpltCallback() is executed and user can
78:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveRxCpltCallback()
79:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can
80:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback()
81:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using @ref HAL_I2C_Master_Abort_I
82:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) End of abort process, @ref HAL_I2C_AbortCpltCallback() is executed and user can
83:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_AbortCpltCallback()
84:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Discard a slave I2C process communication using @ref __HAL_I2C_GENERATE_NACK() macro.
85:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
86:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
87:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
88:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation ***
89:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ==========================================================
90:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
91:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition
ARM GAS /tmp/ccpK4Ax4.s page 3
92:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** when a direction change during transfer
93:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
94:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer
95:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Option field values are defined through @ref I2C_XFEROPTIONS and are listed below:
96:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functionnal is same as associated interfa
97:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con
98:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and data to transfer without a final stop condition
99:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a
100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and data to transfer without a final stop condition, an then permit a c
101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** several times (like @ref HAL_I2C_Master_Seq_Transmit_IT() then @ref HAL
102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or @ref HAL_I2C_Master_Seq_Transmit_DMA() then @ref HAL_I2C_Master_Seq_
103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart
104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases
106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart
107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases
109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a re
110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** interface several times (link with option I2C_FIRST_AND_NEXT_FRAME).
111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Usage can, transfer several bytes one by one using HAL_I2C_Master_Seq_T
112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT(option I2C_FIRST_AND_NEXT_FRAME then
113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA(option I2C_FIRST_AND_NEXT_FRAME th
114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA(option I2C_FIRST_AND_NEXT_FRAME the
115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit o
116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio
117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c
118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** interface.
119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave
120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT(option I2C_FIRST_FRAME then I2C_OTHE
121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA(option I2C_FIRST_FRAME then I2C_OT
122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA(option I2C_FIRST_FRAME then I2C_OTH
123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to
124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Differents sequential I2C interfaces are listed below:
126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using @ref
127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or using @ref HAL_I2C_Master_Seq_Transmit_DMA()
128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, @ref HAL_I2C_MasterTxCpltCallback() is e
129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterTxCpltCallback(
130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using @ref
131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or using @ref HAL_I2C_Master_Seq_Receive_DMA()
132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At reception end of current frame transfer, @ref HAL_I2C_MasterRxCpltCallback() is exec
133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterRxCpltCallback(
134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Abort a master IT or DMA I2C process communication with Interrupt using @ref HAL_I2C_Mas
135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) End of abort process, @ref HAL_I2C_AbortCpltCallback() is executed and user can
136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_AbortCpltCallback()
137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using @ref HAL_I2C_EnableListen
138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) When address slave I2C match, @ref HAL_I2C_AddrCallback() is executed and user can
139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code to check the Address Match Code and the transmission direction request
140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At Listen mode end @ref HAL_I2C_ListenCpltCallback() is executed and user can
141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ListenCpltCallback()
142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using @ref
143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or using @ref HAL_I2C_Slave_Seq_Transmit_DMA()
144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, @ref HAL_I2C_SlaveTxCpltCallback() is ex
145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveTxCpltCallback()
146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using @ref H
147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or using @ref HAL_I2C_Slave_Seq_Receive_DMA()
148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At reception end of current frame transfer, @ref HAL_I2C_SlaveRxCpltCallback() is execu
ARM GAS /tmp/ccpK4Ax4.s page 4
149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveRxCpltCallback()
150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user ca
151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback()
152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Discard a slave I2C process communication using @ref __HAL_I2C_GENERATE_NACK() macro.
153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Interrupt mode IO MEM operation ***
156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =======================================
157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address
159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Mem_Write_IT()
160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At Memory end of write transfer, @ref HAL_I2C_MemTxCpltCallback() is executed and user ca
161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemTxCpltCallback()
162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address
163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Mem_Read_IT()
164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At Memory end of read transfer, @ref HAL_I2C_MemRxCpltCallback() is executed and user can
165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemRxCpltCallback()
166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can
167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback()
168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** DMA mode IO operation ***
170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ==============================
171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using
173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Master_Transmit_DMA()
174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_MasterTxCpltCallback() is executed and user
175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterTxCpltCallback(
176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using
177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Master_Receive_DMA()
178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_MasterRxCpltCallback() is executed and user ca
179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterRxCpltCallback(
180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using
181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Slave_Transmit_DMA()
182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_SlaveTxCpltCallback() is executed and user
183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveTxCpltCallback()
184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using
185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Slave_Receive_DMA()
186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_SlaveRxCpltCallback() is executed and user can
187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveRxCpltCallback()
188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can
189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback()
190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using @ref HAL_I2C_Master_Abort_I
191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) End of abort process, @ref HAL_I2C_AbortCpltCallback() is executed and user can
192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_AbortCpltCallback()
193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Discard a slave I2C process communication using @ref __HAL_I2C_GENERATE_NACK() macro.
194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** DMA mode IO MEM operation ***
197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =================================
198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using
200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Mem_Write_DMA()
201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At Memory end of write transfer, @ref HAL_I2C_MemTxCpltCallback() is executed and user ca
202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemTxCpltCallback()
203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using
204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Mem_Read_DMA()
205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At Memory end of read transfer, @ref HAL_I2C_MemRxCpltCallback() is executed and user can
ARM GAS /tmp/ccpK4Ax4.s page 5
206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemRxCpltCallback()
207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can
208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback()
209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** I2C HAL driver macros list ***
212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ==================================
213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver.
215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) @ref __HAL_I2C_ENABLE: Enable the I2C peripheral
217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) @ref __HAL_I2C_DISABLE: Disable the I2C peripheral
218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) @ref __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode
219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) @ref __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not
220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) @ref __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag
221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) @ref __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt
222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) @ref __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt
223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Callback registration ***
225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================
226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1
228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks.
229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Use Functions @ref HAL_I2C_RegisterCallback() or @ref HAL_I2C_RegisterAddrCallback()
230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to register an interrupt callback.
231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Function @ref HAL_I2C_RegisterCallback() allows to register following callbacks:
233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID
245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and a pointer to the user callback function.
246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : @ref HAL_I2C_RegisterAdd
248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Use function @ref HAL_I2C_UnRegisterCallback to reset a callback to the default
250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** weak function.
251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle,
252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and the Callback ID.
253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This function allows to reset following callbacks:
254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
ARM GAS /tmp/ccpK4Ax4.s page 6
263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : @ref HAL_I2C_UnRegisterAddrCallba
267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** By default, after the @ref HAL_I2C_Init() and when the state is @ref HAL_I2C_STATE_RESET
269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions:
270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** examples @ref HAL_I2C_MasterTxCpltCallback(), @ref HAL_I2C_MasterRxCpltCallback().
271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are
272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** reset to the legacy weak functions in the @ref HAL_I2C_Init()/ @ref HAL_I2C_DeInit() only when
273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** these callbacks are null (not registered beforehand).
274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the @ref HAL_I2C_Init()/ @ref HAL_I2C_DeInit()
275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state.
276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Callbacks can be registered/unregistered in @ref HAL_I2C_STATE_READY state only.
278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered
279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** in @ref HAL_I2C_STATE_READY or @ref HAL_I2C_STATE_RESET state,
280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks
282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** using @ref HAL_I2C_RegisterCallback() before calling @ref HAL_I2C_DeInit()
283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or @ref HAL_I2C_Init() function.
284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or
286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks
287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** are set to the corresponding weak functions.
288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros
291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim
293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ******************************************************************************
294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @attention
295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *
296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *
© Copyright (c) 2016 STMicroelectronics.
297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * All rights reserved.
298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *
299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This software component is licensed by ST under BSD 3-Clause license,
300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the "License"; You may not use this file except in compliance with the
301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * License. You may obtain a copy of the License at:
302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * opensource.org/licenses/BSD-3-Clause
303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *
304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ******************************************************************************
305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/
308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #include "stm32f0xx_hal.h"
309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @addtogroup STM32F0xx_HAL_Driver
311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{
312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C I2C
315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C HAL module driver
316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{
317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED
ARM GAS /tmp/ccpK4Ax4.s page 7
320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/
323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define
325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{
326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */
328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */
329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */
330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */
331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */
332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */
333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */
334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */
335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */
336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */
337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U
339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define SlaveAddr_SHIFT 7U
340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define SlaveAddr_MSK 0x06U
341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */
343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | (uint32_
344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE))
345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | (
346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | (
347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | (
348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | (
349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | (
350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | (
351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */
354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_TX_IT (0x00000001U)
355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_RX_IT (0x00000002U)
356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (0x00000004U)
357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (0x00000011U)
359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (0x00000012U)
360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (0x00000012U)
361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */
363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U)
364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @}
366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private macro -------------------------------------------------------------*/
369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/
370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/
371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions
373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{
374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle DMA transfer */
376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma);
ARM GAS /tmp/ccpK4Ax4.s page 8
377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma);
378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma);
379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma);
380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma);
381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma);
382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle IT transfer */
384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c);
386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c);
387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode);
391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle IT transfer */
393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1
394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16
395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */
397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint
398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint3
399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uin
400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint
401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */
403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_
408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */
410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function to flush TXDR register */
414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c);
415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */
417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function to Convert Specific options */
420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c);
421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @}
423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/
426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions
428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{
429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions
432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Initialization and Configuration functions
433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *
ARM GAS /tmp/ccpK4Ax4.s page 9
434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim
435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ===============================================================================
436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### Initialization and de-initialization functions #####
437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ===============================================================================
438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and
439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** deinitialize the I2Cx peripheral:
440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures
442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ).
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with
445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the selected configuration:
446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Clock Timing
447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Own Address 1
448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Addressing mode (Master, Slave)
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Dual Addressing mode
450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Own Address 2
451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Own Address 2 Mask
452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) General call mode
453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Nostretch mode
454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration
456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** of the selected I2Cx peripheral.
457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim
459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{
460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters
464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle.
465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */
472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c == NULL)
473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode));
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode));
482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2));
483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks));
484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode));
485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode));
486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET)
488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Allocate lock resource and initialize it */
490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED;
ARM GAS /tmp/ccpK4Ax4.s page 10
491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init the I2C Callback settings */
494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback
495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback
496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback
497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback
498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback
499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback
504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL)
506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */
508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c);
512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c);
515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable the selected I2C peripheral */
521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/
524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */
525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK;
526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/
528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */
529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN;
530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */
532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT)
533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1);
535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */
537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1);
539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/
542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */
543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 = (I2C_CR2_ADD10);
546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */
ARM GAS /tmp/ccpK4Ax4.s page 11
548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK);
549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/
551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */
552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE;
553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */
555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | (hi2c->Init.OwnAddr
556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/
558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */
559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode);
560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the selected I2C peripheral */
562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c);
563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral.
574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c)
579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */
581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c == NULL)
582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */
592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL)
596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */
598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c);
602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c);
ARM GAS /tmp/ccpK4Ax4.s page 12
605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */
613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Initialize the I2C MSP.
620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c);
628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file
631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP.
636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c);
644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file
647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Register a User I2C Callback
653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * To be used instead of the weak predefined callback
654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered
657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values:
658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID
659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID
660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID
661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID
ARM GAS /tmp/ccpK4Ax4.s page 13
662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID
665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pCallback pointer to the Callback function
670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb
673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (pCallback == NULL)
677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */
679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */
684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID)
689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback;
692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback;
696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback;
700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback;
704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback;
708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback;
712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback;
716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
ARM GAS /tmp/ccpK4Ax4.s page 14
719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback;
720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback;
724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default :
735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */
736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */
739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR;
740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID)
746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default :
756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */
757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */
760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR;
761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */
767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */
770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR;
771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */
774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status;
ARM GAS /tmp/ccpK4Ax4.s page 15
776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Unregister an I2C Callback
780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback
781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered
784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values:
785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values:
786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID
787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID
788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID
789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID
790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID
793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal
800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */
804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID)
809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb
812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb
816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba
820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba
824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac
828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
ARM GAS /tmp/ccpK4Ax4.s page 16
833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default :
855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */
856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */
859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR;
860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID)
866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default :
876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */
877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */
880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR;
881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break;
882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */
887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */
ARM GAS /tmp/ccpK4Ax4.s page 17
890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR;
891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */
894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status;
896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback
900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback
901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function
904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC
907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (pCallback == NULL)
911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */
913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */
918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback = pCallback;
923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */
927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */
930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR;
931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */
934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status;
936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback
940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal
941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c)
946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 18
947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */
950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */
955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */
959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */
962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR;
963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */
966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status;
968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @}
974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions
977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Data transfers functions
978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *
979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim
980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ===============================================================================
981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### IO operation functions #####
982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ===============================================================================
983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data
985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** transfers.
986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) There are two modes of transfer:
988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode.
989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** The status of all data processing is returned by the same function
990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** after finishing transfer.
991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts
992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup.
993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** The end of the data processing will be indicated through the
994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when
995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** using DMA mode.
996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) Blocking mode functions are :
998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit()
999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive()
1000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit()
1001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive()
1002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write()
1003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read()
ARM GAS /tmp/ccpK4Ax4.s page 19
1004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady()
1005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are :
1007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT()
1008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT()
1009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT()
1010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT()
1011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT()
1012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT()
1013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT()
1014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT()
1015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT()
1016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT()
1017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT()
1018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT()
1019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT()
1020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are :
1022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA()
1023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA()
1024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA()
1025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA()
1026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA()
1027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA()
1028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA()
1029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA()
1030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA()
1031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA()
1032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode:
1034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback()
1035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback()
1036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback()
1037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback()
1038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback()
1039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback()
1040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback()
1041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback()
1042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback()
1043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback()
1044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim
1046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{
1047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
1048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
1050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode.
1051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration
1058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
1059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
1060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD
ARM GAS /tmp/ccpK4Ax4.s page 20
1061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
1063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
1067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick();
1071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
1073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
1082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
1084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
1085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */
1087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
1088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
1092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
1097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */
1102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */
1107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */
1110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++;
1111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
1113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--;
1114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
1116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */
ARM GAS /tmp/ccpK4Ax4.s page 21
1118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
1119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
1127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
1132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
1137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is set */
1138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */
1144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
1147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
1148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
1153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
1156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
1160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
1164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode.
1165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration
1172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
1173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
1174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa
ARM GAS /tmp/ccpK4Ax4.s page 22
1175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
1177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
1181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick();
1185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
1187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
1196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
1198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
1199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */
1201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
1202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
1206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
1211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until RXNE flag is set */
1216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */
1222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */
1225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++;
1226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--;
1228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
1229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
1231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 23
1232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */
1233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
1234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
1242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
1247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
1252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is set */
1253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */
1259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
1262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
1263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
1268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
1271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
1275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
1279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode.
1280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration
1285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
1286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
1287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, ui
1288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 24
1289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
1290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
1296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
1299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick();
1303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
1309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
1311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
1312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */
1314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */
1325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If 10bit addressing mode is selected */
1328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
1329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */
1339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */
1343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK)
1344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */
ARM GAS /tmp/ccpK4Ax4.s page 25
1346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */
1353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */
1361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */
1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++;
1365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
1367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOP flag is set */
1370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
1376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Normal use case for Transmitter mode */
1378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* A NACK is generated to confirm the end of transfer */
1379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP flag */
1388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
1391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
1392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
ARM GAS /tmp/ccpK4Ax4.s page 26
1403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
1405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
1408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
1412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
1416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode
1417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration
1422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
1423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
1424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uin
1425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
1427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
1433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
1436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick();
1440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
1446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
1448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
1449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */
1451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpK4Ax4.s page 27
1460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */
1462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */
1465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK)
1466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until RXNE flag is set */
1475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */
1481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET)
1482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */
1484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */
1487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++;
1488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
1490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */
1496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */
1499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++;
1500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
1502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOP flag is set */
1505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP flag */
1513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
1516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
ARM GAS /tmp/ccpK4Ax4.s page 28
1517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
1530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
1533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
1537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
1541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt
1542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
1549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
1550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
1553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
1559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
1562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
1569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
1571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 29
1574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */
1586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_WRIT
1588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
1590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
1595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */
1598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
1599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
1600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
1602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
1606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
1610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt
1611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
1618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
1619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *
1620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
1622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
1628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
ARM GAS /tmp/ccpK4Ax4.s page 30
1631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
1638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
1640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */
1655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ
1657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
1659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
1664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
1666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */
1667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
1668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
1669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
1671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
1675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
1679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt
1680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
1685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
1686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
1687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 31
1688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
1691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */
1698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
1701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
1703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
1706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
1708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
1713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */
1716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
1717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
1718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
1720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
1724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
1728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt
1729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
1734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
1735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
1736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
1740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
ARM GAS /tmp/ccpK4Ax4.s page 32
1745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */
1747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
1750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
1752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
1755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
1757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
1762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
1764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */
1765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
1766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
1767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
1769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
1773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
1777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA
1778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
1785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
1786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
1789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
1790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
1796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
1799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
ARM GAS /tmp/ccpK4Ax4.s page 33
1802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
1806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
1808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
1810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
1823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
1825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
1827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
1828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */
1830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
1831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
1833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
1834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
1835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */
1837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->
1838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
1842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
1846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
1847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
1849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
1855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */
1857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART
1858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_
ARM GAS /tmp/ccpK4Ax4.s page 34
1859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */
1861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
1862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
1864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
1869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
1870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
1871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */
1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
1874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
1878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
1882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
1883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
1885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
1893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */
1896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
1897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
1898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
1900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
1905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */
1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_
1908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
1909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
1912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
ARM GAS /tmp/ccpK4Ax4.s page 35
1916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
1920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA
1921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
1928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
1929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
1932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
1933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
1939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
1942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
1949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
1951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
1953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
1966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
1968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
1970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
1971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */
ARM GAS /tmp/ccpK4Ax4.s page 36
1973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
1974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
1976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
1977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
1978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */
1980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
1981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
1983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
1985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
1989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
1990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
1992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
1995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
1998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */
2000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART *
2001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_
2002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */
2004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
2012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */
2016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
2017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
2021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
2025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 37
2030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
2036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */
2039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
2040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
2041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
2048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */
2050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_
2051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
2055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
2059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
2063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA
2064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
2068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
2069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
2070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size
2071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
2082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
ARM GAS /tmp/ccpK4Ax4.s page 38
2087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
2089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
2091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
2094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
2096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
2099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */
2101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
2102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
2105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
2106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */
2108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
2109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
2113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
2117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */
2128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
2136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
2137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */
2140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
2141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 39
2144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
2145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
2149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
2158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
2162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
2166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA
2167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
2171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
2172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
2173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
2174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
2185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
2192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
2194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
2199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
ARM GAS /tmp/ccpK4Ax4.s page 40
2201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
2202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */
2204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
2205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
2208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
2209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */
2211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
2212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
2216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
2220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */
2231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
2239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
2240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */
2243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
2244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
2248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
2252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
ARM GAS /tmp/ccpK4Ax4.s page 41
2258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
2261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
2265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
2268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address
2269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address
2274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
2277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration
2278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
2279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
2280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre
2281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
2283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
2285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
2296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick();
2300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
2302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
2311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
2313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
2314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 42
2315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL
2317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
2324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
2328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
2333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do
2336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */
2338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */
2344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
2345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */
2347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++;
2348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
2350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--;
2351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
2353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */
2355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
2356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
2364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
2369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 43
2372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U);
2374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
2376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */
2383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
2386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
2387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
2395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
2399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
2403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address
2404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address
2409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
2412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration
2413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
2414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
2415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres
2416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
2418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
2420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpK4Ax4.s page 44
2429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
2431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick();
2435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
2437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
2446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
2448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
2449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_
2452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */
2459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
2464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
2469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do
2472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until RXNE flag is set */
2474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK)
2475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */
2480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
2481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */
2483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++;
2484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--;
ARM GAS /tmp/ccpK4Ax4.s page 45
2486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
2487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
2489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */
2491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
2492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_ST
2500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
2505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U);
2509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
2511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */
2518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
2521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
2522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
2530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
2534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
2537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres
2538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address
ARM GAS /tmp/ccpK4Ax4.s page 46
2543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
2546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
2547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
2548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd
2549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
2551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
2552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
2554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
2567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
2570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick();
2574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
2580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
2582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar
2598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
ARM GAS /tmp/ccpK4Ax4.s page 47
2600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
2606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
2613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */
2616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
2617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
2620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
2624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
2628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre
2629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address
2634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
2637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
2638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
2639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd
2640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
2642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
2643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
2645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 48
2657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
2658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
2661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick();
2665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
2671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
2673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart
2689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ
2697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
2704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
2706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */
2707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
2708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
2709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
2711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 49
2714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
2715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
2718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address
2719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address
2724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
2727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
2728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
2729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA
2730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
2732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
2733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
2736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
2749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
2752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick();
2756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
2762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
2764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
2766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
ARM GAS /tmp/ccpK4Ax4.s page 50
2771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar
2780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
2788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
2791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */
2793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
2794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
2797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
2798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */
2800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
2801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
2805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
2809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */
2820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
2822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */
2824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
ARM GAS /tmp/ccpK4Ax4.s page 51
2828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
2832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */
2836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
2837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
2841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
2845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
2854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
2858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
2862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address.
2863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address
2868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be read
2871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
2872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
2873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd
2874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
2876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
2877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
2880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
ARM GAS /tmp/ccpK4Ax4.s page 52
2885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
2893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
2896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick();
2900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
2906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
2908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
2910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart
2924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
2931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
2934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */
2936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
2937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
2940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
2941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 53
2942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */
2943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
2944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
2948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
2952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_RE
2964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */
2966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
2974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */
2978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
2979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
2983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
2987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
2990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
2996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
2998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 54
2999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
3000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
3004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Checks if target device is ready for communication.
3005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This function is used with Memory devices
3006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Trials Number of trials
3011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration
3012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
3013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
3014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria
3015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
3017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL;
3019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** FlagStatus tmp1;
3021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** FlagStatus tmp2;
3022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
3026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
3028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
3031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
3034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do
3037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Start */
3039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress);
3040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
3042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/
3043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick();
3044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
3046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
3047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET))
3049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
3051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
3053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
3055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
ARM GAS /tmp/ccpK4Ax4.s page 55
3056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
3058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
3059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
3068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
3069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */
3072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET)
3073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
3075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
3076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */
3081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Device is ready */
3084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
3090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
3094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
3095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */
3100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
3101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/
3103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if the maximum allowed number of trials has been reached */
3107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_Trials == Trials)
3108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Stop */
3110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
3111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
ARM GAS /tmp/ccpK4Ax4.s page 56
3113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
3114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */
3119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Trials */
3123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Trials++;
3124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (I2C_Trials < Trials);
3126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
3128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
3131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
3132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
3141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
3145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte
3146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
3152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
3153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
3155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
3156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
3157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
3159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
3160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
3162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
3167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
ARM GAS /tmp/ccpK4Ax4.s page 57
3170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
3174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
3176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene
3192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST
3194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount < MAX_NBYTE_SIZE)
3204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
3210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
3218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
3221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
3225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpK4Ax4.s page 58
3227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
3229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA.
3230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
3236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
3237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
3239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
3240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin
3241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
3243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
3244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
3247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
3252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
3255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
3259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
3261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene
3277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST
3279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 59
3284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount < MAX_NBYTE_SIZE)
3289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
3295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
3300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */
3302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
3303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
3306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */
3309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->
3310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
3314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
3318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
3329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */
3332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
3340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
ARM GAS /tmp/ccpK4Ax4.s page 60
3341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
3342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */
3344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
3345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
3349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
3353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
3364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */
3367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
3368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
3369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
3376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */
3378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_
3379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
3383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
3387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
3391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter
3392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
ARM GAS /tmp/ccpK4Ax4.s page 61
3398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
3399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
3401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
3402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8
3403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
3405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
3406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
3408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
3413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
3420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
3422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene
3438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST
3440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount < MAX_NBYTE_SIZE)
3450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 62
3455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
3456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
3464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
3465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
3467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
3471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
3475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA
3476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
3482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
3483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
3485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
3486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
3487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
3489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
3490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
3493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
3498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
3505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
3507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
ARM GAS /tmp/ccpK4Ax4.s page 63
3512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene
3523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST
3525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount < MAX_NBYTE_SIZE)
3535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
3541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
3546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */
3548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
3549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
3552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */
3555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
3556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
3560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
3564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 64
3569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
3575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */
3578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
3586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
3587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
3588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */
3590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
3591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
3595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
3599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */
3613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
3614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
3615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
3622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */
3624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_
3625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
ARM GAS /tmp/ccpK4Ax4.s page 65
3626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
3629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
3633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
3637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit
3638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
3642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
3643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
3645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
3646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S
3647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
3649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
3652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
3654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
3656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
3660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
3661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
3663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
3666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
3667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
3668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */
3670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
3671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */
3673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
3674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
3676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
3680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
3681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
3682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 66
3683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */
3684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
3685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
3687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
3688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
3694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */
3698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
3699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
3701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
3703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
3708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
3710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
3711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
3712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
3720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* REnable ADDR interrupt */
3721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
3722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
3724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
3732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit
3733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
3737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
3738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
ARM GAS /tmp/ccpK4Ax4.s page 67
3740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
3741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t
3742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
3746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
3749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
3751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
3753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
3757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
3760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
3761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
3763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
3764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
3765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */
3767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
3768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
3770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */
3772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
3775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
3777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
3778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
3779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */
3781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
3782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
3784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
3785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
3790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
3792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
3794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */
3796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
ARM GAS /tmp/ccpK4Ax4.s page 68
3797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
3799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
3800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
3801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */
3803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
3804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
3806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
3807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */
3814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
3817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */
3821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
3822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
3824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
3826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
3829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
3834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */
3836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
3837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
3840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */
3843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
3844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
3848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
3849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
3852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 69
3854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */
3863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset XferSize */
3866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = 0;
3867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
3871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
3872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
3875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
3884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
3886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
3887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
3888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
3896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
3897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
3898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */
3900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
3901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
3903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
3905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
ARM GAS /tmp/ccpK4Ax4.s page 70
3911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with
3912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
3916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
3917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
3919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
3920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si
3921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
3923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
3926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
3928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
3930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
3934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
3935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
3937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
3940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
3941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
3942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */
3944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
3945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
3947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
3949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */
3951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
3954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
3955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
3956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */
3958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
3959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
3961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
3962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
ARM GAS /tmp/ccpK4Ax4.s page 71
3968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */
3972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
3973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
3975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
3977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT)
3982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
3984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
3985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
3986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
3989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
3994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* REnable ADDR interrupt */
3995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
3996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
3998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
4002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with
4007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
4008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer
4011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent
4012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
4013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
4014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S
4016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
4020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
4021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
4023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
ARM GAS /tmp/ccpK4Ax4.s page 72
4025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
4027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
4028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
4031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
4032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
4034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
4037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
4038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
4039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */
4041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
4044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
4053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */
4055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
4056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
4059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
4064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
4066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
4068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
4075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */
4077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
4078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
4081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpK4Ax4.s page 73
4082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */
4088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
4091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */
4095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */
4098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
4100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
4107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
4108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */
4110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
4111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
4113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
4114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */
4117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
4118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
4122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
4126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
4127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
4129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
4132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
4135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */
4137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
4138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 74
4139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset XferSize */
4140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = 0;
4141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */
4145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */
4149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
4150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
4152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
4155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT)
4158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
4165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
4170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* REnable ADDR interrupt */
4171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
4172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */
4174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
4175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
4177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
4181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt.
4186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
4189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c)
4191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
4193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
ARM GAS /tmp/ccpK4Ax4.s page 75
4196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the Address Match interrupt */
4198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
4201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
4205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt.
4210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C
4212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
4213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c)
4215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmp;
4218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */
4220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
4221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK;
4223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
4224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
4227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable the Address Match interrupt */
4229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
4232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY;
4236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt.
4241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
4244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
4245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
4246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress)
4248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER)
4250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
4252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
ARM GAS /tmp/ccpK4Ax4.s page 76
4253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */
4255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
4256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */
4259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT;
4260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */
4262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe
4263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP);
4264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
4266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */
4271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
4272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
4274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong usage of abort function */
4278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */
4279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
4280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @}
4285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
4288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{
4289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request.
4293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
4296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c)
4298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
4300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
4301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
4302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/
4304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferISR != NULL)
4305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources);
4307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 77
4310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request.
4312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
4315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c)
4317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
4319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
4320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror;
4321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/
4323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_E
4324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR;
4326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear BERR flag */
4328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
4329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/
4332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ER
4333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR;
4335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear OVR flag */
4337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
4338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/
4341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_E
4342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO;
4344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ARLO flag */
4346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
4347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
4350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
4351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */
4353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_
4354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror);
4356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback.
4361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
4364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c)
4366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 78
4367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c);
4369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file
4372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback.
4377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
4380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
4382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c);
4385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file
4388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback.
4392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
4395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c)
4397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c);
4400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file
4403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback.
4408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
4411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
4413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c);
4416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file
4419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Slave Address Match callback.
ARM GAS /tmp/ccpK4Ax4.s page 79
4424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE
4427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code
4428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
4429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM
4431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c);
4434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(TransferDirection);
4435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(AddrMatchCode);
4436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file
4439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Listen Complete callback.
4444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
4447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c)
4449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c);
4452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file
4455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback.
4460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
4463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c)
4465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c);
4468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file
4471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback.
4476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
4479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c)
ARM GAS /tmp/ccpK4Ax4.s page 80
4481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c);
4484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file
4487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C error callback.
4492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
4495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c)
4497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c);
4500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file
4503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C abort callback.
4508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
4511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c)
4513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c);
4516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file
4519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @}
4524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions
4527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions
4528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *
4529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim
4530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ===============================================================================
4531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions #####
4532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ===============================================================================
4533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..]
4534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral
4535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and the data flow.
4536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim
ARM GAS /tmp/ccpK4Ax4.s page 81
4538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{
4539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Return the I2C handle state.
4543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL state
4546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c)
4548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return I2C handle state */
4550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->State;
4551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode.
4555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for I2C module
4557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL mode
4558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c)
4560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->Mode;
4562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Return the I2C error code.
4566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval I2C Error Code
4569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c)
4571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->ErrorCode;
4573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @}
4577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @}
4581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions
4584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{
4585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt.
4589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
4592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
4593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
4594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
ARM GAS /tmp/ccpK4Ax4.s page 82
4595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint
4596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress;
4598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
4599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
4601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_
4604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */
4606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set corresponding Error Code */
4609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
4610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
4611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
4612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */
4614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
4615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources,
4617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
4619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
4620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */
4622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
4623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */
4625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++;
4626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--;
4628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
4629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources,
4631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */
4633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
4634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */
4636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++;
4637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--;
4639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
4640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I
4642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
4644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
4646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
4648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
4650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
4651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpK4Ax4.s page 83
4652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
4656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, hi2c->XferOptions, I2C_NO_S
4658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
4662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
4668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
4669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
4671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
4672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
4676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
4678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2
4682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
4684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
4686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
4688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
4689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Stop */
4691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
4692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
4696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
4697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
4703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
4705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 84
4709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */
4710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_
4713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master complete process */
4715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
4716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
4719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
4722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt.
4726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
4729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
4730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
4731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint3
4733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
4735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
4736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */
4738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if STOPF is set */
4741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_
4742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave complete process */
4744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags);
4745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_
4748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check that I2C transfer finished */
4750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
4751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean XferCount == 0*/
4752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So clear Flag NACKF only */
4753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
4754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) /* Sam
4756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Listen complete process */
4758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
4759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)
4761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */
4763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */
ARM GAS /tmp/ccpK4Ax4.s page 85
4766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
4767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */
4769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
4770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
4771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */
4775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
4781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */
4782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
4785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
4786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
4788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
4791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources,
4795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
4797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */
4799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
4800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */
4802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++;
4803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--;
4805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
4806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \
4809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
4810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
4812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
4813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources,
4816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags);
4818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources,
4820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */
4822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */
ARM GAS /tmp/ccpK4Ax4.s page 86
4823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if all Datas have already been sent */
4824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */
4825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
4826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */
4828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
4829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */
4831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++;
4832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
4834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--;
4835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
4839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */
4841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
4842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
4843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */
4849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
4852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
4855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA.
4859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
4862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
4863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
4864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
4865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uin
4866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress;
4868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
4869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */
4871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NAC
4874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */
4876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set corresponding Error Code */
4879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
ARM GAS /tmp/ccpK4Ax4.s page 87
4880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
4882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
4883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
4884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
4885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */
4887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
4888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_
4890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable TC interrupt */
4892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI);
4893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
4895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Recover Slave address */
4897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
4898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
4900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
4901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
4903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
4909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
4911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */
4919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
4920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */
4922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
4923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */
4925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
4926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
4928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
4932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
ARM GAS /tmp/ccpK4Ax4.s page 88
4937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
4938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
4940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
4941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
4945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
4947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_I
4951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
4953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
4955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
4957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
4958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Stop */
4960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
4961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
4965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
4966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
4972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
4974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2
4977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master complete process */
4979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
4980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
4982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */
4984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
4987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
4990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA.
ARM GAS /tmp/ccpK4Ax4.s page 89
4994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
4997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
4998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
4999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
5000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint
5001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
5003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
5004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */
5006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if STOPF is set */
5009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_
5010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave complete process */
5012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags);
5013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NAC
5016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check that I2C transfer finished */
5018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
5019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean XferCount == 0 */
5020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So clear Flag NACKF only */
5021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) ||
5022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
5023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */
5025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
5026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)
5028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U)
5030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** treatdmanack = 1U;
5032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */
5037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
5038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET)
5040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmatx) == 0U)
5042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** treatdmanack = 1U;
5044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (treatdmanack == 1U)
5049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) /* S
ARM GAS /tmp/ccpK4Ax4.s page 90
5051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Listen complete process */
5053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags);
5054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM
5056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */
5058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */
5061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */
5064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */
5070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
5076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */
5077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
5080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
5083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */
5092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C
5096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags);
5098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */
5102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
ARM GAS /tmp/ccpK4Ax4.s page 91
5108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques
5112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
5114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
5115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
5116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address
5117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
5118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration
5119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value
5120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
5121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
5122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1
5123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
5125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
5130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 8Bit */
5133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
5134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Memory Address */
5136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 16Bit */
5139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send MSB of Memory Address */
5142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
5143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
5148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send LSB of Memory Address */
5151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */
5155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK)
5156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
5158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
5161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request
ARM GAS /tmp/ccpK4Ax4.s page 92
5165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
5167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
5168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
5169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address
5170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
5171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration
5172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value
5173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
5174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
5175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16
5176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
5178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
5183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 8Bit */
5186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
5187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Memory Address */
5189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 16Bit */
5192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send MSB of Memory Address */
5195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
5196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
5201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send LSB of Memory Address */
5204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TC flag is set */
5208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK)
5209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
5211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
5214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Address complete process callback.
5218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle.
5219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
5221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
ARM GAS /tmp/ccpK4Ax4.s page 93
5222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint8_t transferdirection;
5225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t slaveaddrcode;
5226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t ownadd1code;
5227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t ownadd2code;
5228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
5230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(ITFlags);
5231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */
5233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
5234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c);
5236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
5237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
5238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
5239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If 10bits addressing mode is selected */
5241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
5242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((slaveaddrcode & SlaveAddr_MSK) == ((ownadd1code >> SlaveAddr_SHIFT) & SlaveAddr_MSK))
5244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = ownadd1code;
5246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrEventCount++;
5247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
5248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset Address Event counter */
5250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrEventCount = 0U;
5251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */
5253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
5254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Slave Addr callback */
5259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
5261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = ownadd2code;
5269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable ADDR Interrupts */
5271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
5272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Slave Addr callback */
5277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
ARM GAS /tmp/ccpK4Ax4.s page 94
5279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */
5285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable ADDR Interrupts */
5288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
5289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Slave Addr callback */
5294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
5296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Else clear address flag only */
5302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */
5305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
5306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Master sequential complete process.
5314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle.
5315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
5316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
5317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c)
5318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */
5320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */
5323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */
5324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
5325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
5328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
5329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */
5331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 95
5336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
5339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
5341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
5344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
5348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
5349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */
5351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
5352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
5359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
5361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Slave sequential complete process.
5367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle.
5368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
5369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
5370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c)
5371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */
5373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
5376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */
5378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
5379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
5380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */
5382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
5390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
5392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
ARM GAS /tmp/ccpK4Ax4.s page 96
5393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
5396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */
5398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
5399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
5400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */
5402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
5403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
5410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
5412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */
5417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Master complete process.
5422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle.
5423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
5425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
5426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror;
5429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */
5431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
5432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
5434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
5435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */
5437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
5439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET)
5442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */
5444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set acknowledge error code */
5447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 97
5450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */
5451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */
5454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_RX_IT);
5455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
5457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
5458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE))
5461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */
5466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
5467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
5471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c);
5480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c);
5482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
5494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
5496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
5500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
5505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
ARM GAS /tmp/ccpK4Ax4.s page 98
5507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c);
5514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c);
5516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
5528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
5530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */
5536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Slave complete process.
5541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle.
5542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
5544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
5545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
5548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
5549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */
5551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
5552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable all interrupts */
5554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT | I2C_XFER_RX_IT);
5555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */
5557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
5558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
5560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
5561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */
5563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
ARM GAS /tmp/ccpK4Ax4.s page 99
5564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
5566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
5567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
5569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)__HAL_DMA_GET_COUNTER(hi2c->hdmatx);
5571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
5574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
5576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)__HAL_DMA_GET_COUNTER(hi2c->hdmarx);
5578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Do nothing */
5583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */
5586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)
5587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
5589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
5590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */
5592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
5593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */
5595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++;
5596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
5598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--;
5600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
5601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */
5605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
5606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
5608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
5614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE)
5616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
ARM GAS /tmp/ccpK4Ax4.s page 100
5621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
5622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Listen complete process */
5624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
5625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
5628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Tranfer */
5630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
5639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
5641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
5643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
5656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
5658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
5670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
5672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Listen complete process.
ARM GAS /tmp/ccpK4Ax4.s page 101
5678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle.
5679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
5681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
5682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */
5685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
5690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */
5692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET)
5693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */
5695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
5696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */
5698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++;
5699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
5701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--;
5703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
5704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
5706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable all Interrupts*/
5711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT);
5712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */
5714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
5720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
5722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
5724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C interrupts error process.
5729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle.
5730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ErrorCode Error code to handle.
5731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
5732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
5733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode)
5734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 102
5735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
5736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */
5738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = 0U;
5741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set new error code */
5743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode;
5744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */
5746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) ||
5747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
5748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
5749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */
5751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT);
5752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */
5754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
5755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
5757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable all interrupts */
5761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT);
5762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If state is an abort treatment on goind, don't change state */
5764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This change will be do later */
5765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT)
5766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */
5768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
5772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX transfer if any */
5775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
5776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
5778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
5780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
5782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
5783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
5784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */
5789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
5790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
ARM GAS /tmp/ccpK4Ax4.s page 103
5792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
5793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX transfer if any */
5797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
5798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
5800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
5802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
5804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
5805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
5806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */
5811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
5812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */
5814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
5815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_ABORT)
5819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c);
5828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c);
5830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
5835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c);
5840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
5841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c);
5842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Tx data register flush process.
5848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle.
ARM GAS /tmp/ccpK4Ax4.s page 104
5849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
5850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
5851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c)
5852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
25 .loc 1 5852 0
26 .cfi_startproc
27 @ args = 0, pretend = 0, frame = 0
28 @ frame_needed = 0, uses_anonymous_args = 0
29 @ link register save eliminated.
30 .LVL0:
5853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If a pending TXIS flag is set */
5854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */
5855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET)
31 .loc 1 5855 0
32 0000 0368 ldr r3, [r0]
33 0002 9A69 ldr r2, [r3, #24]
34 0004 9207 lsls r2, r2, #30
35 0006 01D5 bpl .L2
5856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U;
36 .loc 1 5857 0
37 0008 0022 movs r2, #0
38 000a 9A62 str r2, [r3, #40]
39 .L2:
5858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register if not empty */
5861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)
40 .loc 1 5861 0
41 000c 0368 ldr r3, [r0]
42 000e 9A69 ldr r2, [r3, #24]
43 0010 D207 lsls r2, r2, #31
44 0012 03D4 bmi .L1
5862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE);
45 .loc 1 5863 0
46 0014 9A69 ldr r2, [r3, #24]
47 0016 0121 movs r1, #1
48 0018 0A43 orrs r2, r1
49 001a 9A61 str r2, [r3, #24]
50 .L1:
5864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
51 .loc 1 5865 0
52 @ sp needed
53 001c 7047 bx lr
54 .cfi_endproc
55 .LFE102:
57 .section .text.I2C_TransferConfig,"ax",%progbits
58 .align 1
59 .syntax unified
60 .code 16
61 .thumb_func
62 .fpu softvfp
64 I2C_TransferConfig:
65 .LFB114:
5866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 105
5867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback.
5869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle
5870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
5871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
5872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma)
5873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
5875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */
5877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
5878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
5880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
5881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupt */
5883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
5884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
5886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Buffer pointer */
5889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
5890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the XferSize to transfer */
5892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */
5902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, h
5903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
5906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */
5910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
5911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback.
5917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle
5918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
5919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
5920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma)
5921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
5923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
ARM GAS /tmp/ccpK4Ax4.s page 106
5924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
5926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */
5928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
5929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */
5931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
5937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */
5938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
5939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback.
5944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle
5945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
5946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
5947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma)
5948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
5950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */
5952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
5953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
5955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
5956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupt */
5958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
5959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
5961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Buffer pointer */
5964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
5965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the XferSize to transfer */
5967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */
5977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, h
5978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
ARM GAS /tmp/ccpK4Ax4.s page 107
5981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
5983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */
5985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
5986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback.
5992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle
5993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
5994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
5995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma)
5996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
5998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
5999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U) && \
6001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
6002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */
6004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
6007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
6010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
6012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */
6013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
6014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
6018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C communication error callback.
6019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle
6020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
6021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
6022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma)
6023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
6025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Acknowledge */
6027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
6028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
6034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C communication abort callback
6035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure).
6036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle.
6037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
ARM GAS /tmp/ccpK4Ax4.s page 108
6038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
6039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma)
6040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
6042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset AbortCpltCallback */
6044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if come from abort from user */
6048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
6049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c);
6055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
6056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c);
6057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
6060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c);
6064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else
6065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c);
6066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
6071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout.
6072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
6074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check.
6075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Status The new Flag status (SET or RESET).
6076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration
6077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value
6078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
6079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
6080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
6081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
6083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */
6085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
6086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
6094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
ARM GAS /tmp/ccpK4Ax4.s page 109
6095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
6096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
6100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
6103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag.
6104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
6106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration
6107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value
6108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
6109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
6110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
6111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
6113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a NACK is detected */
6115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK)
6116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
6118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */
6121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
6122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
6130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
6133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
6137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
6140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag.
6141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
6143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration
6144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value
6145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
6146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
6147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
6148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
6150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a NACK is detected */
ARM GAS /tmp/ccpK4Ax4.s page 110
6152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK)
6153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
6155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */
6158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
6165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
6168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
6171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
6174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag.
6175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
6177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration
6178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value
6179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
6180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
6181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
6182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)
6184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a NACK is detected */
6186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK)
6187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
6189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a STOPF is detected */
6192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET)
6193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if an RXNE is pending */
6195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */
6196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U))
6197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return HAL_OK */
6199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */
6200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
6201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
6203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */
6205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
6206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
6208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
ARM GAS /tmp/ccpK4Ax4.s page 111
6209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
6215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
6218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */
6222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
6228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
6231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
6234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
6237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles Acknowledge failed detection during an I2C Communication.
6238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
6240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration
6241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value
6242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status
6243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
6244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_
6245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
6247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOP Flag is reset */
6249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */
6250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
6251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */
6253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
6254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
6262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
6265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpK4Ax4.s page 112
6266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACKF Flag */
6270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */
6273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
6274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */
6276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
6279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
6280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */
6286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
6289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK;
6291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
6294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar
6295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle.
6296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed.
6297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed.
6298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter must be a value between 0 and 255.
6299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation.
6300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values:
6301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode .
6302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode.
6303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode.
6304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation.
6305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values:
6306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition.
6307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0).
6308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request.
6309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request.
6310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
6311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
6312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
6313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
66 .loc 1 6313 0
67 .cfi_startproc
68 @ args = 4, pretend = 0, frame = 0
69 @ frame_needed = 0, uses_anonymous_args = 0
70 .LVL1:
71 0000 F0B5 push {r4, r5, r6, r7, lr}
72 .LCFI0:
73 .cfi_def_cfa_offset 20
74 .cfi_offset 4, -20
ARM GAS /tmp/ccpK4Ax4.s page 113
75 .cfi_offset 5, -16
76 .cfi_offset 6, -12
77 .cfi_offset 7, -8
78 .cfi_offset 14, -4
79 0002 059C ldr r4, [sp, #20]
6314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
6315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
6316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode));
6317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request));
6318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* update CR2 register */
6320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEN
80 .loc 1 6320 0
81 0004 0568 ldr r5, [r0]
82 0006 6868 ldr r0, [r5, #4]
83 .LVL2:
84 0008 660D lsrs r6, r4, #21
85 000a 8027 movs r7, #128
86 000c FF00 lsls r7, r7, #3
87 000e 3740 ands r7, r6
88 0010 054E ldr r6, .L5
89 0012 3E43 orrs r6, r7
90 0014 B043 bics r0, r6
91 0016 8905 lsls r1, r1, #22
92 .LVL3:
93 0018 890D lsrs r1, r1, #22
94 001a 1204 lsls r2, r2, #16
95 .LVL4:
96 001c 1143 orrs r1, r2
97 001e 0B43 orrs r3, r1
98 .LVL5:
99 0020 2343 orrs r3, r4
100 0022 0343 orrs r3, r0
101 0024 6B60 str r3, [r5, #4]
6321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
6322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
102 .loc 1 6322 0
103 @ sp needed
104 0026 F0BD pop {r4, r5, r6, r7, pc}
105 .L6:
106 .align 2
107 .L5:
108 0028 FF63FF03 .word 67068927
109 .cfi_endproc
110 .LFE114:
112 .section .text.I2C_Enable_IRQ,"ax",%progbits
113 .align 1
114 .syntax unified
115 .code 16
116 .thumb_func
117 .fpu softvfp
119 I2C_Enable_IRQ:
120 .LFB115:
6323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
6325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts.
6326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
ARM GAS /tmp/ccpK4Ax4.s page 114
6327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
6328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
6329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
6330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
6331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
6332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
121 .loc 1 6332 0
122 .cfi_startproc
123 @ args = 0, pretend = 0, frame = 0
124 @ frame_needed = 0, uses_anonymous_args = 0
125 @ link register save eliminated.
126 .LVL6:
6333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpisr = 0U;
6334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferISR == I2C_Master_ISR_DMA) || \
127 .loc 1 6335 0
128 0000 436B ldr r3, [r0, #52]
129 0002 1C4A ldr r2, .L23
130 0004 9342 cmp r3, r2
131 0006 12D0 beq .L8
132 .loc 1 6335 0 is_stmt 0 discriminator 1
133 0008 1B4A ldr r2, .L23+4
134 000a 9342 cmp r3, r2
135 000c 0FD0 beq .L8
6336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
6337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
6339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
6341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
6342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_ERROR_IT) == I2C_XFER_ERROR_IT)
6345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
6347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
6348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_CPLT_IT) == I2C_XFER_CPLT_IT)
6351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupts */
6353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
6354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RELOAD_IT) == I2C_XFER_RELOAD_IT)
6357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */
6359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
6360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
6363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
136 .loc 1 6364 0 is_stmt 1
137 000e 4B07 lsls r3, r1, #29
138 0010 2AD4 bmi .L18
6333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpisr = 0U;
ARM GAS /tmp/ccpK4Ax4.s page 115
139 .loc 1 6333 0
140 0012 0023 movs r3, #0
141 .L14:
142 .LVL7:
6365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, and ADDR interrupts */
6367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
6368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
143 .loc 1 6370 0
144 0014 CA07 lsls r2, r1, #31
145 0016 01D5 bpl .L15
6371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
6373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI;
146 .loc 1 6373 0
147 0018 F222 movs r2, #242
148 001a 1343 orrs r3, r2
149 .LVL8:
150 .L15:
6374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
151 .loc 1 6376 0
152 001c 8A07 lsls r2, r1, #30
153 001e 25D4 bmi .L19
6377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
6379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI;
6380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((InterruptRequest & I2C_XFER_CPLT_IT) == I2C_XFER_CPLT_IT)
154 .loc 1 6382 0
155 0020 1222 movs r2, #18
156 0022 1140 ands r1, r2
157 .LVL9:
158 0024 1229 cmp r1, #18
159 0026 0FD1 bne .L13
6383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupts */
6385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
160 .loc 1 6385 0
161 0028 0E32 adds r2, r2, #14
162 002a 1343 orrs r3, r2
163 .LVL10:
164 002c 0CE0 b .L13
165 .LVL11:
166 .L8:
6338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
167 .loc 1 6338 0
168 002e 4B07 lsls r3, r1, #29
169 0030 0FD4 bmi .L17
6333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
170 .loc 1 6333 0
171 0032 0023 movs r3, #0
172 .L10:
ARM GAS /tmp/ccpK4Ax4.s page 116
173 .LVL12:
6344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
174 .loc 1 6344 0
175 0034 1122 movs r2, #17
176 0036 0A40 ands r2, r1
177 0038 112A cmp r2, #17
178 003a 0CD0 beq .L20
179 .L11:
180 003c 1222 movs r2, #18
181 003e 1140 ands r1, r2
182 .LVL13:
6350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
183 .loc 1 6350 0
184 0040 1229 cmp r1, #18
185 0042 0BD0 beq .L21
186 .L12:
6356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
187 .loc 1 6356 0
188 0044 1229 cmp r1, #18
189 0046 0CD0 beq .L22
190 .L13:
6386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable interrupts only at the end */
6390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */
6391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* all interrupts requested done */
6392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr);
191 .loc 1 6392 0
192 0048 0168 ldr r1, [r0]
193 004a 0A68 ldr r2, [r1]
194 004c 1343 orrs r3, r2
195 .LVL14:
196 004e 0B60 str r3, [r1]
6393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
197 .loc 1 6393 0
198 @ sp needed
199 0050 7047 bx lr
200 .LVL15:
201 .L17:
6341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
202 .loc 1 6341 0
203 0052 B823 movs r3, #184
204 0054 EEE7 b .L10
205 .LVL16:
206 .L20:
6347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
207 .loc 1 6347 0
208 0056 7F32 adds r2, r2, #127
209 0058 1343 orrs r3, r2
210 .LVL17:
211 005a EFE7 b .L11
212 .LVL18:
213 .L21:
6353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
214 .loc 1 6353 0
215 005c 0E32 adds r2, r2, #14
ARM GAS /tmp/ccpK4Ax4.s page 117
216 005e 1343 orrs r3, r2
217 .LVL19:
218 0060 F0E7 b .L12
219 .L22:
6359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
220 .loc 1 6359 0
221 0062 4022 movs r2, #64
222 0064 1343 orrs r3, r2
223 .LVL20:
224 0066 EFE7 b .L13
225 .LVL21:
226 .L18:
6367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
227 .loc 1 6367 0
228 0068 B823 movs r3, #184
229 006a D3E7 b .L14
230 .LVL22:
231 .L19:
6379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
232 .loc 1 6379 0
233 006c F422 movs r2, #244
234 006e 1343 orrs r3, r2
235 .LVL23:
236 0070 EAE7 b .L13
237 .L24:
238 0072 C046 .align 2
239 .L23:
240 0074 00000000 .word I2C_Master_ISR_DMA
241 0078 00000000 .word I2C_Slave_ISR_DMA
242 .cfi_endproc
243 .LFE115:
245 .section .text.I2C_Disable_IRQ,"ax",%progbits
246 .align 1
247 .syntax unified
248 .code 16
249 .thumb_func
250 .fpu softvfp
252 I2C_Disable_IRQ:
253 .LFB116:
6394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
6396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts.
6397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C.
6399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
6400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
6401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
6402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
6403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
254 .loc 1 6403 0
255 .cfi_startproc
256 @ args = 0, pretend = 0, frame = 0
257 @ frame_needed = 0, uses_anonymous_args = 0
258 .LVL24:
259 0000 30B5 push {r4, r5, lr}
260 .LCFI1:
261 .cfi_def_cfa_offset 12
ARM GAS /tmp/ccpK4Ax4.s page 118
262 .cfi_offset 4, -12
263 .cfi_offset 5, -8
264 .cfi_offset 14, -4
265 .LVL25:
6404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpisr = 0U;
6405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
266 .loc 1 6406 0
267 0002 CB07 lsls r3, r1, #31
268 0004 09D5 bpl .L32
269 .LVL26:
6407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable TC and TXI interrupts */
6409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI;
6410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN)
270 .loc 1 6411 0
271 0006 4123 movs r3, #65
272 0008 C35C ldrb r3, [r0, r3]
273 000a 2822 movs r2, #40
274 000c 1340 ands r3, r2
275 000e 282B cmp r3, #40
276 0010 01D0 beq .L35
6412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
6414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
277 .loc 1 6414 0
278 0012 F223 movs r3, #242
279 0014 02E0 b .L26
280 .L35:
6409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
281 .loc 1 6409 0
282 0016 1A33 adds r3, r3, #26
283 0018 00E0 b .L26
284 .LVL27:
285 .L32:
6404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
286 .loc 1 6404 0
287 001a 0023 movs r3, #0
288 .LVL28:
289 .L26:
6415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
290 .loc 1 6418 0
291 001c 8A07 lsls r2, r1, #30
292 001e 09D5 bpl .L27
6419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable TC and RXI interrupts */
6421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI;
293 .loc 1 6421 0
294 0020 4424 movs r4, #68
295 0022 1C43 orrs r4, r3
296 .LVL29:
6422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN)
ARM GAS /tmp/ccpK4Ax4.s page 119
297 .loc 1 6423 0
298 0024 4122 movs r2, #65
299 0026 825C ldrb r2, [r0, r2]
300 0028 2825 movs r5, #40
301 002a 2A40 ands r2, r5
302 002c 282A cmp r2, #40
303 002e 14D0 beq .L34
6424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
6426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
304 .loc 1 6426 0
305 0030 F422 movs r2, #244
306 0032 1343 orrs r3, r2
307 .LVL30:
308 .L27:
6427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
309 .loc 1 6430 0
310 0034 4A07 lsls r2, r1, #29
311 0036 01D5 bpl .L28
6431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */
6433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
312 .loc 1 6433 0
313 0038 B822 movs r2, #184
314 003a 1343 orrs r3, r2
315 .LVL31:
316 .L28:
6434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_ERROR_IT) == I2C_XFER_ERROR_IT)
317 .loc 1 6436 0
318 003c 1122 movs r2, #17
319 003e 0A40 ands r2, r1
320 0040 112A cmp r2, #17
321 0042 0CD0 beq .L36
322 .L29:
323 0044 1222 movs r2, #18
324 0046 1140 ands r1, r2
325 .LVL32:
6437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
6439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
6440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_CPLT_IT) == I2C_XFER_CPLT_IT)
326 .loc 1 6442 0
327 0048 1229 cmp r1, #18
328 004a 0BD0 beq .L37
329 .L30:
6443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupts */
6445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
6446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 120
6448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RELOAD_IT) == I2C_XFER_RELOAD_IT)
330 .loc 1 6448 0
331 004c 1229 cmp r1, #18
332 004e 0CD0 beq .L38
333 .L31:
6449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */
6451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
6452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable interrupts only at the end */
6455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */
6456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* all disable interrupts request are not done */
6457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr);
334 .loc 1 6457 0
335 0050 0168 ldr r1, [r0]
336 0052 0A68 ldr r2, [r1]
337 0054 9A43 bics r2, r3
338 0056 0A60 str r2, [r1]
6458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
339 .loc 1 6458 0
340 @ sp needed
341 0058 30BD pop {r4, r5, pc}
342 .LVL33:
343 .L34:
6421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
344 .loc 1 6421 0
345 005a 2300 movs r3, r4
346 005c EAE7 b .L27
347 .LVL34:
348 .L36:
6439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
349 .loc 1 6439 0
350 005e 7F32 adds r2, r2, #127
351 0060 1343 orrs r3, r2
352 .LVL35:
353 0062 EFE7 b .L29
354 .LVL36:
355 .L37:
6445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
356 .loc 1 6445 0
357 0064 0E32 adds r2, r2, #14
358 0066 1343 orrs r3, r2
359 .LVL37:
360 0068 F0E7 b .L30
361 .L38:
6451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
362 .loc 1 6451 0
363 006a 4022 movs r2, #64
364 006c 1343 orrs r3, r2
365 .LVL38:
366 006e EFE7 b .L31
367 .cfi_endproc
368 .LFE116:
370 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits
371 .align 1
372 .syntax unified
ARM GAS /tmp/ccpK4Ax4.s page 121
373 .code 16
374 .thumb_func
375 .fpu softvfp
377 I2C_ConvertOtherXferOptions:
378 .LFB117:
6459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
6461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functionnal XferOptions.
6462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle.
6463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None
6464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */
6465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c)
6466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
379 .loc 1 6466 0
380 .cfi_startproc
381 @ args = 0, pretend = 0, frame = 0
382 @ frame_needed = 0, uses_anonymous_args = 0
383 @ link register save eliminated.
384 .LVL39:
6467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */
6468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
6469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */
6470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME)
385 .loc 1 6470 0
386 0000 C36A ldr r3, [r0, #44]
387 0002 AA2B cmp r3, #170
388 0004 05D0 beq .L42
6471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME;
6473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */
6475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
6476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */
6477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */
6478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME)
389 .loc 1 6478 0
390 0006 C26A ldr r2, [r0, #44]
391 0008 AA23 movs r3, #170
392 000a 1B02 lsls r3, r3, #8
393 000c 9A42 cmp r2, r3
394 000e 03D0 beq .L43
395 .L39:
6479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME;
6481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else
6483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */
6485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
396 .loc 1 6486 0
397 @ sp needed
398 0010 7047 bx lr
399 .L42:
6472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
400 .loc 1 6472 0
401 0012 0023 movs r3, #0
ARM GAS /tmp/ccpK4Ax4.s page 122
402 0014 C362 str r3, [r0, #44]
403 0016 FBE7 b .L39
404 .L43:
6480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
405 .loc 1 6480 0
406 0018 8023 movs r3, #128
407 001a 9B04 lsls r3, r3, #18
408 001c C362 str r3, [r0, #44]
409 .loc 1 6486 0
410 001e F7E7 b .L39
411 .cfi_endproc
412 .LFE117:
414 .section .text.I2C_IsAcknowledgeFailed,"ax",%progbits
415 .align 1
416 .syntax unified
417 .code 16
418 .thumb_func
419 .fpu softvfp
421 I2C_IsAcknowledgeFailed:
422 .LFB113:
6245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
423 .loc 1 6245 0
424 .cfi_startproc
425 @ args = 0, pretend = 0, frame = 0
426 @ frame_needed = 0, uses_anonymous_args = 0
427 .LVL40:
428 0000 70B5 push {r4, r5, r6, lr}
429 .LCFI2:
430 .cfi_def_cfa_offset 16
431 .cfi_offset 4, -16
432 .cfi_offset 5, -12
433 .cfi_offset 6, -8
434 .cfi_offset 14, -4
435 0002 0400 movs r4, r0
436 0004 0E00 movs r6, r1
437 0006 1500 movs r5, r2
6246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
438 .loc 1 6246 0
439 0008 0368 ldr r3, [r0]
440 000a 9B69 ldr r3, [r3, #24]
441 000c DB06 lsls r3, r3, #27
442 000e 19D5 bpl .L50
443 .LVL41:
444 .L47:
6250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
445 .loc 1 6250 0
446 0010 2368 ldr r3, [r4]
447 0012 9A69 ldr r2, [r3, #24]
448 0014 9206 lsls r2, r2, #26
449 0016 17D4 bmi .L51
6253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
450 .loc 1 6253 0
451 0018 731C adds r3, r6, #1
452 001a F9D0 beq .L47
6255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
453 .loc 1 6255 0
454 001c FFF7FEFF bl HAL_GetTick
ARM GAS /tmp/ccpK4Ax4.s page 123
455 .LVL42:
456 0020 401B subs r0, r0, r5
457 0022 B042 cmp r0, r6
458 0024 01D8 bhi .L48
6255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
459 .loc 1 6255 0 is_stmt 0 discriminator 1
460 0026 002E cmp r6, #0
461 0028 F2D1 bne .L47
462 .L48:
6257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
463 .loc 1 6257 0 is_stmt 1
464 002a 636C ldr r3, [r4, #68]
465 002c 2022 movs r2, #32
466 002e 1343 orrs r3, r2
467 0030 6364 str r3, [r4, #68]
6258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
468 .loc 1 6258 0
469 0032 4123 movs r3, #65
470 0034 E254 strb r2, [r4, r3]
6259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
471 .loc 1 6259 0
472 0036 0023 movs r3, #0
473 0038 2232 adds r2, r2, #34
474 003a A354 strb r3, [r4, r2]
6262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
475 .loc 1 6262 0
476 003c 023A subs r2, r2, #2
477 003e A354 strb r3, [r4, r2]
6264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
478 .loc 1 6264 0
479 0040 0120 movs r0, #1
480 0042 1AE0 b .L46
481 .LVL43:
482 .L50:
6290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
483 .loc 1 6290 0
484 0044 0020 movs r0, #0
485 .LVL44:
486 0046 18E0 b .L46
487 .LVL45:
488 .L51:
6270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
489 .loc 1 6270 0
490 0048 1022 movs r2, #16
491 004a DA61 str r2, [r3, #28]
6273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
492 .loc 1 6273 0
493 004c 2368 ldr r3, [r4]
494 004e 2025 movs r5, #32
495 .LVL46:
496 0050 DD61 str r5, [r3, #28]
6276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
497 .loc 1 6276 0
498 0052 2000 movs r0, r4
499 0054 FFF7FEFF bl I2C_Flush_TXDR
500 .LVL47:
6279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 124
501 .loc 1 6279 0
502 0058 2268 ldr r2, [r4]
503 005a 5368 ldr r3, [r2, #4]
504 005c 0749 ldr r1, .L52
505 005e 0B40 ands r3, r1
506 0060 5360 str r3, [r2, #4]
6281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
507 .loc 1 6281 0
508 0062 636C ldr r3, [r4, #68]
509 0064 0422 movs r2, #4
510 0066 1343 orrs r3, r2
511 0068 6364 str r3, [r4, #68]
6282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
512 .loc 1 6282 0
513 006a 4123 movs r3, #65
514 006c E554 strb r5, [r4, r3]
6283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
515 .loc 1 6283 0
516 006e 0023 movs r3, #0
517 0070 3E32 adds r2, r2, #62
518 0072 A354 strb r3, [r4, r2]
6286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
519 .loc 1 6286 0
520 0074 023A subs r2, r2, #2
521 0076 A354 strb r3, [r4, r2]
6288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
522 .loc 1 6288 0
523 0078 0120 movs r0, #1
524 .L46:
6291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
525 .loc 1 6291 0
526 @ sp needed
527 .LVL48:
528 .LVL49:
529 007a 70BD pop {r4, r5, r6, pc}
530 .L53:
531 .align 2
532 .L52:
533 007c 00E800FE .word -33495040
534 .cfi_endproc
535 .LFE113:
537 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits
538 .align 1
539 .syntax unified
540 .code 16
541 .thumb_func
542 .fpu softvfp
544 I2C_WaitOnTXISFlagUntilTimeout:
545 .LFB110:
6111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
546 .loc 1 6111 0
547 .cfi_startproc
548 @ args = 0, pretend = 0, frame = 0
549 @ frame_needed = 0, uses_anonymous_args = 0
550 .LVL50:
551 0000 70B5 push {r4, r5, r6, lr}
552 .LCFI3:
ARM GAS /tmp/ccpK4Ax4.s page 125
553 .cfi_def_cfa_offset 16
554 .cfi_offset 4, -16
555 .cfi_offset 5, -12
556 .cfi_offset 6, -8
557 .cfi_offset 14, -4
558 0002 0400 movs r4, r0
559 0004 0D00 movs r5, r1
560 0006 1600 movs r6, r2
561 .LVL51:
562 .L57:
6112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
563 .loc 1 6112 0
564 0008 2368 ldr r3, [r4]
565 000a 9B69 ldr r3, [r3, #24]
566 000c 9B07 lsls r3, r3, #30
567 000e 1CD4 bmi .L61
6115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
568 .loc 1 6115 0
569 0010 3200 movs r2, r6
570 0012 2900 movs r1, r5
571 0014 2000 movs r0, r4
572 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed
573 .LVL52:
574 001a 0028 cmp r0, #0
575 001c 17D1 bne .L60
6121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
576 .loc 1 6121 0
577 001e 6B1C adds r3, r5, #1
578 0020 F2D0 beq .L57
6123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
579 .loc 1 6123 0
580 0022 FFF7FEFF bl HAL_GetTick
581 .LVL53:
582 0026 801B subs r0, r0, r6
583 0028 A842 cmp r0, r5
584 002a 01D8 bhi .L58
6123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
585 .loc 1 6123 0 is_stmt 0 discriminator 1
586 002c 002D cmp r5, #0
587 002e EBD1 bne .L57
588 .L58:
6125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
589 .loc 1 6125 0 is_stmt 1
590 0030 636C ldr r3, [r4, #68]
591 0032 2022 movs r2, #32
592 0034 1343 orrs r3, r2
593 0036 6364 str r3, [r4, #68]
6126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
594 .loc 1 6126 0
595 0038 4123 movs r3, #65
596 003a E254 strb r2, [r4, r3]
6127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
597 .loc 1 6127 0
598 003c 0023 movs r3, #0
599 003e 2232 adds r2, r2, #34
600 0040 A354 strb r3, [r4, r2]
6130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 126
601 .loc 1 6130 0
602 0042 023A subs r2, r2, #2
603 0044 A354 strb r3, [r4, r2]
6132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
604 .loc 1 6132 0
605 0046 0120 movs r0, #1
606 0048 00E0 b .L56
607 .L61:
6136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
608 .loc 1 6136 0
609 004a 0020 movs r0, #0
610 .L56:
6137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
611 .loc 1 6137 0
612 @ sp needed
613 .LVL54:
614 .LVL55:
615 .LVL56:
616 004c 70BD pop {r4, r5, r6, pc}
617 .LVL57:
618 .L60:
6117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
619 .loc 1 6117 0
620 004e 0120 movs r0, #1
621 0050 FCE7 b .L56
622 .cfi_endproc
623 .LFE110:
625 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits
626 .align 1
627 .syntax unified
628 .code 16
629 .thumb_func
630 .fpu softvfp
632 I2C_WaitOnFlagUntilTimeout:
633 .LFB109:
6081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
634 .loc 1 6081 0
635 .cfi_startproc
636 @ args = 4, pretend = 0, frame = 0
637 @ frame_needed = 0, uses_anonymous_args = 0
638 .LVL58:
639 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
640 .LCFI4:
641 .cfi_def_cfa_offset 24
642 .cfi_offset 3, -24
643 .cfi_offset 4, -20
644 .cfi_offset 5, -16
645 .cfi_offset 6, -12
646 .cfi_offset 7, -8
647 .cfi_offset 14, -4
648 0002 0600 movs r6, r0
649 0004 0C00 movs r4, r1
650 0006 1700 movs r7, r2
651 0008 1D00 movs r5, r3
652 .LVL59:
653 .L64:
6082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 127
654 .loc 1 6082 0
655 000a 3368 ldr r3, [r6]
656 000c 9B69 ldr r3, [r3, #24]
657 000e 2340 ands r3, r4
658 0010 1B1B subs r3, r3, r4
659 0012 5A42 rsbs r2, r3, #0
660 0014 5341 adcs r3, r3, r2
661 0016 BB42 cmp r3, r7
662 0018 16D1 bne .L68
6085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
663 .loc 1 6085 0
664 001a 6B1C adds r3, r5, #1
665 001c F5D0 beq .L64
6087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
666 .loc 1 6087 0
667 001e FFF7FEFF bl HAL_GetTick
668 .LVL60:
669 0022 069B ldr r3, [sp, #24]
670 0024 C01A subs r0, r0, r3
671 0026 A842 cmp r0, r5
672 0028 01D8 bhi .L65
6087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
673 .loc 1 6087 0 is_stmt 0 discriminator 1
674 002a 002D cmp r5, #0
675 002c EDD1 bne .L64
676 .L65:
6089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
677 .loc 1 6089 0 is_stmt 1
678 002e 736C ldr r3, [r6, #68]
679 0030 2022 movs r2, #32
680 0032 1343 orrs r3, r2
681 0034 7364 str r3, [r6, #68]
6090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
682 .loc 1 6090 0
683 0036 4123 movs r3, #65
684 0038 F254 strb r2, [r6, r3]
6091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
685 .loc 1 6091 0
686 003a 0023 movs r3, #0
687 003c 2232 adds r2, r2, #34
688 003e B354 strb r3, [r6, r2]
6094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
689 .loc 1 6094 0
690 0040 023A subs r2, r2, #2
691 0042 B354 strb r3, [r6, r2]
6095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
692 .loc 1 6095 0
693 0044 0120 movs r0, #1
694 0046 00E0 b .L66
695 .L68:
6099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
696 .loc 1 6099 0
697 0048 0020 movs r0, #0
698 .L66:
6100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
699 .loc 1 6100 0
700 @ sp needed
ARM GAS /tmp/ccpK4Ax4.s page 128
701 .LVL61:
702 .LVL62:
703 .LVL63:
704 004a F8BD pop {r3, r4, r5, r6, r7, pc}
705 .cfi_endproc
706 .LFE109:
708 .section .text.I2C_RequestMemoryWrite,"ax",%progbits
709 .align 1
710 .syntax unified
711 .code 16
712 .thumb_func
713 .fpu softvfp
715 I2C_RequestMemoryWrite:
716 .LFB93:
5123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
717 .loc 1 5123 0
718 .cfi_startproc
719 @ args = 8, pretend = 0, frame = 0
720 @ frame_needed = 0, uses_anonymous_args = 0
721 .LVL64:
722 0000 70B5 push {r4, r5, r6, lr}
723 .LCFI5:
724 .cfi_def_cfa_offset 16
725 .cfi_offset 4, -16
726 .cfi_offset 5, -12
727 .cfi_offset 6, -8
728 .cfi_offset 14, -4
729 0002 82B0 sub sp, sp, #8
730 .LCFI6:
731 .cfi_def_cfa_offset 24
732 0004 0400 movs r4, r0
733 0006 1600 movs r6, r2
734 0008 1D00 movs r5, r3
5124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
735 .loc 1 5124 0
736 000a 8023 movs r3, #128
737 .LVL65:
738 000c EAB2 uxtb r2, r5
739 .LVL66:
740 000e 1848 ldr r0, .L75
741 .LVL67:
742 0010 0090 str r0, [sp]
743 0012 5B04 lsls r3, r3, #17
744 0014 2000 movs r0, r4
745 0016 FFF7FEFF bl I2C_TransferConfig
746 .LVL68:
5127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
747 .loc 1 5127 0
748 001a 079A ldr r2, [sp, #28]
749 001c 0699 ldr r1, [sp, #24]
750 001e 2000 movs r0, r4
751 0020 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
752 .LVL69:
753 0024 0028 cmp r0, #0
754 0026 1ED1 bne .L73
5133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
755 .loc 1 5133 0
ARM GAS /tmp/ccpK4Ax4.s page 129
756 0028 012D cmp r5, #1
757 002a 0ED1 bne .L71
5136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
758 .loc 1 5136 0
759 002c 2368 ldr r3, [r4]
760 002e F6B2 uxtb r6, r6
761 0030 9E62 str r6, [r3, #40]
762 .L72:
5155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
763 .loc 1 5155 0
764 0032 079B ldr r3, [sp, #28]
765 0034 0093 str r3, [sp]
766 0036 069B ldr r3, [sp, #24]
767 0038 0022 movs r2, #0
768 003a 8021 movs r1, #128
769 003c 2000 movs r0, r4
770 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
771 .LVL70:
772 0042 0028 cmp r0, #0
773 0044 10D0 beq .L70
5157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
774 .loc 1 5157 0
775 0046 0120 movs r0, #1
776 0048 0EE0 b .L70
777 .L71:
5142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
778 .loc 1 5142 0
779 004a 2368 ldr r3, [r4]
780 004c 320A lsrs r2, r6, #8
781 004e 9A62 str r2, [r3, #40]
5145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
782 .loc 1 5145 0
783 0050 079A ldr r2, [sp, #28]
784 0052 0699 ldr r1, [sp, #24]
785 0054 2000 movs r0, r4
786 0056 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
787 .LVL71:
788 005a 0028 cmp r0, #0
789 005c 06D1 bne .L74
5151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
790 .loc 1 5151 0
791 005e 2368 ldr r3, [r4]
792 0060 F6B2 uxtb r6, r6
793 0062 9E62 str r6, [r3, #40]
794 0064 E5E7 b .L72
795 .L73:
5129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
796 .loc 1 5129 0
797 0066 0120 movs r0, #1
798 .L70:
5161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
799 .loc 1 5161 0
800 0068 02B0 add sp, sp, #8
801 @ sp needed
802 .LVL72:
803 006a 70BD pop {r4, r5, r6, pc}
804 .LVL73:
ARM GAS /tmp/ccpK4Ax4.s page 130
805 .L74:
5147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
806 .loc 1 5147 0
807 006c 0120 movs r0, #1
808 006e FBE7 b .L70
809 .L76:
810 .align 2
811 .L75:
812 0070 00200080 .word -2147475456
813 .cfi_endproc
814 .LFE93:
816 .section .text.I2C_RequestMemoryRead,"ax",%progbits
817 .align 1
818 .syntax unified
819 .code 16
820 .thumb_func
821 .fpu softvfp
823 I2C_RequestMemoryRead:
824 .LFB94:
5176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
825 .loc 1 5176 0
826 .cfi_startproc
827 @ args = 8, pretend = 0, frame = 0
828 @ frame_needed = 0, uses_anonymous_args = 0
829 .LVL74:
830 0000 70B5 push {r4, r5, r6, lr}
831 .LCFI7:
832 .cfi_def_cfa_offset 16
833 .cfi_offset 4, -16
834 .cfi_offset 5, -12
835 .cfi_offset 6, -8
836 .cfi_offset 14, -4
837 0002 82B0 sub sp, sp, #8
838 .LCFI8:
839 .cfi_def_cfa_offset 24
840 0004 0400 movs r4, r0
841 0006 1600 movs r6, r2
842 0008 1D00 movs r5, r3
5177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
843 .loc 1 5177 0
844 000a DAB2 uxtb r2, r3
845 .LVL75:
846 000c 174B ldr r3, .L83
847 .LVL76:
848 000e 0093 str r3, [sp]
849 0010 0023 movs r3, #0
850 0012 FFF7FEFF bl I2C_TransferConfig
851 .LVL77:
5180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
852 .loc 1 5180 0
853 0016 079A ldr r2, [sp, #28]
854 0018 0699 ldr r1, [sp, #24]
855 001a 2000 movs r0, r4
856 001c FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
857 .LVL78:
858 0020 0028 cmp r0, #0
859 0022 1ED1 bne .L81
ARM GAS /tmp/ccpK4Ax4.s page 131
5186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
860 .loc 1 5186 0
861 0024 012D cmp r5, #1
862 0026 0ED1 bne .L79
5189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
863 .loc 1 5189 0
864 0028 2368 ldr r3, [r4]
865 002a F6B2 uxtb r6, r6
866 002c 9E62 str r6, [r3, #40]
867 .L80:
5208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
868 .loc 1 5208 0
869 002e 079B ldr r3, [sp, #28]
870 0030 0093 str r3, [sp]
871 0032 069B ldr r3, [sp, #24]
872 0034 0022 movs r2, #0
873 0036 4021 movs r1, #64
874 0038 2000 movs r0, r4
875 003a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
876 .LVL79:
877 003e 0028 cmp r0, #0
878 0040 10D0 beq .L78
5210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
879 .loc 1 5210 0
880 0042 0120 movs r0, #1
881 0044 0EE0 b .L78
882 .L79:
5195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
883 .loc 1 5195 0
884 0046 2368 ldr r3, [r4]
885 0048 320A lsrs r2, r6, #8
886 004a 9A62 str r2, [r3, #40]
5198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
887 .loc 1 5198 0
888 004c 079A ldr r2, [sp, #28]
889 004e 0699 ldr r1, [sp, #24]
890 0050 2000 movs r0, r4
891 0052 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
892 .LVL80:
893 0056 0028 cmp r0, #0
894 0058 06D1 bne .L82
5204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
895 .loc 1 5204 0
896 005a 2368 ldr r3, [r4]
897 005c F6B2 uxtb r6, r6
898 005e 9E62 str r6, [r3, #40]
899 0060 E5E7 b .L80
900 .L81:
5182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
901 .loc 1 5182 0
902 0062 0120 movs r0, #1
903 .L78:
5214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
904 .loc 1 5214 0
905 0064 02B0 add sp, sp, #8
906 @ sp needed
907 .LVL81:
ARM GAS /tmp/ccpK4Ax4.s page 132
908 0066 70BD pop {r4, r5, r6, pc}
909 .LVL82:
910 .L82:
5200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
911 .loc 1 5200 0
912 0068 0120 movs r0, #1
913 006a FBE7 b .L78
914 .L84:
915 .align 2
916 .L83:
917 006c 00200080 .word -2147475456
918 .cfi_endproc
919 .LFE94:
921 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits
922 .align 1
923 .syntax unified
924 .code 16
925 .thumb_func
926 .fpu softvfp
928 I2C_WaitOnSTOPFlagUntilTimeout:
929 .LFB111:
6148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
930 .loc 1 6148 0
931 .cfi_startproc
932 @ args = 0, pretend = 0, frame = 0
933 @ frame_needed = 0, uses_anonymous_args = 0
934 .LVL83:
935 0000 70B5 push {r4, r5, r6, lr}
936 .LCFI9:
937 .cfi_def_cfa_offset 16
938 .cfi_offset 4, -16
939 .cfi_offset 5, -12
940 .cfi_offset 6, -8
941 .cfi_offset 14, -4
942 0002 0500 movs r5, r0
943 0004 0C00 movs r4, r1
944 0006 1600 movs r6, r2
945 .LVL84:
946 .L86:
6149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
947 .loc 1 6149 0
948 0008 2B68 ldr r3, [r5]
949 000a 9B69 ldr r3, [r3, #24]
950 000c 9B06 lsls r3, r3, #26
951 000e 1AD4 bmi .L91
6152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
952 .loc 1 6152 0
953 0010 3200 movs r2, r6
954 0012 2100 movs r1, r4
955 0014 2800 movs r0, r5
956 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed
957 .LVL85:
958 001a 0028 cmp r0, #0
959 001c 15D1 bne .L90
6158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
960 .loc 1 6158 0
961 001e FFF7FEFF bl HAL_GetTick
ARM GAS /tmp/ccpK4Ax4.s page 133
962 .LVL86:
963 0022 801B subs r0, r0, r6
964 0024 A042 cmp r0, r4
965 0026 01D8 bhi .L88
6158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
966 .loc 1 6158 0 is_stmt 0 discriminator 1
967 0028 002C cmp r4, #0
968 002a EDD1 bne .L86
969 .L88:
6160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
970 .loc 1 6160 0 is_stmt 1
971 002c 6B6C ldr r3, [r5, #68]
972 002e 2022 movs r2, #32
973 0030 1343 orrs r3, r2
974 0032 6B64 str r3, [r5, #68]
6161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
975 .loc 1 6161 0
976 0034 4123 movs r3, #65
977 0036 EA54 strb r2, [r5, r3]
6162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
978 .loc 1 6162 0
979 0038 0023 movs r3, #0
980 003a 2232 adds r2, r2, #34
981 003c AB54 strb r3, [r5, r2]
6165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
982 .loc 1 6165 0
983 003e 023A subs r2, r2, #2
984 0040 AB54 strb r3, [r5, r2]
6167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
985 .loc 1 6167 0
986 0042 0120 movs r0, #1
987 .L87:
6171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
988 .loc 1 6171 0
989 @ sp needed
990 .LVL87:
991 .LVL88:
992 .LVL89:
993 0044 70BD pop {r4, r5, r6, pc}
994 .LVL90:
995 .L91:
6170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
996 .loc 1 6170 0
997 0046 0020 movs r0, #0
998 0048 FCE7 b .L87
999 .L90:
6154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1000 .loc 1 6154 0
1001 004a 0120 movs r0, #1
1002 004c FAE7 b .L87
1003 .cfi_endproc
1004 .LFE111:
1006 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits
1007 .align 1
1008 .syntax unified
1009 .code 16
1010 .thumb_func
ARM GAS /tmp/ccpK4Ax4.s page 134
1011 .fpu softvfp
1013 I2C_WaitOnRXNEFlagUntilTimeout:
1014 .LFB112:
6182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)
1015 .loc 1 6182 0
1016 .cfi_startproc
1017 @ args = 0, pretend = 0, frame = 0
1018 @ frame_needed = 0, uses_anonymous_args = 0
1019 .LVL91:
1020 0000 70B5 push {r4, r5, r6, lr}
1021 .LCFI10:
1022 .cfi_def_cfa_offset 16
1023 .cfi_offset 4, -16
1024 .cfi_offset 5, -12
1025 .cfi_offset 6, -8
1026 .cfi_offset 14, -4
1027 0002 0400 movs r4, r0
1028 0004 0D00 movs r5, r1
1029 0006 1600 movs r6, r2
1030 .LVL92:
1031 .L93:
6183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1032 .loc 1 6183 0
1033 0008 2368 ldr r3, [r4]
1034 000a 9B69 ldr r3, [r3, #24]
1035 000c 5B07 lsls r3, r3, #29
1036 000e 33D4 bmi .L100
6186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1037 .loc 1 6186 0
1038 0010 3200 movs r2, r6
1039 0012 2900 movs r1, r5
1040 0014 2000 movs r0, r4
1041 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed
1042 .LVL93:
1043 001a 0028 cmp r0, #0
1044 001c 2ED1 bne .L99
6192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1045 .loc 1 6192 0
1046 001e 2368 ldr r3, [r4]
1047 0020 9A69 ldr r2, [r3, #24]
1048 0022 9206 lsls r2, r2, #26
1049 0024 11D4 bmi .L101
6222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1050 .loc 1 6222 0
1051 0026 FFF7FEFF bl HAL_GetTick
1052 .LVL94:
1053 002a 801B subs r0, r0, r6
1054 002c A842 cmp r0, r5
1055 002e 01D8 bhi .L97
6222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1056 .loc 1 6222 0 is_stmt 0 discriminator 1
1057 0030 002D cmp r5, #0
1058 0032 E9D1 bne .L93
1059 .L97:
6224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1060 .loc 1 6224 0 is_stmt 1
1061 0034 636C ldr r3, [r4, #68]
ARM GAS /tmp/ccpK4Ax4.s page 135
1062 0036 2022 movs r2, #32
1063 0038 1343 orrs r3, r2
1064 003a 6364 str r3, [r4, #68]
6225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1065 .loc 1 6225 0
1066 003c 4123 movs r3, #65
1067 003e E254 strb r2, [r4, r3]
6228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1068 .loc 1 6228 0
1069 0040 013B subs r3, r3, #1
1070 0042 0022 movs r2, #0
1071 0044 E254 strb r2, [r4, r3]
6230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1072 .loc 1 6230 0
1073 0046 0120 movs r0, #1
1074 .L94:
6234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1075 .loc 1 6234 0
1076 @ sp needed
1077 .LVL95:
1078 .LVL96:
1079 .LVL97:
1080 0048 70BD pop {r4, r5, r6, pc}
1081 .LVL98:
1082 .L101:
6196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1083 .loc 1 6196 0
1084 004a 9A69 ldr r2, [r3, #24]
1085 004c 5207 lsls r2, r2, #29
1086 004e 02D5 bpl .L96
6196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1087 .loc 1 6196 0 is_stmt 0 discriminator 1
1088 0050 228D ldrh r2, [r4, #40]
1089 0052 002A cmp r2, #0
1090 0054 F8D1 bne .L94
1091 .L96:
6205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1092 .loc 1 6205 0 is_stmt 1
1093 0056 2022 movs r2, #32
1094 0058 DA61 str r2, [r3, #28]
6208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1095 .loc 1 6208 0
1096 005a 2168 ldr r1, [r4]
1097 005c 4B68 ldr r3, [r1, #4]
1098 005e 0848 ldr r0, .L102
1099 0060 0340 ands r3, r0
1100 0062 4B60 str r3, [r1, #4]
6210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1101 .loc 1 6210 0
1102 0064 0023 movs r3, #0
1103 0066 6364 str r3, [r4, #68]
6211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1104 .loc 1 6211 0
1105 0068 4121 movs r1, #65
1106 006a 6254 strb r2, [r4, r1]
6212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1107 .loc 1 6212 0
ARM GAS /tmp/ccpK4Ax4.s page 136
1108 006c 2232 adds r2, r2, #34
1109 006e A354 strb r3, [r4, r2]
6215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1110 .loc 1 6215 0
1111 0070 023A subs r2, r2, #2
1112 0072 A354 strb r3, [r4, r2]
6217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1113 .loc 1 6217 0
1114 0074 0120 movs r0, #1
1115 0076 E7E7 b .L94
1116 .L100:
6233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1117 .loc 1 6233 0
1118 0078 0020 movs r0, #0
1119 007a E5E7 b .L94
1120 .L99:
6188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1121 .loc 1 6188 0
1122 007c 0120 movs r0, #1
1123 007e E3E7 b .L94
1124 .L103:
1125 .align 2
1126 .L102:
1127 0080 00E800FE .word -33495040
1128 .cfi_endproc
1129 .LFE112:
1131 .section .text.HAL_I2C_MspInit,"ax",%progbits
1132 .align 1
1133 .weak HAL_I2C_MspInit
1134 .syntax unified
1135 .code 16
1136 .thumb_func
1137 .fpu softvfp
1139 HAL_I2C_MspInit:
1140 .LFB42:
625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
1141 .loc 1 625 0
1142 .cfi_startproc
1143 @ args = 0, pretend = 0, frame = 0
1144 @ frame_needed = 0, uses_anonymous_args = 0
1145 @ link register save eliminated.
1146 .LVL99:
632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1147 .loc 1 632 0
1148 @ sp needed
1149 0000 7047 bx lr
1150 .cfi_endproc
1151 .LFE42:
1153 .section .text.HAL_I2C_Init,"ax",%progbits
1154 .align 1
1155 .global HAL_I2C_Init
1156 .syntax unified
1157 .code 16
1158 .thumb_func
1159 .fpu softvfp
1161 HAL_I2C_Init:
1162 .LFB40:
ARM GAS /tmp/ccpK4Ax4.s page 137
470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */
1163 .loc 1 470 0
1164 .cfi_startproc
1165 @ args = 0, pretend = 0, frame = 0
1166 @ frame_needed = 0, uses_anonymous_args = 0
1167 .LVL100:
1168 0000 10B5 push {r4, lr}
1169 .LCFI11:
1170 .cfi_def_cfa_offset 8
1171 .cfi_offset 4, -8
1172 .cfi_offset 14, -4
1173 0002 041E subs r4, r0, #0
472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1174 .loc 1 472 0
1175 0004 59D0 beq .L111
487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1176 .loc 1 487 0
1177 0006 4123 movs r3, #65
1178 0008 C35C ldrb r3, [r0, r3]
1179 000a 002B cmp r3, #0
1180 000c 43D0 beq .L112
1181 .LVL101:
1182 .L107:
518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1183 .loc 1 518 0
1184 000e 4123 movs r3, #65
1185 0010 2422 movs r2, #36
1186 0012 E254 strb r2, [r4, r3]
521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1187 .loc 1 521 0
1188 0014 2268 ldr r2, [r4]
1189 0016 1368 ldr r3, [r2]
1190 0018 0121 movs r1, #1
1191 001a 8B43 bics r3, r1
1192 001c 1360 str r3, [r2]
525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1193 .loc 1 525 0
1194 001e 2268 ldr r2, [r4]
1195 0020 274B ldr r3, .L115
1196 0022 6168 ldr r1, [r4, #4]
1197 0024 0B40 ands r3, r1
1198 0026 1361 str r3, [r2, #16]
529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1199 .loc 1 529 0
1200 0028 2268 ldr r2, [r4]
1201 002a 9368 ldr r3, [r2, #8]
1202 002c 2549 ldr r1, .L115+4
1203 002e 0B40 ands r3, r1
1204 0030 9360 str r3, [r2, #8]
532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1205 .loc 1 532 0
1206 0032 E368 ldr r3, [r4, #12]
1207 0034 012B cmp r3, #1
1208 0036 34D0 beq .L113
538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1209 .loc 1 538 0
1210 0038 2268 ldr r2, [r4]
ARM GAS /tmp/ccpK4Ax4.s page 138
1211 003a 8423 movs r3, #132
1212 003c 1B02 lsls r3, r3, #8
1213 003e A168 ldr r1, [r4, #8]
1214 0040 0B43 orrs r3, r1
1215 0042 9360 str r3, [r2, #8]
1216 .L109:
543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1217 .loc 1 543 0
1218 0044 E368 ldr r3, [r4, #12]
1219 0046 022B cmp r3, #2
1220 0048 32D0 beq .L114
1221 .L110:
548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1222 .loc 1 548 0
1223 004a 2268 ldr r2, [r4]
1224 004c 5168 ldr r1, [r2, #4]
1225 004e 1E4B ldr r3, .L115+8
1226 0050 0B43 orrs r3, r1
1227 0052 5360 str r3, [r2, #4]
552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1228 .loc 1 552 0
1229 0054 2268 ldr r2, [r4]
1230 0056 D368 ldr r3, [r2, #12]
1231 0058 1A49 ldr r1, .L115+4
1232 005a 0B40 ands r3, r1
1233 005c D360 str r3, [r2, #12]
555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1234 .loc 1 555 0
1235 005e 2369 ldr r3, [r4, #16]
1236 0060 6269 ldr r2, [r4, #20]
1237 0062 1343 orrs r3, r2
1238 0064 A269 ldr r2, [r4, #24]
1239 0066 1202 lsls r2, r2, #8
1240 0068 2168 ldr r1, [r4]
1241 006a 1343 orrs r3, r2
1242 006c CB60 str r3, [r1, #12]
559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1243 .loc 1 559 0
1244 006e 2268 ldr r2, [r4]
1245 0070 E369 ldr r3, [r4, #28]
1246 0072 216A ldr r1, [r4, #32]
1247 0074 0B43 orrs r3, r1
1248 0076 1360 str r3, [r2]
562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1249 .loc 1 562 0
1250 0078 2268 ldr r2, [r4]
1251 007a 1368 ldr r3, [r2]
1252 007c 0121 movs r1, #1
1253 007e 0B43 orrs r3, r1
1254 0080 1360 str r3, [r2]
564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1255 .loc 1 564 0
1256 0082 0023 movs r3, #0
1257 0084 6364 str r3, [r4, #68]
565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1258 .loc 1 565 0
1259 0086 4122 movs r2, #65
ARM GAS /tmp/ccpK4Ax4.s page 139
1260 0088 1F31 adds r1, r1, #31
1261 008a A154 strb r1, [r4, r2]
566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1262 .loc 1 566 0
1263 008c 2363 str r3, [r4, #48]
567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1264 .loc 1 567 0
1265 008e 0132 adds r2, r2, #1
1266 0090 A354 strb r3, [r4, r2]
569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1267 .loc 1 569 0
1268 0092 0020 movs r0, #0
1269 .L106:
570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1270 .loc 1 570 0
1271 @ sp needed
1272 .LVL102:
1273 0094 10BD pop {r4, pc}
1274 .LVL103:
1275 .L112:
490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1276 .loc 1 490 0
1277 0096 4033 adds r3, r3, #64
1278 0098 0022 movs r2, #0
1279 009a C254 strb r2, [r0, r3]
514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1280 .loc 1 514 0
1281 009c FFF7FEFF bl HAL_I2C_MspInit
1282 .LVL104:
1283 00a0 B5E7 b .L107
1284 .L113:
534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1285 .loc 1 534 0
1286 00a2 2268 ldr r2, [r4]
1287 00a4 8023 movs r3, #128
1288 00a6 1B02 lsls r3, r3, #8
1289 00a8 A168 ldr r1, [r4, #8]
1290 00aa 0B43 orrs r3, r1
1291 00ac 9360 str r3, [r2, #8]
1292 00ae C9E7 b .L109
1293 .L114:
545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1294 .loc 1 545 0
1295 00b0 2368 ldr r3, [r4]
1296 00b2 8022 movs r2, #128
1297 00b4 1201 lsls r2, r2, #4
1298 00b6 5A60 str r2, [r3, #4]
1299 00b8 C7E7 b .L110
1300 .LVL105:
1301 .L111:
474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1302 .loc 1 474 0
1303 00ba 0120 movs r0, #1
1304 .LVL106:
1305 00bc EAE7 b .L106
1306 .L116:
1307 00be C046 .align 2
ARM GAS /tmp/ccpK4Ax4.s page 140
1308 .L115:
1309 00c0 FFFFFFF0 .word -251658241
1310 00c4 FF7FFFFF .word -32769
1311 00c8 00800002 .word 33587200
1312 .cfi_endproc
1313 .LFE40:
1315 .section .text.HAL_I2C_MspDeInit,"ax",%progbits
1316 .align 1
1317 .weak HAL_I2C_MspDeInit
1318 .syntax unified
1319 .code 16
1320 .thumb_func
1321 .fpu softvfp
1323 HAL_I2C_MspDeInit:
1324 .LFB43:
641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
1325 .loc 1 641 0
1326 .cfi_startproc
1327 @ args = 0, pretend = 0, frame = 0
1328 @ frame_needed = 0, uses_anonymous_args = 0
1329 @ link register save eliminated.
1330 .LVL107:
648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1331 .loc 1 648 0
1332 @ sp needed
1333 0000 7047 bx lr
1334 .cfi_endproc
1335 .LFE43:
1337 .section .text.HAL_I2C_DeInit,"ax",%progbits
1338 .align 1
1339 .global HAL_I2C_DeInit
1340 .syntax unified
1341 .code 16
1342 .thumb_func
1343 .fpu softvfp
1345 HAL_I2C_DeInit:
1346 .LFB41:
579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */
1347 .loc 1 579 0
1348 .cfi_startproc
1349 @ args = 0, pretend = 0, frame = 0
1350 @ frame_needed = 0, uses_anonymous_args = 0
1351 .LVL108:
1352 0000 70B5 push {r4, r5, r6, lr}
1353 .LCFI12:
1354 .cfi_def_cfa_offset 16
1355 .cfi_offset 4, -16
1356 .cfi_offset 5, -12
1357 .cfi_offset 6, -8
1358 .cfi_offset 14, -4
1359 0002 041E subs r4, r0, #0
581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1360 .loc 1 581 0
1361 0004 13D0 beq .L120
589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1362 .loc 1 589 0
1363 0006 4125 movs r5, #65
ARM GAS /tmp/ccpK4Ax4.s page 141
1364 0008 2423 movs r3, #36
1365 000a 4355 strb r3, [r0, r5]
592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1366 .loc 1 592 0
1367 000c 0268 ldr r2, [r0]
1368 000e 1368 ldr r3, [r2]
1369 0010 0121 movs r1, #1
1370 0012 8B43 bics r3, r1
1371 0014 1360 str r3, [r2]
604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1372 .loc 1 604 0
1373 0016 FFF7FEFF bl HAL_I2C_MspDeInit
1374 .LVL109:
607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
1375 .loc 1 607 0
1376 001a 0023 movs r3, #0
1377 001c 6364 str r3, [r4, #68]
608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1378 .loc 1 608 0
1379 001e 6355 strb r3, [r4, r5]
609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1380 .loc 1 609 0
1381 0020 2363 str r3, [r4, #48]
610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1382 .loc 1 610 0
1383 0022 4222 movs r2, #66
1384 0024 A354 strb r3, [r4, r2]
613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1385 .loc 1 613 0
1386 0026 023A subs r2, r2, #2
1387 0028 A354 strb r3, [r4, r2]
615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1388 .loc 1 615 0
1389 002a 0020 movs r0, #0
1390 .L119:
616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1391 .loc 1 616 0
1392 @ sp needed
1393 .LVL110:
1394 002c 70BD pop {r4, r5, r6, pc}
1395 .LVL111:
1396 .L120:
583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1397 .loc 1 583 0
1398 002e 0120 movs r0, #1
1399 .LVL112:
1400 0030 FCE7 b .L119
1401 .cfi_endproc
1402 .LFE41:
1404 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits
1405 .align 1
1406 .global HAL_I2C_Master_Transmit
1407 .syntax unified
1408 .code 16
1409 .thumb_func
1410 .fpu softvfp
1412 HAL_I2C_Master_Transmit:
ARM GAS /tmp/ccpK4Ax4.s page 142
1413 .LFB44:
1061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
1414 .loc 1 1061 0
1415 .cfi_startproc
1416 @ args = 4, pretend = 0, frame = 8
1417 @ frame_needed = 0, uses_anonymous_args = 0
1418 .LVL113:
1419 0000 F0B5 push {r4, r5, r6, r7, lr}
1420 .LCFI13:
1421 .cfi_def_cfa_offset 20
1422 .cfi_offset 4, -20
1423 .cfi_offset 5, -16
1424 .cfi_offset 6, -12
1425 .cfi_offset 7, -8
1426 .cfi_offset 14, -4
1427 0002 85B0 sub sp, sp, #20
1428 .LCFI14:
1429 .cfi_def_cfa_offset 40
1430 0004 0500 movs r5, r0
1431 0006 0391 str r1, [sp, #12]
1432 0008 1700 movs r7, r2
1433 000a 1E00 movs r6, r3
1064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1434 .loc 1 1064 0
1435 000c 4123 movs r3, #65
1436 .LVL114:
1437 000e C35C ldrb r3, [r0, r3]
1438 0010 202B cmp r3, #32
1439 0012 00D0 beq .LCB1427
1440 0014 99E0 b .L129 @long jump
1441 .LCB1427:
1067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1442 .loc 1 1067 0
1443 0016 2033 adds r3, r3, #32
1444 0018 C35C ldrb r3, [r0, r3]
1445 001a 012B cmp r3, #1
1446 001c 00D1 bne .LCB1431
1447 001e 97E0 b .L130 @long jump
1448 .LCB1431:
1067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1449 .loc 1 1067 0 is_stmt 0 discriminator 2
1450 0020 4023 movs r3, #64
1451 0022 0122 movs r2, #1
1452 .LVL115:
1453 0024 C254 strb r2, [r0, r3]
1070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1454 .loc 1 1070 0 is_stmt 1 discriminator 2
1455 0026 FFF7FEFF bl HAL_GetTick
1456 .LVL116:
1457 002a 0400 movs r4, r0
1458 .LVL117:
1072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1459 .loc 1 1072 0 discriminator 2
1460 002c 8021 movs r1, #128
1461 002e 0090 str r0, [sp]
1462 0030 1923 movs r3, #25
1463 0032 0122 movs r2, #1
ARM GAS /tmp/ccpK4Ax4.s page 143
1464 0034 0902 lsls r1, r1, #8
1465 0036 2800 movs r0, r5
1466 .LVL118:
1467 0038 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1468 .LVL119:
1469 003c 0028 cmp r0, #0
1470 003e 00D0 beq .LCB1452
1471 0040 88E0 b .L131 @long jump
1472 .LCB1452:
1077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1473 .loc 1 1077 0
1474 0042 4123 movs r3, #65
1475 0044 2122 movs r2, #33
1476 0046 EA54 strb r2, [r5, r3]
1078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1477 .loc 1 1078 0
1478 0048 0133 adds r3, r3, #1
1479 004a 113A subs r2, r2, #17
1480 004c EA54 strb r2, [r5, r3]
1079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1481 .loc 1 1079 0
1482 004e 0023 movs r3, #0
1483 0050 6B64 str r3, [r5, #68]
1082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
1484 .loc 1 1082 0
1485 0052 6F62 str r7, [r5, #36]
1083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
1486 .loc 1 1083 0
1487 0054 6E85 strh r6, [r5, #42]
1084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1488 .loc 1 1084 0
1489 0056 6B63 str r3, [r5, #52]
1088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1490 .loc 1 1088 0
1491 0058 6B8D ldrh r3, [r5, #42]
1492 005a 9BB2 uxth r3, r3
1493 005c FF2B cmp r3, #255
1494 005e 0BD9 bls .L123
1090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
1495 .loc 1 1090 0
1496 0060 FF23 movs r3, #255
1497 0062 2B85 strh r3, [r5, #40]
1091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1498 .loc 1 1091 0
1499 0064 7F3B subs r3, r3, #127
1500 0066 3F4A ldr r2, .L136
1501 0068 0092 str r2, [sp]
1502 006a 5B04 lsls r3, r3, #17
1503 006c FF22 movs r2, #255
1504 006e 0399 ldr r1, [sp, #12]
1505 0070 2800 movs r0, r5
1506 0072 FFF7FEFF bl I2C_TransferConfig
1507 .LVL120:
1508 0076 18E0 b .L125
1509 .L123:
1095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
1510 .loc 1 1095 0
ARM GAS /tmp/ccpK4Ax4.s page 144
1511 0078 6A8D ldrh r2, [r5, #42]
1512 007a 92B2 uxth r2, r2
1513 007c 2A85 strh r2, [r5, #40]
1096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1514 .loc 1 1096 0
1515 007e 8023 movs r3, #128
1516 0080 D2B2 uxtb r2, r2
1517 0082 3849 ldr r1, .L136
1518 0084 0091 str r1, [sp]
1519 0086 9B04 lsls r3, r3, #18
1520 0088 0399 ldr r1, [sp, #12]
1521 008a 2800 movs r0, r5
1522 008c FFF7FEFF bl I2C_TransferConfig
1523 .LVL121:
1524 0090 0BE0 b .L125
1525 .L127:
1130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
1526 .loc 1 1130 0
1527 0092 6A8D ldrh r2, [r5, #42]
1528 0094 92B2 uxth r2, r2
1529 0096 2A85 strh r2, [r5, #40]
1131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1530 .loc 1 1131 0
1531 0098 8023 movs r3, #128
1532 009a D2B2 uxtb r2, r2
1533 009c 0021 movs r1, #0
1534 009e 0091 str r1, [sp]
1535 00a0 9B04 lsls r3, r3, #18
1536 00a2 0399 ldr r1, [sp, #12]
1537 00a4 2800 movs r0, r5
1538 00a6 FFF7FEFF bl I2C_TransferConfig
1539 .LVL122:
1540 .L125:
1099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1541 .loc 1 1099 0
1542 00aa 6B8D ldrh r3, [r5, #42]
1543 00ac 9BB2 uxth r3, r3
1544 00ae 002B cmp r3, #0
1545 00b0 34D0 beq .L135
1102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1546 .loc 1 1102 0
1547 00b2 2200 movs r2, r4
1548 00b4 0A99 ldr r1, [sp, #40]
1549 00b6 2800 movs r0, r5
1550 00b8 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1551 .LVL123:
1552 00bc 0028 cmp r0, #0
1553 00be 4BD1 bne .L132
1107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1554 .loc 1 1107 0
1555 00c0 2B68 ldr r3, [r5]
1556 00c2 6A6A ldr r2, [r5, #36]
1557 00c4 1278 ldrb r2, [r2]
1558 00c6 9A62 str r2, [r3, #40]
1110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1559 .loc 1 1110 0
1560 00c8 6B6A ldr r3, [r5, #36]
ARM GAS /tmp/ccpK4Ax4.s page 145
1561 00ca 0133 adds r3, r3, #1
1562 00cc 6B62 str r3, [r5, #36]
1112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--;
1563 .loc 1 1112 0
1564 00ce 6B8D ldrh r3, [r5, #42]
1565 00d0 013B subs r3, r3, #1
1566 00d2 9BB2 uxth r3, r3
1567 00d4 6B85 strh r3, [r5, #42]
1113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1568 .loc 1 1113 0
1569 00d6 2B8D ldrh r3, [r5, #40]
1570 00d8 013B subs r3, r3, #1
1571 00da 9BB2 uxth r3, r3
1572 00dc 2B85 strh r3, [r5, #40]
1115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1573 .loc 1 1115 0
1574 00de 6A8D ldrh r2, [r5, #42]
1575 00e0 92B2 uxth r2, r2
1576 00e2 002A cmp r2, #0
1577 00e4 E1D0 beq .L125
1115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1578 .loc 1 1115 0 is_stmt 0 discriminator 1
1579 00e6 002B cmp r3, #0
1580 00e8 DFD1 bne .L125
1118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1581 .loc 1 1118 0 is_stmt 1
1582 00ea 0094 str r4, [sp]
1583 00ec 0A9B ldr r3, [sp, #40]
1584 00ee 0022 movs r2, #0
1585 00f0 8021 movs r1, #128
1586 00f2 2800 movs r0, r5
1587 00f4 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1588 .LVL124:
1589 00f8 0028 cmp r0, #0
1590 00fa 2FD1 bne .L133
1123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1591 .loc 1 1123 0
1592 00fc 6B8D ldrh r3, [r5, #42]
1593 00fe 9BB2 uxth r3, r3
1594 0100 FF2B cmp r3, #255
1595 0102 C6D9 bls .L127
1125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
1596 .loc 1 1125 0
1597 0104 FF23 movs r3, #255
1598 0106 2B85 strh r3, [r5, #40]
1126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1599 .loc 1 1126 0
1600 0108 7F3B subs r3, r3, #127
1601 010a 0022 movs r2, #0
1602 010c 0092 str r2, [sp]
1603 010e 5B04 lsls r3, r3, #17
1604 0110 FF32 adds r2, r2, #255
1605 0112 0399 ldr r1, [sp, #12]
1606 0114 2800 movs r0, r5
1607 0116 FFF7FEFF bl I2C_TransferConfig
1608 .LVL125:
1609 011a C6E7 b .L125
ARM GAS /tmp/ccpK4Ax4.s page 146
1610 .L135:
1138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1611 .loc 1 1138 0
1612 011c 2200 movs r2, r4
1613 011e 0A99 ldr r1, [sp, #40]
1614 0120 2800 movs r0, r5
1615 0122 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
1616 .LVL126:
1617 0126 0028 cmp r0, #0
1618 0128 1AD1 bne .L134
1144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1619 .loc 1 1144 0
1620 012a 2B68 ldr r3, [r5]
1621 012c 2022 movs r2, #32
1622 012e DA61 str r2, [r3, #28]
1147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1623 .loc 1 1147 0
1624 0130 2968 ldr r1, [r5]
1625 0132 4B68 ldr r3, [r1, #4]
1626 0134 0C4C ldr r4, .L136+4
1627 .LVL127:
1628 0136 2340 ands r3, r4
1629 0138 4B60 str r3, [r1, #4]
1149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1630 .loc 1 1149 0
1631 013a 4123 movs r3, #65
1632 013c EA54 strb r2, [r5, r3]
1150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1633 .loc 1 1150 0
1634 013e 0023 movs r3, #0
1635 0140 2232 adds r2, r2, #34
1636 0142 AB54 strb r3, [r5, r2]
1153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1637 .loc 1 1153 0
1638 0144 023A subs r2, r2, #2
1639 0146 AB54 strb r3, [r5, r2]
1155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1640 .loc 1 1155 0
1641 0148 00E0 b .L122
1642 .LVL128:
1643 .L129:
1159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1644 .loc 1 1159 0
1645 014a 0220 movs r0, #2
1646 .LVL129:
1647 .L122:
1161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1648 .loc 1 1161 0
1649 014c 05B0 add sp, sp, #20
1650 @ sp needed
1651 .LVL130:
1652 .LVL131:
1653 014e F0BD pop {r4, r5, r6, r7, pc}
1654 .LVL132:
1655 .L130:
1067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1656 .loc 1 1067 0
ARM GAS /tmp/ccpK4Ax4.s page 147
1657 0150 0220 movs r0, #2
1658 .LVL133:
1659 0152 FBE7 b .L122
1660 .LVL134:
1661 .L131:
1074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1662 .loc 1 1074 0
1663 0154 0120 movs r0, #1
1664 0156 F9E7 b .L122
1665 .L132:
1104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1666 .loc 1 1104 0
1667 0158 0120 movs r0, #1
1668 015a F7E7 b .L122
1669 .L133:
1120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1670 .loc 1 1120 0
1671 015c 0120 movs r0, #1
1672 015e F5E7 b .L122
1673 .L134:
1140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1674 .loc 1 1140 0
1675 0160 0120 movs r0, #1
1676 0162 F3E7 b .L122
1677 .L137:
1678 .align 2
1679 .L136:
1680 0164 00200080 .word -2147475456
1681 0168 00E800FE .word -33495040
1682 .cfi_endproc
1683 .LFE44:
1685 .section .text.HAL_I2C_Master_Receive,"ax",%progbits
1686 .align 1
1687 .global HAL_I2C_Master_Receive
1688 .syntax unified
1689 .code 16
1690 .thumb_func
1691 .fpu softvfp
1693 HAL_I2C_Master_Receive:
1694 .LFB45:
1175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
1695 .loc 1 1175 0
1696 .cfi_startproc
1697 @ args = 4, pretend = 0, frame = 8
1698 @ frame_needed = 0, uses_anonymous_args = 0
1699 .LVL135:
1700 0000 F0B5 push {r4, r5, r6, r7, lr}
1701 .LCFI15:
1702 .cfi_def_cfa_offset 20
1703 .cfi_offset 4, -20
1704 .cfi_offset 5, -16
1705 .cfi_offset 6, -12
1706 .cfi_offset 7, -8
1707 .cfi_offset 14, -4
1708 0002 85B0 sub sp, sp, #20
1709 .LCFI16:
1710 .cfi_def_cfa_offset 40
ARM GAS /tmp/ccpK4Ax4.s page 148
1711 0004 0500 movs r5, r0
1712 0006 0391 str r1, [sp, #12]
1713 0008 1700 movs r7, r2
1714 000a 1E00 movs r6, r3
1178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1715 .loc 1 1178 0
1716 000c 4123 movs r3, #65
1717 .LVL136:
1718 000e C35C ldrb r3, [r0, r3]
1719 0010 202B cmp r3, #32
1720 0012 00D0 beq .LCB1712
1721 0014 99E0 b .L146 @long jump
1722 .LCB1712:
1181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1723 .loc 1 1181 0
1724 0016 2033 adds r3, r3, #32
1725 0018 C35C ldrb r3, [r0, r3]
1726 001a 012B cmp r3, #1
1727 001c 00D1 bne .LCB1716
1728 001e 97E0 b .L147 @long jump
1729 .LCB1716:
1181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1730 .loc 1 1181 0 is_stmt 0 discriminator 2
1731 0020 4023 movs r3, #64
1732 0022 0122 movs r2, #1
1733 .LVL137:
1734 0024 C254 strb r2, [r0, r3]
1184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1735 .loc 1 1184 0 is_stmt 1 discriminator 2
1736 0026 FFF7FEFF bl HAL_GetTick
1737 .LVL138:
1738 002a 0400 movs r4, r0
1739 .LVL139:
1186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1740 .loc 1 1186 0 discriminator 2
1741 002c 8021 movs r1, #128
1742 002e 0090 str r0, [sp]
1743 0030 1923 movs r3, #25
1744 0032 0122 movs r2, #1
1745 0034 0902 lsls r1, r1, #8
1746 0036 2800 movs r0, r5
1747 .LVL140:
1748 0038 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1749 .LVL141:
1750 003c 0028 cmp r0, #0
1751 003e 00D0 beq .LCB1737
1752 0040 88E0 b .L148 @long jump
1753 .LCB1737:
1191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1754 .loc 1 1191 0
1755 0042 4123 movs r3, #65
1756 0044 2222 movs r2, #34
1757 0046 EA54 strb r2, [r5, r3]
1192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1758 .loc 1 1192 0
1759 0048 0133 adds r3, r3, #1
1760 004a 123A subs r2, r2, #18
ARM GAS /tmp/ccpK4Ax4.s page 149
1761 004c EA54 strb r2, [r5, r3]
1193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1762 .loc 1 1193 0
1763 004e 0023 movs r3, #0
1764 0050 6B64 str r3, [r5, #68]
1196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
1765 .loc 1 1196 0
1766 0052 6F62 str r7, [r5, #36]
1197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
1767 .loc 1 1197 0
1768 0054 6E85 strh r6, [r5, #42]
1198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1769 .loc 1 1198 0
1770 0056 6B63 str r3, [r5, #52]
1202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1771 .loc 1 1202 0
1772 0058 6B8D ldrh r3, [r5, #42]
1773 005a 9BB2 uxth r3, r3
1774 005c FF2B cmp r3, #255
1775 005e 0BD9 bls .L140
1204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
1776 .loc 1 1204 0
1777 0060 FF23 movs r3, #255
1778 0062 2B85 strh r3, [r5, #40]
1205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1779 .loc 1 1205 0
1780 0064 7F3B subs r3, r3, #127
1781 0066 3F4A ldr r2, .L153
1782 0068 0092 str r2, [sp]
1783 006a 5B04 lsls r3, r3, #17
1784 006c FF22 movs r2, #255
1785 006e 0399 ldr r1, [sp, #12]
1786 0070 2800 movs r0, r5
1787 0072 FFF7FEFF bl I2C_TransferConfig
1788 .LVL142:
1789 0076 18E0 b .L142
1790 .L140:
1209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
1791 .loc 1 1209 0
1792 0078 6A8D ldrh r2, [r5, #42]
1793 007a 92B2 uxth r2, r2
1794 007c 2A85 strh r2, [r5, #40]
1210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1795 .loc 1 1210 0
1796 007e 8023 movs r3, #128
1797 0080 D2B2 uxtb r2, r2
1798 0082 3849 ldr r1, .L153
1799 0084 0091 str r1, [sp]
1800 0086 9B04 lsls r3, r3, #18
1801 0088 0399 ldr r1, [sp, #12]
1802 008a 2800 movs r0, r5
1803 008c FFF7FEFF bl I2C_TransferConfig
1804 .LVL143:
1805 0090 0BE0 b .L142
1806 .L144:
1245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
1807 .loc 1 1245 0
ARM GAS /tmp/ccpK4Ax4.s page 150
1808 0092 6A8D ldrh r2, [r5, #42]
1809 0094 92B2 uxth r2, r2
1810 0096 2A85 strh r2, [r5, #40]
1246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1811 .loc 1 1246 0
1812 0098 8023 movs r3, #128
1813 009a D2B2 uxtb r2, r2
1814 009c 0021 movs r1, #0
1815 009e 0091 str r1, [sp]
1816 00a0 9B04 lsls r3, r3, #18
1817 00a2 0399 ldr r1, [sp, #12]
1818 00a4 2800 movs r0, r5
1819 00a6 FFF7FEFF bl I2C_TransferConfig
1820 .LVL144:
1821 .L142:
1213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1822 .loc 1 1213 0
1823 00aa 6B8D ldrh r3, [r5, #42]
1824 00ac 9BB2 uxth r3, r3
1825 00ae 002B cmp r3, #0
1826 00b0 34D0 beq .L152
1216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1827 .loc 1 1216 0
1828 00b2 2200 movs r2, r4
1829 00b4 0A99 ldr r1, [sp, #40]
1830 00b6 2800 movs r0, r5
1831 00b8 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
1832 .LVL145:
1833 00bc 0028 cmp r0, #0
1834 00be 4BD1 bne .L149
1222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1835 .loc 1 1222 0
1836 00c0 2B68 ldr r3, [r5]
1837 00c2 5B6A ldr r3, [r3, #36]
1838 00c4 6A6A ldr r2, [r5, #36]
1839 00c6 1370 strb r3, [r2]
1225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1840 .loc 1 1225 0
1841 00c8 6B6A ldr r3, [r5, #36]
1842 00ca 0133 adds r3, r3, #1
1843 00cc 6B62 str r3, [r5, #36]
1227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
1844 .loc 1 1227 0
1845 00ce 2B8D ldrh r3, [r5, #40]
1846 00d0 013B subs r3, r3, #1
1847 00d2 9BB2 uxth r3, r3
1848 00d4 2B85 strh r3, [r5, #40]
1228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1849 .loc 1 1228 0
1850 00d6 6A8D ldrh r2, [r5, #42]
1851 00d8 013A subs r2, r2, #1
1852 00da 92B2 uxth r2, r2
1853 00dc 6A85 strh r2, [r5, #42]
1230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1854 .loc 1 1230 0
1855 00de 6A8D ldrh r2, [r5, #42]
1856 00e0 92B2 uxth r2, r2
ARM GAS /tmp/ccpK4Ax4.s page 151
1857 00e2 002A cmp r2, #0
1858 00e4 E1D0 beq .L142
1230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1859 .loc 1 1230 0 is_stmt 0 discriminator 1
1860 00e6 002B cmp r3, #0
1861 00e8 DFD1 bne .L142
1233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1862 .loc 1 1233 0 is_stmt 1
1863 00ea 0094 str r4, [sp]
1864 00ec 0A9B ldr r3, [sp, #40]
1865 00ee 0022 movs r2, #0
1866 00f0 8021 movs r1, #128
1867 00f2 2800 movs r0, r5
1868 00f4 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1869 .LVL146:
1870 00f8 0028 cmp r0, #0
1871 00fa 2FD1 bne .L150
1238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1872 .loc 1 1238 0
1873 00fc 6B8D ldrh r3, [r5, #42]
1874 00fe 9BB2 uxth r3, r3
1875 0100 FF2B cmp r3, #255
1876 0102 C6D9 bls .L144
1240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
1877 .loc 1 1240 0
1878 0104 FF23 movs r3, #255
1879 0106 2B85 strh r3, [r5, #40]
1241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1880 .loc 1 1241 0
1881 0108 7F3B subs r3, r3, #127
1882 010a 0022 movs r2, #0
1883 010c 0092 str r2, [sp]
1884 010e 5B04 lsls r3, r3, #17
1885 0110 FF32 adds r2, r2, #255
1886 0112 0399 ldr r1, [sp, #12]
1887 0114 2800 movs r0, r5
1888 0116 FFF7FEFF bl I2C_TransferConfig
1889 .LVL147:
1890 011a C6E7 b .L142
1891 .L152:
1253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1892 .loc 1 1253 0
1893 011c 2200 movs r2, r4
1894 011e 0A99 ldr r1, [sp, #40]
1895 0120 2800 movs r0, r5
1896 0122 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
1897 .LVL148:
1898 0126 0028 cmp r0, #0
1899 0128 1AD1 bne .L151
1259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1900 .loc 1 1259 0
1901 012a 2B68 ldr r3, [r5]
1902 012c 2022 movs r2, #32
1903 012e DA61 str r2, [r3, #28]
1262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1904 .loc 1 1262 0
1905 0130 2968 ldr r1, [r5]
ARM GAS /tmp/ccpK4Ax4.s page 152
1906 0132 4B68 ldr r3, [r1, #4]
1907 0134 0C4C ldr r4, .L153+4
1908 .LVL149:
1909 0136 2340 ands r3, r4
1910 0138 4B60 str r3, [r1, #4]
1264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1911 .loc 1 1264 0
1912 013a 4123 movs r3, #65
1913 013c EA54 strb r2, [r5, r3]
1265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1914 .loc 1 1265 0
1915 013e 0023 movs r3, #0
1916 0140 2232 adds r2, r2, #34
1917 0142 AB54 strb r3, [r5, r2]
1268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1918 .loc 1 1268 0
1919 0144 023A subs r2, r2, #2
1920 0146 AB54 strb r3, [r5, r2]
1270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1921 .loc 1 1270 0
1922 0148 00E0 b .L139
1923 .LVL150:
1924 .L146:
1274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1925 .loc 1 1274 0
1926 014a 0220 movs r0, #2
1927 .LVL151:
1928 .L139:
1276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1929 .loc 1 1276 0
1930 014c 05B0 add sp, sp, #20
1931 @ sp needed
1932 .LVL152:
1933 .LVL153:
1934 014e F0BD pop {r4, r5, r6, r7, pc}
1935 .LVL154:
1936 .L147:
1181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
1937 .loc 1 1181 0
1938 0150 0220 movs r0, #2
1939 .LVL155:
1940 0152 FBE7 b .L139
1941 .LVL156:
1942 .L148:
1188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1943 .loc 1 1188 0
1944 0154 0120 movs r0, #1
1945 0156 F9E7 b .L139
1946 .L149:
1218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1947 .loc 1 1218 0
1948 0158 0120 movs r0, #1
1949 015a F7E7 b .L139
1950 .L150:
1235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1951 .loc 1 1235 0
1952 015c 0120 movs r0, #1
ARM GAS /tmp/ccpK4Ax4.s page 153
1953 015e F5E7 b .L139
1954 .L151:
1255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
1955 .loc 1 1255 0
1956 0160 0120 movs r0, #1
1957 0162 F3E7 b .L139
1958 .L154:
1959 .align 2
1960 .L153:
1961 0164 00240080 .word -2147474432
1962 0168 00E800FE .word -33495040
1963 .cfi_endproc
1964 .LFE45:
1966 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits
1967 .align 1
1968 .global HAL_I2C_Slave_Transmit
1969 .syntax unified
1970 .code 16
1971 .thumb_func
1972 .fpu softvfp
1974 HAL_I2C_Slave_Transmit:
1975 .LFB46:
1288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
1976 .loc 1 1288 0
1977 .cfi_startproc
1978 @ args = 0, pretend = 0, frame = 8
1979 @ frame_needed = 0, uses_anonymous_args = 0
1980 .LVL157:
1981 0000 F0B5 push {r4, r5, r6, r7, lr}
1982 .LCFI17:
1983 .cfi_def_cfa_offset 20
1984 .cfi_offset 4, -20
1985 .cfi_offset 5, -16
1986 .cfi_offset 6, -12
1987 .cfi_offset 7, -8
1988 .cfi_offset 14, -4
1989 0002 85B0 sub sp, sp, #20
1990 .LCFI18:
1991 .cfi_def_cfa_offset 40
1992 0004 0600 movs r6, r0
1993 0006 0C00 movs r4, r1
1994 0008 1500 movs r5, r2
1995 000a 0393 str r3, [sp, #12]
1291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
1996 .loc 1 1291 0
1997 000c 4123 movs r3, #65
1998 .LVL158:
1999 000e C35C ldrb r3, [r0, r3]
2000 0010 202B cmp r3, #32
2001 0012 00D0 beq .LCB1995
2002 0014 B8E0 b .L167 @long jump
2003 .LCB1995:
1293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2004 .loc 1 1293 0
2005 0016 0029 cmp r1, #0
2006 0018 4CD0 beq .L157
1293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 154
2007 .loc 1 1293 0 is_stmt 0 discriminator 1
2008 001a 002A cmp r2, #0
2009 001c 4AD0 beq .L157
1299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2010 .loc 1 1299 0 is_stmt 1
2011 001e 4023 movs r3, #64
2012 0020 C35C ldrb r3, [r0, r3]
2013 0022 012B cmp r3, #1
2014 0024 00D1 bne .LCB2003
2015 0026 B2E0 b .L168 @long jump
2016 .LCB2003:
1299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2017 .loc 1 1299 0 is_stmt 0 discriminator 2
2018 0028 4023 movs r3, #64
2019 002a 0122 movs r2, #1
2020 .LVL159:
2021 002c C254 strb r2, [r0, r3]
1302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2022 .loc 1 1302 0 is_stmt 1 discriminator 2
2023 002e FFF7FEFF bl HAL_GetTick
2024 .LVL160:
2025 0032 0700 movs r7, r0
2026 .LVL161:
1304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2027 .loc 1 1304 0 discriminator 2
2028 0034 4123 movs r3, #65
2029 0036 2122 movs r2, #33
2030 0038 F254 strb r2, [r6, r3]
1305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2031 .loc 1 1305 0 discriminator 2
2032 003a 0133 adds r3, r3, #1
2033 003c 013A subs r2, r2, #1
2034 003e F254 strb r2, [r6, r3]
1306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2035 .loc 1 1306 0 discriminator 2
2036 0040 0023 movs r3, #0
2037 0042 7364 str r3, [r6, #68]
1309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
2038 .loc 1 1309 0 discriminator 2
2039 0044 7462 str r4, [r6, #36]
1310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
2040 .loc 1 1310 0 discriminator 2
2041 0046 7585 strh r5, [r6, #42]
1311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2042 .loc 1 1311 0 discriminator 2
2043 0048 7363 str r3, [r6, #52]
1314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2044 .loc 1 1314 0 discriminator 2
2045 004a 3268 ldr r2, [r6]
2046 004c 5368 ldr r3, [r2, #4]
2047 004e 5149 ldr r1, .L178
2048 0050 0B40 ands r3, r1
2049 0052 5360 str r3, [r2, #4]
1317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2050 .loc 1 1317 0 discriminator 2
2051 0054 0090 str r0, [sp]
2052 0056 039B ldr r3, [sp, #12]
ARM GAS /tmp/ccpK4Ax4.s page 155
2053 0058 0022 movs r2, #0
2054 005a 0821 movs r1, #8
2055 005c 3000 movs r0, r6
2056 .LVL162:
2057 005e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2058 .LVL163:
2059 0062 0028 cmp r0, #0
2060 0064 2BD1 bne .L170
1325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2061 .loc 1 1325 0
2062 0066 3368 ldr r3, [r6]
2063 0068 0822 movs r2, #8
2064 006a DA61 str r2, [r3, #28]
1328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2065 .loc 1 1328 0
2066 006c F368 ldr r3, [r6, #12]
2067 006e 022B cmp r3, #2
2068 0070 2DD0 beq .L171
2069 .L160:
1343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2070 .loc 1 1343 0
2071 0072 8021 movs r1, #128
2072 0074 0097 str r7, [sp]
2073 0076 039B ldr r3, [sp, #12]
2074 0078 0022 movs r2, #0
2075 007a 4902 lsls r1, r1, #9
2076 007c 3000 movs r0, r6
2077 007e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2078 .LVL164:
2079 0082 0028 cmp r0, #0
2080 0084 38D1 bne .L172
2081 .L162:
1350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2082 .loc 1 1350 0
2083 0086 738D ldrh r3, [r6, #42]
2084 0088 9BB2 uxth r3, r3
2085 008a 002B cmp r3, #0
2086 008c 44D0 beq .L173
1353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2087 .loc 1 1353 0
2088 008e 3A00 movs r2, r7
2089 0090 0399 ldr r1, [sp, #12]
2090 0092 3000 movs r0, r6
2091 0094 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
2092 .LVL165:
2093 0098 0028 cmp r0, #0
2094 009a 35D1 bne .L174
1361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2095 .loc 1 1361 0
2096 009c 3368 ldr r3, [r6]
2097 009e 726A ldr r2, [r6, #36]
2098 00a0 1278 ldrb r2, [r2]
2099 00a2 9A62 str r2, [r3, #40]
1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2100 .loc 1 1364 0
2101 00a4 736A ldr r3, [r6, #36]
2102 00a6 0133 adds r3, r3, #1
ARM GAS /tmp/ccpK4Ax4.s page 156
2103 00a8 7362 str r3, [r6, #36]
1366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2104 .loc 1 1366 0
2105 00aa 738D ldrh r3, [r6, #42]
2106 00ac 013B subs r3, r3, #1
2107 00ae 9BB2 uxth r3, r3
2108 00b0 7385 strh r3, [r6, #42]
2109 00b2 E8E7 b .L162
2110 .LVL166:
2111 .L157:
1295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2112 .loc 1 1295 0
2113 00b4 8023 movs r3, #128
2114 00b6 9B00 lsls r3, r3, #2
2115 00b8 7364 str r3, [r6, #68]
1296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2116 .loc 1 1296 0
2117 00ba 0120 movs r0, #1
2118 .LVL167:
2119 00bc 65E0 b .L156
2120 .LVL168:
2121 .L170:
1320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2122 .loc 1 1320 0
2123 00be 3268 ldr r2, [r6]
2124 00c0 5168 ldr r1, [r2, #4]
2125 00c2 8023 movs r3, #128
2126 00c4 1B02 lsls r3, r3, #8
2127 00c6 0B43 orrs r3, r1
2128 00c8 5360 str r3, [r2, #4]
1321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2129 .loc 1 1321 0
2130 00ca 0120 movs r0, #1
2131 00cc 5DE0 b .L156
2132 .L171:
1331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2133 .loc 1 1331 0
2134 00ce 0097 str r7, [sp]
2135 00d0 039B ldr r3, [sp, #12]
2136 00d2 0022 movs r2, #0
2137 00d4 0821 movs r1, #8
2138 00d6 3000 movs r0, r6
2139 00d8 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2140 .LVL169:
2141 00dc 0028 cmp r0, #0
2142 00de 03D1 bne .L175
1339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2143 .loc 1 1339 0
2144 00e0 3368 ldr r3, [r6]
2145 00e2 0822 movs r2, #8
2146 00e4 DA61 str r2, [r3, #28]
2147 00e6 C4E7 b .L160
2148 .L175:
1334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2149 .loc 1 1334 0
2150 00e8 3268 ldr r2, [r6]
2151 00ea 5168 ldr r1, [r2, #4]
ARM GAS /tmp/ccpK4Ax4.s page 157
2152 00ec 8023 movs r3, #128
2153 00ee 1B02 lsls r3, r3, #8
2154 00f0 0B43 orrs r3, r1
2155 00f2 5360 str r3, [r2, #4]
1335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2156 .loc 1 1335 0
2157 00f4 0120 movs r0, #1
2158 00f6 48E0 b .L156
2159 .L172:
1346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2160 .loc 1 1346 0
2161 00f8 3268 ldr r2, [r6]
2162 00fa 5168 ldr r1, [r2, #4]
2163 00fc 8023 movs r3, #128
2164 00fe 1B02 lsls r3, r3, #8
2165 0100 0B43 orrs r3, r1
2166 0102 5360 str r3, [r2, #4]
1347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2167 .loc 1 1347 0
2168 0104 0120 movs r0, #1
2169 0106 40E0 b .L156
2170 .L174:
1356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2171 .loc 1 1356 0
2172 0108 3268 ldr r2, [r6]
2173 010a 5168 ldr r1, [r2, #4]
2174 010c 8023 movs r3, #128
2175 010e 1B02 lsls r3, r3, #8
2176 0110 0B43 orrs r3, r1
2177 0112 5360 str r3, [r2, #4]
1357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2178 .loc 1 1357 0
2179 0114 0120 movs r0, #1
2180 0116 38E0 b .L156
2181 .L173:
1370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2182 .loc 1 1370 0
2183 0118 3A00 movs r2, r7
2184 011a 0399 ldr r1, [sp, #12]
2185 011c 3000 movs r0, r6
2186 011e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2187 .LVL170:
2188 0122 0028 cmp r0, #0
2189 0124 0CD0 beq .L165
1373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2190 .loc 1 1373 0
2191 0126 3268 ldr r2, [r6]
2192 0128 5168 ldr r1, [r2, #4]
2193 012a 8023 movs r3, #128
2194 012c 1B02 lsls r3, r3, #8
2195 012e 0B43 orrs r3, r1
2196 0130 5360 str r3, [r2, #4]
1375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2197 .loc 1 1375 0
2198 0132 736C ldr r3, [r6, #68]
2199 0134 042B cmp r3, #4
2200 0136 01D0 beq .L176
ARM GAS /tmp/ccpK4Ax4.s page 158
1383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2201 .loc 1 1383 0
2202 0138 0120 movs r0, #1
2203 013a 26E0 b .L156
2204 .L176:
1379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2205 .loc 1 1379 0
2206 013c 0023 movs r3, #0
2207 013e 7364 str r3, [r6, #68]
2208 .L165:
1388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2209 .loc 1 1388 0
2210 0140 3368 ldr r3, [r6]
2211 0142 2022 movs r2, #32
2212 0144 DA61 str r2, [r3, #28]
1391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2213 .loc 1 1391 0
2214 0146 8021 movs r1, #128
2215 0148 0097 str r7, [sp]
2216 014a 039B ldr r3, [sp, #12]
2217 014c 1F3A subs r2, r2, #31
2218 014e 0902 lsls r1, r1, #8
2219 0150 3000 movs r0, r6
2220 0152 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2221 .LVL171:
2222 0156 0028 cmp r0, #0
2223 0158 0ED1 bne .L177
1399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2224 .loc 1 1399 0
2225 015a 3268 ldr r2, [r6]
2226 015c 5168 ldr r1, [r2, #4]
2227 015e 8023 movs r3, #128
2228 0160 1B02 lsls r3, r3, #8
2229 0162 0B43 orrs r3, r1
2230 0164 5360 str r3, [r2, #4]
1401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2231 .loc 1 1401 0
2232 0166 4123 movs r3, #65
2233 0168 2022 movs r2, #32
2234 016a F254 strb r2, [r6, r3]
1402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2235 .loc 1 1402 0
2236 016c 0023 movs r3, #0
2237 016e 2232 adds r2, r2, #34
2238 0170 B354 strb r3, [r6, r2]
1405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2239 .loc 1 1405 0
2240 0172 023A subs r2, r2, #2
2241 0174 B354 strb r3, [r6, r2]
1407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2242 .loc 1 1407 0
2243 0176 08E0 b .L156
2244 .L177:
1394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2245 .loc 1 1394 0
2246 0178 3268 ldr r2, [r6]
2247 017a 5168 ldr r1, [r2, #4]
ARM GAS /tmp/ccpK4Ax4.s page 159
2248 017c 8023 movs r3, #128
2249 017e 1B02 lsls r3, r3, #8
2250 0180 0B43 orrs r3, r1
2251 0182 5360 str r3, [r2, #4]
1395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2252 .loc 1 1395 0
2253 0184 0120 movs r0, #1
2254 0186 00E0 b .L156
2255 .LVL172:
2256 .L167:
1411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2257 .loc 1 1411 0
2258 0188 0220 movs r0, #2
2259 .LVL173:
2260 .L156:
1413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2261 .loc 1 1413 0
2262 018a 05B0 add sp, sp, #20
2263 @ sp needed
2264 .LVL174:
2265 .LVL175:
2266 018c F0BD pop {r4, r5, r6, r7, pc}
2267 .LVL176:
2268 .L168:
1299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2269 .loc 1 1299 0
2270 018e 0220 movs r0, #2
2271 .LVL177:
2272 0190 FBE7 b .L156
2273 .L179:
2274 0192 C046 .align 2
2275 .L178:
2276 0194 FF7FFFFF .word -32769
2277 .cfi_endproc
2278 .LFE46:
2280 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits
2281 .align 1
2282 .global HAL_I2C_Slave_Receive
2283 .syntax unified
2284 .code 16
2285 .thumb_func
2286 .fpu softvfp
2288 HAL_I2C_Slave_Receive:
2289 .LFB47:
1425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
2290 .loc 1 1425 0
2291 .cfi_startproc
2292 @ args = 0, pretend = 0, frame = 8
2293 @ frame_needed = 0, uses_anonymous_args = 0
2294 .LVL178:
2295 0000 F0B5 push {r4, r5, r6, r7, lr}
2296 .LCFI19:
2297 .cfi_def_cfa_offset 20
2298 .cfi_offset 4, -20
2299 .cfi_offset 5, -16
2300 .cfi_offset 6, -12
2301 .cfi_offset 7, -8
ARM GAS /tmp/ccpK4Ax4.s page 160
2302 .cfi_offset 14, -4
2303 0002 85B0 sub sp, sp, #20
2304 .LCFI20:
2305 .cfi_def_cfa_offset 40
2306 0004 0600 movs r6, r0
2307 0006 0C00 movs r4, r1
2308 0008 1500 movs r5, r2
2309 000a 0393 str r3, [sp, #12]
1428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2310 .loc 1 1428 0
2311 000c 4123 movs r3, #65
2312 .LVL179:
2313 000e C35C ldrb r3, [r0, r3]
2314 0010 202B cmp r3, #32
2315 0012 00D0 beq .LCB2307
2316 0014 A8E0 b .L190 @long jump
2317 .LCB2307:
1430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2318 .loc 1 1430 0
2319 0016 0029 cmp r1, #0
2320 0018 2DD0 beq .L182
1430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2321 .loc 1 1430 0 is_stmt 0 discriminator 1
2322 001a 002A cmp r2, #0
2323 001c 2BD0 beq .L182
1436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2324 .loc 1 1436 0 is_stmt 1
2325 001e 4023 movs r3, #64
2326 0020 C35C ldrb r3, [r0, r3]
2327 0022 012B cmp r3, #1
2328 0024 00D1 bne .LCB2315
2329 0026 A2E0 b .L191 @long jump
2330 .LCB2315:
1436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2331 .loc 1 1436 0 is_stmt 0 discriminator 2
2332 0028 4023 movs r3, #64
2333 002a 0122 movs r2, #1
2334 .LVL180:
2335 002c C254 strb r2, [r0, r3]
1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2336 .loc 1 1439 0 is_stmt 1 discriminator 2
2337 002e FFF7FEFF bl HAL_GetTick
2338 .LVL181:
2339 0032 0700 movs r7, r0
2340 .LVL182:
1441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2341 .loc 1 1441 0 discriminator 2
2342 0034 4123 movs r3, #65
2343 0036 2222 movs r2, #34
2344 0038 F254 strb r2, [r6, r3]
1442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2345 .loc 1 1442 0 discriminator 2
2346 003a 0133 adds r3, r3, #1
2347 003c 023A subs r2, r2, #2
2348 003e F254 strb r2, [r6, r3]
1443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2349 .loc 1 1443 0 discriminator 2
ARM GAS /tmp/ccpK4Ax4.s page 161
2350 0040 0023 movs r3, #0
2351 0042 7364 str r3, [r6, #68]
1446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
2352 .loc 1 1446 0 discriminator 2
2353 0044 7462 str r4, [r6, #36]
1447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
2354 .loc 1 1447 0 discriminator 2
2355 0046 7585 strh r5, [r6, #42]
1448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2356 .loc 1 1448 0 discriminator 2
2357 0048 7363 str r3, [r6, #52]
1451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2358 .loc 1 1451 0 discriminator 2
2359 004a 3268 ldr r2, [r6]
2360 004c 5368 ldr r3, [r2, #4]
2361 004e 4A49 ldr r1, .L195
2362 0050 0B40 ands r3, r1
2363 0052 5360 str r3, [r2, #4]
1454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2364 .loc 1 1454 0 discriminator 2
2365 0054 0090 str r0, [sp]
2366 0056 039B ldr r3, [sp, #12]
2367 0058 0022 movs r2, #0
2368 005a 0821 movs r1, #8
2369 005c 3000 movs r0, r6
2370 .LVL183:
2371 005e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2372 .LVL184:
2373 0062 0028 cmp r0, #0
2374 0064 0CD0 beq .L184
1457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2375 .loc 1 1457 0
2376 0066 3268 ldr r2, [r6]
2377 0068 5168 ldr r1, [r2, #4]
2378 006a 8023 movs r3, #128
2379 006c 1B02 lsls r3, r3, #8
2380 006e 0B43 orrs r3, r1
2381 0070 5360 str r3, [r2, #4]
1458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2382 .loc 1 1458 0
2383 0072 0120 movs r0, #1
2384 0074 79E0 b .L181
2385 .LVL185:
2386 .L182:
1432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2387 .loc 1 1432 0
2388 0076 8023 movs r3, #128
2389 0078 9B00 lsls r3, r3, #2
2390 007a 7364 str r3, [r6, #68]
1433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2391 .loc 1 1433 0
2392 007c 0120 movs r0, #1
2393 .LVL186:
2394 007e 74E0 b .L181
2395 .LVL187:
2396 .L184:
1462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 162
2397 .loc 1 1462 0
2398 0080 3368 ldr r3, [r6]
2399 0082 0822 movs r2, #8
2400 0084 DA61 str r2, [r3, #28]
1465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2401 .loc 1 1465 0
2402 0086 8021 movs r1, #128
2403 0088 0097 str r7, [sp]
2404 008a 039B ldr r3, [sp, #12]
2405 008c 073A subs r2, r2, #7
2406 008e 4902 lsls r1, r1, #9
2407 0090 3000 movs r0, r6
2408 0092 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2409 .LVL188:
2410 0096 0028 cmp r0, #0
2411 0098 12D0 beq .L185
1468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2412 .loc 1 1468 0
2413 009a 3268 ldr r2, [r6]
2414 009c 5168 ldr r1, [r2, #4]
2415 009e 8023 movs r3, #128
2416 00a0 1B02 lsls r3, r3, #8
2417 00a2 0B43 orrs r3, r1
2418 00a4 5360 str r3, [r2, #4]
1469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2419 .loc 1 1469 0
2420 00a6 0120 movs r0, #1
2421 00a8 5FE0 b .L181
2422 .L186:
1496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2423 .loc 1 1496 0
2424 00aa 3368 ldr r3, [r6]
2425 00ac 5B6A ldr r3, [r3, #36]
2426 00ae 726A ldr r2, [r6, #36]
2427 00b0 1370 strb r3, [r2]
1499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2428 .loc 1 1499 0
2429 00b2 736A ldr r3, [r6, #36]
2430 00b4 0133 adds r3, r3, #1
2431 00b6 7362 str r3, [r6, #36]
1501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2432 .loc 1 1501 0
2433 00b8 738D ldrh r3, [r6, #42]
2434 00ba 013B subs r3, r3, #1
2435 00bc 9BB2 uxth r3, r3
2436 00be 7385 strh r3, [r6, #42]
2437 .L185:
1472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2438 .loc 1 1472 0
2439 00c0 738D ldrh r3, [r6, #42]
2440 00c2 9BB2 uxth r3, r3
2441 00c4 002B cmp r3, #0
2442 00c6 1CD0 beq .L193
1475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2443 .loc 1 1475 0
2444 00c8 3A00 movs r2, r7
2445 00ca 0399 ldr r1, [sp, #12]
ARM GAS /tmp/ccpK4Ax4.s page 163
2446 00cc 3000 movs r0, r6
2447 00ce FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
2448 .LVL189:
2449 00d2 0028 cmp r0, #0
2450 00d4 E9D0 beq .L186
1478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2451 .loc 1 1478 0
2452 00d6 3268 ldr r2, [r6]
2453 00d8 5168 ldr r1, [r2, #4]
2454 00da 8023 movs r3, #128
2455 00dc 1B02 lsls r3, r3, #8
2456 00de 0B43 orrs r3, r1
2457 00e0 5360 str r3, [r2, #4]
1481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2458 .loc 1 1481 0
2459 00e2 3368 ldr r3, [r6]
2460 00e4 9A69 ldr r2, [r3, #24]
2461 00e6 5207 lsls r2, r2, #29
2462 00e8 43D5 bpl .L192
1484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2463 .loc 1 1484 0
2464 00ea 5B6A ldr r3, [r3, #36]
2465 00ec 726A ldr r2, [r6, #36]
2466 00ee 1370 strb r3, [r2]
1487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2467 .loc 1 1487 0
2468 00f0 736A ldr r3, [r6, #36]
2469 00f2 0133 adds r3, r3, #1
2470 00f4 7362 str r3, [r6, #36]
1489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2471 .loc 1 1489 0
2472 00f6 738D ldrh r3, [r6, #42]
2473 00f8 013B subs r3, r3, #1
2474 00fa 9BB2 uxth r3, r3
2475 00fc 7385 strh r3, [r6, #42]
1492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2476 .loc 1 1492 0
2477 00fe 0120 movs r0, #1
2478 0100 33E0 b .L181
2479 .L193:
1505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2480 .loc 1 1505 0
2481 0102 3A00 movs r2, r7
2482 0104 0399 ldr r1, [sp, #12]
2483 0106 3000 movs r0, r6
2484 0108 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2485 .LVL190:
2486 010c 0028 cmp r0, #0
2487 010e 07D0 beq .L188
1508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2488 .loc 1 1508 0
2489 0110 3268 ldr r2, [r6]
2490 0112 5168 ldr r1, [r2, #4]
2491 0114 8023 movs r3, #128
2492 0116 1B02 lsls r3, r3, #8
2493 0118 0B43 orrs r3, r1
2494 011a 5360 str r3, [r2, #4]
ARM GAS /tmp/ccpK4Ax4.s page 164
1509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2495 .loc 1 1509 0
2496 011c 0120 movs r0, #1
2497 011e 24E0 b .L181
2498 .L188:
1513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2499 .loc 1 1513 0
2500 0120 3368 ldr r3, [r6]
2501 0122 2022 movs r2, #32
2502 0124 DA61 str r2, [r3, #28]
1516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2503 .loc 1 1516 0
2504 0126 8021 movs r1, #128
2505 0128 0097 str r7, [sp]
2506 012a 039B ldr r3, [sp, #12]
2507 012c 1F3A subs r2, r2, #31
2508 012e 0902 lsls r1, r1, #8
2509 0130 3000 movs r0, r6
2510 0132 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2511 .LVL191:
2512 0136 0028 cmp r0, #0
2513 0138 0ED1 bne .L194
1524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2514 .loc 1 1524 0
2515 013a 3268 ldr r2, [r6]
2516 013c 5168 ldr r1, [r2, #4]
2517 013e 8023 movs r3, #128
2518 0140 1B02 lsls r3, r3, #8
2519 0142 0B43 orrs r3, r1
2520 0144 5360 str r3, [r2, #4]
1526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2521 .loc 1 1526 0
2522 0146 4123 movs r3, #65
2523 0148 2022 movs r2, #32
2524 014a F254 strb r2, [r6, r3]
1527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2525 .loc 1 1527 0
2526 014c 0023 movs r3, #0
2527 014e 2232 adds r2, r2, #34
2528 0150 B354 strb r3, [r6, r2]
1530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2529 .loc 1 1530 0
2530 0152 023A subs r2, r2, #2
2531 0154 B354 strb r3, [r6, r2]
1532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2532 .loc 1 1532 0
2533 0156 08E0 b .L181
2534 .L194:
1519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
2535 .loc 1 1519 0
2536 0158 3268 ldr r2, [r6]
2537 015a 5168 ldr r1, [r2, #4]
2538 015c 8023 movs r3, #128
2539 015e 1B02 lsls r3, r3, #8
2540 0160 0B43 orrs r3, r1
2541 0162 5360 str r3, [r2, #4]
1520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpK4Ax4.s page 165
2542 .loc 1 1520 0
2543 0164 0120 movs r0, #1
2544 0166 00E0 b .L181
2545 .LVL192:
2546 .L190:
1536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2547 .loc 1 1536 0
2548 0168 0220 movs r0, #2
2549 .LVL193:
2550 .L181:
1538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2551 .loc 1 1538 0
2552 016a 05B0 add sp, sp, #20
2553 @ sp needed
2554 .LVL194:
2555 .LVL195:
2556 016c F0BD pop {r4, r5, r6, r7, pc}
2557 .LVL196:
2558 .L191:
1436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2559 .loc 1 1436 0
2560 016e 0220 movs r0, #2
2561 .LVL197:
2562 0170 FBE7 b .L181
2563 .LVL198:
2564 .L192:
1492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2565 .loc 1 1492 0
2566 0172 0120 movs r0, #1
2567 0174 F9E7 b .L181
2568 .L196:
2569 0176 C046 .align 2
2570 .L195:
2571 0178 FF7FFFFF .word -32769
2572 .cfi_endproc
2573 .LFE47:
2575 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits
2576 .align 1
2577 .global HAL_I2C_Master_Transmit_IT
2578 .syntax unified
2579 .code 16
2580 .thumb_func
2581 .fpu softvfp
2583 HAL_I2C_Master_Transmit_IT:
2584 .LFB48:
1551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
2585 .loc 1 1551 0
2586 .cfi_startproc
2587 @ args = 0, pretend = 0, frame = 0
2588 @ frame_needed = 0, uses_anonymous_args = 0
2589 .LVL199:
2590 0000 30B5 push {r4, r5, lr}
2591 .LCFI21:
2592 .cfi_def_cfa_offset 12
2593 .cfi_offset 4, -12
2594 .cfi_offset 5, -8
2595 .cfi_offset 14, -4
ARM GAS /tmp/ccpK4Ax4.s page 166
2596 0002 83B0 sub sp, sp, #12
2597 .LCFI22:
2598 .cfi_def_cfa_offset 24
2599 0004 0400 movs r4, r0
1554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2600 .loc 1 1554 0
2601 0006 4120 movs r0, #65
2602 .LVL200:
2603 0008 205C ldrb r0, [r4, r0]
2604 000a 2028 cmp r0, #32
2605 000c 35D1 bne .L201
1556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2606 .loc 1 1556 0
2607 000e 2068 ldr r0, [r4]
2608 0010 8069 ldr r0, [r0, #24]
2609 0012 0004 lsls r0, r0, #16
2610 0014 34D4 bmi .L202
1562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2611 .loc 1 1562 0
2612 0016 4020 movs r0, #64
2613 0018 205C ldrb r0, [r4, r0]
2614 001a 0128 cmp r0, #1
2615 001c 32D0 beq .L203
1562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2616 .loc 1 1562 0 is_stmt 0 discriminator 2
2617 001e 4020 movs r0, #64
2618 0020 0125 movs r5, #1
2619 0022 2554 strb r5, [r4, r0]
1564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2620 .loc 1 1564 0 is_stmt 1 discriminator 2
2621 0024 0130 adds r0, r0, #1
2622 0026 2035 adds r5, r5, #32
2623 0028 2554 strb r5, [r4, r0]
1565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2624 .loc 1 1565 0 discriminator 2
2625 002a 0130 adds r0, r0, #1
2626 002c 113D subs r5, r5, #17
2627 002e 2554 strb r5, [r4, r0]
1566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2628 .loc 1 1566 0 discriminator 2
2629 0030 0020 movs r0, #0
2630 0032 6064 str r0, [r4, #68]
1569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
2631 .loc 1 1569 0 discriminator 2
2632 0034 6262 str r2, [r4, #36]
1570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2633 .loc 1 1570 0 discriminator 2
2634 0036 6385 strh r3, [r4, #42]
1571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2635 .loc 1 1571 0 discriminator 2
2636 0038 134B ldr r3, .L204
2637 .LVL201:
2638 003a E362 str r3, [r4, #44]
2639 .LVL202:
1572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2640 .loc 1 1572 0 discriminator 2
2641 003c 134B ldr r3, .L204+4
ARM GAS /tmp/ccpK4Ax4.s page 167
2642 003e 6363 str r3, [r4, #52]
1574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2643 .loc 1 1574 0 discriminator 2
2644 0040 638D ldrh r3, [r4, #42]
2645 0042 9BB2 uxth r3, r3
2646 0044 FF2B cmp r3, #255
2647 0046 13D9 bls .L199
1576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2648 .loc 1 1576 0
2649 0048 FF23 movs r3, #255
2650 004a 2385 strh r3, [r4, #40]
2651 .LVL203:
1577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2652 .loc 1 1577 0
2653 004c 8023 movs r3, #128
2654 004e 5B04 lsls r3, r3, #17
2655 .LVL204:
2656 .L200:
1587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2657 .loc 1 1587 0
2658 0050 228D ldrh r2, [r4, #40]
2659 .LVL205:
2660 0052 D2B2 uxtb r2, r2
2661 0054 0E48 ldr r0, .L204+8
2662 0056 0090 str r0, [sp]
2663 .LVL206:
2664 0058 2000 movs r0, r4
2665 005a FFF7FEFF bl I2C_TransferConfig
2666 .LVL207:
1590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2667 .loc 1 1590 0
2668 005e 4023 movs r3, #64
2669 0060 0022 movs r2, #0
2670 0062 E254 strb r2, [r4, r3]
1599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2671 .loc 1 1599 0
2672 0064 0121 movs r1, #1
2673 0066 2000 movs r0, r4
2674 0068 FFF7FEFF bl I2C_Enable_IRQ
2675 .LVL208:
1601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2676 .loc 1 1601 0
2677 006c 0020 movs r0, #0
2678 006e 05E0 b .L198
2679 .LVL209:
2680 .L199:
1581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2681 .loc 1 1581 0
2682 0070 638D ldrh r3, [r4, #42]
2683 0072 2385 strh r3, [r4, #40]
2684 .LVL210:
1582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2685 .loc 1 1582 0
2686 0074 8023 movs r3, #128
2687 0076 9B04 lsls r3, r3, #18
2688 0078 EAE7 b .L200
2689 .LVL211:
ARM GAS /tmp/ccpK4Ax4.s page 168
2690 .L201:
1605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2691 .loc 1 1605 0
2692 007a 0220 movs r0, #2
2693 .LVL212:
2694 .L198:
1607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2695 .loc 1 1607 0
2696 007c 03B0 add sp, sp, #12
2697 @ sp needed
2698 .LVL213:
2699 007e 30BD pop {r4, r5, pc}
2700 .LVL214:
2701 .L202:
1558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2702 .loc 1 1558 0
2703 0080 0220 movs r0, #2
2704 0082 FBE7 b .L198
2705 .L203:
1562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2706 .loc 1 1562 0
2707 0084 0220 movs r0, #2
2708 0086 F9E7 b .L198
2709 .L205:
2710 .align 2
2711 .L204:
2712 0088 0000FFFF .word -65536
2713 008c 00000000 .word I2C_Master_ISR_IT
2714 0090 00200080 .word -2147475456
2715 .cfi_endproc
2716 .LFE48:
2718 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits
2719 .align 1
2720 .global HAL_I2C_Master_Receive_IT
2721 .syntax unified
2722 .code 16
2723 .thumb_func
2724 .fpu softvfp
2726 HAL_I2C_Master_Receive_IT:
2727 .LFB49:
1620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
2728 .loc 1 1620 0
2729 .cfi_startproc
2730 @ args = 0, pretend = 0, frame = 0
2731 @ frame_needed = 0, uses_anonymous_args = 0
2732 .LVL215:
2733 0000 30B5 push {r4, r5, lr}
2734 .LCFI23:
2735 .cfi_def_cfa_offset 12
2736 .cfi_offset 4, -12
2737 .cfi_offset 5, -8
2738 .cfi_offset 14, -4
2739 0002 83B0 sub sp, sp, #12
2740 .LCFI24:
2741 .cfi_def_cfa_offset 24
2742 0004 0400 movs r4, r0
1623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 169
2743 .loc 1 1623 0
2744 0006 4120 movs r0, #65
2745 .LVL216:
2746 0008 205C ldrb r0, [r4, r0]
2747 000a 2028 cmp r0, #32
2748 000c 35D1 bne .L210
1625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2749 .loc 1 1625 0
2750 000e 2068 ldr r0, [r4]
2751 0010 8069 ldr r0, [r0, #24]
2752 0012 0004 lsls r0, r0, #16
2753 0014 34D4 bmi .L211
1631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2754 .loc 1 1631 0
2755 0016 4020 movs r0, #64
2756 0018 205C ldrb r0, [r4, r0]
2757 001a 0128 cmp r0, #1
2758 001c 32D0 beq .L212
1631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2759 .loc 1 1631 0 is_stmt 0 discriminator 2
2760 001e 4020 movs r0, #64
2761 0020 0125 movs r5, #1
2762 0022 2554 strb r5, [r4, r0]
1633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2763 .loc 1 1633 0 is_stmt 1 discriminator 2
2764 0024 0130 adds r0, r0, #1
2765 0026 2135 adds r5, r5, #33
2766 0028 2554 strb r5, [r4, r0]
1634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2767 .loc 1 1634 0 discriminator 2
2768 002a 0130 adds r0, r0, #1
2769 002c 123D subs r5, r5, #18
2770 002e 2554 strb r5, [r4, r0]
1635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2771 .loc 1 1635 0 discriminator 2
2772 0030 0020 movs r0, #0
2773 0032 6064 str r0, [r4, #68]
1638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
2774 .loc 1 1638 0 discriminator 2
2775 0034 6262 str r2, [r4, #36]
1639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2776 .loc 1 1639 0 discriminator 2
2777 0036 6385 strh r3, [r4, #42]
1640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2778 .loc 1 1640 0 discriminator 2
2779 0038 134B ldr r3, .L213
2780 .LVL217:
2781 003a E362 str r3, [r4, #44]
2782 .LVL218:
1641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2783 .loc 1 1641 0 discriminator 2
2784 003c 134B ldr r3, .L213+4
2785 003e 6363 str r3, [r4, #52]
1643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2786 .loc 1 1643 0 discriminator 2
2787 0040 638D ldrh r3, [r4, #42]
2788 0042 9BB2 uxth r3, r3
ARM GAS /tmp/ccpK4Ax4.s page 170
2789 0044 FF2B cmp r3, #255
2790 0046 13D9 bls .L208
1645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2791 .loc 1 1645 0
2792 0048 FF23 movs r3, #255
2793 004a 2385 strh r3, [r4, #40]
2794 .LVL219:
1646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2795 .loc 1 1646 0
2796 004c 8023 movs r3, #128
2797 004e 5B04 lsls r3, r3, #17
2798 .LVL220:
2799 .L209:
1656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2800 .loc 1 1656 0
2801 0050 228D ldrh r2, [r4, #40]
2802 .LVL221:
2803 0052 D2B2 uxtb r2, r2
2804 0054 0E48 ldr r0, .L213+8
2805 0056 0090 str r0, [sp]
2806 .LVL222:
2807 0058 2000 movs r0, r4
2808 005a FFF7FEFF bl I2C_TransferConfig
2809 .LVL223:
1659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2810 .loc 1 1659 0
2811 005e 4023 movs r3, #64
2812 0060 0022 movs r2, #0
2813 0062 E254 strb r2, [r4, r3]
1668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2814 .loc 1 1668 0
2815 0064 0221 movs r1, #2
2816 0066 2000 movs r0, r4
2817 0068 FFF7FEFF bl I2C_Enable_IRQ
2818 .LVL224:
1670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2819 .loc 1 1670 0
2820 006c 0020 movs r0, #0
2821 006e 05E0 b .L207
2822 .LVL225:
2823 .L208:
1650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2824 .loc 1 1650 0
2825 0070 638D ldrh r3, [r4, #42]
2826 0072 2385 strh r3, [r4, #40]
2827 .LVL226:
1651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2828 .loc 1 1651 0
2829 0074 8023 movs r3, #128
2830 0076 9B04 lsls r3, r3, #18
2831 0078 EAE7 b .L209
2832 .LVL227:
2833 .L210:
1674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2834 .loc 1 1674 0
2835 007a 0220 movs r0, #2
2836 .LVL228:
ARM GAS /tmp/ccpK4Ax4.s page 171
2837 .L207:
1676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2838 .loc 1 1676 0
2839 007c 03B0 add sp, sp, #12
2840 @ sp needed
2841 .LVL229:
2842 007e 30BD pop {r4, r5, pc}
2843 .LVL230:
2844 .L211:
1627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2845 .loc 1 1627 0
2846 0080 0220 movs r0, #2
2847 0082 FBE7 b .L207
2848 .L212:
1631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2849 .loc 1 1631 0
2850 0084 0220 movs r0, #2
2851 0086 F9E7 b .L207
2852 .L214:
2853 .align 2
2854 .L213:
2855 0088 0000FFFF .word -65536
2856 008c 00000000 .word I2C_Master_ISR_IT
2857 0090 00240080 .word -2147474432
2858 .cfi_endproc
2859 .LFE49:
2861 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits
2862 .align 1
2863 .global HAL_I2C_Slave_Transmit_IT
2864 .syntax unified
2865 .code 16
2866 .thumb_func
2867 .fpu softvfp
2869 HAL_I2C_Slave_Transmit_IT:
2870 .LFB50:
1687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2871 .loc 1 1687 0
2872 .cfi_startproc
2873 @ args = 0, pretend = 0, frame = 0
2874 @ frame_needed = 0, uses_anonymous_args = 0
2875 .LVL231:
2876 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
2877 .LCFI25:
2878 .cfi_def_cfa_offset 24
2879 .cfi_offset 3, -24
2880 .cfi_offset 4, -20
2881 .cfi_offset 5, -16
2882 .cfi_offset 6, -12
2883 .cfi_offset 7, -8
2884 .cfi_offset 14, -4
1688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2885 .loc 1 1688 0
2886 0002 4123 movs r3, #65
2887 0004 C35C ldrb r3, [r0, r3]
2888 0006 202B cmp r3, #32
2889 0008 21D1 bne .L217
1691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 172
2890 .loc 1 1691 0
2891 000a 2033 adds r3, r3, #32
2892 000c C35C ldrb r3, [r0, r3]
2893 000e 012B cmp r3, #1
2894 0010 1FD0 beq .L218
1691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2895 .loc 1 1691 0 is_stmt 0 discriminator 2
2896 0012 4024 movs r4, #64
2897 0014 0123 movs r3, #1
2898 0016 0355 strb r3, [r0, r4]
1693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2899 .loc 1 1693 0 is_stmt 1 discriminator 2
2900 0018 4033 adds r3, r3, #64
2901 001a 2125 movs r5, #33
2902 001c C554 strb r5, [r0, r3]
1694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2903 .loc 1 1694 0 discriminator 2
2904 001e 0133 adds r3, r3, #1
2905 0020 013D subs r5, r5, #1
2906 0022 C554 strb r5, [r0, r3]
1695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2907 .loc 1 1695 0 discriminator 2
2908 0024 0025 movs r5, #0
2909 0026 4564 str r5, [r0, #68]
1698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2910 .loc 1 1698 0 discriminator 2
2911 0028 0668 ldr r6, [r0]
2912 002a 7368 ldr r3, [r6, #4]
2913 002c 0A4F ldr r7, .L219
2914 002e 3B40 ands r3, r7
2915 0030 7360 str r3, [r6, #4]
1701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
2916 .loc 1 1701 0 discriminator 2
2917 0032 4162 str r1, [r0, #36]
1702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2918 .loc 1 1702 0 discriminator 2
2919 0034 4285 strh r2, [r0, #42]
1703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2920 .loc 1 1703 0 discriminator 2
2921 0036 438D ldrh r3, [r0, #42]
2922 0038 0385 strh r3, [r0, #40]
1704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
2923 .loc 1 1704 0 discriminator 2
2924 003a 084B ldr r3, .L219+4
2925 003c C362 str r3, [r0, #44]
1705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2926 .loc 1 1705 0 discriminator 2
2927 003e 084B ldr r3, .L219+8
2928 0040 4363 str r3, [r0, #52]
1708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2929 .loc 1 1708 0 discriminator 2
2930 0042 0555 strb r5, [r0, r4]
1717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2931 .loc 1 1717 0 discriminator 2
2932 0044 0521 movs r1, #5
2933 .LVL232:
2934 0046 FFF7FEFF bl I2C_Enable_IRQ
ARM GAS /tmp/ccpK4Ax4.s page 173
2935 .LVL233:
1719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2936 .loc 1 1719 0 discriminator 2
2937 004a 0020 movs r0, #0
2938 004c 00E0 b .L216
2939 .LVL234:
2940 .L217:
1723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
2941 .loc 1 1723 0
2942 004e 0220 movs r0, #2
2943 .LVL235:
2944 .L216:
1725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2945 .loc 1 1725 0
2946 @ sp needed
2947 0050 F8BD pop {r3, r4, r5, r6, r7, pc}
2948 .LVL236:
2949 .L218:
1691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2950 .loc 1 1691 0
2951 0052 0220 movs r0, #2
2952 .LVL237:
2953 0054 FCE7 b .L216
2954 .L220:
2955 0056 C046 .align 2
2956 .L219:
2957 0058 FF7FFFFF .word -32769
2958 005c 0000FFFF .word -65536
2959 0060 00000000 .word I2C_Slave_ISR_IT
2960 .cfi_endproc
2961 .LFE50:
2963 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits
2964 .align 1
2965 .global HAL_I2C_Slave_Receive_IT
2966 .syntax unified
2967 .code 16
2968 .thumb_func
2969 .fpu softvfp
2971 HAL_I2C_Slave_Receive_IT:
2972 .LFB51:
1736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2973 .loc 1 1736 0
2974 .cfi_startproc
2975 @ args = 0, pretend = 0, frame = 0
2976 @ frame_needed = 0, uses_anonymous_args = 0
2977 .LVL238:
2978 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
2979 .LCFI26:
2980 .cfi_def_cfa_offset 24
2981 .cfi_offset 3, -24
2982 .cfi_offset 4, -20
2983 .cfi_offset 5, -16
2984 .cfi_offset 6, -12
2985 .cfi_offset 7, -8
2986 .cfi_offset 14, -4
1737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
2987 .loc 1 1737 0
ARM GAS /tmp/ccpK4Ax4.s page 174
2988 0002 4123 movs r3, #65
2989 0004 C35C ldrb r3, [r0, r3]
2990 0006 202B cmp r3, #32
2991 0008 21D1 bne .L223
1740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2992 .loc 1 1740 0
2993 000a 2033 adds r3, r3, #32
2994 000c C35C ldrb r3, [r0, r3]
2995 000e 012B cmp r3, #1
2996 0010 1FD0 beq .L224
1740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
2997 .loc 1 1740 0 is_stmt 0 discriminator 2
2998 0012 4024 movs r4, #64
2999 0014 0123 movs r3, #1
3000 0016 0355 strb r3, [r0, r4]
1742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3001 .loc 1 1742 0 is_stmt 1 discriminator 2
3002 0018 4033 adds r3, r3, #64
3003 001a 2225 movs r5, #34
3004 001c C554 strb r5, [r0, r3]
1743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3005 .loc 1 1743 0 discriminator 2
3006 001e 0133 adds r3, r3, #1
3007 0020 023D subs r5, r5, #2
3008 0022 C554 strb r5, [r0, r3]
1744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3009 .loc 1 1744 0 discriminator 2
3010 0024 0025 movs r5, #0
3011 0026 4564 str r5, [r0, #68]
1747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3012 .loc 1 1747 0 discriminator 2
3013 0028 0668 ldr r6, [r0]
3014 002a 7368 ldr r3, [r6, #4]
3015 002c 0A4F ldr r7, .L225
3016 002e 3B40 ands r3, r7
3017 0030 7360 str r3, [r6, #4]
1750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
3018 .loc 1 1750 0 discriminator 2
3019 0032 4162 str r1, [r0, #36]
1751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3020 .loc 1 1751 0 discriminator 2
3021 0034 4285 strh r2, [r0, #42]
1752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3022 .loc 1 1752 0 discriminator 2
3023 0036 438D ldrh r3, [r0, #42]
3024 0038 0385 strh r3, [r0, #40]
1753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3025 .loc 1 1753 0 discriminator 2
3026 003a 084B ldr r3, .L225+4
3027 003c C362 str r3, [r0, #44]
1754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3028 .loc 1 1754 0 discriminator 2
3029 003e 084B ldr r3, .L225+8
3030 0040 4363 str r3, [r0, #52]
1757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3031 .loc 1 1757 0 discriminator 2
3032 0042 0555 strb r5, [r0, r4]
ARM GAS /tmp/ccpK4Ax4.s page 175
1766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3033 .loc 1 1766 0 discriminator 2
3034 0044 0621 movs r1, #6
3035 .LVL239:
3036 0046 FFF7FEFF bl I2C_Enable_IRQ
3037 .LVL240:
1768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3038 .loc 1 1768 0 discriminator 2
3039 004a 0020 movs r0, #0
3040 004c 00E0 b .L222
3041 .LVL241:
3042 .L223:
1772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3043 .loc 1 1772 0
3044 004e 0220 movs r0, #2
3045 .LVL242:
3046 .L222:
1774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3047 .loc 1 1774 0
3048 @ sp needed
3049 0050 F8BD pop {r3, r4, r5, r6, r7, pc}
3050 .LVL243:
3051 .L224:
1740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3052 .loc 1 1740 0
3053 0052 0220 movs r0, #2
3054 .LVL244:
3055 0054 FCE7 b .L222
3056 .L226:
3057 0056 C046 .align 2
3058 .L225:
3059 0058 FF7FFFFF .word -32769
3060 005c 0000FFFF .word -65536
3061 0060 00000000 .word I2C_Slave_ISR_IT
3062 .cfi_endproc
3063 .LFE51:
3065 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits
3066 .align 1
3067 .global HAL_I2C_Master_Transmit_DMA
3068 .syntax unified
3069 .code 16
3070 .thumb_func
3071 .fpu softvfp
3073 HAL_I2C_Master_Transmit_DMA:
3074 .LFB52:
1787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
3075 .loc 1 1787 0
3076 .cfi_startproc
3077 @ args = 0, pretend = 0, frame = 0
3078 @ frame_needed = 0, uses_anonymous_args = 0
3079 .LVL245:
3080 0000 F0B5 push {r4, r5, r6, r7, lr}
3081 .LCFI27:
3082 .cfi_def_cfa_offset 20
3083 .cfi_offset 4, -20
3084 .cfi_offset 5, -16
3085 .cfi_offset 6, -12
ARM GAS /tmp/ccpK4Ax4.s page 176
3086 .cfi_offset 7, -8
3087 .cfi_offset 14, -4
3088 0002 83B0 sub sp, sp, #12
3089 .LCFI28:
3090 .cfi_def_cfa_offset 32
3091 0004 0400 movs r4, r0
3092 0006 0E00 movs r6, r1
3093 0008 1100 movs r1, r2
3094 .LVL246:
1791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3095 .loc 1 1791 0
3096 000a 4122 movs r2, #65
3097 .LVL247:
3098 000c 825C ldrb r2, [r0, r2]
3099 000e 202A cmp r2, #32
3100 0010 00D0 beq .LCB3093
3101 0012 8BE0 b .L235 @long jump
3102 .LCB3093:
1793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3103 .loc 1 1793 0
3104 0014 0268 ldr r2, [r0]
3105 0016 9269 ldr r2, [r2, #24]
3106 0018 1204 lsls r2, r2, #16
3107 001a 00D5 bpl .LCB3099
3108 001c 8AE0 b .L236 @long jump
3109 .LCB3099:
1799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3110 .loc 1 1799 0
3111 001e 4022 movs r2, #64
3112 0020 825C ldrb r2, [r0, r2]
3113 0022 012A cmp r2, #1
3114 0024 00D1 bne .LCB3103
3115 0026 87E0 b .L237 @long jump
3116 .LCB3103:
1799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3117 .loc 1 1799 0 is_stmt 0 discriminator 2
3118 0028 4022 movs r2, #64
3119 002a 0120 movs r0, #1
3120 .LVL248:
3121 002c A054 strb r0, [r4, r2]
1801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3122 .loc 1 1801 0 is_stmt 1 discriminator 2
3123 002e 0132 adds r2, r2, #1
3124 0030 2030 adds r0, r0, #32
3125 0032 A054 strb r0, [r4, r2]
1802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3126 .loc 1 1802 0 discriminator 2
3127 0034 0132 adds r2, r2, #1
3128 0036 1138 subs r0, r0, #17
3129 0038 A054 strb r0, [r4, r2]
1803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3130 .loc 1 1803 0 discriminator 2
3131 003a 0022 movs r2, #0
3132 003c 6264 str r2, [r4, #68]
1806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
3133 .loc 1 1806 0 discriminator 2
3134 003e 6162 str r1, [r4, #36]
ARM GAS /tmp/ccpK4Ax4.s page 177
1807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3135 .loc 1 1807 0 discriminator 2
3136 0040 6385 strh r3, [r4, #42]
1808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3137 .loc 1 1808 0 discriminator 2
3138 0042 3E4B ldr r3, .L240
3139 .LVL249:
3140 0044 E362 str r3, [r4, #44]
3141 .LVL250:
1809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3142 .loc 1 1809 0 discriminator 2
3143 0046 3E4B ldr r3, .L240+4
3144 0048 6363 str r3, [r4, #52]
1811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3145 .loc 1 1811 0 discriminator 2
3146 004a 638D ldrh r3, [r4, #42]
3147 004c 9BB2 uxth r3, r3
3148 004e FF2B cmp r3, #255
3149 0050 29D9 bls .L229
1813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3150 .loc 1 1813 0
3151 0052 FF23 movs r3, #255
3152 0054 2385 strh r3, [r4, #40]
3153 .LVL251:
1814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3154 .loc 1 1814 0
3155 0056 8027 movs r7, #128
3156 0058 7F04 lsls r7, r7, #17
3157 .LVL252:
3158 .L230:
1822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3159 .loc 1 1822 0
3160 005a 228D ldrh r2, [r4, #40]
3161 005c 002A cmp r2, #0
3162 005e 51D0 beq .L231
1824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3163 .loc 1 1824 0
3164 0060 A36B ldr r3, [r4, #56]
3165 0062 002B cmp r3, #0
3166 0064 24D0 beq .L232
1827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3167 .loc 1 1827 0
3168 0066 374A ldr r2, .L240+8
3169 0068 9A62 str r2, [r3, #40]
1830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3170 .loc 1 1830 0
3171 006a A36B ldr r3, [r4, #56]
3172 006c 364A ldr r2, .L240+12
3173 006e 1A63 str r2, [r3, #48]
1833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3174 .loc 1 1833 0
3175 0070 A26B ldr r2, [r4, #56]
3176 0072 0023 movs r3, #0
3177 0074 D362 str r3, [r2, #44]
1834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3178 .loc 1 1834 0
3179 0076 A26B ldr r2, [r4, #56]
ARM GAS /tmp/ccpK4Ax4.s page 178
3180 0078 5363 str r3, [r2, #52]
1837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3181 .loc 1 1837 0
3182 007a 2268 ldr r2, [r4]
3183 007c 2832 adds r2, r2, #40
3184 007e 238D ldrh r3, [r4, #40]
3185 0080 A06B ldr r0, [r4, #56]
3186 0082 FFF7FEFF bl HAL_DMA_Start_IT
3187 .LVL253:
3188 0086 051E subs r5, r0, #0
3189 .LVL254:
1854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3190 .loc 1 1854 0
3191 0088 20D0 beq .L239
1878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3192 .loc 1 1878 0
3193 008a 4123 movs r3, #65
3194 008c 2022 movs r2, #32
3195 008e E254 strb r2, [r4, r3]
1879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3196 .loc 1 1879 0
3197 0090 0022 movs r2, #0
3198 0092 0133 adds r3, r3, #1
3199 0094 E254 strb r2, [r4, r3]
1882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3200 .loc 1 1882 0
3201 0096 636C ldr r3, [r4, #68]
3202 0098 1021 movs r1, #16
3203 009a 0B43 orrs r3, r1
3204 009c 6364 str r3, [r4, #68]
1885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3205 .loc 1 1885 0
3206 009e 4023 movs r3, #64
3207 00a0 E254 strb r2, [r4, r3]
1887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3208 .loc 1 1887 0
3209 00a2 0125 movs r5, #1
3210 00a4 43E0 b .L228
3211 .LVL255:
3212 .L229:
1818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3213 .loc 1 1818 0
3214 00a6 638D ldrh r3, [r4, #42]
3215 00a8 2385 strh r3, [r4, #40]
3216 .LVL256:
1819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3217 .loc 1 1819 0
3218 00aa 8027 movs r7, #128
3219 00ac BF04 lsls r7, r7, #18
3220 00ae D4E7 b .L230
3221 .LVL257:
3222 .L232:
1842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3223 .loc 1 1842 0
3224 00b0 4123 movs r3, #65
3225 00b2 2022 movs r2, #32
3226 00b4 E254 strb r2, [r4, r3]
ARM GAS /tmp/ccpK4Ax4.s page 179
1843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3227 .loc 1 1843 0
3228 00b6 0022 movs r2, #0
3229 00b8 0133 adds r3, r3, #1
3230 00ba E254 strb r2, [r4, r3]
1846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3231 .loc 1 1846 0
3232 00bc 636C ldr r3, [r4, #68]
3233 00be 8021 movs r1, #128
3234 .LVL258:
3235 00c0 0B43 orrs r3, r1
3236 00c2 6364 str r3, [r4, #68]
1849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3237 .loc 1 1849 0
3238 00c4 4023 movs r3, #64
3239 00c6 E254 strb r2, [r4, r3]
1851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3240 .loc 1 1851 0
3241 00c8 0125 movs r5, #1
3242 00ca 30E0 b .L228
3243 .LVL259:
3244 .L239:
1858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3245 .loc 1 1858 0
3246 00cc 228D ldrh r2, [r4, #40]
3247 00ce D2B2 uxtb r2, r2
3248 00d0 1E4B ldr r3, .L240+16
3249 00d2 0093 str r3, [sp]
3250 00d4 3B00 movs r3, r7
3251 00d6 3100 movs r1, r6
3252 00d8 2000 movs r0, r4
3253 .LVL260:
3254 00da FFF7FEFF bl I2C_TransferConfig
3255 .LVL261:
1861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3256 .loc 1 1861 0
3257 00de 638D ldrh r3, [r4, #42]
3258 00e0 228D ldrh r2, [r4, #40]
3259 00e2 9B1A subs r3, r3, r2
3260 00e4 9BB2 uxth r3, r3
3261 00e6 6385 strh r3, [r4, #42]
1864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3262 .loc 1 1864 0
3263 00e8 4023 movs r3, #64
3264 00ea 0022 movs r2, #0
3265 00ec E254 strb r2, [r4, r3]
1870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3266 .loc 1 1870 0
3267 00ee 1121 movs r1, #17
3268 00f0 2000 movs r0, r4
3269 00f2 FFF7FEFF bl I2C_Enable_IRQ
3270 .LVL262:
1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3271 .loc 1 1873 0
3272 00f6 2268 ldr r2, [r4]
3273 00f8 1168 ldr r1, [r2]
3274 00fa 8023 movs r3, #128
ARM GAS /tmp/ccpK4Ax4.s page 180
3275 00fc DB01 lsls r3, r3, #7
3276 00fe 0B43 orrs r3, r1
3277 0100 1360 str r3, [r2]
3278 0102 14E0 b .L228
3279 .LVL263:
3280 .L231:
1893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3281 .loc 1 1893 0
3282 0104 124B ldr r3, .L240+20
3283 0106 6363 str r3, [r4, #52]
1897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3284 .loc 1 1897 0
3285 0108 8023 movs r3, #128
3286 010a D2B2 uxtb r2, r2
3287 010c 0F49 ldr r1, .L240+16
3288 .LVL264:
3289 010e 0091 str r1, [sp]
3290 .LVL265:
3291 0110 9B04 lsls r3, r3, #18
3292 0112 3100 movs r1, r6
3293 0114 2000 movs r0, r4
3294 0116 FFF7FEFF bl I2C_TransferConfig
3295 .LVL266:
1900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3296 .loc 1 1900 0
3297 011a 4023 movs r3, #64
3298 011c 0022 movs r2, #0
3299 011e E254 strb r2, [r4, r3]
1908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3300 .loc 1 1908 0
3301 0120 0121 movs r1, #1
3302 0122 2000 movs r0, r4
3303 0124 FFF7FEFF bl I2C_Enable_IRQ
3304 .LVL267:
1911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3305 .loc 1 1911 0
3306 0128 0025 movs r5, #0
3307 012a 00E0 b .L228
3308 .LVL268:
3309 .L235:
1915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3310 .loc 1 1915 0
3311 012c 0225 movs r5, #2
3312 .LVL269:
3313 .L228:
1917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3314 .loc 1 1917 0
3315 012e 2800 movs r0, r5
3316 0130 03B0 add sp, sp, #12
3317 @ sp needed
3318 .LVL270:
3319 0132 F0BD pop {r4, r5, r6, r7, pc}
3320 .LVL271:
3321 .L236:
1795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3322 .loc 1 1795 0
3323 0134 0225 movs r5, #2
ARM GAS /tmp/ccpK4Ax4.s page 181
3324 0136 FAE7 b .L228
3325 .L237:
1799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3326 .loc 1 1799 0
3327 0138 0225 movs r5, #2
3328 013a F8E7 b .L228
3329 .L241:
3330 .align 2
3331 .L240:
3332 013c 0000FFFF .word -65536
3333 0140 00000000 .word I2C_Master_ISR_DMA
3334 0144 00000000 .word I2C_DMAMasterTransmitCplt
3335 0148 00000000 .word I2C_DMAError
3336 014c 00200080 .word -2147475456
3337 0150 00000000 .word I2C_Master_ISR_IT
3338 .cfi_endproc
3339 .LFE52:
3341 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits
3342 .align 1
3343 .global HAL_I2C_Master_Receive_DMA
3344 .syntax unified
3345 .code 16
3346 .thumb_func
3347 .fpu softvfp
3349 HAL_I2C_Master_Receive_DMA:
3350 .LFB53:
1930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
3351 .loc 1 1930 0
3352 .cfi_startproc
3353 @ args = 0, pretend = 0, frame = 0
3354 @ frame_needed = 0, uses_anonymous_args = 0
3355 .LVL272:
3356 0000 F0B5 push {r4, r5, r6, r7, lr}
3357 .LCFI29:
3358 .cfi_def_cfa_offset 20
3359 .cfi_offset 4, -20
3360 .cfi_offset 5, -16
3361 .cfi_offset 6, -12
3362 .cfi_offset 7, -8
3363 .cfi_offset 14, -4
3364 0002 83B0 sub sp, sp, #12
3365 .LCFI30:
3366 .cfi_def_cfa_offset 32
3367 0004 0400 movs r4, r0
3368 0006 0E00 movs r6, r1
1934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3369 .loc 1 1934 0
3370 0008 4121 movs r1, #65
3371 .LVL273:
3372 000a 415C ldrb r1, [r0, r1]
3373 000c 2029 cmp r1, #32
3374 000e 00D0 beq .LCB3355
3375 0010 8BE0 b .L250 @long jump
3376 .LCB3355:
1936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3377 .loc 1 1936 0
3378 0012 0168 ldr r1, [r0]
ARM GAS /tmp/ccpK4Ax4.s page 182
3379 0014 8969 ldr r1, [r1, #24]
3380 0016 0904 lsls r1, r1, #16
3381 0018 00D5 bpl .LCB3361
3382 001a 8AE0 b .L251 @long jump
3383 .LCB3361:
1942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3384 .loc 1 1942 0
3385 001c 4021 movs r1, #64
3386 001e 415C ldrb r1, [r0, r1]
3387 0020 0129 cmp r1, #1
3388 0022 00D1 bne .LCB3365
3389 0024 87E0 b .L252 @long jump
3390 .LCB3365:
1942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3391 .loc 1 1942 0 is_stmt 0 discriminator 2
3392 0026 4021 movs r1, #64
3393 0028 0120 movs r0, #1
3394 .LVL274:
3395 002a 6054 strb r0, [r4, r1]
1944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3396 .loc 1 1944 0 is_stmt 1 discriminator 2
3397 002c 0131 adds r1, r1, #1
3398 002e 2130 adds r0, r0, #33
3399 0030 6054 strb r0, [r4, r1]
1945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3400 .loc 1 1945 0 discriminator 2
3401 0032 0131 adds r1, r1, #1
3402 0034 1238 subs r0, r0, #18
3403 0036 6054 strb r0, [r4, r1]
1946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3404 .loc 1 1946 0 discriminator 2
3405 0038 0021 movs r1, #0
3406 003a 6164 str r1, [r4, #68]
1949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
3407 .loc 1 1949 0 discriminator 2
3408 003c 6262 str r2, [r4, #36]
1950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3409 .loc 1 1950 0 discriminator 2
3410 003e 6385 strh r3, [r4, #42]
1951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3411 .loc 1 1951 0 discriminator 2
3412 0040 3E4B ldr r3, .L255
3413 .LVL275:
3414 0042 E362 str r3, [r4, #44]
3415 .LVL276:
1952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3416 .loc 1 1952 0 discriminator 2
3417 0044 3E4B ldr r3, .L255+4
3418 0046 6363 str r3, [r4, #52]
1954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3419 .loc 1 1954 0 discriminator 2
3420 0048 638D ldrh r3, [r4, #42]
3421 004a 9BB2 uxth r3, r3
3422 004c FF2B cmp r3, #255
3423 004e 29D9 bls .L244
1956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3424 .loc 1 1956 0
ARM GAS /tmp/ccpK4Ax4.s page 183
3425 0050 FF23 movs r3, #255
3426 0052 2385 strh r3, [r4, #40]
3427 .LVL277:
1957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3428 .loc 1 1957 0
3429 0054 8027 movs r7, #128
3430 0056 7F04 lsls r7, r7, #17
3431 .LVL278:
3432 .L245:
1965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3433 .loc 1 1965 0
3434 0058 218D ldrh r1, [r4, #40]
3435 005a 0029 cmp r1, #0
3436 005c 51D0 beq .L246
1967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3437 .loc 1 1967 0
3438 005e E36B ldr r3, [r4, #60]
3439 0060 002B cmp r3, #0
3440 0062 24D0 beq .L247
1970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3441 .loc 1 1970 0
3442 0064 3749 ldr r1, .L255+8
3443 0066 9962 str r1, [r3, #40]
1973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3444 .loc 1 1973 0
3445 0068 E36B ldr r3, [r4, #60]
3446 006a 3749 ldr r1, .L255+12
3447 006c 1963 str r1, [r3, #48]
1976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3448 .loc 1 1976 0
3449 006e E16B ldr r1, [r4, #60]
3450 0070 0023 movs r3, #0
3451 0072 CB62 str r3, [r1, #44]
1977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3452 .loc 1 1977 0
3453 0074 E16B ldr r1, [r4, #60]
3454 0076 4B63 str r3, [r1, #52]
1980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3455 .loc 1 1980 0
3456 0078 2168 ldr r1, [r4]
3457 007a 2431 adds r1, r1, #36
3458 007c 238D ldrh r3, [r4, #40]
3459 007e E06B ldr r0, [r4, #60]
3460 0080 FFF7FEFF bl HAL_DMA_Start_IT
3461 .LVL279:
3462 0084 051E subs r5, r0, #0
3463 .LVL280:
1997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3464 .loc 1 1997 0
3465 0086 20D0 beq .L254
2021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3466 .loc 1 2021 0
3467 0088 4123 movs r3, #65
3468 008a 2022 movs r2, #32
3469 008c E254 strb r2, [r4, r3]
2022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3470 .loc 1 2022 0
ARM GAS /tmp/ccpK4Ax4.s page 184
3471 008e 0022 movs r2, #0
3472 0090 0133 adds r3, r3, #1
3473 0092 E254 strb r2, [r4, r3]
2025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3474 .loc 1 2025 0
3475 0094 636C ldr r3, [r4, #68]
3476 0096 1021 movs r1, #16
3477 0098 0B43 orrs r3, r1
3478 009a 6364 str r3, [r4, #68]
2028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3479 .loc 1 2028 0
3480 009c 4023 movs r3, #64
3481 009e E254 strb r2, [r4, r3]
2030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3482 .loc 1 2030 0
3483 00a0 0125 movs r5, #1
3484 00a2 43E0 b .L243
3485 .LVL281:
3486 .L244:
1961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3487 .loc 1 1961 0
3488 00a4 638D ldrh r3, [r4, #42]
3489 00a6 2385 strh r3, [r4, #40]
3490 .LVL282:
1962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3491 .loc 1 1962 0
3492 00a8 8027 movs r7, #128
3493 00aa BF04 lsls r7, r7, #18
3494 00ac D4E7 b .L245
3495 .LVL283:
3496 .L247:
1985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3497 .loc 1 1985 0
3498 00ae 4123 movs r3, #65
3499 00b0 2022 movs r2, #32
3500 .LVL284:
3501 00b2 E254 strb r2, [r4, r3]
3502 .LVL285:
1986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3503 .loc 1 1986 0
3504 00b4 0022 movs r2, #0
3505 00b6 0133 adds r3, r3, #1
3506 00b8 E254 strb r2, [r4, r3]
1989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3507 .loc 1 1989 0
3508 00ba 636C ldr r3, [r4, #68]
3509 00bc 8021 movs r1, #128
3510 00be 0B43 orrs r3, r1
3511 00c0 6364 str r3, [r4, #68]
1992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3512 .loc 1 1992 0
3513 00c2 4023 movs r3, #64
3514 00c4 E254 strb r2, [r4, r3]
1994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3515 .loc 1 1994 0
3516 00c6 0125 movs r5, #1
3517 00c8 30E0 b .L243
ARM GAS /tmp/ccpK4Ax4.s page 185
3518 .LVL286:
3519 .L254:
2001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3520 .loc 1 2001 0
3521 00ca 228D ldrh r2, [r4, #40]
3522 00cc D2B2 uxtb r2, r2
3523 00ce 1F4B ldr r3, .L255+16
3524 00d0 0093 str r3, [sp]
3525 00d2 3B00 movs r3, r7
3526 00d4 3100 movs r1, r6
3527 00d6 2000 movs r0, r4
3528 .LVL287:
3529 00d8 FFF7FEFF bl I2C_TransferConfig
3530 .LVL288:
2004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3531 .loc 1 2004 0
3532 00dc 638D ldrh r3, [r4, #42]
3533 00de 228D ldrh r2, [r4, #40]
3534 00e0 9B1A subs r3, r3, r2
3535 00e2 9BB2 uxth r3, r3
3536 00e4 6385 strh r3, [r4, #42]
2007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3537 .loc 1 2007 0
3538 00e6 4023 movs r3, #64
3539 00e8 0022 movs r2, #0
3540 00ea E254 strb r2, [r4, r3]
2013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3541 .loc 1 2013 0
3542 00ec 1121 movs r1, #17
3543 00ee 2000 movs r0, r4
3544 00f0 FFF7FEFF bl I2C_Enable_IRQ
3545 .LVL289:
2016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3546 .loc 1 2016 0
3547 00f4 2268 ldr r2, [r4]
3548 00f6 1168 ldr r1, [r2]
3549 00f8 8023 movs r3, #128
3550 00fa 1B02 lsls r3, r3, #8
3551 00fc 0B43 orrs r3, r1
3552 00fe 1360 str r3, [r2]
3553 0100 14E0 b .L243
3554 .LVL290:
3555 .L246:
2036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3556 .loc 1 2036 0
3557 0102 134B ldr r3, .L255+20
3558 0104 6363 str r3, [r4, #52]
2040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3559 .loc 1 2040 0
3560 0106 8023 movs r3, #128
3561 0108 CAB2 uxtb r2, r1
3562 .LVL291:
3563 010a 1049 ldr r1, .L255+16
3564 010c 0091 str r1, [sp]
3565 .LVL292:
3566 010e 9B04 lsls r3, r3, #18
3567 0110 3100 movs r1, r6
ARM GAS /tmp/ccpK4Ax4.s page 186
3568 0112 2000 movs r0, r4
3569 0114 FFF7FEFF bl I2C_TransferConfig
3570 .LVL293:
2043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3571 .loc 1 2043 0
3572 0118 4023 movs r3, #64
3573 011a 0022 movs r2, #0
3574 011c E254 strb r2, [r4, r3]
2051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3575 .loc 1 2051 0
3576 011e 0121 movs r1, #1
3577 0120 2000 movs r0, r4
3578 0122 FFF7FEFF bl I2C_Enable_IRQ
3579 .LVL294:
2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3580 .loc 1 2054 0
3581 0126 0025 movs r5, #0
3582 0128 00E0 b .L243
3583 .LVL295:
3584 .L250:
2058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3585 .loc 1 2058 0
3586 012a 0225 movs r5, #2
3587 .LVL296:
3588 .L243:
2060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3589 .loc 1 2060 0
3590 012c 2800 movs r0, r5
3591 012e 03B0 add sp, sp, #12
3592 @ sp needed
3593 .LVL297:
3594 0130 F0BD pop {r4, r5, r6, r7, pc}
3595 .LVL298:
3596 .L251:
1938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3597 .loc 1 1938 0
3598 0132 0225 movs r5, #2
3599 0134 FAE7 b .L243
3600 .L252:
1942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3601 .loc 1 1942 0
3602 0136 0225 movs r5, #2
3603 0138 F8E7 b .L243
3604 .L256:
3605 013a C046 .align 2
3606 .L255:
3607 013c 0000FFFF .word -65536
3608 0140 00000000 .word I2C_Master_ISR_DMA
3609 0144 00000000 .word I2C_DMAMasterReceiveCplt
3610 0148 00000000 .word I2C_DMAError
3611 014c 00240080 .word -2147474432
3612 0150 00000000 .word I2C_Master_ISR_IT
3613 .cfi_endproc
3614 .LFE53:
3616 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits
3617 .align 1
3618 .global HAL_I2C_Slave_Transmit_DMA
ARM GAS /tmp/ccpK4Ax4.s page 187
3619 .syntax unified
3620 .code 16
3621 .thumb_func
3622 .fpu softvfp
3624 HAL_I2C_Slave_Transmit_DMA:
3625 .LFB54:
2071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3626 .loc 1 2071 0
3627 .cfi_startproc
3628 @ args = 0, pretend = 0, frame = 0
3629 @ frame_needed = 0, uses_anonymous_args = 0
3630 .LVL299:
3631 0000 70B5 push {r4, r5, r6, lr}
3632 .LCFI31:
3633 .cfi_def_cfa_offset 16
3634 .cfi_offset 4, -16
3635 .cfi_offset 5, -12
3636 .cfi_offset 6, -8
3637 .cfi_offset 14, -4
3638 0002 0400 movs r4, r0
2074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3639 .loc 1 2074 0
3640 0004 4123 movs r3, #65
3641 0006 C35C ldrb r3, [r0, r3]
3642 0008 202B cmp r3, #32
3643 000a 63D1 bne .L264
2076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3644 .loc 1 2076 0
3645 000c 0029 cmp r1, #0
3646 000e 3BD0 beq .L259
2076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3647 .loc 1 2076 0 is_stmt 0 discriminator 1
3648 0010 002A cmp r2, #0
3649 0012 39D0 beq .L259
2082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3650 .loc 1 2082 0 is_stmt 1
3651 0014 4023 movs r3, #64
3652 0016 C35C ldrb r3, [r0, r3]
3653 0018 012B cmp r3, #1
3654 001a 5ED0 beq .L265
2082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3655 .loc 1 2082 0 is_stmt 0 discriminator 2
3656 001c 4023 movs r3, #64
3657 001e 0120 movs r0, #1
3658 .LVL300:
3659 0020 E054 strb r0, [r4, r3]
2084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3660 .loc 1 2084 0 is_stmt 1 discriminator 2
3661 0022 0133 adds r3, r3, #1
3662 0024 2030 adds r0, r0, #32
3663 0026 E054 strb r0, [r4, r3]
2085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3664 .loc 1 2085 0 discriminator 2
3665 0028 0133 adds r3, r3, #1
3666 002a 0138 subs r0, r0, #1
3667 002c E054 strb r0, [r4, r3]
2086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 188
3668 .loc 1 2086 0 discriminator 2
3669 002e 0023 movs r3, #0
3670 0030 6364 str r3, [r4, #68]
2089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
3671 .loc 1 2089 0 discriminator 2
3672 0032 6162 str r1, [r4, #36]
2090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3673 .loc 1 2090 0 discriminator 2
3674 0034 6285 strh r2, [r4, #42]
2091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3675 .loc 1 2091 0 discriminator 2
3676 0036 638D ldrh r3, [r4, #42]
3677 0038 2385 strh r3, [r4, #40]
2092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
3678 .loc 1 2092 0 discriminator 2
3679 003a 294B ldr r3, .L268
3680 003c E362 str r3, [r4, #44]
2093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3681 .loc 1 2093 0 discriminator 2
3682 003e 294B ldr r3, .L268+4
3683 0040 6363 str r3, [r4, #52]
2095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3684 .loc 1 2095 0 discriminator 2
3685 0042 A36B ldr r3, [r4, #56]
3686 0044 002B cmp r3, #0
3687 0046 24D0 beq .L261
2098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3688 .loc 1 2098 0
3689 0048 274A ldr r2, .L268+8
3690 .LVL301:
3691 004a 9A62 str r2, [r3, #40]
2101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3692 .loc 1 2101 0
3693 004c A36B ldr r3, [r4, #56]
3694 004e 274A ldr r2, .L268+12
3695 0050 1A63 str r2, [r3, #48]
2104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3696 .loc 1 2104 0
3697 0052 A26B ldr r2, [r4, #56]
3698 0054 0023 movs r3, #0
3699 0056 D362 str r3, [r2, #44]
2105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3700 .loc 1 2105 0
3701 0058 A26B ldr r2, [r4, #56]
3702 005a 5363 str r3, [r2, #52]
2108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3703 .loc 1 2108 0
3704 005c 2268 ldr r2, [r4]
3705 005e 2832 adds r2, r2, #40
3706 0060 238D ldrh r3, [r4, #40]
3707 0062 A06B ldr r0, [r4, #56]
3708 0064 FFF7FEFF bl HAL_DMA_Start_IT
3709 .LVL302:
3710 0068 051E subs r5, r0, #0
3711 .LVL303:
2125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3712 .loc 1 2125 0
ARM GAS /tmp/ccpK4Ax4.s page 189
3713 006a 20D0 beq .L267
2145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3714 .loc 1 2145 0
3715 006c 4123 movs r3, #65
3716 006e 2822 movs r2, #40
3717 0070 E254 strb r2, [r4, r3]
2146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3718 .loc 1 2146 0
3719 0072 0022 movs r2, #0
3720 0074 0133 adds r3, r3, #1
3721 0076 E254 strb r2, [r4, r3]
2149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3722 .loc 1 2149 0
3723 0078 636C ldr r3, [r4, #68]
3724 007a 1021 movs r1, #16
3725 007c 0B43 orrs r3, r1
3726 007e 6364 str r3, [r4, #68]
2152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3727 .loc 1 2152 0
3728 0080 4023 movs r3, #64
3729 0082 E254 strb r2, [r4, r3]
2154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3730 .loc 1 2154 0
3731 0084 0125 movs r5, #1
3732 0086 26E0 b .L258
3733 .LVL304:
3734 .L259:
2078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3735 .loc 1 2078 0
3736 0088 8023 movs r3, #128
3737 008a 9B00 lsls r3, r3, #2
3738 008c 6364 str r3, [r4, #68]
2079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3739 .loc 1 2079 0
3740 008e 0125 movs r5, #1
3741 0090 21E0 b .L258
3742 .LVL305:
3743 .L261:
2113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3744 .loc 1 2113 0
3745 0092 4123 movs r3, #65
3746 0094 2822 movs r2, #40
3747 .LVL306:
3748 0096 E254 strb r2, [r4, r3]
2114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3749 .loc 1 2114 0
3750 0098 0022 movs r2, #0
3751 009a 0133 adds r3, r3, #1
3752 009c E254 strb r2, [r4, r3]
2117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3753 .loc 1 2117 0
3754 009e 636C ldr r3, [r4, #68]
3755 00a0 8021 movs r1, #128
3756 .LVL307:
3757 00a2 0B43 orrs r3, r1
3758 00a4 6364 str r3, [r4, #68]
2120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 190
3759 .loc 1 2120 0
3760 00a6 4023 movs r3, #64
3761 00a8 E254 strb r2, [r4, r3]
2122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3762 .loc 1 2122 0
3763 00aa 0125 movs r5, #1
3764 00ac 13E0 b .L258
3765 .LVL308:
3766 .L267:
2128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3767 .loc 1 2128 0
3768 00ae 2268 ldr r2, [r4]
3769 00b0 5368 ldr r3, [r2, #4]
3770 00b2 0F49 ldr r1, .L268+16
3771 00b4 0B40 ands r3, r1
3772 00b6 5360 str r3, [r2, #4]
2131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3773 .loc 1 2131 0
3774 00b8 4023 movs r3, #64
3775 00ba 0022 movs r2, #0
3776 00bc E254 strb r2, [r4, r3]
2137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3777 .loc 1 2137 0
3778 00be 0421 movs r1, #4
3779 00c0 2000 movs r0, r4
3780 .LVL309:
3781 00c2 FFF7FEFF bl I2C_Enable_IRQ
3782 .LVL310:
2140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3783 .loc 1 2140 0
3784 00c6 2268 ldr r2, [r4]
3785 00c8 1168 ldr r1, [r2]
3786 00ca 8023 movs r3, #128
3787 00cc DB01 lsls r3, r3, #7
3788 00ce 0B43 orrs r3, r1
3789 00d0 1360 str r3, [r2]
2157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3790 .loc 1 2157 0
3791 00d2 00E0 b .L258
3792 .LVL311:
3793 .L264:
2161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3794 .loc 1 2161 0
3795 00d4 0225 movs r5, #2
3796 .LVL312:
3797 .L258:
2163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3798 .loc 1 2163 0
3799 00d6 2800 movs r0, r5
3800 @ sp needed
3801 .LVL313:
3802 00d8 70BD pop {r4, r5, r6, pc}
3803 .LVL314:
3804 .L265:
2082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3805 .loc 1 2082 0
3806 00da 0225 movs r5, #2
ARM GAS /tmp/ccpK4Ax4.s page 191
3807 00dc FBE7 b .L258
3808 .L269:
3809 00de C046 .align 2
3810 .L268:
3811 00e0 0000FFFF .word -65536
3812 00e4 00000000 .word I2C_Slave_ISR_DMA
3813 00e8 00000000 .word I2C_DMASlaveTransmitCplt
3814 00ec 00000000 .word I2C_DMAError
3815 00f0 FF7FFFFF .word -32769
3816 .cfi_endproc
3817 .LFE54:
3819 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits
3820 .align 1
3821 .global HAL_I2C_Slave_Receive_DMA
3822 .syntax unified
3823 .code 16
3824 .thumb_func
3825 .fpu softvfp
3827 HAL_I2C_Slave_Receive_DMA:
3828 .LFB55:
2174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3829 .loc 1 2174 0
3830 .cfi_startproc
3831 @ args = 0, pretend = 0, frame = 0
3832 @ frame_needed = 0, uses_anonymous_args = 0
3833 .LVL315:
3834 0000 70B5 push {r4, r5, r6, lr}
3835 .LCFI32:
3836 .cfi_def_cfa_offset 16
3837 .cfi_offset 4, -16
3838 .cfi_offset 5, -12
3839 .cfi_offset 6, -8
3840 .cfi_offset 14, -4
3841 0002 0400 movs r4, r0
2177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3842 .loc 1 2177 0
3843 0004 4123 movs r3, #65
3844 0006 C35C ldrb r3, [r0, r3]
3845 0008 202B cmp r3, #32
3846 000a 65D1 bne .L277
2179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3847 .loc 1 2179 0
3848 000c 0029 cmp r1, #0
3849 000e 3DD0 beq .L272
2179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3850 .loc 1 2179 0 is_stmt 0 discriminator 1
3851 0010 002A cmp r2, #0
3852 0012 3BD0 beq .L272
2185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3853 .loc 1 2185 0 is_stmt 1
3854 0014 4023 movs r3, #64
3855 0016 C35C ldrb r3, [r0, r3]
3856 0018 012B cmp r3, #1
3857 001a 60D0 beq .L278
2185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3858 .loc 1 2185 0 is_stmt 0 discriminator 2
3859 001c 4023 movs r3, #64
ARM GAS /tmp/ccpK4Ax4.s page 192
3860 001e 0120 movs r0, #1
3861 .LVL316:
3862 0020 E054 strb r0, [r4, r3]
2187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3863 .loc 1 2187 0 is_stmt 1 discriminator 2
3864 0022 0133 adds r3, r3, #1
3865 0024 2130 adds r0, r0, #33
3866 0026 E054 strb r0, [r4, r3]
2188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3867 .loc 1 2188 0 discriminator 2
3868 0028 0133 adds r3, r3, #1
3869 002a 0238 subs r0, r0, #2
3870 002c E054 strb r0, [r4, r3]
2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3871 .loc 1 2189 0 discriminator 2
3872 002e 0023 movs r3, #0
3873 0030 6364 str r3, [r4, #68]
2192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
3874 .loc 1 2192 0 discriminator 2
3875 0032 6162 str r1, [r4, #36]
2193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3876 .loc 1 2193 0 discriminator 2
3877 0034 6285 strh r2, [r4, #42]
2194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3878 .loc 1 2194 0 discriminator 2
3879 0036 638D ldrh r3, [r4, #42]
3880 0038 2385 strh r3, [r4, #40]
2195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
3881 .loc 1 2195 0 discriminator 2
3882 003a 2A4B ldr r3, .L281
3883 003c E362 str r3, [r4, #44]
2196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3884 .loc 1 2196 0 discriminator 2
3885 003e 2A4B ldr r3, .L281+4
3886 0040 6363 str r3, [r4, #52]
2198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3887 .loc 1 2198 0 discriminator 2
3888 0042 E36B ldr r3, [r4, #60]
3889 0044 002B cmp r3, #0
3890 0046 26D0 beq .L274
2201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3891 .loc 1 2201 0
3892 0048 284A ldr r2, .L281+8
3893 .LVL317:
3894 004a 9A62 str r2, [r3, #40]
2204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3895 .loc 1 2204 0
3896 004c E36B ldr r3, [r4, #60]
3897 004e 284A ldr r2, .L281+12
3898 0050 1A63 str r2, [r3, #48]
2207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3899 .loc 1 2207 0
3900 0052 E26B ldr r2, [r4, #60]
3901 0054 0023 movs r3, #0
3902 0056 D362 str r3, [r2, #44]
2208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3903 .loc 1 2208 0
ARM GAS /tmp/ccpK4Ax4.s page 193
3904 0058 E26B ldr r2, [r4, #60]
3905 005a 5363 str r3, [r2, #52]
2211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3906 .loc 1 2211 0
3907 005c 2068 ldr r0, [r4]
3908 005e 2430 adds r0, r0, #36
3909 0060 238D ldrh r3, [r4, #40]
3910 0062 0A00 movs r2, r1
3911 0064 0100 movs r1, r0
3912 .LVL318:
3913 0066 E06B ldr r0, [r4, #60]
3914 0068 FFF7FEFF bl HAL_DMA_Start_IT
3915 .LVL319:
3916 006c 051E subs r5, r0, #0
3917 .LVL320:
2228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
3918 .loc 1 2228 0
3919 006e 20D0 beq .L280
2248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3920 .loc 1 2248 0
3921 0070 4123 movs r3, #65
3922 0072 2822 movs r2, #40
3923 0074 E254 strb r2, [r4, r3]
2249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3924 .loc 1 2249 0
3925 0076 0022 movs r2, #0
3926 0078 0133 adds r3, r3, #1
3927 007a E254 strb r2, [r4, r3]
2252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3928 .loc 1 2252 0
3929 007c 636C ldr r3, [r4, #68]
3930 007e 1021 movs r1, #16
3931 0080 0B43 orrs r3, r1
3932 0082 6364 str r3, [r4, #68]
2255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3933 .loc 1 2255 0
3934 0084 4023 movs r3, #64
3935 0086 E254 strb r2, [r4, r3]
2257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3936 .loc 1 2257 0
3937 0088 0125 movs r5, #1
3938 008a 26E0 b .L271
3939 .LVL321:
3940 .L272:
2181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
3941 .loc 1 2181 0
3942 008c 8023 movs r3, #128
3943 008e 9B00 lsls r3, r3, #2
3944 0090 6364 str r3, [r4, #68]
2182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3945 .loc 1 2182 0
3946 0092 0125 movs r5, #1
3947 0094 21E0 b .L271
3948 .LVL322:
3949 .L274:
2216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3950 .loc 1 2216 0
ARM GAS /tmp/ccpK4Ax4.s page 194
3951 0096 4123 movs r3, #65
3952 0098 2822 movs r2, #40
3953 .LVL323:
3954 009a E254 strb r2, [r4, r3]
2217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3955 .loc 1 2217 0
3956 009c 0022 movs r2, #0
3957 009e 0133 adds r3, r3, #1
3958 00a0 E254 strb r2, [r4, r3]
2220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3959 .loc 1 2220 0
3960 00a2 636C ldr r3, [r4, #68]
3961 00a4 8021 movs r1, #128
3962 .LVL324:
3963 00a6 0B43 orrs r3, r1
3964 00a8 6364 str r3, [r4, #68]
2223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3965 .loc 1 2223 0
3966 00aa 4023 movs r3, #64
3967 00ac E254 strb r2, [r4, r3]
2225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3968 .loc 1 2225 0
3969 00ae 0125 movs r5, #1
3970 00b0 13E0 b .L271
3971 .LVL325:
3972 .L280:
2231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3973 .loc 1 2231 0
3974 00b2 2268 ldr r2, [r4]
3975 00b4 5368 ldr r3, [r2, #4]
3976 00b6 0F49 ldr r1, .L281+16
3977 00b8 0B40 ands r3, r1
3978 00ba 5360 str r3, [r2, #4]
2234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3979 .loc 1 2234 0
3980 00bc 4023 movs r3, #64
3981 00be 0022 movs r2, #0
3982 00c0 E254 strb r2, [r4, r3]
2240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
3983 .loc 1 2240 0
3984 00c2 0421 movs r1, #4
3985 00c4 2000 movs r0, r4
3986 .LVL326:
3987 00c6 FFF7FEFF bl I2C_Enable_IRQ
3988 .LVL327:
2243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3989 .loc 1 2243 0
3990 00ca 2268 ldr r2, [r4]
3991 00cc 1168 ldr r1, [r2]
3992 00ce 8023 movs r3, #128
3993 00d0 1B02 lsls r3, r3, #8
3994 00d2 0B43 orrs r3, r1
3995 00d4 1360 str r3, [r2]
2260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
3996 .loc 1 2260 0
3997 00d6 00E0 b .L271
3998 .LVL328:
ARM GAS /tmp/ccpK4Ax4.s page 195
3999 .L277:
2264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4000 .loc 1 2264 0
4001 00d8 0225 movs r5, #2
4002 .LVL329:
4003 .L271:
2266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4004 .loc 1 2266 0
4005 00da 2800 movs r0, r5
4006 @ sp needed
4007 .LVL330:
4008 00dc 70BD pop {r4, r5, r6, pc}
4009 .LVL331:
4010 .L278:
2185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4011 .loc 1 2185 0
4012 00de 0225 movs r5, #2
4013 00e0 FBE7 b .L271
4014 .L282:
4015 00e2 C046 .align 2
4016 .L281:
4017 00e4 0000FFFF .word -65536
4018 00e8 00000000 .word I2C_Slave_ISR_DMA
4019 00ec 00000000 .word I2C_DMASlaveReceiveCplt
4020 00f0 00000000 .word I2C_DMAError
4021 00f4 FF7FFFFF .word -32769
4022 .cfi_endproc
4023 .LFE55:
4025 .section .text.HAL_I2C_Mem_Write,"ax",%progbits
4026 .align 1
4027 .global HAL_I2C_Mem_Write
4028 .syntax unified
4029 .code 16
4030 .thumb_func
4031 .fpu softvfp
4033 HAL_I2C_Mem_Write:
4034 .LFB56:
2281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
4035 .loc 1 2281 0
4036 .cfi_startproc
4037 @ args = 12, pretend = 0, frame = 16
4038 @ frame_needed = 0, uses_anonymous_args = 0
4039 .LVL332:
4040 0000 F0B5 push {r4, r5, r6, r7, lr}
4041 .LCFI33:
4042 .cfi_def_cfa_offset 20
4043 .cfi_offset 4, -20
4044 .cfi_offset 5, -16
4045 .cfi_offset 6, -12
4046 .cfi_offset 7, -8
4047 .cfi_offset 14, -4
4048 0002 87B0 sub sp, sp, #28
4049 .LCFI34:
4050 .cfi_def_cfa_offset 48
4051 0004 0500 movs r5, r0
4052 0006 0391 str r1, [sp, #12]
4053 0008 0492 str r2, [sp, #16]
ARM GAS /tmp/ccpK4Ax4.s page 196
4054 000a 0593 str r3, [sp, #20]
4055 000c 0CAB add r3, sp, #48
4056 .LVL333:
4057 000e 10CB ldmia r3!, {r4}
4058 .LVL334:
4059 0010 1E88 ldrh r6, [r3]
2287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4060 .loc 1 2287 0
4061 0012 4123 movs r3, #65
4062 .LVL335:
4063 0014 C35C ldrb r3, [r0, r3]
4064 0016 202B cmp r3, #32
4065 0018 00D0 beq .LCB4017
4066 001a B3E0 b .L293 @long jump
4067 .LCB4017:
2289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4068 .loc 1 2289 0
4069 001c 002C cmp r4, #0
4070 001e 18D0 beq .L285
2289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4071 .loc 1 2289 0 is_stmt 0 discriminator 1
4072 0020 002E cmp r6, #0
4073 0022 16D0 beq .L285
2296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4074 .loc 1 2296 0 is_stmt 1
4075 0024 4023 movs r3, #64
4076 0026 C35C ldrb r3, [r0, r3]
4077 0028 012B cmp r3, #1
4078 002a 00D1 bne .LCB4025
4079 002c ADE0 b .L294 @long jump
4080 .LCB4025:
2296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4081 .loc 1 2296 0 is_stmt 0 discriminator 2
4082 002e 4023 movs r3, #64
4083 0030 0122 movs r2, #1
4084 .LVL336:
4085 0032 C254 strb r2, [r0, r3]
2299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4086 .loc 1 2299 0 is_stmt 1 discriminator 2
4087 0034 FFF7FEFF bl HAL_GetTick
4088 .LVL337:
4089 0038 0700 movs r7, r0
4090 .LVL338:
2301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4091 .loc 1 2301 0 discriminator 2
4092 003a 8021 movs r1, #128
4093 003c 0090 str r0, [sp]
4094 003e 1923 movs r3, #25
4095 0040 0122 movs r2, #1
4096 0042 0902 lsls r1, r1, #8
4097 0044 2800 movs r0, r5
4098 .LVL339:
4099 0046 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
4100 .LVL340:
4101 004a 0028 cmp r0, #0
4102 004c 06D0 beq .L299
2303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpK4Ax4.s page 197
4103 .loc 1 2303 0
4104 004e 0120 movs r0, #1
4105 0050 99E0 b .L284
4106 .LVL341:
4107 .L285:
2291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
4108 .loc 1 2291 0
4109 0052 8023 movs r3, #128
4110 0054 9B00 lsls r3, r3, #2
4111 0056 6B64 str r3, [r5, #68]
2292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4112 .loc 1 2292 0
4113 0058 0120 movs r0, #1
4114 .LVL342:
4115 005a 94E0 b .L284
4116 .LVL343:
4117 .L299:
2306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
4118 .loc 1 2306 0
4119 005c 4123 movs r3, #65
4120 005e 2122 movs r2, #33
4121 0060 EA54 strb r2, [r5, r3]
2307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4122 .loc 1 2307 0
4123 0062 0133 adds r3, r3, #1
4124 0064 1F32 adds r2, r2, #31
4125 0066 EA54 strb r2, [r5, r3]
2308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4126 .loc 1 2308 0
4127 0068 0023 movs r3, #0
4128 006a 6B64 str r3, [r5, #68]
2311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
4129 .loc 1 2311 0
4130 006c 6C62 str r4, [r5, #36]
2312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
4131 .loc 1 2312 0
4132 006e 6E85 strh r6, [r5, #42]
2313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4133 .loc 1 2313 0
4134 0070 6B63 str r3, [r5, #52]
2316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4135 .loc 1 2316 0
4136 0072 0197 str r7, [sp, #4]
4137 0074 0E9B ldr r3, [sp, #56]
4138 0076 0093 str r3, [sp]
4139 0078 059B ldr r3, [sp, #20]
4140 007a 049A ldr r2, [sp, #16]
4141 007c 0399 ldr r1, [sp, #12]
4142 007e 2800 movs r0, r5
4143 0080 FFF7FEFF bl I2C_RequestMemoryWrite
4144 .LVL344:
4145 0084 0028 cmp r0, #0
4146 0086 0FD1 bne .L300
2324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4147 .loc 1 2324 0
4148 0088 6B8D ldrh r3, [r5, #42]
4149 008a 9BB2 uxth r3, r3
ARM GAS /tmp/ccpK4Ax4.s page 198
4150 008c FF2B cmp r3, #255
4151 008e 10D9 bls .L288
2326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
4152 .loc 1 2326 0
4153 0090 FF23 movs r3, #255
4154 0092 2B85 strh r3, [r5, #40]
2327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4155 .loc 1 2327 0
4156 0094 7F3B subs r3, r3, #127
4157 0096 0022 movs r2, #0
4158 0098 0092 str r2, [sp]
4159 009a 5B04 lsls r3, r3, #17
4160 009c FF32 adds r2, r2, #255
4161 009e 0399 ldr r1, [sp, #12]
4162 00a0 2800 movs r0, r5
4163 00a2 FFF7FEFF bl I2C_TransferConfig
4164 .LVL345:
4165 00a6 21E0 b .L292
4166 .L300:
2319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
4167 .loc 1 2319 0
4168 00a8 4023 movs r3, #64
4169 00aa 0022 movs r2, #0
4170 00ac EA54 strb r2, [r5, r3]
2320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4171 .loc 1 2320 0
4172 00ae 0120 movs r0, #1
4173 00b0 69E0 b .L284
4174 .L288:
2331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
4175 .loc 1 2331 0
4176 00b2 6A8D ldrh r2, [r5, #42]
4177 00b4 92B2 uxth r2, r2
4178 00b6 2A85 strh r2, [r5, #40]
2332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4179 .loc 1 2332 0
4180 00b8 8023 movs r3, #128
4181 00ba D2B2 uxtb r2, r2
4182 00bc 0021 movs r1, #0
4183 00be 0091 str r1, [sp]
4184 00c0 9B04 lsls r3, r3, #18
4185 00c2 0399 ldr r1, [sp, #12]
4186 00c4 2800 movs r0, r5
4187 00c6 FFF7FEFF bl I2C_TransferConfig
4188 .LVL346:
4189 00ca 0FE0 b .L292
4190 .L291:
2367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
4191 .loc 1 2367 0
4192 00cc 6A8D ldrh r2, [r5, #42]
4193 00ce 92B2 uxth r2, r2
4194 00d0 2A85 strh r2, [r5, #40]
2368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4195 .loc 1 2368 0
4196 00d2 8023 movs r3, #128
4197 00d4 D2B2 uxtb r2, r2
4198 00d6 0021 movs r1, #0
ARM GAS /tmp/ccpK4Ax4.s page 199
4199 00d8 0091 str r1, [sp]
4200 00da 9B04 lsls r3, r3, #18
4201 00dc 0399 ldr r1, [sp, #12]
4202 00de 2800 movs r0, r5
4203 00e0 FFF7FEFF bl I2C_TransferConfig
4204 .LVL347:
4205 .L290:
2373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4206 .loc 1 2373 0
4207 00e4 6B8D ldrh r3, [r5, #42]
4208 00e6 9BB2 uxth r3, r3
4209 00e8 002B cmp r3, #0
4210 00ea 34D0 beq .L301
4211 .L292:
2338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4212 .loc 1 2338 0
4213 00ec 3A00 movs r2, r7
4214 00ee 0E99 ldr r1, [sp, #56]
4215 00f0 2800 movs r0, r5
4216 00f2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
4217 .LVL348:
4218 00f6 0028 cmp r0, #0
4219 00f8 49D1 bne .L296
2344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4220 .loc 1 2344 0
4221 00fa 2B68 ldr r3, [r5]
4222 00fc 6A6A ldr r2, [r5, #36]
4223 00fe 1278 ldrb r2, [r2]
4224 0100 9A62 str r2, [r3, #40]
2347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4225 .loc 1 2347 0
4226 0102 6B6A ldr r3, [r5, #36]
4227 0104 0133 adds r3, r3, #1
4228 0106 6B62 str r3, [r5, #36]
2349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--;
4229 .loc 1 2349 0
4230 0108 6B8D ldrh r3, [r5, #42]
4231 010a 013B subs r3, r3, #1
4232 010c 9BB2 uxth r3, r3
4233 010e 6B85 strh r3, [r5, #42]
2350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4234 .loc 1 2350 0
4235 0110 2B8D ldrh r3, [r5, #40]
4236 0112 013B subs r3, r3, #1
4237 0114 9BB2 uxth r3, r3
4238 0116 2B85 strh r3, [r5, #40]
2352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4239 .loc 1 2352 0
4240 0118 6A8D ldrh r2, [r5, #42]
4241 011a 92B2 uxth r2, r2
4242 011c 002A cmp r2, #0
4243 011e E1D0 beq .L290
2352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4244 .loc 1 2352 0 is_stmt 0 discriminator 1
4245 0120 002B cmp r3, #0
4246 0122 DFD1 bne .L290
2355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 200
4247 .loc 1 2355 0 is_stmt 1
4248 0124 0097 str r7, [sp]
4249 0126 0E9B ldr r3, [sp, #56]
4250 0128 0022 movs r2, #0
4251 012a 8021 movs r1, #128
4252 012c 2800 movs r0, r5
4253 012e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
4254 .LVL349:
4255 0132 0028 cmp r0, #0
4256 0134 2DD1 bne .L297
2360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4257 .loc 1 2360 0
4258 0136 6B8D ldrh r3, [r5, #42]
4259 0138 9BB2 uxth r3, r3
4260 013a FF2B cmp r3, #255
4261 013c C6D9 bls .L291
2362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
4262 .loc 1 2362 0
4263 013e FF23 movs r3, #255
4264 0140 2B85 strh r3, [r5, #40]
2363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4265 .loc 1 2363 0
4266 0142 7F3B subs r3, r3, #127
4267 0144 0022 movs r2, #0
4268 0146 0092 str r2, [sp]
4269 0148 5B04 lsls r3, r3, #17
4270 014a FF32 adds r2, r2, #255
4271 014c 0399 ldr r1, [sp, #12]
4272 014e 2800 movs r0, r5
4273 0150 FFF7FEFF bl I2C_TransferConfig
4274 .LVL350:
4275 0154 C6E7 b .L290
4276 .L301:
2377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4277 .loc 1 2377 0
4278 0156 3A00 movs r2, r7
4279 0158 0E99 ldr r1, [sp, #56]
4280 015a 2800 movs r0, r5
4281 015c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
4282 .LVL351:
4283 0160 0028 cmp r0, #0
4284 0162 18D1 bne .L298
2383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4285 .loc 1 2383 0
4286 0164 2B68 ldr r3, [r5]
4287 0166 2022 movs r2, #32
4288 0168 DA61 str r2, [r3, #28]
2386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4289 .loc 1 2386 0
4290 016a 2968 ldr r1, [r5]
4291 016c 4B68 ldr r3, [r1, #4]
4292 016e 0B4C ldr r4, .L302
4293 0170 2340 ands r3, r4
4294 0172 4B60 str r3, [r1, #4]
2388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4295 .loc 1 2388 0
4296 0174 4123 movs r3, #65
ARM GAS /tmp/ccpK4Ax4.s page 201
4297 0176 EA54 strb r2, [r5, r3]
2389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4298 .loc 1 2389 0
4299 0178 0023 movs r3, #0
4300 017a 2232 adds r2, r2, #34
4301 017c AB54 strb r3, [r5, r2]
2392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4302 .loc 1 2392 0
4303 017e 023A subs r2, r2, #2
4304 0180 AB54 strb r3, [r5, r2]
2394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4305 .loc 1 2394 0
4306 0182 00E0 b .L284
4307 .LVL352:
4308 .L293:
2398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4309 .loc 1 2398 0
4310 0184 0220 movs r0, #2
4311 .LVL353:
4312 .L284:
2400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4313 .loc 1 2400 0
4314 0186 07B0 add sp, sp, #28
4315 @ sp needed
4316 .LVL354:
4317 0188 F0BD pop {r4, r5, r6, r7, pc}
4318 .LVL355:
4319 .L294:
2296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4320 .loc 1 2296 0
4321 018a 0220 movs r0, #2
4322 .LVL356:
4323 018c FBE7 b .L284
4324 .LVL357:
4325 .L296:
2340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4326 .loc 1 2340 0
4327 018e 0120 movs r0, #1
4328 0190 F9E7 b .L284
4329 .L297:
2357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4330 .loc 1 2357 0
4331 0192 0120 movs r0, #1
4332 0194 F7E7 b .L284
4333 .L298:
2379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4334 .loc 1 2379 0
4335 0196 0120 movs r0, #1
4336 0198 F5E7 b .L284
4337 .L303:
4338 019a C046 .align 2
4339 .L302:
4340 019c 00E800FE .word -33495040
4341 .cfi_endproc
4342 .LFE56:
4344 .section .text.HAL_I2C_Mem_Read,"ax",%progbits
4345 .align 1
ARM GAS /tmp/ccpK4Ax4.s page 202
4346 .global HAL_I2C_Mem_Read
4347 .syntax unified
4348 .code 16
4349 .thumb_func
4350 .fpu softvfp
4352 HAL_I2C_Mem_Read:
4353 .LFB57:
2416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
4354 .loc 1 2416 0
4355 .cfi_startproc
4356 @ args = 12, pretend = 0, frame = 16
4357 @ frame_needed = 0, uses_anonymous_args = 0
4358 .LVL358:
4359 0000 F0B5 push {r4, r5, r6, r7, lr}
4360 .LCFI35:
4361 .cfi_def_cfa_offset 20
4362 .cfi_offset 4, -20
4363 .cfi_offset 5, -16
4364 .cfi_offset 6, -12
4365 .cfi_offset 7, -8
4366 .cfi_offset 14, -4
4367 0002 87B0 sub sp, sp, #28
4368 .LCFI36:
4369 .cfi_def_cfa_offset 48
4370 0004 0400 movs r4, r0
4371 0006 0391 str r1, [sp, #12]
4372 0008 0492 str r2, [sp, #16]
4373 000a 0593 str r3, [sp, #20]
4374 000c 0CAB add r3, sp, #48
4375 .LVL359:
4376 000e 20CB ldmia r3!, {r5}
4377 .LVL360:
4378 0010 1F88 ldrh r7, [r3]
2422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4379 .loc 1 2422 0
4380 0012 4123 movs r3, #65
4381 .LVL361:
4382 0014 C35C ldrb r3, [r0, r3]
4383 0016 202B cmp r3, #32
4384 0018 00D0 beq .LCB4365
4385 001a B5E0 b .L314 @long jump
4386 .LCB4365:
2424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4387 .loc 1 2424 0
4388 001c 002D cmp r5, #0
4389 001e 18D0 beq .L306
2424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4390 .loc 1 2424 0 is_stmt 0 discriminator 1
4391 0020 002F cmp r7, #0
4392 0022 16D0 beq .L306
2431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4393 .loc 1 2431 0 is_stmt 1
4394 0024 4023 movs r3, #64
4395 0026 C35C ldrb r3, [r0, r3]
4396 0028 012B cmp r3, #1
4397 002a 00D1 bne .LCB4373
4398 002c AFE0 b .L315 @long jump
ARM GAS /tmp/ccpK4Ax4.s page 203
4399 .LCB4373:
2431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4400 .loc 1 2431 0 is_stmt 0 discriminator 2
4401 002e 4023 movs r3, #64
4402 0030 0122 movs r2, #1
4403 .LVL362:
4404 0032 C254 strb r2, [r0, r3]
2434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4405 .loc 1 2434 0 is_stmt 1 discriminator 2
4406 0034 FFF7FEFF bl HAL_GetTick
4407 .LVL363:
4408 0038 0600 movs r6, r0
4409 .LVL364:
2436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4410 .loc 1 2436 0 discriminator 2
4411 003a 8021 movs r1, #128
4412 003c 0090 str r0, [sp]
4413 003e 1923 movs r3, #25
4414 0040 0122 movs r2, #1
4415 0042 0902 lsls r1, r1, #8
4416 0044 2000 movs r0, r4
4417 .LVL365:
4418 0046 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
4419 .LVL366:
4420 004a 0028 cmp r0, #0
4421 004c 06D0 beq .L320
2438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4422 .loc 1 2438 0
4423 004e 0120 movs r0, #1
4424 0050 9BE0 b .L305
4425 .LVL367:
4426 .L306:
2426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
4427 .loc 1 2426 0
4428 0052 8023 movs r3, #128
4429 0054 9B00 lsls r3, r3, #2
4430 0056 6364 str r3, [r4, #68]
2427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4431 .loc 1 2427 0
4432 0058 0120 movs r0, #1
4433 .LVL368:
4434 005a 96E0 b .L305
4435 .LVL369:
4436 .L320:
2441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
4437 .loc 1 2441 0
4438 005c 4123 movs r3, #65
4439 005e 2222 movs r2, #34
4440 0060 E254 strb r2, [r4, r3]
2442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4441 .loc 1 2442 0
4442 0062 0133 adds r3, r3, #1
4443 0064 1E32 adds r2, r2, #30
4444 0066 E254 strb r2, [r4, r3]
2443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4445 .loc 1 2443 0
4446 0068 0023 movs r3, #0
ARM GAS /tmp/ccpK4Ax4.s page 204
4447 006a 6364 str r3, [r4, #68]
2446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
4448 .loc 1 2446 0
4449 006c 6562 str r5, [r4, #36]
2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
4450 .loc 1 2447 0
4451 006e 6785 strh r7, [r4, #42]
2448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4452 .loc 1 2448 0
4453 0070 6363 str r3, [r4, #52]
2451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4454 .loc 1 2451 0
4455 0072 0196 str r6, [sp, #4]
4456 0074 0E9B ldr r3, [sp, #56]
4457 0076 0093 str r3, [sp]
4458 0078 059B ldr r3, [sp, #20]
4459 007a 049A ldr r2, [sp, #16]
4460 007c 0399 ldr r1, [sp, #12]
4461 007e 2000 movs r0, r4
4462 0080 FFF7FEFF bl I2C_RequestMemoryRead
4463 .LVL370:
4464 0084 0028 cmp r0, #0
4465 0086 0FD1 bne .L321
2460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4466 .loc 1 2460 0
4467 0088 638D ldrh r3, [r4, #42]
4468 008a 9BB2 uxth r3, r3
4469 008c FF2B cmp r3, #255
4470 008e 10D9 bls .L309
2462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
4471 .loc 1 2462 0
4472 0090 FF23 movs r3, #255
4473 0092 2385 strh r3, [r4, #40]
2463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4474 .loc 1 2463 0
4475 0094 7F3B subs r3, r3, #127
4476 0096 424A ldr r2, .L323
4477 0098 0092 str r2, [sp]
4478 009a 5B04 lsls r3, r3, #17
4479 009c FF22 movs r2, #255
4480 009e 0399 ldr r1, [sp, #12]
4481 00a0 2000 movs r0, r4
4482 00a2 FFF7FEFF bl I2C_TransferConfig
4483 .LVL371:
4484 00a6 21E0 b .L313
4485 .L321:
2454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
4486 .loc 1 2454 0
4487 00a8 4023 movs r3, #64
4488 00aa 0022 movs r2, #0
4489 00ac E254 strb r2, [r4, r3]
2455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4490 .loc 1 2455 0
4491 00ae 0120 movs r0, #1
4492 00b0 6BE0 b .L305
4493 .L309:
2467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
ARM GAS /tmp/ccpK4Ax4.s page 205
4494 .loc 1 2467 0
4495 00b2 628D ldrh r2, [r4, #42]
4496 00b4 92B2 uxth r2, r2
4497 00b6 2285 strh r2, [r4, #40]
2468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4498 .loc 1 2468 0
4499 00b8 8023 movs r3, #128
4500 00ba D2B2 uxtb r2, r2
4501 00bc 3849 ldr r1, .L323
4502 00be 0091 str r1, [sp]
4503 00c0 9B04 lsls r3, r3, #18
4504 00c2 0399 ldr r1, [sp, #12]
4505 00c4 2000 movs r0, r4
4506 00c6 FFF7FEFF bl I2C_TransferConfig
4507 .LVL372:
4508 00ca 0FE0 b .L313
4509 .L312:
2503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
4510 .loc 1 2503 0
4511 00cc 628D ldrh r2, [r4, #42]
4512 00ce 92B2 uxth r2, r2
4513 00d0 2285 strh r2, [r4, #40]
2504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4514 .loc 1 2504 0
4515 00d2 8023 movs r3, #128
4516 00d4 D2B2 uxtb r2, r2
4517 00d6 0021 movs r1, #0
4518 00d8 0091 str r1, [sp]
4519 00da 9B04 lsls r3, r3, #18
4520 00dc 0399 ldr r1, [sp, #12]
4521 00de 2000 movs r0, r4
4522 00e0 FFF7FEFF bl I2C_TransferConfig
4523 .LVL373:
4524 .L311:
2508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4525 .loc 1 2508 0
4526 00e4 638D ldrh r3, [r4, #42]
4527 00e6 9BB2 uxth r3, r3
4528 00e8 002B cmp r3, #0
4529 00ea 36D0 beq .L322
4530 .L313:
2474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4531 .loc 1 2474 0
4532 00ec 0096 str r6, [sp]
4533 00ee 0E9B ldr r3, [sp, #56]
4534 00f0 0022 movs r2, #0
4535 00f2 0421 movs r1, #4
4536 00f4 2000 movs r0, r4
4537 00f6 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
4538 .LVL374:
4539 00fa 0028 cmp r0, #0
4540 00fc 49D1 bne .L317
2480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4541 .loc 1 2480 0
4542 00fe 2368 ldr r3, [r4]
4543 0100 5B6A ldr r3, [r3, #36]
4544 0102 626A ldr r2, [r4, #36]
ARM GAS /tmp/ccpK4Ax4.s page 206
4545 0104 1370 strb r3, [r2]
2483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4546 .loc 1 2483 0
4547 0106 636A ldr r3, [r4, #36]
4548 0108 0133 adds r3, r3, #1
4549 010a 6362 str r3, [r4, #36]
2485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
4550 .loc 1 2485 0
4551 010c 238D ldrh r3, [r4, #40]
4552 010e 013B subs r3, r3, #1
4553 0110 9BB2 uxth r3, r3
4554 0112 2385 strh r3, [r4, #40]
2486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4555 .loc 1 2486 0
4556 0114 628D ldrh r2, [r4, #42]
4557 0116 013A subs r2, r2, #1
4558 0118 92B2 uxth r2, r2
4559 011a 6285 strh r2, [r4, #42]
2488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4560 .loc 1 2488 0
4561 011c 628D ldrh r2, [r4, #42]
4562 011e 92B2 uxth r2, r2
4563 0120 002A cmp r2, #0
4564 0122 DFD0 beq .L311
2488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4565 .loc 1 2488 0 is_stmt 0 discriminator 1
4566 0124 002B cmp r3, #0
4567 0126 DDD1 bne .L311
2491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4568 .loc 1 2491 0 is_stmt 1
4569 0128 0096 str r6, [sp]
4570 012a 0E9B ldr r3, [sp, #56]
4571 012c 0022 movs r2, #0
4572 012e 8021 movs r1, #128
4573 0130 2000 movs r0, r4
4574 0132 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
4575 .LVL375:
4576 0136 0028 cmp r0, #0
4577 0138 2DD1 bne .L318
2496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4578 .loc 1 2496 0
4579 013a 638D ldrh r3, [r4, #42]
4580 013c 9BB2 uxth r3, r3
4581 013e FF2B cmp r3, #255
4582 0140 C4D9 bls .L312
2498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_ST
4583 .loc 1 2498 0
4584 0142 FF23 movs r3, #255
4585 0144 2385 strh r3, [r4, #40]
2499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4586 .loc 1 2499 0
4587 0146 7F3B subs r3, r3, #127
4588 0148 0022 movs r2, #0
4589 014a 0092 str r2, [sp]
4590 014c 5B04 lsls r3, r3, #17
4591 014e FF32 adds r2, r2, #255
4592 0150 0399 ldr r1, [sp, #12]
ARM GAS /tmp/ccpK4Ax4.s page 207
4593 0152 2000 movs r0, r4
4594 0154 FFF7FEFF bl I2C_TransferConfig
4595 .LVL376:
4596 0158 C4E7 b .L311
4597 .L322:
2512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4598 .loc 1 2512 0
4599 015a 3200 movs r2, r6
4600 015c 0E99 ldr r1, [sp, #56]
4601 015e 2000 movs r0, r4
4602 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
4603 .LVL377:
4604 0164 0028 cmp r0, #0
4605 0166 18D1 bne .L319
2518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4606 .loc 1 2518 0
4607 0168 2368 ldr r3, [r4]
4608 016a 2022 movs r2, #32
4609 016c DA61 str r2, [r3, #28]
2521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4610 .loc 1 2521 0
4611 016e 2168 ldr r1, [r4]
4612 0170 4B68 ldr r3, [r1, #4]
4613 0172 0C4D ldr r5, .L323+4
4614 0174 2B40 ands r3, r5
4615 0176 4B60 str r3, [r1, #4]
2523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4616 .loc 1 2523 0
4617 0178 4123 movs r3, #65
4618 017a E254 strb r2, [r4, r3]
2524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4619 .loc 1 2524 0
4620 017c 0023 movs r3, #0
4621 017e 2232 adds r2, r2, #34
4622 0180 A354 strb r3, [r4, r2]
2527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4623 .loc 1 2527 0
4624 0182 023A subs r2, r2, #2
4625 0184 A354 strb r3, [r4, r2]
2529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4626 .loc 1 2529 0
4627 0186 00E0 b .L305
4628 .LVL378:
4629 .L314:
2533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4630 .loc 1 2533 0
4631 0188 0220 movs r0, #2
4632 .LVL379:
4633 .L305:
2535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
4634 .loc 1 2535 0
4635 018a 07B0 add sp, sp, #28
4636 @ sp needed
4637 .LVL380:
4638 018c F0BD pop {r4, r5, r6, r7, pc}
4639 .LVL381:
4640 .L315:
ARM GAS /tmp/ccpK4Ax4.s page 208
2431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4641 .loc 1 2431 0
4642 018e 0220 movs r0, #2
4643 .LVL382:
4644 0190 FBE7 b .L305
4645 .LVL383:
4646 .L317:
2476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4647 .loc 1 2476 0
4648 0192 0120 movs r0, #1
4649 0194 F9E7 b .L305
4650 .L318:
2493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4651 .loc 1 2493 0
4652 0196 0120 movs r0, #1
4653 0198 F7E7 b .L305
4654 .L319:
2514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4655 .loc 1 2514 0
4656 019a 0120 movs r0, #1
4657 019c F5E7 b .L305
4658 .L324:
4659 019e C046 .align 2
4660 .L323:
4661 01a0 00240080 .word -2147474432
4662 01a4 00E800FE .word -33495040
4663 .cfi_endproc
4664 .LFE57:
4666 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits
4667 .align 1
4668 .global HAL_I2C_Mem_Write_IT
4669 .syntax unified
4670 .code 16
4671 .thumb_func
4672 .fpu softvfp
4674 HAL_I2C_Mem_Write_IT:
4675 .LFB58:
2549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
4676 .loc 1 2549 0
4677 .cfi_startproc
4678 @ args = 8, pretend = 0, frame = 16
4679 @ frame_needed = 0, uses_anonymous_args = 0
4680 .LVL384:
4681 0000 F0B5 push {r4, r5, r6, r7, lr}
4682 .LCFI37:
4683 .cfi_def_cfa_offset 20
4684 .cfi_offset 4, -20
4685 .cfi_offset 5, -16
4686 .cfi_offset 6, -12
4687 .cfi_offset 7, -8
4688 .cfi_offset 14, -4
4689 0002 87B0 sub sp, sp, #28
4690 .LCFI38:
4691 .cfi_def_cfa_offset 48
4692 0004 0400 movs r4, r0
4693 0006 0391 str r1, [sp, #12]
4694 0008 0492 str r2, [sp, #16]
ARM GAS /tmp/ccpK4Ax4.s page 209
4695 000a 0593 str r3, [sp, #20]
4696 000c 0CAB add r3, sp, #48
4697 .LVL385:
4698 000e 80CB ldmia r3!, {r7}
4699 .LVL386:
4700 0010 1D88 ldrh r5, [r3]
2556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4701 .loc 1 2556 0
4702 0012 4123 movs r3, #65
4703 .LVL387:
4704 0014 C35C ldrb r3, [r0, r3]
4705 0016 202B cmp r3, #32
4706 0018 4FD1 bne .L332
2558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4707 .loc 1 2558 0
4708 001a 002F cmp r7, #0
4709 001c 33D0 beq .L327
2558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4710 .loc 1 2558 0 is_stmt 0 discriminator 1
4711 001e 002D cmp r5, #0
4712 0020 31D0 beq .L327
2564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4713 .loc 1 2564 0 is_stmt 1
4714 0022 0368 ldr r3, [r0]
4715 0024 9B69 ldr r3, [r3, #24]
4716 0026 1B04 lsls r3, r3, #16
4717 0028 4BD4 bmi .L333
2570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4718 .loc 1 2570 0
4719 002a 4023 movs r3, #64
4720 002c C35C ldrb r3, [r0, r3]
4721 002e 012B cmp r3, #1
4722 0030 49D0 beq .L334
2570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4723 .loc 1 2570 0 is_stmt 0 discriminator 2
4724 0032 4026 movs r6, #64
4725 0034 0123 movs r3, #1
4726 0036 8355 strb r3, [r0, r6]
2573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4727 .loc 1 2573 0 is_stmt 1 discriminator 2
4728 0038 FFF7FEFF bl HAL_GetTick
4729 .LVL388:
2575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
4730 .loc 1 2575 0 discriminator 2
4731 003c 4123 movs r3, #65
4732 003e 2122 movs r2, #33
4733 0040 E254 strb r2, [r4, r3]
2576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4734 .loc 1 2576 0 discriminator 2
4735 0042 0133 adds r3, r3, #1
4736 0044 E654 strb r6, [r4, r3]
2577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4737 .loc 1 2577 0 discriminator 2
4738 0046 0023 movs r3, #0
4739 0048 6364 str r3, [r4, #68]
2580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
4740 .loc 1 2580 0 discriminator 2
ARM GAS /tmp/ccpK4Ax4.s page 210
4741 004a 6762 str r7, [r4, #36]
2581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4742 .loc 1 2581 0 discriminator 2
4743 004c 6585 strh r5, [r4, #42]
2582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
4744 .loc 1 2582 0 discriminator 2
4745 004e 1F4B ldr r3, .L335
4746 0050 E362 str r3, [r4, #44]
2583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4747 .loc 1 2583 0 discriminator 2
4748 0052 1F4B ldr r3, .L335+4
4749 0054 6363 str r3, [r4, #52]
2585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4750 .loc 1 2585 0 discriminator 2
4751 0056 638D ldrh r3, [r4, #42]
4752 0058 9BB2 uxth r3, r3
4753 005a FF2B cmp r3, #255
4754 005c 18D9 bls .L329
2587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4755 .loc 1 2587 0
4756 005e FF23 movs r3, #255
4757 0060 2385 strh r3, [r4, #40]
4758 .LVL389:
2588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4759 .loc 1 2588 0
4760 0062 8027 movs r7, #128
4761 0064 7F04 lsls r7, r7, #17
4762 .LVL390:
4763 .L330:
2597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4764 .loc 1 2597 0
4765 0066 0190 str r0, [sp, #4]
4766 0068 1923 movs r3, #25
4767 006a 0093 str r3, [sp]
4768 006c 059B ldr r3, [sp, #20]
4769 006e 049A ldr r2, [sp, #16]
4770 0070 0399 ldr r1, [sp, #12]
4771 0072 2000 movs r0, r4
4772 .LVL391:
4773 0074 FFF7FEFF bl I2C_RequestMemoryWrite
4774 .LVL392:
4775 0078 051E subs r5, r0, #0
4776 007a 0ED0 beq .L331
2600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
4777 .loc 1 2600 0
4778 007c 4023 movs r3, #64
4779 007e 0022 movs r2, #0
4780 0080 E254 strb r2, [r4, r3]
2601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4781 .loc 1 2601 0
4782 0082 0125 movs r5, #1
4783 0084 1AE0 b .L326
4784 .LVL393:
4785 .L327:
2560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
4786 .loc 1 2560 0
4787 0086 8023 movs r3, #128
ARM GAS /tmp/ccpK4Ax4.s page 211
4788 0088 9B00 lsls r3, r3, #2
4789 008a 6364 str r3, [r4, #68]
2561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4790 .loc 1 2561 0
4791 008c 0125 movs r5, #1
4792 008e 15E0 b .L326
4793 .LVL394:
4794 .L329:
2592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4795 .loc 1 2592 0
4796 0090 638D ldrh r3, [r4, #42]
4797 0092 2385 strh r3, [r4, #40]
4798 .LVL395:
2593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4799 .loc 1 2593 0
4800 0094 8027 movs r7, #128
4801 0096 BF04 lsls r7, r7, #18
4802 0098 E5E7 b .L330
4803 .LVL396:
4804 .L331:
2605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4805 .loc 1 2605 0
4806 009a 228D ldrh r2, [r4, #40]
4807 009c D2B2 uxtb r2, r2
4808 009e 0026 movs r6, #0
4809 00a0 0096 str r6, [sp]
4810 00a2 3B00 movs r3, r7
4811 00a4 0399 ldr r1, [sp, #12]
4812 00a6 2000 movs r0, r4
4813 00a8 FFF7FEFF bl I2C_TransferConfig
4814 .LVL397:
2608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4815 .loc 1 2608 0
4816 00ac 4023 movs r3, #64
4817 00ae E654 strb r6, [r4, r3]
2617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4818 .loc 1 2617 0
4819 00b0 0121 movs r1, #1
4820 00b2 2000 movs r0, r4
4821 00b4 FFF7FEFF bl I2C_Enable_IRQ
4822 .LVL398:
2619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4823 .loc 1 2619 0
4824 00b8 00E0 b .L326
4825 .LVL399:
4826 .L332:
2623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4827 .loc 1 2623 0
4828 00ba 0225 movs r5, #2
4829 .LVL400:
4830 .L326:
2625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4831 .loc 1 2625 0
4832 00bc 2800 movs r0, r5
4833 00be 07B0 add sp, sp, #28
4834 @ sp needed
4835 .LVL401:
ARM GAS /tmp/ccpK4Ax4.s page 212
4836 00c0 F0BD pop {r4, r5, r6, r7, pc}
4837 .LVL402:
4838 .L333:
2566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4839 .loc 1 2566 0
4840 00c2 0225 movs r5, #2
4841 00c4 FAE7 b .L326
4842 .L334:
2570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4843 .loc 1 2570 0
4844 00c6 0225 movs r5, #2
4845 00c8 F8E7 b .L326
4846 .L336:
4847 00ca C046 .align 2
4848 .L335:
4849 00cc 0000FFFF .word -65536
4850 00d0 00000000 .word I2C_Master_ISR_IT
4851 .cfi_endproc
4852 .LFE58:
4854 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits
4855 .align 1
4856 .global HAL_I2C_Mem_Read_IT
4857 .syntax unified
4858 .code 16
4859 .thumb_func
4860 .fpu softvfp
4862 HAL_I2C_Mem_Read_IT:
4863 .LFB59:
2640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
4864 .loc 1 2640 0
4865 .cfi_startproc
4866 @ args = 8, pretend = 0, frame = 16
4867 @ frame_needed = 0, uses_anonymous_args = 0
4868 .LVL403:
4869 0000 F0B5 push {r4, r5, r6, r7, lr}
4870 .LCFI39:
4871 .cfi_def_cfa_offset 20
4872 .cfi_offset 4, -20
4873 .cfi_offset 5, -16
4874 .cfi_offset 6, -12
4875 .cfi_offset 7, -8
4876 .cfi_offset 14, -4
4877 0002 87B0 sub sp, sp, #28
4878 .LCFI40:
4879 .cfi_def_cfa_offset 48
4880 0004 0600 movs r6, r0
4881 0006 0391 str r1, [sp, #12]
4882 0008 0492 str r2, [sp, #16]
4883 000a 0593 str r3, [sp, #20]
4884 000c 0CAB add r3, sp, #48
4885 .LVL404:
4886 000e 80CB ldmia r3!, {r7}
4887 .LVL405:
4888 0010 1D88 ldrh r5, [r3]
2647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4889 .loc 1 2647 0
4890 0012 4123 movs r3, #65
ARM GAS /tmp/ccpK4Ax4.s page 213
4891 .LVL406:
4892 0014 C35C ldrb r3, [r0, r3]
4893 0016 202B cmp r3, #32
4894 0018 50D1 bne .L344
2649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4895 .loc 1 2649 0
4896 001a 002F cmp r7, #0
4897 001c 33D0 beq .L339
2649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4898 .loc 1 2649 0 is_stmt 0 discriminator 1
4899 001e 002D cmp r5, #0
4900 0020 31D0 beq .L339
2655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4901 .loc 1 2655 0 is_stmt 1
4902 0022 0368 ldr r3, [r0]
4903 0024 9B69 ldr r3, [r3, #24]
4904 0026 1B04 lsls r3, r3, #16
4905 0028 4CD4 bmi .L345
2661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4906 .loc 1 2661 0
4907 002a 4023 movs r3, #64
4908 002c C35C ldrb r3, [r0, r3]
4909 002e 012B cmp r3, #1
4910 0030 4AD0 beq .L346
2661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4911 .loc 1 2661 0 is_stmt 0 discriminator 2
4912 0032 4024 movs r4, #64
4913 0034 0123 movs r3, #1
4914 0036 0355 strb r3, [r0, r4]
2664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4915 .loc 1 2664 0 is_stmt 1 discriminator 2
4916 0038 FFF7FEFF bl HAL_GetTick
4917 .LVL407:
2666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
4918 .loc 1 2666 0 discriminator 2
4919 003c 4123 movs r3, #65
4920 003e 2222 movs r2, #34
4921 0040 F254 strb r2, [r6, r3]
2667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4922 .loc 1 2667 0 discriminator 2
4923 0042 0133 adds r3, r3, #1
4924 0044 F454 strb r4, [r6, r3]
2668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4925 .loc 1 2668 0 discriminator 2
4926 0046 0023 movs r3, #0
4927 0048 7364 str r3, [r6, #68]
2671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
4928 .loc 1 2671 0 discriminator 2
4929 004a 7762 str r7, [r6, #36]
2672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4930 .loc 1 2672 0 discriminator 2
4931 004c 7585 strh r5, [r6, #42]
2673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
4932 .loc 1 2673 0 discriminator 2
4933 004e 1F4B ldr r3, .L347
4934 0050 F362 str r3, [r6, #44]
2674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 214
4935 .loc 1 2674 0 discriminator 2
4936 0052 1F4B ldr r3, .L347+4
4937 0054 7363 str r3, [r6, #52]
2676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4938 .loc 1 2676 0 discriminator 2
4939 0056 738D ldrh r3, [r6, #42]
4940 0058 9BB2 uxth r3, r3
4941 005a FF2B cmp r3, #255
4942 005c 18D9 bls .L341
2678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4943 .loc 1 2678 0
4944 005e FF23 movs r3, #255
4945 0060 3385 strh r3, [r6, #40]
4946 .LVL408:
2679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4947 .loc 1 2679 0
4948 0062 8027 movs r7, #128
4949 0064 7F04 lsls r7, r7, #17
4950 .LVL409:
4951 .L342:
2688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
4952 .loc 1 2688 0
4953 0066 0190 str r0, [sp, #4]
4954 0068 1923 movs r3, #25
4955 006a 0093 str r3, [sp]
4956 006c 059B ldr r3, [sp, #20]
4957 006e 049A ldr r2, [sp, #16]
4958 0070 0399 ldr r1, [sp, #12]
4959 0072 3000 movs r0, r6
4960 .LVL410:
4961 0074 FFF7FEFF bl I2C_RequestMemoryRead
4962 .LVL411:
4963 0078 051E subs r5, r0, #0
4964 007a 0ED0 beq .L343
2691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
4965 .loc 1 2691 0
4966 007c 4023 movs r3, #64
4967 007e 0022 movs r2, #0
4968 0080 F254 strb r2, [r6, r3]
2692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4969 .loc 1 2692 0
4970 0082 0125 movs r5, #1
4971 0084 1BE0 b .L338
4972 .LVL412:
4973 .L339:
2651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
4974 .loc 1 2651 0
4975 0086 8023 movs r3, #128
4976 0088 9B00 lsls r3, r3, #2
4977 008a 7364 str r3, [r6, #68]
2652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4978 .loc 1 2652 0
4979 008c 0125 movs r5, #1
4980 008e 16E0 b .L338
4981 .LVL413:
4982 .L341:
2683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
ARM GAS /tmp/ccpK4Ax4.s page 215
4983 .loc 1 2683 0
4984 0090 738D ldrh r3, [r6, #42]
4985 0092 3385 strh r3, [r6, #40]
4986 .LVL414:
2684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
4987 .loc 1 2684 0
4988 0094 8027 movs r7, #128
4989 0096 BF04 lsls r7, r7, #18
4990 0098 E5E7 b .L342
4991 .LVL415:
4992 .L343:
2696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
4993 .loc 1 2696 0
4994 009a 328D ldrh r2, [r6, #40]
4995 009c D2B2 uxtb r2, r2
4996 009e 0D4B ldr r3, .L347+8
4997 00a0 0093 str r3, [sp]
4998 00a2 3B00 movs r3, r7
4999 00a4 0399 ldr r1, [sp, #12]
5000 00a6 3000 movs r0, r6
5001 00a8 FFF7FEFF bl I2C_TransferConfig
5002 .LVL416:
2699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5003 .loc 1 2699 0
5004 00ac 4023 movs r3, #64
5005 00ae 0022 movs r2, #0
5006 00b0 F254 strb r2, [r6, r3]
2708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5007 .loc 1 2708 0
5008 00b2 0221 movs r1, #2
5009 00b4 3000 movs r0, r6
5010 00b6 FFF7FEFF bl I2C_Enable_IRQ
5011 .LVL417:
2710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5012 .loc 1 2710 0
5013 00ba 00E0 b .L338
5014 .LVL418:
5015 .L344:
2714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5016 .loc 1 2714 0
5017 00bc 0225 movs r5, #2
5018 .LVL419:
5019 .L338:
2716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /**
5020 .loc 1 2716 0
5021 00be 2800 movs r0, r5
5022 00c0 07B0 add sp, sp, #28
5023 @ sp needed
5024 .LVL420:
5025 00c2 F0BD pop {r4, r5, r6, r7, pc}
5026 .LVL421:
5027 .L345:
2657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5028 .loc 1 2657 0
5029 00c4 0225 movs r5, #2
5030 00c6 FAE7 b .L338
5031 .L346:
ARM GAS /tmp/ccpK4Ax4.s page 216
2661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5032 .loc 1 2661 0
5033 00c8 0225 movs r5, #2
5034 00ca F8E7 b .L338
5035 .L348:
5036 .align 2
5037 .L347:
5038 00cc 0000FFFF .word -65536
5039 00d0 00000000 .word I2C_Master_ISR_IT
5040 00d4 00240080 .word -2147474432
5041 .cfi_endproc
5042 .LFE59:
5044 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits
5045 .align 1
5046 .global HAL_I2C_Mem_Write_DMA
5047 .syntax unified
5048 .code 16
5049 .thumb_func
5050 .fpu softvfp
5052 HAL_I2C_Mem_Write_DMA:
5053 .LFB60:
2730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
5054 .loc 1 2730 0
5055 .cfi_startproc
5056 @ args = 8, pretend = 0, frame = 16
5057 @ frame_needed = 0, uses_anonymous_args = 0
5058 .LVL422:
5059 0000 F0B5 push {r4, r5, r6, r7, lr}
5060 .LCFI41:
5061 .cfi_def_cfa_offset 20
5062 .cfi_offset 4, -20
5063 .cfi_offset 5, -16
5064 .cfi_offset 6, -12
5065 .cfi_offset 7, -8
5066 .cfi_offset 14, -4
5067 0002 CE46 mov lr, r9
5068 0004 00B5 push {lr}
5069 .LCFI42:
5070 .cfi_def_cfa_offset 24
5071 .cfi_offset 9, -24
5072 0006 86B0 sub sp, sp, #24
5073 .LCFI43:
5074 .cfi_def_cfa_offset 48
5075 0008 0400 movs r4, r0
5076 000a 0391 str r1, [sp, #12]
5077 000c 0492 str r2, [sp, #16]
5078 000e 0593 str r3, [sp, #20]
5079 0010 0CAB add r3, sp, #48
5080 .LVL423:
5081 0012 40CB ldmia r3!, {r6}
5082 .LVL424:
5083 0014 1F88 ldrh r7, [r3]
2738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5084 .loc 1 2738 0
5085 0016 4123 movs r3, #65
5086 .LVL425:
5087 0018 C35C ldrb r3, [r0, r3]
ARM GAS /tmp/ccpK4Ax4.s page 217
5088 001a 202B cmp r3, #32
5089 001c 00D0 beq .LCB5149
5090 001e 90E0 b .L359 @long jump
5091 .LCB5149:
2740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5092 .loc 1 2740 0
5093 0020 002E cmp r6, #0
5094 0022 55D0 beq .L351
2740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5095 .loc 1 2740 0 is_stmt 0 discriminator 1
5096 0024 002F cmp r7, #0
5097 0026 53D0 beq .L351
2746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5098 .loc 1 2746 0 is_stmt 1
5099 0028 0368 ldr r3, [r0]
5100 002a 9B69 ldr r3, [r3, #24]
5101 002c 1B04 lsls r3, r3, #16
5102 002e 00D5 bpl .LCB5159
5103 0030 8DE0 b .L360 @long jump
5104 .LCB5159:
2752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5105 .loc 1 2752 0
5106 0032 4023 movs r3, #64
5107 0034 C35C ldrb r3, [r0, r3]
5108 0036 012B cmp r3, #1
5109 0038 00D1 bne .LCB5163
5110 003a 8AE0 b .L361 @long jump
5111 .LCB5163:
2752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5112 .loc 1 2752 0 is_stmt 0 discriminator 2
5113 003c 4025 movs r5, #64
5114 003e 0123 movs r3, #1
5115 0040 4355 strb r3, [r0, r5]
2755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5116 .loc 1 2755 0 is_stmt 1 discriminator 2
5117 0042 FFF7FEFF bl HAL_GetTick
5118 .LVL426:
2757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5119 .loc 1 2757 0 discriminator 2
5120 0046 4123 movs r3, #65
5121 0048 2122 movs r2, #33
5122 004a E254 strb r2, [r4, r3]
2758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5123 .loc 1 2758 0 discriminator 2
5124 004c 0133 adds r3, r3, #1
5125 004e E554 strb r5, [r4, r3]
2759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5126 .loc 1 2759 0 discriminator 2
5127 0050 0023 movs r3, #0
5128 0052 6364 str r3, [r4, #68]
2762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
5129 .loc 1 2762 0 discriminator 2
5130 0054 6662 str r6, [r4, #36]
2763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5131 .loc 1 2763 0 discriminator 2
5132 0056 6785 strh r7, [r4, #42]
2764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
ARM GAS /tmp/ccpK4Ax4.s page 218
5133 .loc 1 2764 0 discriminator 2
5134 0058 3F4B ldr r3, .L365
5135 005a E362 str r3, [r4, #44]
2765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5136 .loc 1 2765 0 discriminator 2
5137 005c 3F4B ldr r3, .L365+4
5138 005e 6363 str r3, [r4, #52]
2767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5139 .loc 1 2767 0 discriminator 2
5140 0060 638D ldrh r3, [r4, #42]
5141 0062 9BB2 uxth r3, r3
5142 0064 FF2B cmp r3, #255
5143 0066 38D9 bls .L353
2769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5144 .loc 1 2769 0
5145 0068 FF23 movs r3, #255
5146 006a 2385 strh r3, [r4, #40]
5147 .LVL427:
2770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5148 .loc 1 2770 0
5149 006c 8023 movs r3, #128
5150 006e 5B04 lsls r3, r3, #17
5151 0070 9946 mov r9, r3
5152 .LVL428:
5153 .L354:
2779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5154 .loc 1 2779 0
5155 0072 0190 str r0, [sp, #4]
5156 0074 1923 movs r3, #25
5157 0076 0093 str r3, [sp]
5158 0078 059B ldr r3, [sp, #20]
5159 007a 049A ldr r2, [sp, #16]
5160 007c 0399 ldr r1, [sp, #12]
5161 007e 2000 movs r0, r4
5162 .LVL429:
5163 0080 FFF7FEFF bl I2C_RequestMemoryWrite
5164 .LVL430:
5165 0084 0028 cmp r0, #0
5166 0086 2ED1 bne .L363
2787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5167 .loc 1 2787 0
5168 0088 A36B ldr r3, [r4, #56]
5169 008a 002B cmp r3, #0
5170 008c 30D0 beq .L356
2790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5171 .loc 1 2790 0
5172 008e 344A ldr r2, .L365+8
5173 0090 9A62 str r2, [r3, #40]
2793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5174 .loc 1 2793 0
5175 0092 A36B ldr r3, [r4, #56]
5176 0094 334A ldr r2, .L365+12
5177 0096 1A63 str r2, [r3, #48]
2796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
5178 .loc 1 2796 0
5179 0098 A26B ldr r2, [r4, #56]
5180 009a 0023 movs r3, #0
ARM GAS /tmp/ccpK4Ax4.s page 219
5181 009c D362 str r3, [r2, #44]
2797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5182 .loc 1 2797 0
5183 009e A26B ldr r2, [r4, #56]
5184 00a0 5363 str r3, [r2, #52]
2800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5185 .loc 1 2800 0
5186 00a2 2268 ldr r2, [r4]
5187 00a4 2832 adds r2, r2, #40
5188 00a6 238D ldrh r3, [r4, #40]
5189 00a8 3100 movs r1, r6
5190 00aa A06B ldr r0, [r4, #56]
5191 00ac FFF7FEFF bl HAL_DMA_Start_IT
5192 .LVL431:
5193 00b0 061E subs r6, r0, #0
5194 .LVL432:
2817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5195 .loc 1 2817 0
5196 00b2 2BD0 beq .L364
2841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5197 .loc 1 2841 0
5198 00b4 4123 movs r3, #65
5199 00b6 2022 movs r2, #32
5200 00b8 E254 strb r2, [r4, r3]
2842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5201 .loc 1 2842 0
5202 00ba 0022 movs r2, #0
5203 00bc 0133 adds r3, r3, #1
5204 00be E254 strb r2, [r4, r3]
2845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5205 .loc 1 2845 0
5206 00c0 636C ldr r3, [r4, #68]
5207 00c2 1021 movs r1, #16
5208 00c4 0B43 orrs r3, r1
5209 00c6 6364 str r3, [r4, #68]
2848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5210 .loc 1 2848 0
5211 00c8 4023 movs r3, #64
5212 00ca E254 strb r2, [r4, r3]
2850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5213 .loc 1 2850 0
5214 00cc 0126 movs r6, #1
5215 00ce 39E0 b .L350
5216 .LVL433:
5217 .L351:
2742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
5218 .loc 1 2742 0
5219 00d0 8023 movs r3, #128
5220 00d2 9B00 lsls r3, r3, #2
5221 00d4 6364 str r3, [r4, #68]
2743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5222 .loc 1 2743 0
5223 00d6 0126 movs r6, #1
5224 00d8 34E0 b .L350
5225 .LVL434:
5226 .L353:
2774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
ARM GAS /tmp/ccpK4Ax4.s page 220
5227 .loc 1 2774 0
5228 00da 638D ldrh r3, [r4, #42]
5229 00dc 2385 strh r3, [r4, #40]
5230 .LVL435:
2775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5231 .loc 1 2775 0
5232 00de 8023 movs r3, #128
5233 00e0 9B04 lsls r3, r3, #18
5234 00e2 9946 mov r9, r3
5235 00e4 C5E7 b .L354
5236 .LVL436:
5237 .L363:
2782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
5238 .loc 1 2782 0
5239 00e6 4023 movs r3, #64
5240 00e8 0022 movs r2, #0
5241 00ea E254 strb r2, [r4, r3]
2783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5242 .loc 1 2783 0
5243 00ec 0126 movs r6, #1
5244 00ee 29E0 b .L350
5245 .L356:
2805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5246 .loc 1 2805 0
5247 00f0 4123 movs r3, #65
5248 00f2 2022 movs r2, #32
5249 00f4 E254 strb r2, [r4, r3]
2806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5250 .loc 1 2806 0
5251 00f6 0022 movs r2, #0
5252 00f8 0133 adds r3, r3, #1
5253 00fa E254 strb r2, [r4, r3]
2809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5254 .loc 1 2809 0
5255 00fc 636C ldr r3, [r4, #68]
5256 00fe 8021 movs r1, #128
5257 0100 0B43 orrs r3, r1
5258 0102 6364 str r3, [r4, #68]
2812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5259 .loc 1 2812 0
5260 0104 4023 movs r3, #64
5261 0106 E254 strb r2, [r4, r3]
2814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5262 .loc 1 2814 0
5263 0108 0126 movs r6, #1
5264 010a 1BE0 b .L350
5265 .LVL437:
5266 .L364:
2821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5267 .loc 1 2821 0
5268 010c 228D ldrh r2, [r4, #40]
5269 010e D2B2 uxtb r2, r2
5270 0110 0027 movs r7, #0
5271 0112 0097 str r7, [sp]
5272 0114 4B46 mov r3, r9
5273 0116 0399 ldr r1, [sp, #12]
5274 0118 2000 movs r0, r4
ARM GAS /tmp/ccpK4Ax4.s page 221
5275 .LVL438:
5276 011a FFF7FEFF bl I2C_TransferConfig
5277 .LVL439:
2824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5278 .loc 1 2824 0
5279 011e 638D ldrh r3, [r4, #42]
5280 0120 228D ldrh r2, [r4, #40]
5281 0122 9B1A subs r3, r3, r2
5282 0124 9BB2 uxth r3, r3
5283 0126 6385 strh r3, [r4, #42]
2827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5284 .loc 1 2827 0
5285 0128 4023 movs r3, #64
5286 012a E754 strb r7, [r4, r3]
2833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5287 .loc 1 2833 0
5288 012c 1121 movs r1, #17
5289 012e 2000 movs r0, r4
5290 0130 FFF7FEFF bl I2C_Enable_IRQ
5291 .LVL440:
2836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5292 .loc 1 2836 0
5293 0134 2268 ldr r2, [r4]
5294 0136 1168 ldr r1, [r2]
5295 0138 8023 movs r3, #128
5296 013a DB01 lsls r3, r3, #7
5297 013c 0B43 orrs r3, r1
5298 013e 1360 str r3, [r2]
2853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5299 .loc 1 2853 0
5300 0140 00E0 b .L350
5301 .LVL441:
5302 .L359:
2857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5303 .loc 1 2857 0
5304 0142 0226 movs r6, #2
5305 .LVL442:
5306 .L350:
2859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5307 .loc 1 2859 0
5308 0144 3000 movs r0, r6
5309 0146 06B0 add sp, sp, #24
5310 @ sp needed
5311 .LVL443:
5312 0148 04BC pop {r2}
5313 014a 9146 mov r9, r2
5314 014c F0BD pop {r4, r5, r6, r7, pc}
5315 .LVL444:
5316 .L360:
2748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5317 .loc 1 2748 0
5318 014e 0226 movs r6, #2
5319 0150 F8E7 b .L350
5320 .L361:
2752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5321 .loc 1 2752 0
5322 0152 0226 movs r6, #2
ARM GAS /tmp/ccpK4Ax4.s page 222
5323 0154 F6E7 b .L350
5324 .L366:
5325 0156 C046 .align 2
5326 .L365:
5327 0158 0000FFFF .word -65536
5328 015c 00000000 .word I2C_Master_ISR_DMA
5329 0160 00000000 .word I2C_DMAMasterTransmitCplt
5330 0164 00000000 .word I2C_DMAError
5331 .cfi_endproc
5332 .LFE60:
5334 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits
5335 .align 1
5336 .global HAL_I2C_Mem_Read_DMA
5337 .syntax unified
5338 .code 16
5339 .thumb_func
5340 .fpu softvfp
5342 HAL_I2C_Mem_Read_DMA:
5343 .LFB61:
2874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
5344 .loc 1 2874 0
5345 .cfi_startproc
5346 @ args = 8, pretend = 0, frame = 16
5347 @ frame_needed = 0, uses_anonymous_args = 0
5348 .LVL445:
5349 0000 F0B5 push {r4, r5, r6, r7, lr}
5350 .LCFI44:
5351 .cfi_def_cfa_offset 20
5352 .cfi_offset 4, -20
5353 .cfi_offset 5, -16
5354 .cfi_offset 6, -12
5355 .cfi_offset 7, -8
5356 .cfi_offset 14, -4
5357 0002 CE46 mov lr, r9
5358 0004 00B5 push {lr}
5359 .LCFI45:
5360 .cfi_def_cfa_offset 24
5361 .cfi_offset 9, -24
5362 0006 86B0 sub sp, sp, #24
5363 .LCFI46:
5364 .cfi_def_cfa_offset 48
5365 0008 0400 movs r4, r0
5366 000a 0391 str r1, [sp, #12]
5367 000c 0492 str r2, [sp, #16]
5368 000e 0593 str r3, [sp, #20]
5369 0010 0CAB add r3, sp, #48
5370 .LVL446:
5371 0012 40CB ldmia r3!, {r6}
5372 .LVL447:
5373 0014 1F88 ldrh r7, [r3]
2882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5374 .loc 1 2882 0
5375 0016 4123 movs r3, #65
5376 .LVL448:
5377 0018 C35C ldrb r3, [r0, r3]
5378 001a 202B cmp r3, #32
5379 001c 00D0 beq .LCB5451
ARM GAS /tmp/ccpK4Ax4.s page 223
5380 001e 91E0 b .L377 @long jump
5381 .LCB5451:
2884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5382 .loc 1 2884 0
5383 0020 002E cmp r6, #0
5384 0022 55D0 beq .L369
2884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5385 .loc 1 2884 0 is_stmt 0 discriminator 1
5386 0024 002F cmp r7, #0
5387 0026 53D0 beq .L369
2890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5388 .loc 1 2890 0 is_stmt 1
5389 0028 0368 ldr r3, [r0]
5390 002a 9B69 ldr r3, [r3, #24]
5391 002c 1B04 lsls r3, r3, #16
5392 002e 00D5 bpl .LCB5461
5393 0030 8EE0 b .L378 @long jump
5394 .LCB5461:
2896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5395 .loc 1 2896 0
5396 0032 4023 movs r3, #64
5397 0034 C35C ldrb r3, [r0, r3]
5398 0036 012B cmp r3, #1
5399 0038 00D1 bne .LCB5465
5400 003a 8BE0 b .L379 @long jump
5401 .LCB5465:
2896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5402 .loc 1 2896 0 is_stmt 0 discriminator 2
5403 003c 4025 movs r5, #64
5404 003e 0123 movs r3, #1
5405 0040 4355 strb r3, [r0, r5]
2899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5406 .loc 1 2899 0 is_stmt 1 discriminator 2
5407 0042 FFF7FEFF bl HAL_GetTick
5408 .LVL449:
2901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5409 .loc 1 2901 0 discriminator 2
5410 0046 4123 movs r3, #65
5411 0048 2222 movs r2, #34
5412 004a E254 strb r2, [r4, r3]
2902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5413 .loc 1 2902 0 discriminator 2
5414 004c 0133 adds r3, r3, #1
5415 004e E554 strb r5, [r4, r3]
2903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5416 .loc 1 2903 0 discriminator 2
5417 0050 0023 movs r3, #0
5418 0052 6364 str r3, [r4, #68]
2906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
5419 .loc 1 2906 0 discriminator 2
5420 0054 6662 str r6, [r4, #36]
2907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5421 .loc 1 2907 0 discriminator 2
5422 0056 6785 strh r7, [r4, #42]
2908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
5423 .loc 1 2908 0 discriminator 2
5424 0058 3F4B ldr r3, .L383
ARM GAS /tmp/ccpK4Ax4.s page 224
5425 005a E362 str r3, [r4, #44]
2909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5426 .loc 1 2909 0 discriminator 2
5427 005c 3F4B ldr r3, .L383+4
5428 005e 6363 str r3, [r4, #52]
2911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5429 .loc 1 2911 0 discriminator 2
5430 0060 638D ldrh r3, [r4, #42]
5431 0062 9BB2 uxth r3, r3
5432 0064 FF2B cmp r3, #255
5433 0066 38D9 bls .L371
2913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5434 .loc 1 2913 0
5435 0068 FF23 movs r3, #255
5436 006a 2385 strh r3, [r4, #40]
5437 .LVL450:
2914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5438 .loc 1 2914 0
5439 006c 8023 movs r3, #128
5440 006e 5B04 lsls r3, r3, #17
5441 0070 9946 mov r9, r3
5442 .LVL451:
5443 .L372:
2923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5444 .loc 1 2923 0
5445 0072 0190 str r0, [sp, #4]
5446 0074 1923 movs r3, #25
5447 0076 0093 str r3, [sp]
5448 0078 059B ldr r3, [sp, #20]
5449 007a 049A ldr r2, [sp, #16]
5450 007c 0399 ldr r1, [sp, #12]
5451 007e 2000 movs r0, r4
5452 .LVL452:
5453 0080 FFF7FEFF bl I2C_RequestMemoryRead
5454 .LVL453:
5455 0084 0028 cmp r0, #0
5456 0086 2ED1 bne .L381
2930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5457 .loc 1 2930 0
5458 0088 E36B ldr r3, [r4, #60]
5459 008a 002B cmp r3, #0
5460 008c 30D0 beq .L374
2933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5461 .loc 1 2933 0
5462 008e 344A ldr r2, .L383+8
5463 0090 9A62 str r2, [r3, #40]
2936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5464 .loc 1 2936 0
5465 0092 E36B ldr r3, [r4, #60]
5466 0094 334A ldr r2, .L383+12
5467 0096 1A63 str r2, [r3, #48]
2939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
5468 .loc 1 2939 0
5469 0098 E26B ldr r2, [r4, #60]
5470 009a 0023 movs r3, #0
5471 009c D362 str r3, [r2, #44]
2940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 225
5472 .loc 1 2940 0
5473 009e E26B ldr r2, [r4, #60]
5474 00a0 5363 str r3, [r2, #52]
2943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5475 .loc 1 2943 0
5476 00a2 2168 ldr r1, [r4]
5477 00a4 2431 adds r1, r1, #36
5478 00a6 238D ldrh r3, [r4, #40]
5479 00a8 3200 movs r2, r6
5480 00aa E06B ldr r0, [r4, #60]
5481 00ac FFF7FEFF bl HAL_DMA_Start_IT
5482 .LVL454:
5483 00b0 061E subs r6, r0, #0
5484 .LVL455:
2960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5485 .loc 1 2960 0
5486 00b2 2BD0 beq .L382
2983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5487 .loc 1 2983 0
5488 00b4 4123 movs r3, #65
5489 00b6 2022 movs r2, #32
5490 00b8 E254 strb r2, [r4, r3]
2984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5491 .loc 1 2984 0
5492 00ba 0022 movs r2, #0
5493 00bc 0133 adds r3, r3, #1
5494 00be E254 strb r2, [r4, r3]
2987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5495 .loc 1 2987 0
5496 00c0 636C ldr r3, [r4, #68]
5497 00c2 1021 movs r1, #16
5498 00c4 0B43 orrs r3, r1
5499 00c6 6364 str r3, [r4, #68]
2990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5500 .loc 1 2990 0
5501 00c8 4023 movs r3, #64
5502 00ca E254 strb r2, [r4, r3]
2992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5503 .loc 1 2992 0
5504 00cc 0126 movs r6, #1
5505 00ce 3AE0 b .L368
5506 .LVL456:
5507 .L369:
2886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
5508 .loc 1 2886 0
5509 00d0 8023 movs r3, #128
5510 00d2 9B00 lsls r3, r3, #2
5511 00d4 6364 str r3, [r4, #68]
2887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5512 .loc 1 2887 0
5513 00d6 0126 movs r6, #1
5514 00d8 35E0 b .L368
5515 .LVL457:
5516 .L371:
2918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5517 .loc 1 2918 0
5518 00da 638D ldrh r3, [r4, #42]
ARM GAS /tmp/ccpK4Ax4.s page 226
5519 00dc 2385 strh r3, [r4, #40]
5520 .LVL458:
2919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5521 .loc 1 2919 0
5522 00de 8023 movs r3, #128
5523 00e0 9B04 lsls r3, r3, #18
5524 00e2 9946 mov r9, r3
5525 00e4 C5E7 b .L372
5526 .LVL459:
5527 .L381:
2926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
5528 .loc 1 2926 0
5529 00e6 4023 movs r3, #64
5530 00e8 0022 movs r2, #0
5531 00ea E254 strb r2, [r4, r3]
2927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5532 .loc 1 2927 0
5533 00ec 0126 movs r6, #1
5534 00ee 2AE0 b .L368
5535 .L374:
2948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5536 .loc 1 2948 0
5537 00f0 4123 movs r3, #65
5538 00f2 2022 movs r2, #32
5539 00f4 E254 strb r2, [r4, r3]
2949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5540 .loc 1 2949 0
5541 00f6 0022 movs r2, #0
5542 00f8 0133 adds r3, r3, #1
5543 00fa E254 strb r2, [r4, r3]
2952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5544 .loc 1 2952 0
5545 00fc 636C ldr r3, [r4, #68]
5546 00fe 8021 movs r1, #128
5547 0100 0B43 orrs r3, r1
5548 0102 6364 str r3, [r4, #68]
2955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5549 .loc 1 2955 0
5550 0104 4023 movs r3, #64
5551 0106 E254 strb r2, [r4, r3]
2957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5552 .loc 1 2957 0
5553 0108 0126 movs r6, #1
5554 010a 1CE0 b .L368
5555 .LVL460:
5556 .L382:
2963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5557 .loc 1 2963 0
5558 010c 228D ldrh r2, [r4, #40]
5559 010e D2B2 uxtb r2, r2
5560 0110 154B ldr r3, .L383+16
5561 0112 0093 str r3, [sp]
5562 0114 4B46 mov r3, r9
5563 0116 0399 ldr r1, [sp, #12]
5564 0118 2000 movs r0, r4
5565 .LVL461:
5566 011a FFF7FEFF bl I2C_TransferConfig
ARM GAS /tmp/ccpK4Ax4.s page 227
5567 .LVL462:
2966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5568 .loc 1 2966 0
5569 011e 638D ldrh r3, [r4, #42]
5570 0120 228D ldrh r2, [r4, #40]
5571 0122 9B1A subs r3, r3, r2
5572 0124 9BB2 uxth r3, r3
5573 0126 6385 strh r3, [r4, #42]
2969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5574 .loc 1 2969 0
5575 0128 4023 movs r3, #64
5576 012a 0022 movs r2, #0
5577 012c E254 strb r2, [r4, r3]
2975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5578 .loc 1 2975 0
5579 012e 1121 movs r1, #17
5580 0130 2000 movs r0, r4
5581 0132 FFF7FEFF bl I2C_Enable_IRQ
5582 .LVL463:
2978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5583 .loc 1 2978 0
5584 0136 2268 ldr r2, [r4]
5585 0138 1168 ldr r1, [r2]
5586 013a 8023 movs r3, #128
5587 013c 1B02 lsls r3, r3, #8
5588 013e 0B43 orrs r3, r1
5589 0140 1360 str r3, [r2]
2995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5590 .loc 1 2995 0
5591 0142 00E0 b .L368
5592 .LVL464:
5593 .L377:
2999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5594 .loc 1 2999 0
5595 0144 0226 movs r6, #2
5596 .LVL465:
5597 .L368:
3001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5598 .loc 1 3001 0
5599 0146 3000 movs r0, r6
5600 0148 06B0 add sp, sp, #24
5601 @ sp needed
5602 .LVL466:
5603 014a 04BC pop {r2}
5604 014c 9146 mov r9, r2
5605 014e F0BD pop {r4, r5, r6, r7, pc}
5606 .LVL467:
5607 .L378:
2892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5608 .loc 1 2892 0
5609 0150 0226 movs r6, #2
5610 0152 F8E7 b .L368
5611 .L379:
2896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5612 .loc 1 2896 0
5613 0154 0226 movs r6, #2
5614 0156 F6E7 b .L368
ARM GAS /tmp/ccpK4Ax4.s page 228
5615 .L384:
5616 .align 2
5617 .L383:
5618 0158 0000FFFF .word -65536
5619 015c 00000000 .word I2C_Master_ISR_DMA
5620 0160 00000000 .word I2C_DMAMasterReceiveCplt
5621 0164 00000000 .word I2C_DMAError
5622 0168 00240080 .word -2147474432
5623 .cfi_endproc
5624 .LFE61:
5626 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits
5627 .align 1
5628 .global HAL_I2C_IsDeviceReady
5629 .syntax unified
5630 .code 16
5631 .thumb_func
5632 .fpu softvfp
5634 HAL_I2C_IsDeviceReady:
5635 .LFB62:
3015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart;
5636 .loc 1 3015 0
5637 .cfi_startproc
5638 @ args = 0, pretend = 0, frame = 16
5639 @ frame_needed = 0, uses_anonymous_args = 0
5640 .LVL468:
5641 0000 F0B5 push {r4, r5, r6, r7, lr}
5642 .LCFI47:
5643 .cfi_def_cfa_offset 20
5644 .cfi_offset 4, -20
5645 .cfi_offset 5, -16
5646 .cfi_offset 6, -12
5647 .cfi_offset 7, -8
5648 .cfi_offset 14, -4
5649 0002 87B0 sub sp, sp, #28
5650 .LCFI48:
5651 .cfi_def_cfa_offset 48
5652 0004 0600 movs r6, r0
5653 0006 0391 str r1, [sp, #12]
5654 0008 1500 movs r5, r2
5655 000a 1F00 movs r7, r3
3018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5656 .loc 1 3018 0
5657 000c 0023 movs r3, #0
5658 .LVL469:
5659 000e 0593 str r3, [sp, #20]
3023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5660 .loc 1 3023 0
5661 0010 4133 adds r3, r3, #65
5662 0012 C35C ldrb r3, [r0, r3]
5663 0014 202B cmp r3, #32
5664 0016 00D0 beq .LCB5741
5665 0018 A2E0 b .L396 @long jump
5666 .LCB5741:
3025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5667 .loc 1 3025 0
5668 001a 0368 ldr r3, [r0]
5669 001c 9B69 ldr r3, [r3, #24]
ARM GAS /tmp/ccpK4Ax4.s page 229
5670 001e 1B04 lsls r3, r3, #16
5671 0020 00D5 bpl .LCB5747
5672 0022 A0E0 b .L397 @long jump
5673 .LCB5747:
3031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5674 .loc 1 3031 0
5675 0024 4023 movs r3, #64
5676 0026 C35C ldrb r3, [r0, r3]
5677 0028 012B cmp r3, #1
5678 002a 00D1 bne .LCB5751
5679 002c 9DE0 b .L398 @long jump
5680 .LCB5751:
3031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5681 .loc 1 3031 0 is_stmt 0 discriminator 2
5682 002e 4023 movs r3, #64
5683 0030 0122 movs r2, #1
5684 .LVL470:
5685 0032 C254 strb r2, [r0, r3]
3033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5686 .loc 1 3033 0 is_stmt 1 discriminator 2
5687 0034 0133 adds r3, r3, #1
5688 0036 2332 adds r2, r2, #35
5689 0038 C254 strb r2, [r0, r3]
3034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5690 .loc 1 3034 0 discriminator 2
5691 003a 0023 movs r3, #0
5692 003c 4364 str r3, [r0, #68]
5693 .LVL471:
5694 .L395:
3039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5695 .loc 1 3039 0
5696 003e F368 ldr r3, [r6, #12]
5697 0040 012B cmp r3, #1
5698 0042 18D0 beq .L402
3039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5699 .loc 1 3039 0 is_stmt 0 discriminator 2
5700 0044 039B ldr r3, [sp, #12]
5701 0046 9A05 lsls r2, r3, #22
5702 0048 920D lsrs r2, r2, #22
5703 004a A023 movs r3, #160
5704 004c 9B01 lsls r3, r3, #6
5705 004e 1343 orrs r3, r2
5706 .L388:
3039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5707 .loc 1 3039 0 discriminator 4
5708 0050 3268 ldr r2, [r6]
5709 0052 5360 str r3, [r2, #4]
3043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5710 .loc 1 3043 0 is_stmt 1 discriminator 4
5711 0054 FFF7FEFF bl HAL_GetTick
5712 .LVL472:
5713 0058 0400 movs r4, r0
5714 .LVL473:
3045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
5715 .loc 1 3045 0 discriminator 4
5716 005a 3268 ldr r2, [r6]
5717 005c 9169 ldr r1, [r2, #24]
ARM GAS /tmp/ccpK4Ax4.s page 230
5718 005e 2023 movs r3, #32
5719 0060 0B40 ands r3, r1
5720 0062 591E subs r1, r3, #1
5721 0064 8B41 sbcs r3, r3, r1
5722 0066 D9B2 uxtb r1, r3
5723 .LVL474:
3046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5724 .loc 1 3046 0 discriminator 4
5725 0068 9369 ldr r3, [r2, #24]
5726 006a 1022 movs r2, #16
5727 006c 1A40 ands r2, r3
5728 006e 531E subs r3, r2, #1
5729 0070 9A41 sbcs r2, r2, r3
5730 0072 D3B2 uxtb r3, r2
5731 .LVL475:
3048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5732 .loc 1 3048 0 discriminator 4
5733 0074 12E0 b .L389
5734 .LVL476:
5735 .L402:
3039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5736 .loc 1 3039 0 discriminator 1
5737 0076 039B ldr r3, [sp, #12]
5738 0078 9A05 lsls r2, r3, #22
5739 007a 920D lsrs r2, r2, #22
5740 007c 3F4B ldr r3, .L406
5741 007e 1343 orrs r3, r2
5742 0080 E6E7 b .L388
5743 .LVL477:
5744 .L390:
3067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
5745 .loc 1 3067 0
5746 0082 3268 ldr r2, [r6]
5747 0084 9169 ldr r1, [r2, #24]
5748 0086 2023 movs r3, #32
5749 0088 0B40 ands r3, r1
5750 008a 591E subs r1, r3, #1
5751 008c 8B41 sbcs r3, r3, r1
5752 008e D9B2 uxtb r1, r3
5753 .LVL478:
3068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5754 .loc 1 3068 0
5755 0090 9269 ldr r2, [r2, #24]
5756 0092 1023 movs r3, #16
5757 0094 1340 ands r3, r2
5758 0096 5A1E subs r2, r3, #1
5759 0098 9341 sbcs r3, r3, r2
5760 009a DBB2 uxtb r3, r3
5761 .LVL479:
5762 .L389:
3048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5763 .loc 1 3048 0
5764 009c 0B43 orrs r3, r1
5765 .LVL480:
5766 009e 13D1 bne .L403
3050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5767 .loc 1 3050 0
ARM GAS /tmp/ccpK4Ax4.s page 231
5768 00a0 7B1C adds r3, r7, #1
5769 00a2 EED0 beq .L390
3052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5770 .loc 1 3052 0
5771 00a4 FFF7FEFF bl HAL_GetTick
5772 .LVL481:
5773 00a8 001B subs r0, r0, r4
5774 00aa B842 cmp r0, r7
5775 00ac 01D8 bhi .L391
3052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5776 .loc 1 3052 0 is_stmt 0 discriminator 1
5777 00ae 002F cmp r7, #0
5778 00b0 E7D1 bne .L390
5779 .L391:
3055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5780 .loc 1 3055 0 is_stmt 1
5781 00b2 2022 movs r2, #32
5782 00b4 4123 movs r3, #65
5783 00b6 F254 strb r2, [r6, r3]
3058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5784 .loc 1 3058 0
5785 00b8 736C ldr r3, [r6, #68]
5786 00ba 1343 orrs r3, r2
5787 00bc 7364 str r3, [r6, #68]
3061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5788 .loc 1 3061 0
5789 00be 4023 movs r3, #64
5790 00c0 0022 movs r2, #0
5791 00c2 F254 strb r2, [r6, r3]
3063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5792 .loc 1 3063 0
5793 00c4 0120 movs r0, #1
5794 00c6 4CE0 b .L386
5795 .LVL482:
5796 .L403:
3072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5797 .loc 1 3072 0
5798 00c8 3368 ldr r3, [r6]
5799 00ca 9B69 ldr r3, [r3, #24]
5800 00cc DB06 lsls r3, r3, #27
5801 00ce 22D5 bpl .L404
3094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5802 .loc 1 3094 0
5803 00d0 0094 str r4, [sp]
5804 00d2 3B00 movs r3, r7
5805 00d4 0022 movs r2, #0
5806 00d6 2021 movs r1, #32
5807 .LVL483:
5808 00d8 3000 movs r0, r6
5809 00da FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5810 .LVL484:
5811 00de 0028 cmp r0, #0
5812 00e0 47D1 bne .L400
3100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5813 .loc 1 3100 0
5814 00e2 3368 ldr r3, [r6]
5815 00e4 1022 movs r2, #16
ARM GAS /tmp/ccpK4Ax4.s page 232
5816 00e6 DA61 str r2, [r3, #28]
3103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5817 .loc 1 3103 0
5818 00e8 3368 ldr r3, [r6]
5819 00ea 1032 adds r2, r2, #16
5820 00ec DA61 str r2, [r3, #28]
3107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5821 .loc 1 3107 0
5822 00ee 059B ldr r3, [sp, #20]
5823 00f0 AB42 cmp r3, r5
5824 00f2 22D0 beq .L405
5825 .L394:
3123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5826 .loc 1 3123 0
5827 00f4 059B ldr r3, [sp, #20]
5828 00f6 0133 adds r3, r3, #1
5829 00f8 0593 str r3, [sp, #20]
3125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5830 .loc 1 3125 0
5831 00fa 059B ldr r3, [sp, #20]
5832 00fc AB42 cmp r3, r5
5833 00fe 9ED3 bcc .L395
3128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5834 .loc 1 3128 0
5835 0100 2022 movs r2, #32
5836 0102 4123 movs r3, #65
5837 0104 F254 strb r2, [r6, r3]
3131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5838 .loc 1 3131 0
5839 0106 736C ldr r3, [r6, #68]
5840 0108 1343 orrs r3, r2
5841 010a 7364 str r3, [r6, #68]
3134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5842 .loc 1 3134 0
5843 010c 4023 movs r3, #64
5844 010e 0022 movs r2, #0
5845 0110 F254 strb r2, [r6, r3]
3136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5846 .loc 1 3136 0
5847 0112 0120 movs r0, #1
5848 0114 25E0 b .L386
5849 .LVL485:
5850 .L404:
3075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5851 .loc 1 3075 0
5852 0116 0094 str r4, [sp]
5853 0118 3B00 movs r3, r7
5854 011a 0022 movs r2, #0
5855 011c 2021 movs r1, #32
5856 .LVL486:
5857 011e 3000 movs r0, r6
5858 0120 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5859 .LVL487:
5860 0124 0028 cmp r0, #0
5861 0126 22D1 bne .L399
3081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5862 .loc 1 3081 0
ARM GAS /tmp/ccpK4Ax4.s page 233
5863 0128 3268 ldr r2, [r6]
5864 012a 2023 movs r3, #32
5865 012c D361 str r3, [r2, #28]
3084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5866 .loc 1 3084 0
5867 012e 4122 movs r2, #65
5868 0130 B354 strb r3, [r6, r2]
3087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5869 .loc 1 3087 0
5870 0132 2033 adds r3, r3, #32
5871 0134 0022 movs r2, #0
5872 0136 F254 strb r2, [r6, r3]
3089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5873 .loc 1 3089 0
5874 0138 13E0 b .L386
5875 .L405:
3110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5876 .loc 1 3110 0
5877 013a 3268 ldr r2, [r6]
5878 013c 5168 ldr r1, [r2, #4]
5879 013e 8023 movs r3, #128
5880 0140 DB01 lsls r3, r3, #7
5881 0142 0B43 orrs r3, r1
5882 0144 5360 str r3, [r2, #4]
3113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5883 .loc 1 3113 0
5884 0146 0094 str r4, [sp]
5885 0148 3B00 movs r3, r7
5886 014a 0022 movs r2, #0
5887 014c 2021 movs r1, #32
5888 014e 3000 movs r0, r6
5889 0150 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5890 .LVL488:
5891 0154 0028 cmp r0, #0
5892 0156 0ED1 bne .L401
3119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5893 .loc 1 3119 0
5894 0158 3368 ldr r3, [r6]
5895 015a 2022 movs r2, #32
5896 015c DA61 str r2, [r3, #28]
5897 015e C9E7 b .L394
5898 .LVL489:
5899 .L396:
3140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5900 .loc 1 3140 0
5901 0160 0220 movs r0, #2
5902 .LVL490:
5903 .L386:
3142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5904 .loc 1 3142 0
5905 0162 07B0 add sp, sp, #28
5906 @ sp needed
5907 .LVL491:
5908 .LVL492:
5909 .LVL493:
5910 0164 F0BD pop {r4, r5, r6, r7, pc}
5911 .LVL494:
ARM GAS /tmp/ccpK4Ax4.s page 234
5912 .L397:
3027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5913 .loc 1 3027 0
5914 0166 0220 movs r0, #2
5915 .LVL495:
5916 0168 FBE7 b .L386
5917 .LVL496:
5918 .L398:
3031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5919 .loc 1 3031 0
5920 016a 0220 movs r0, #2
5921 .LVL497:
5922 016c F9E7 b .L386
5923 .LVL498:
5924 .L399:
3077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5925 .loc 1 3077 0
5926 016e 0120 movs r0, #1
5927 0170 F7E7 b .L386
5928 .L400:
3096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5929 .loc 1 3096 0
5930 0172 0120 movs r0, #1
5931 0174 F5E7 b .L386
5932 .L401:
3115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
5933 .loc 1 3115 0
5934 0176 0120 movs r0, #1
5935 0178 F3E7 b .L386
5936 .L407:
5937 017a C046 .align 2
5938 .L406:
5939 017c 00200002 .word 33562624
5940 .cfi_endproc
5941 .LFE62:
5943 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits
5944 .align 1
5945 .global HAL_I2C_Master_Seq_Transmit_IT
5946 .syntax unified
5947 .code 16
5948 .thumb_func
5949 .fpu softvfp
5951 HAL_I2C_Master_Seq_Transmit_IT:
5952 .LFB63:
3157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
5953 .loc 1 3157 0
5954 .cfi_startproc
5955 @ args = 4, pretend = 0, frame = 0
5956 @ frame_needed = 0, uses_anonymous_args = 0
5957 .LVL499:
5958 0000 70B5 push {r4, r5, r6, lr}
5959 .LCFI49:
5960 .cfi_def_cfa_offset 16
5961 .cfi_offset 4, -16
5962 .cfi_offset 5, -12
5963 .cfi_offset 6, -8
5964 .cfi_offset 14, -4
ARM GAS /tmp/ccpK4Ax4.s page 235
5965 0002 82B0 sub sp, sp, #8
5966 .LCFI50:
5967 .cfi_def_cfa_offset 24
5968 0004 0400 movs r4, r0
5969 0006 0D00 movs r5, r1
5970 .LVL500:
3164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
5971 .loc 1 3164 0
5972 0008 4121 movs r1, #65
5973 .LVL501:
5974 000a 415C ldrb r1, [r0, r1]
5975 000c 2029 cmp r1, #32
5976 000e 49D1 bne .L414
3167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5977 .loc 1 3167 0
5978 0010 2031 adds r1, r1, #32
5979 0012 415C ldrb r1, [r0, r1]
5980 0014 0129 cmp r1, #1
5981 0016 48D0 beq .L415
3167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5982 .loc 1 3167 0 is_stmt 0 discriminator 2
5983 0018 4021 movs r1, #64
5984 001a 0120 movs r0, #1
5985 .LVL502:
5986 001c 6054 strb r0, [r4, r1]
3169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
5987 .loc 1 3169 0 is_stmt 1 discriminator 2
5988 001e 0131 adds r1, r1, #1
5989 0020 2030 adds r0, r0, #32
5990 0022 6054 strb r0, [r4, r1]
3170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5991 .loc 1 3170 0 discriminator 2
5992 0024 0131 adds r1, r1, #1
5993 0026 1138 subs r0, r0, #17
5994 0028 6054 strb r0, [r4, r1]
3171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
5995 .loc 1 3171 0 discriminator 2
5996 002a 0021 movs r1, #0
5997 002c 6164 str r1, [r4, #68]
3174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
5998 .loc 1 3174 0 discriminator 2
5999 002e 6262 str r2, [r4, #36]
3175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
6000 .loc 1 3175 0 discriminator 2
6001 0030 6385 strh r3, [r4, #42]
3176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
6002 .loc 1 3176 0 discriminator 2
6003 0032 069B ldr r3, [sp, #24]
6004 .LVL503:
6005 0034 E362 str r3, [r4, #44]
6006 .LVL504:
3177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6007 .loc 1 3177 0 discriminator 2
6008 0036 1E4B ldr r3, .L418
6009 0038 6363 str r3, [r4, #52]
3180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6010 .loc 1 3180 0 discriminator 2
ARM GAS /tmp/ccpK4Ax4.s page 236
6011 003a 638D ldrh r3, [r4, #42]
6012 003c 9BB2 uxth r3, r3
6013 003e FF2B cmp r3, #255
6014 0040 10D9 bls .L410
3182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
6015 .loc 1 3182 0
6016 0042 FF23 movs r3, #255
6017 0044 2385 strh r3, [r4, #40]
6018 .LVL505:
3183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6019 .loc 1 3183 0
6020 0046 8026 movs r6, #128
6021 0048 7604 lsls r6, r6, #17
6022 .LVL506:
6023 .L411:
3193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6024 .loc 1 3193 0
6025 004a 236B ldr r3, [r4, #48]
6026 004c 112B cmp r3, #17
6027 004e 0DD1 bne .L412
3193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6028 .loc 1 3193 0 is_stmt 0 discriminator 1
6029 0050 069B ldr r3, [sp, #24]
6030 0052 AA2B cmp r3, #170
6031 0054 0AD0 beq .L412
3193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6032 .loc 1 3193 0 discriminator 3
6033 0056 AA23 movs r3, #170
6034 0058 1B02 lsls r3, r3, #8
6035 005a 069A ldr r2, [sp, #24]
6036 .LVL507:
6037 005c 9A42 cmp r2, r3
6038 005e 05D0 beq .L412
3195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6039 .loc 1 3195 0 is_stmt 1
6040 0060 0023 movs r3, #0
6041 0062 0CE0 b .L413
6042 .LVL508:
6043 .L410:
3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
6044 .loc 1 3187 0
6045 0064 638D ldrh r3, [r4, #42]
6046 0066 2385 strh r3, [r4, #40]
3188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6047 .loc 1 3188 0
6048 0068 E66A ldr r6, [r4, #44]
6049 .LVL509:
6050 006a EEE7 b .L411
6051 .LVL510:
6052 .L412:
3200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6053 .loc 1 3200 0
6054 006c 2000 movs r0, r4
6055 006e FFF7FEFF bl I2C_ConvertOtherXferOptions
6056 .LVL511:
3203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6057 .loc 1 3203 0
ARM GAS /tmp/ccpK4Ax4.s page 237
6058 0072 638D ldrh r3, [r4, #42]
6059 0074 9BB2 uxth r3, r3
6060 0076 FE2B cmp r3, #254
6061 0078 12D8 bhi .L417
3205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6062 .loc 1 3205 0
6063 007a E66A ldr r6, [r4, #44]
6064 .LVL512:
3159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6065 .loc 1 3159 0
6066 007c 0D4B ldr r3, .L418+4
6067 .L413:
6068 .LVL513:
3210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6069 .loc 1 3210 0
6070 007e 228D ldrh r2, [r4, #40]
6071 0080 D2B2 uxtb r2, r2
6072 0082 0093 str r3, [sp]
6073 0084 3300 movs r3, r6
6074 .LVL514:
6075 0086 2900 movs r1, r5
6076 0088 2000 movs r0, r4
6077 008a FFF7FEFF bl I2C_TransferConfig
6078 .LVL515:
3213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6079 .loc 1 3213 0
6080 008e 4023 movs r3, #64
6081 0090 0022 movs r2, #0
6082 0092 E254 strb r2, [r4, r3]
3218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6083 .loc 1 3218 0
6084 0094 0121 movs r1, #1
6085 0096 2000 movs r0, r4
6086 0098 FFF7FEFF bl I2C_Enable_IRQ
6087 .LVL516:
3220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6088 .loc 1 3220 0
6089 009c 0020 movs r0, #0
6090 009e 02E0 b .L409
6091 .LVL517:
6092 .L417:
3159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6093 .loc 1 3159 0
6094 00a0 044B ldr r3, .L418+4
6095 00a2 ECE7 b .L413
6096 .LVL518:
6097 .L414:
3224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6098 .loc 1 3224 0
6099 00a4 0220 movs r0, #2
6100 .LVL519:
6101 .L409:
3226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6102 .loc 1 3226 0
6103 00a6 02B0 add sp, sp, #8
6104 @ sp needed
6105 .LVL520:
ARM GAS /tmp/ccpK4Ax4.s page 238
6106 00a8 70BD pop {r4, r5, r6, pc}
6107 .LVL521:
6108 .L415:
3167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6109 .loc 1 3167 0
6110 00aa 0220 movs r0, #2
6111 .LVL522:
6112 00ac FBE7 b .L409
6113 .L419:
6114 00ae C046 .align 2
6115 .L418:
6116 00b0 00000000 .word I2C_Master_ISR_IT
6117 00b4 00200080 .word -2147475456
6118 .cfi_endproc
6119 .LFE63:
6121 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits
6122 .align 1
6123 .global HAL_I2C_Master_Seq_Transmit_DMA
6124 .syntax unified
6125 .code 16
6126 .thumb_func
6127 .fpu softvfp
6129 HAL_I2C_Master_Seq_Transmit_DMA:
6130 .LFB64:
3241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
6131 .loc 1 3241 0
6132 .cfi_startproc
6133 @ args = 4, pretend = 0, frame = 8
6134 @ frame_needed = 0, uses_anonymous_args = 0
6135 .LVL523:
6136 0000 F0B5 push {r4, r5, r6, r7, lr}
6137 .LCFI51:
6138 .cfi_def_cfa_offset 20
6139 .cfi_offset 4, -20
6140 .cfi_offset 5, -16
6141 .cfi_offset 6, -12
6142 .cfi_offset 7, -8
6143 .cfi_offset 14, -4
6144 0002 85B0 sub sp, sp, #20
6145 .LCFI52:
6146 .cfi_def_cfa_offset 40
6147 0004 0400 movs r4, r0
6148 0006 0391 str r1, [sp, #12]
6149 0008 1500 movs r5, r2
6150 .LVL524:
3249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6151 .loc 1 3249 0
6152 000a 4122 movs r2, #65
6153 .LVL525:
6154 000c 825C ldrb r2, [r0, r2]
6155 000e 202A cmp r2, #32
6156 0010 00D0 beq .LCB6267
6157 0012 9DE0 b .L430 @long jump
6158 .LCB6267:
3252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6159 .loc 1 3252 0
6160 0014 2032 adds r2, r2, #32
ARM GAS /tmp/ccpK4Ax4.s page 239
6161 0016 825C ldrb r2, [r0, r2]
6162 0018 012A cmp r2, #1
6163 001a 00D1 bne .LCB6271
6164 001c 9CE0 b .L431 @long jump
6165 .LCB6271:
3252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6166 .loc 1 3252 0 is_stmt 0 discriminator 2
6167 001e 4022 movs r2, #64
6168 0020 0121 movs r1, #1
6169 .LVL526:
6170 0022 8154 strb r1, [r0, r2]
3254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
6171 .loc 1 3254 0 is_stmt 1 discriminator 2
6172 0024 0132 adds r2, r2, #1
6173 0026 2031 adds r1, r1, #32
6174 0028 8154 strb r1, [r0, r2]
3255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6175 .loc 1 3255 0 discriminator 2
6176 002a 0132 adds r2, r2, #1
6177 002c 1139 subs r1, r1, #17
6178 002e 8154 strb r1, [r0, r2]
3256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6179 .loc 1 3256 0 discriminator 2
6180 0030 0022 movs r2, #0
6181 0032 4264 str r2, [r0, #68]
3259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
6182 .loc 1 3259 0 discriminator 2
6183 0034 4562 str r5, [r0, #36]
3260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
6184 .loc 1 3260 0 discriminator 2
6185 0036 4385 strh r3, [r0, #42]
3261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
6186 .loc 1 3261 0 discriminator 2
6187 0038 0A9B ldr r3, [sp, #40]
6188 .LVL527:
6189 003a C362 str r3, [r0, #44]
6190 .LVL528:
3262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6191 .loc 1 3262 0 discriminator 2
6192 003c 474B ldr r3, .L436
6193 003e 4363 str r3, [r0, #52]
3265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6194 .loc 1 3265 0 discriminator 2
6195 0040 438D ldrh r3, [r0, #42]
6196 0042 9BB2 uxth r3, r3
6197 0044 FF2B cmp r3, #255
6198 0046 10D9 bls .L422
3267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
6199 .loc 1 3267 0
6200 0048 FF23 movs r3, #255
6201 004a 0385 strh r3, [r0, #40]
6202 .LVL529:
3268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6203 .loc 1 3268 0
6204 004c 8027 movs r7, #128
6205 004e 7F04 lsls r7, r7, #17
6206 .LVL530:
ARM GAS /tmp/ccpK4Ax4.s page 240
6207 .L423:
3278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6208 .loc 1 3278 0
6209 0050 236B ldr r3, [r4, #48]
6210 0052 112B cmp r3, #17
6211 0054 0DD1 bne .L424
3278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6212 .loc 1 3278 0 is_stmt 0 discriminator 1
6213 0056 0A9B ldr r3, [sp, #40]
6214 0058 AA2B cmp r3, #170
6215 005a 0AD0 beq .L424
3278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6216 .loc 1 3278 0 discriminator 3
6217 005c AA23 movs r3, #170
6218 005e 1B02 lsls r3, r3, #8
6219 0060 0A9A ldr r2, [sp, #40]
6220 0062 9A42 cmp r2, r3
6221 0064 05D0 beq .L424
3280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6222 .loc 1 3280 0 is_stmt 1
6223 0066 0026 movs r6, #0
6224 0068 0CE0 b .L425
6225 .LVL531:
6226 .L422:
3272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
6227 .loc 1 3272 0
6228 006a 438D ldrh r3, [r0, #42]
6229 006c 0385 strh r3, [r0, #40]
3273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6230 .loc 1 3273 0
6231 006e C76A ldr r7, [r0, #44]
6232 .LVL532:
6233 0070 EEE7 b .L423
6234 .L424:
3285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6235 .loc 1 3285 0
6236 0072 2000 movs r0, r4
6237 .LVL533:
6238 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions
6239 .LVL534:
3288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6240 .loc 1 3288 0
6241 0078 638D ldrh r3, [r4, #42]
6242 007a 9BB2 uxth r3, r3
6243 007c FE2B cmp r3, #254
6244 007e 28D8 bhi .L433
3290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6245 .loc 1 3290 0
6246 0080 E76A ldr r7, [r4, #44]
6247 .LVL535:
3243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6248 .loc 1 3243 0
6249 0082 374E ldr r6, .L436+4
6250 .L425:
6251 .LVL536:
3294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6252 .loc 1 3294 0
ARM GAS /tmp/ccpK4Ax4.s page 241
6253 0084 228D ldrh r2, [r4, #40]
6254 0086 002A cmp r2, #0
6255 0088 4ED0 beq .L426
3296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6256 .loc 1 3296 0
6257 008a A36B ldr r3, [r4, #56]
6258 008c 002B cmp r3, #0
6259 008e 22D0 beq .L427
3299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6260 .loc 1 3299 0
6261 0090 344A ldr r2, .L436+8
6262 0092 9A62 str r2, [r3, #40]
3302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6263 .loc 1 3302 0
6264 0094 A36B ldr r3, [r4, #56]
6265 0096 344A ldr r2, .L436+12
6266 0098 1A63 str r2, [r3, #48]
3305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6267 .loc 1 3305 0
6268 009a A26B ldr r2, [r4, #56]
6269 009c 0023 movs r3, #0
6270 009e D362 str r3, [r2, #44]
3306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6271 .loc 1 3306 0
6272 00a0 A26B ldr r2, [r4, #56]
6273 00a2 5363 str r3, [r2, #52]
3309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6274 .loc 1 3309 0
6275 00a4 2268 ldr r2, [r4]
6276 00a6 2832 adds r2, r2, #40
6277 00a8 238D ldrh r3, [r4, #40]
6278 00aa 2900 movs r1, r5
6279 00ac A06B ldr r0, [r4, #56]
6280 00ae FFF7FEFF bl HAL_DMA_Start_IT
6281 .LVL537:
6282 00b2 051E subs r5, r0, #0
6283 .LVL538:
3326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6284 .loc 1 3326 0
6285 00b4 1DD0 beq .L435
3349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6286 .loc 1 3349 0
6287 00b6 4123 movs r3, #65
6288 00b8 2022 movs r2, #32
6289 00ba E254 strb r2, [r4, r3]
3350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6290 .loc 1 3350 0
6291 00bc 0022 movs r2, #0
6292 00be 0133 adds r3, r3, #1
6293 00c0 E254 strb r2, [r4, r3]
3353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6294 .loc 1 3353 0
6295 00c2 636C ldr r3, [r4, #68]
6296 00c4 1021 movs r1, #16
6297 00c6 0B43 orrs r3, r1
6298 00c8 6364 str r3, [r4, #68]
3356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 242
6299 .loc 1 3356 0
6300 00ca 4023 movs r3, #64
6301 00cc E254 strb r2, [r4, r3]
3358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6302 .loc 1 3358 0
6303 00ce 0125 movs r5, #1
6304 00d0 3FE0 b .L421
6305 .LVL539:
6306 .L433:
3243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6307 .loc 1 3243 0
6308 00d2 234E ldr r6, .L436+4
6309 00d4 D6E7 b .L425
6310 .LVL540:
6311 .L427:
3314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6312 .loc 1 3314 0
6313 00d6 4123 movs r3, #65
6314 00d8 2022 movs r2, #32
6315 00da E254 strb r2, [r4, r3]
3315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6316 .loc 1 3315 0
6317 00dc 0022 movs r2, #0
6318 00de 0133 adds r3, r3, #1
6319 00e0 E254 strb r2, [r4, r3]
3318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6320 .loc 1 3318 0
6321 00e2 636C ldr r3, [r4, #68]
6322 00e4 8021 movs r1, #128
6323 00e6 0B43 orrs r3, r1
6324 00e8 6364 str r3, [r4, #68]
3321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6325 .loc 1 3321 0
6326 00ea 4023 movs r3, #64
6327 00ec E254 strb r2, [r4, r3]
3323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6328 .loc 1 3323 0
6329 00ee 0125 movs r5, #1
6330 .LVL541:
6331 00f0 2FE0 b .L421
6332 .LVL542:
6333 .L435:
3329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6334 .loc 1 3329 0
6335 00f2 228D ldrh r2, [r4, #40]
6336 00f4 D2B2 uxtb r2, r2
6337 00f6 0096 str r6, [sp]
6338 00f8 3B00 movs r3, r7
6339 00fa 0399 ldr r1, [sp, #12]
6340 00fc 2000 movs r0, r4
6341 .LVL543:
6342 00fe FFF7FEFF bl I2C_TransferConfig
6343 .LVL544:
3332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6344 .loc 1 3332 0
6345 0102 638D ldrh r3, [r4, #42]
6346 0104 228D ldrh r2, [r4, #40]
ARM GAS /tmp/ccpK4Ax4.s page 243
6347 0106 9B1A subs r3, r3, r2
6348 0108 9BB2 uxth r3, r3
6349 010a 6385 strh r3, [r4, #42]
3335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6350 .loc 1 3335 0
6351 010c 4023 movs r3, #64
6352 010e 0022 movs r2, #0
6353 0110 E254 strb r2, [r4, r3]
3341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6354 .loc 1 3341 0
6355 0112 1121 movs r1, #17
6356 0114 2000 movs r0, r4
6357 0116 FFF7FEFF bl I2C_Enable_IRQ
6358 .LVL545:
3344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6359 .loc 1 3344 0
6360 011a 2268 ldr r2, [r4]
6361 011c 1168 ldr r1, [r2]
6362 011e 8023 movs r3, #128
6363 0120 DB01 lsls r3, r3, #7
6364 0122 0B43 orrs r3, r1
6365 0124 1360 str r3, [r2]
6366 0126 14E0 b .L421
6367 .LVL546:
6368 .L426:
3364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6369 .loc 1 3364 0
6370 0128 104B ldr r3, .L436+16
6371 012a 6363 str r3, [r4, #52]
3368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6372 .loc 1 3368 0
6373 012c 8023 movs r3, #128
6374 012e D2B2 uxtb r2, r2
6375 0130 0B49 ldr r1, .L436+4
6376 0132 0091 str r1, [sp]
6377 0134 9B04 lsls r3, r3, #18
6378 0136 0399 ldr r1, [sp, #12]
6379 0138 2000 movs r0, r4
6380 013a FFF7FEFF bl I2C_TransferConfig
6381 .LVL547:
3371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6382 .loc 1 3371 0
6383 013e 4023 movs r3, #64
6384 0140 0022 movs r2, #0
6385 0142 E254 strb r2, [r4, r3]
3379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6386 .loc 1 3379 0
6387 0144 0121 movs r1, #1
6388 0146 2000 movs r0, r4
6389 0148 FFF7FEFF bl I2C_Enable_IRQ
6390 .LVL548:
3382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6391 .loc 1 3382 0
6392 014c 0025 movs r5, #0
6393 .LVL549:
6394 014e 00E0 b .L421
6395 .LVL550:
ARM GAS /tmp/ccpK4Ax4.s page 244
6396 .L430:
3386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6397 .loc 1 3386 0
6398 0150 0225 movs r5, #2
6399 .LVL551:
6400 .L421:
3388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6401 .loc 1 3388 0
6402 0152 2800 movs r0, r5
6403 0154 05B0 add sp, sp, #20
6404 @ sp needed
6405 .LVL552:
6406 0156 F0BD pop {r4, r5, r6, r7, pc}
6407 .LVL553:
6408 .L431:
3252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6409 .loc 1 3252 0
6410 0158 0225 movs r5, #2
6411 .LVL554:
6412 015a FAE7 b .L421
6413 .L437:
6414 .align 2
6415 .L436:
6416 015c 00000000 .word I2C_Master_ISR_DMA
6417 0160 00200080 .word -2147475456
6418 0164 00000000 .word I2C_DMAMasterTransmitCplt
6419 0168 00000000 .word I2C_DMAError
6420 016c 00000000 .word I2C_Master_ISR_IT
6421 .cfi_endproc
6422 .LFE64:
6424 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits
6425 .align 1
6426 .global HAL_I2C_Master_Seq_Receive_IT
6427 .syntax unified
6428 .code 16
6429 .thumb_func
6430 .fpu softvfp
6432 HAL_I2C_Master_Seq_Receive_IT:
6433 .LFB65:
3403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
6434 .loc 1 3403 0
6435 .cfi_startproc
6436 @ args = 4, pretend = 0, frame = 0
6437 @ frame_needed = 0, uses_anonymous_args = 0
6438 .LVL555:
6439 0000 70B5 push {r4, r5, r6, lr}
6440 .LCFI53:
6441 .cfi_def_cfa_offset 16
6442 .cfi_offset 4, -16
6443 .cfi_offset 5, -12
6444 .cfi_offset 6, -8
6445 .cfi_offset 14, -4
6446 0002 82B0 sub sp, sp, #8
6447 .LCFI54:
6448 .cfi_def_cfa_offset 24
6449 0004 0400 movs r4, r0
6450 0006 0D00 movs r5, r1
ARM GAS /tmp/ccpK4Ax4.s page 245
6451 .LVL556:
3410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6452 .loc 1 3410 0
6453 0008 4121 movs r1, #65
6454 .LVL557:
6455 000a 415C ldrb r1, [r0, r1]
6456 000c 2029 cmp r1, #32
6457 000e 49D1 bne .L444
3413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6458 .loc 1 3413 0
6459 0010 2031 adds r1, r1, #32
6460 0012 415C ldrb r1, [r0, r1]
6461 0014 0129 cmp r1, #1
6462 0016 48D0 beq .L445
3413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6463 .loc 1 3413 0 is_stmt 0 discriminator 2
6464 0018 4021 movs r1, #64
6465 001a 0120 movs r0, #1
6466 .LVL558:
6467 001c 6054 strb r0, [r4, r1]
3415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
6468 .loc 1 3415 0 is_stmt 1 discriminator 2
6469 001e 0131 adds r1, r1, #1
6470 0020 2130 adds r0, r0, #33
6471 0022 6054 strb r0, [r4, r1]
3416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6472 .loc 1 3416 0 discriminator 2
6473 0024 0131 adds r1, r1, #1
6474 0026 1238 subs r0, r0, #18
6475 0028 6054 strb r0, [r4, r1]
3417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6476 .loc 1 3417 0 discriminator 2
6477 002a 0021 movs r1, #0
6478 002c 6164 str r1, [r4, #68]
3420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
6479 .loc 1 3420 0 discriminator 2
6480 002e 6262 str r2, [r4, #36]
3421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
6481 .loc 1 3421 0 discriminator 2
6482 0030 6385 strh r3, [r4, #42]
3422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
6483 .loc 1 3422 0 discriminator 2
6484 0032 069B ldr r3, [sp, #24]
6485 .LVL559:
6486 0034 E362 str r3, [r4, #44]
6487 .LVL560:
3423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6488 .loc 1 3423 0 discriminator 2
6489 0036 1E4B ldr r3, .L448
6490 0038 6363 str r3, [r4, #52]
3426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6491 .loc 1 3426 0 discriminator 2
6492 003a 638D ldrh r3, [r4, #42]
6493 003c 9BB2 uxth r3, r3
6494 003e FF2B cmp r3, #255
6495 0040 10D9 bls .L440
3428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
ARM GAS /tmp/ccpK4Ax4.s page 246
6496 .loc 1 3428 0
6497 0042 FF23 movs r3, #255
6498 0044 2385 strh r3, [r4, #40]
6499 .LVL561:
3429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6500 .loc 1 3429 0
6501 0046 8026 movs r6, #128
6502 0048 7604 lsls r6, r6, #17
6503 .LVL562:
6504 .L441:
3439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6505 .loc 1 3439 0
6506 004a 236B ldr r3, [r4, #48]
6507 004c 122B cmp r3, #18
6508 004e 0DD1 bne .L442
3439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6509 .loc 1 3439 0 is_stmt 0 discriminator 1
6510 0050 069B ldr r3, [sp, #24]
6511 0052 AA2B cmp r3, #170
6512 0054 0AD0 beq .L442
3439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6513 .loc 1 3439 0 discriminator 3
6514 0056 AA23 movs r3, #170
6515 0058 1B02 lsls r3, r3, #8
6516 005a 069A ldr r2, [sp, #24]
6517 .LVL563:
6518 005c 9A42 cmp r2, r3
6519 005e 05D0 beq .L442
3441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6520 .loc 1 3441 0 is_stmt 1
6521 0060 0023 movs r3, #0
6522 0062 0CE0 b .L443
6523 .LVL564:
6524 .L440:
3433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
6525 .loc 1 3433 0
6526 0064 638D ldrh r3, [r4, #42]
6527 0066 2385 strh r3, [r4, #40]
3434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6528 .loc 1 3434 0
6529 0068 E66A ldr r6, [r4, #44]
6530 .LVL565:
6531 006a EEE7 b .L441
6532 .LVL566:
6533 .L442:
3446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6534 .loc 1 3446 0
6535 006c 2000 movs r0, r4
6536 006e FFF7FEFF bl I2C_ConvertOtherXferOptions
6537 .LVL567:
3449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6538 .loc 1 3449 0
6539 0072 638D ldrh r3, [r4, #42]
6540 0074 9BB2 uxth r3, r3
6541 0076 FE2B cmp r3, #254
6542 0078 12D8 bhi .L447
3451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpK4Ax4.s page 247
6543 .loc 1 3451 0
6544 007a E66A ldr r6, [r4, #44]
6545 .LVL568:
3405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6546 .loc 1 3405 0
6547 007c 0D4B ldr r3, .L448+4
6548 .L443:
6549 .LVL569:
3456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6550 .loc 1 3456 0
6551 007e 228D ldrh r2, [r4, #40]
6552 0080 D2B2 uxtb r2, r2
6553 0082 0093 str r3, [sp]
6554 0084 3300 movs r3, r6
6555 .LVL570:
6556 0086 2900 movs r1, r5
6557 0088 2000 movs r0, r4
6558 008a FFF7FEFF bl I2C_TransferConfig
6559 .LVL571:
3459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6560 .loc 1 3459 0
6561 008e 4023 movs r3, #64
6562 0090 0022 movs r2, #0
6563 0092 E254 strb r2, [r4, r3]
3464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6564 .loc 1 3464 0
6565 0094 0221 movs r1, #2
6566 0096 2000 movs r0, r4
6567 0098 FFF7FEFF bl I2C_Enable_IRQ
6568 .LVL572:
3466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6569 .loc 1 3466 0
6570 009c 0020 movs r0, #0
6571 009e 02E0 b .L439
6572 .LVL573:
6573 .L447:
3405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6574 .loc 1 3405 0
6575 00a0 044B ldr r3, .L448+4
6576 00a2 ECE7 b .L443
6577 .LVL574:
6578 .L444:
3470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6579 .loc 1 3470 0
6580 00a4 0220 movs r0, #2
6581 .LVL575:
6582 .L439:
3472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6583 .loc 1 3472 0
6584 00a6 02B0 add sp, sp, #8
6585 @ sp needed
6586 .LVL576:
6587 00a8 70BD pop {r4, r5, r6, pc}
6588 .LVL577:
6589 .L445:
3413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6590 .loc 1 3413 0
ARM GAS /tmp/ccpK4Ax4.s page 248
6591 00aa 0220 movs r0, #2
6592 .LVL578:
6593 00ac FBE7 b .L439
6594 .L449:
6595 00ae C046 .align 2
6596 .L448:
6597 00b0 00000000 .word I2C_Master_ISR_IT
6598 00b4 00240080 .word -2147474432
6599 .cfi_endproc
6600 .LFE65:
6602 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits
6603 .align 1
6604 .global HAL_I2C_Master_Seq_Receive_DMA
6605 .syntax unified
6606 .code 16
6607 .thumb_func
6608 .fpu softvfp
6610 HAL_I2C_Master_Seq_Receive_DMA:
6611 .LFB66:
3487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode;
6612 .loc 1 3487 0
6613 .cfi_startproc
6614 @ args = 4, pretend = 0, frame = 8
6615 @ frame_needed = 0, uses_anonymous_args = 0
6616 .LVL579:
6617 0000 F0B5 push {r4, r5, r6, r7, lr}
6618 .LCFI55:
6619 .cfi_def_cfa_offset 20
6620 .cfi_offset 4, -20
6621 .cfi_offset 5, -16
6622 .cfi_offset 6, -12
6623 .cfi_offset 7, -8
6624 .cfi_offset 14, -4
6625 0002 85B0 sub sp, sp, #20
6626 .LCFI56:
6627 .cfi_def_cfa_offset 40
6628 0004 0400 movs r4, r0
6629 0006 0391 str r1, [sp, #12]
6630 0008 1500 movs r5, r2
6631 .LVL580:
3495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6632 .loc 1 3495 0
6633 000a 4122 movs r2, #65
6634 .LVL581:
6635 000c 825C ldrb r2, [r0, r2]
6636 000e 202A cmp r2, #32
6637 0010 00D0 beq .LCB6764
6638 0012 9DE0 b .L460 @long jump
6639 .LCB6764:
3498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6640 .loc 1 3498 0
6641 0014 2032 adds r2, r2, #32
6642 0016 825C ldrb r2, [r0, r2]
6643 0018 012A cmp r2, #1
6644 001a 00D1 bne .LCB6768
6645 001c 9CE0 b .L461 @long jump
6646 .LCB6768:
ARM GAS /tmp/ccpK4Ax4.s page 249
3498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6647 .loc 1 3498 0 is_stmt 0 discriminator 2
6648 001e 4022 movs r2, #64
6649 0020 0121 movs r1, #1
6650 .LVL582:
6651 0022 8154 strb r1, [r0, r2]
3500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
6652 .loc 1 3500 0 is_stmt 1 discriminator 2
6653 0024 0132 adds r2, r2, #1
6654 0026 2131 adds r1, r1, #33
6655 0028 8154 strb r1, [r0, r2]
3501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6656 .loc 1 3501 0 discriminator 2
6657 002a 0132 adds r2, r2, #1
6658 002c 1239 subs r1, r1, #18
6659 002e 8154 strb r1, [r0, r2]
3502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6660 .loc 1 3502 0 discriminator 2
6661 0030 0022 movs r2, #0
6662 0032 4264 str r2, [r0, #68]
3505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
6663 .loc 1 3505 0 discriminator 2
6664 0034 4562 str r5, [r0, #36]
3506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
6665 .loc 1 3506 0 discriminator 2
6666 0036 4385 strh r3, [r0, #42]
3507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
6667 .loc 1 3507 0 discriminator 2
6668 0038 0A9B ldr r3, [sp, #40]
6669 .LVL583:
6670 003a C362 str r3, [r0, #44]
6671 .LVL584:
3508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6672 .loc 1 3508 0 discriminator 2
6673 003c 474B ldr r3, .L466
6674 003e 4363 str r3, [r0, #52]
3511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6675 .loc 1 3511 0 discriminator 2
6676 0040 438D ldrh r3, [r0, #42]
6677 0042 9BB2 uxth r3, r3
6678 0044 FF2B cmp r3, #255
6679 0046 10D9 bls .L452
3513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
6680 .loc 1 3513 0
6681 0048 FF23 movs r3, #255
6682 004a 0385 strh r3, [r0, #40]
6683 .LVL585:
3514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6684 .loc 1 3514 0
6685 004c 8027 movs r7, #128
6686 004e 7F04 lsls r7, r7, #17
6687 .LVL586:
6688 .L453:
3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6689 .loc 1 3524 0
6690 0050 236B ldr r3, [r4, #48]
6691 0052 122B cmp r3, #18
ARM GAS /tmp/ccpK4Ax4.s page 250
6692 0054 0DD1 bne .L454
3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6693 .loc 1 3524 0 is_stmt 0 discriminator 1
6694 0056 0A9B ldr r3, [sp, #40]
6695 0058 AA2B cmp r3, #170
6696 005a 0AD0 beq .L454
3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6697 .loc 1 3524 0 discriminator 3
6698 005c AA23 movs r3, #170
6699 005e 1B02 lsls r3, r3, #8
6700 0060 0A9A ldr r2, [sp, #40]
6701 0062 9A42 cmp r2, r3
6702 0064 05D0 beq .L454
3526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6703 .loc 1 3526 0 is_stmt 1
6704 0066 0026 movs r6, #0
6705 0068 0CE0 b .L455
6706 .LVL587:
6707 .L452:
3518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
6708 .loc 1 3518 0
6709 006a 438D ldrh r3, [r0, #42]
6710 006c 0385 strh r3, [r0, #40]
3519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6711 .loc 1 3519 0
6712 006e C76A ldr r7, [r0, #44]
6713 .LVL588:
6714 0070 EEE7 b .L453
6715 .L454:
3531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6716 .loc 1 3531 0
6717 0072 2000 movs r0, r4
6718 .LVL589:
6719 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions
6720 .LVL590:
3534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6721 .loc 1 3534 0
6722 0078 638D ldrh r3, [r4, #42]
6723 007a 9BB2 uxth r3, r3
6724 007c FE2B cmp r3, #254
6725 007e 28D8 bhi .L463
3536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6726 .loc 1 3536 0
6727 0080 E76A ldr r7, [r4, #44]
6728 .LVL591:
3489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6729 .loc 1 3489 0
6730 0082 374E ldr r6, .L466+4
6731 .L455:
6732 .LVL592:
3540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6733 .loc 1 3540 0
6734 0084 228D ldrh r2, [r4, #40]
6735 0086 002A cmp r2, #0
6736 0088 4ED0 beq .L456
3542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6737 .loc 1 3542 0
ARM GAS /tmp/ccpK4Ax4.s page 251
6738 008a E36B ldr r3, [r4, #60]
6739 008c 002B cmp r3, #0
6740 008e 22D0 beq .L457
3545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6741 .loc 1 3545 0
6742 0090 344A ldr r2, .L466+8
6743 0092 9A62 str r2, [r3, #40]
3548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6744 .loc 1 3548 0
6745 0094 E36B ldr r3, [r4, #60]
6746 0096 344A ldr r2, .L466+12
6747 0098 1A63 str r2, [r3, #48]
3551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6748 .loc 1 3551 0
6749 009a E26B ldr r2, [r4, #60]
6750 009c 0023 movs r3, #0
6751 009e D362 str r3, [r2, #44]
3552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6752 .loc 1 3552 0
6753 00a0 E26B ldr r2, [r4, #60]
6754 00a2 5363 str r3, [r2, #52]
3555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6755 .loc 1 3555 0
6756 00a4 2168 ldr r1, [r4]
6757 00a6 2431 adds r1, r1, #36
6758 00a8 238D ldrh r3, [r4, #40]
6759 00aa 2A00 movs r2, r5
6760 00ac E06B ldr r0, [r4, #60]
6761 00ae FFF7FEFF bl HAL_DMA_Start_IT
6762 .LVL593:
6763 00b2 051E subs r5, r0, #0
6764 .LVL594:
3572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6765 .loc 1 3572 0
6766 00b4 1DD0 beq .L465
3595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6767 .loc 1 3595 0
6768 00b6 4123 movs r3, #65
6769 00b8 2022 movs r2, #32
6770 00ba E254 strb r2, [r4, r3]
3596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6771 .loc 1 3596 0
6772 00bc 0022 movs r2, #0
6773 00be 0133 adds r3, r3, #1
6774 00c0 E254 strb r2, [r4, r3]
3599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6775 .loc 1 3599 0
6776 00c2 636C ldr r3, [r4, #68]
6777 00c4 1021 movs r1, #16
6778 00c6 0B43 orrs r3, r1
6779 00c8 6364 str r3, [r4, #68]
3602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6780 .loc 1 3602 0
6781 00ca 4023 movs r3, #64
6782 00cc E254 strb r2, [r4, r3]
3604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6783 .loc 1 3604 0
ARM GAS /tmp/ccpK4Ax4.s page 252
6784 00ce 0125 movs r5, #1
6785 00d0 3FE0 b .L451
6786 .LVL595:
6787 .L463:
3489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6788 .loc 1 3489 0
6789 00d2 234E ldr r6, .L466+4
6790 00d4 D6E7 b .L455
6791 .LVL596:
6792 .L457:
3560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6793 .loc 1 3560 0
6794 00d6 4123 movs r3, #65
6795 00d8 2022 movs r2, #32
6796 00da E254 strb r2, [r4, r3]
3561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6797 .loc 1 3561 0
6798 00dc 0022 movs r2, #0
6799 00de 0133 adds r3, r3, #1
6800 00e0 E254 strb r2, [r4, r3]
3564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6801 .loc 1 3564 0
6802 00e2 636C ldr r3, [r4, #68]
6803 00e4 8021 movs r1, #128
6804 00e6 0B43 orrs r3, r1
6805 00e8 6364 str r3, [r4, #68]
3567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6806 .loc 1 3567 0
6807 00ea 4023 movs r3, #64
6808 00ec E254 strb r2, [r4, r3]
3569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6809 .loc 1 3569 0
6810 00ee 0125 movs r5, #1
6811 .LVL597:
6812 00f0 2FE0 b .L451
6813 .LVL598:
6814 .L465:
3575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6815 .loc 1 3575 0
6816 00f2 228D ldrh r2, [r4, #40]
6817 00f4 D2B2 uxtb r2, r2
6818 00f6 0096 str r6, [sp]
6819 00f8 3B00 movs r3, r7
6820 00fa 0399 ldr r1, [sp, #12]
6821 00fc 2000 movs r0, r4
6822 .LVL599:
6823 00fe FFF7FEFF bl I2C_TransferConfig
6824 .LVL600:
3578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6825 .loc 1 3578 0
6826 0102 638D ldrh r3, [r4, #42]
6827 0104 228D ldrh r2, [r4, #40]
6828 0106 9B1A subs r3, r3, r2
6829 0108 9BB2 uxth r3, r3
6830 010a 6385 strh r3, [r4, #42]
3581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6831 .loc 1 3581 0
ARM GAS /tmp/ccpK4Ax4.s page 253
6832 010c 4023 movs r3, #64
6833 010e 0022 movs r2, #0
6834 0110 E254 strb r2, [r4, r3]
3587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6835 .loc 1 3587 0
6836 0112 1121 movs r1, #17
6837 0114 2000 movs r0, r4
6838 0116 FFF7FEFF bl I2C_Enable_IRQ
6839 .LVL601:
3590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6840 .loc 1 3590 0
6841 011a 2268 ldr r2, [r4]
6842 011c 1168 ldr r1, [r2]
6843 011e 8023 movs r3, #128
6844 0120 1B02 lsls r3, r3, #8
6845 0122 0B43 orrs r3, r1
6846 0124 1360 str r3, [r2]
6847 0126 14E0 b .L451
6848 .LVL602:
6849 .L456:
3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6850 .loc 1 3610 0
6851 0128 104B ldr r3, .L466+16
6852 012a 6363 str r3, [r4, #52]
3614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6853 .loc 1 3614 0
6854 012c 8023 movs r3, #128
6855 012e D2B2 uxtb r2, r2
6856 0130 0B49 ldr r1, .L466+4
6857 0132 0091 str r1, [sp]
6858 0134 9B04 lsls r3, r3, #18
6859 0136 0399 ldr r1, [sp, #12]
6860 0138 2000 movs r0, r4
6861 013a FFF7FEFF bl I2C_TransferConfig
6862 .LVL603:
3617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6863 .loc 1 3617 0
6864 013e 4023 movs r3, #64
6865 0140 0022 movs r2, #0
6866 0142 E254 strb r2, [r4, r3]
3625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6867 .loc 1 3625 0
6868 0144 0121 movs r1, #1
6869 0146 2000 movs r0, r4
6870 0148 FFF7FEFF bl I2C_Enable_IRQ
6871 .LVL604:
3628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6872 .loc 1 3628 0
6873 014c 0025 movs r5, #0
6874 .LVL605:
6875 014e 00E0 b .L451
6876 .LVL606:
6877 .L460:
3632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6878 .loc 1 3632 0
6879 0150 0225 movs r5, #2
6880 .LVL607:
ARM GAS /tmp/ccpK4Ax4.s page 254
6881 .L451:
3634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6882 .loc 1 3634 0
6883 0152 2800 movs r0, r5
6884 0154 05B0 add sp, sp, #20
6885 @ sp needed
6886 .LVL608:
6887 0156 F0BD pop {r4, r5, r6, r7, pc}
6888 .LVL609:
6889 .L461:
3498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6890 .loc 1 3498 0
6891 0158 0225 movs r5, #2
6892 .LVL610:
6893 015a FAE7 b .L451
6894 .L467:
6895 .align 2
6896 .L466:
6897 015c 00000000 .word I2C_Master_ISR_DMA
6898 0160 00240080 .word -2147474432
6899 0164 00000000 .word I2C_DMAMasterReceiveCplt
6900 0168 00000000 .word I2C_DMAError
6901 016c 00000000 .word I2C_Master_ISR_IT
6902 .cfi_endproc
6903 .LFE66:
6905 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits
6906 .align 1
6907 .global HAL_I2C_Slave_Seq_Transmit_IT
6908 .syntax unified
6909 .code 16
6910 .thumb_func
6911 .fpu softvfp
6913 HAL_I2C_Slave_Seq_Transmit_IT:
6914 .LFB67:
3647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
6915 .loc 1 3647 0
6916 .cfi_startproc
6917 @ args = 0, pretend = 0, frame = 0
6918 @ frame_needed = 0, uses_anonymous_args = 0
6919 .LVL611:
6920 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
6921 .LCFI57:
6922 .cfi_def_cfa_offset 24
6923 .cfi_offset 3, -24
6924 .cfi_offset 4, -20
6925 .cfi_offset 5, -16
6926 .cfi_offset 6, -12
6927 .cfi_offset 7, -8
6928 .cfi_offset 14, -4
6929 0002 0700 movs r7, r0
6930 0004 0C00 movs r4, r1
6931 0006 1500 movs r5, r2
6932 0008 1E00 movs r6, r3
3651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6933 .loc 1 3651 0
6934 000a 4123 movs r3, #65
6935 .LVL612:
ARM GAS /tmp/ccpK4Ax4.s page 255
6936 000c C35C ldrb r3, [r0, r3]
6937 000e 2822 movs r2, #40
6938 .LVL613:
6939 0010 1340 ands r3, r2
6940 0012 282B cmp r3, #40
6941 0014 01D0 beq .L476
3727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6942 .loc 1 3727 0
6943 0016 0120 movs r0, #1
6944 .LVL614:
6945 .L469:
3729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6946 .loc 1 3729 0
6947 @ sp needed
6948 .LVL615:
6949 .LVL616:
6950 .LVL617:
6951 0018 F8BD pop {r3, r4, r5, r6, r7, pc}
6952 .LVL618:
6953 .L476:
3653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6954 .loc 1 3653 0
6955 001a 0029 cmp r1, #0
6956 001c 01D0 beq .L470
3653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6957 .loc 1 3653 0 is_stmt 0 discriminator 1
6958 001e 002D cmp r5, #0
6959 0020 04D1 bne .L471
6960 .L470:
3655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
6961 .loc 1 3655 0 is_stmt 1
6962 0022 8023 movs r3, #128
6963 0024 9B00 lsls r3, r3, #2
6964 0026 7B64 str r3, [r7, #68]
3656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
6965 .loc 1 3656 0
6966 0028 0120 movs r0, #1
6967 .LVL619:
6968 002a F5E7 b .L469
6969 .LVL620:
6970 .L471:
3660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6971 .loc 1 3660 0
6972 002c 0521 movs r1, #5
6973 .LVL621:
6974 002e FFF7FEFF bl I2C_Disable_IRQ
6975 .LVL622:
3663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6976 .loc 1 3663 0
6977 0032 4023 movs r3, #64
6978 0034 FB5C ldrb r3, [r7, r3]
6979 0036 012B cmp r3, #1
6980 0038 43D0 beq .L475
3663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6981 .loc 1 3663 0 is_stmt 0 discriminator 2
6982 003a 4023 movs r3, #64
6983 003c 0122 movs r2, #1
ARM GAS /tmp/ccpK4Ax4.s page 256
6984 003e FA54 strb r2, [r7, r3]
3667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
6985 .loc 1 3667 0 is_stmt 1 discriminator 2
6986 0040 0133 adds r3, r3, #1
6987 0042 FB5C ldrb r3, [r7, r3]
6988 0044 2A2B cmp r3, #42
6989 0046 22D0 beq .L477
6990 .L472:
3693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
6991 .loc 1 3693 0
6992 0048 4123 movs r3, #65
6993 004a 2922 movs r2, #41
6994 004c FA54 strb r2, [r7, r3]
3694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6995 .loc 1 3694 0
6996 004e 0133 adds r3, r3, #1
6997 0050 093A subs r2, r2, #9
6998 0052 FA54 strb r2, [r7, r3]
3695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
6999 .loc 1 3695 0
7000 0054 0023 movs r3, #0
7001 0056 7B64 str r3, [r7, #68]
3698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7002 .loc 1 3698 0
7003 0058 3A68 ldr r2, [r7]
7004 005a 5368 ldr r3, [r2, #4]
7005 005c 1A49 ldr r1, .L478
7006 005e 0B40 ands r3, r1
7007 0060 5360 str r3, [r2, #4]
3701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
7008 .loc 1 3701 0
7009 0062 7C62 str r4, [r7, #36]
3702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
7010 .loc 1 3702 0
7011 0064 7D85 strh r5, [r7, #42]
3703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7012 .loc 1 3703 0
7013 0066 7B8D ldrh r3, [r7, #42]
7014 0068 3B85 strh r3, [r7, #40]
3704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
7015 .loc 1 3704 0
7016 006a FE62 str r6, [r7, #44]
3705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7017 .loc 1 3705 0
7018 006c 174B ldr r3, .L478+4
7019 006e 7B63 str r3, [r7, #52]
3707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7020 .loc 1 3707 0
7021 0070 3B68 ldr r3, [r7]
7022 0072 9A69 ldr r2, [r3, #24]
7023 0074 D203 lsls r2, r2, #15
7024 0076 01D5 bpl .L473
3711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7025 .loc 1 3711 0
7026 0078 0822 movs r2, #8
7027 007a DA61 str r2, [r3, #28]
7028 .L473:
ARM GAS /tmp/ccpK4Ax4.s page 257
3715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7029 .loc 1 3715 0
7030 007c 4023 movs r3, #64
7031 007e 0022 movs r2, #0
7032 0080 FA54 strb r2, [r7, r3]
3721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7033 .loc 1 3721 0
7034 0082 0521 movs r1, #5
7035 0084 3800 movs r0, r7
7036 0086 FFF7FEFF bl I2C_Enable_IRQ
7037 .LVL623:
3723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7038 .loc 1 3723 0
7039 008a 0020 movs r0, #0
7040 008c C4E7 b .L469
7041 .L477:
3670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7042 .loc 1 3670 0
7043 008e 0221 movs r1, #2
7044 0090 3800 movs r0, r7
7045 0092 FFF7FEFF bl I2C_Disable_IRQ
7046 .LVL624:
3673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7047 .loc 1 3673 0
7048 0096 3B68 ldr r3, [r7]
7049 0098 1A68 ldr r2, [r3]
7050 009a 1204 lsls r2, r2, #16
7051 009c D4D5 bpl .L472
3675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7052 .loc 1 3675 0
7053 009e 1A68 ldr r2, [r3]
7054 00a0 0949 ldr r1, .L478
7055 00a2 0A40 ands r2, r1
7056 00a4 1A60 str r2, [r3]
3677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7057 .loc 1 3677 0
7058 00a6 FB6B ldr r3, [r7, #60]
7059 00a8 002B cmp r3, #0
7060 00aa CDD0 beq .L472
3681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7061 .loc 1 3681 0
7062 00ac 084A ldr r2, .L478+8
7063 00ae 5A63 str r2, [r3, #52]
3684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7064 .loc 1 3684 0
7065 00b0 F86B ldr r0, [r7, #60]
7066 00b2 FFF7FEFF bl HAL_DMA_Abort_IT
7067 .LVL625:
7068 00b6 0028 cmp r0, #0
7069 00b8 C6D0 beq .L472
3687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7070 .loc 1 3687 0
7071 00ba F86B ldr r0, [r7, #60]
7072 00bc 436B ldr r3, [r0, #52]
7073 00be 9847 blx r3
7074 .LVL626:
7075 00c0 C2E7 b .L472
ARM GAS /tmp/ccpK4Ax4.s page 258
7076 .L475:
3663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7077 .loc 1 3663 0
7078 00c2 0220 movs r0, #2
7079 00c4 A8E7 b .L469
7080 .L479:
7081 00c6 C046 .align 2
7082 .L478:
7083 00c8 FF7FFFFF .word -32769
7084 00cc 00000000 .word I2C_Slave_ISR_IT
7085 00d0 00000000 .word I2C_DMAAbort
7086 .cfi_endproc
7087 .LFE67:
7089 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits
7090 .align 1
7091 .global HAL_I2C_Slave_Seq_Transmit_DMA
7092 .syntax unified
7093 .code 16
7094 .thumb_func
7095 .fpu softvfp
7097 HAL_I2C_Slave_Seq_Transmit_DMA:
7098 .LFB68:
3742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7099 .loc 1 3742 0
7100 .cfi_startproc
7101 @ args = 0, pretend = 0, frame = 0
7102 @ frame_needed = 0, uses_anonymous_args = 0
7103 .LVL627:
7104 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
7105 .LCFI58:
7106 .cfi_def_cfa_offset 24
7107 .cfi_offset 3, -24
7108 .cfi_offset 4, -20
7109 .cfi_offset 5, -16
7110 .cfi_offset 6, -12
7111 .cfi_offset 7, -8
7112 .cfi_offset 14, -4
7113 0002 0400 movs r4, r0
7114 0004 0D00 movs r5, r1
7115 0006 1600 movs r6, r2
7116 0008 1F00 movs r7, r3
3748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7117 .loc 1 3748 0
7118 000a 4123 movs r3, #65
7119 .LVL628:
7120 000c C35C ldrb r3, [r0, r3]
7121 000e 2822 movs r2, #40
7122 .LVL629:
7123 0010 1340 ands r3, r2
7124 0012 282B cmp r3, #40
7125 0014 02D0 beq .L494
3906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7126 .loc 1 3906 0
7127 0016 0125 movs r5, #1
7128 .LVL630:
7129 .L481:
3908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 259
7130 .loc 1 3908 0
7131 0018 2800 movs r0, r5
7132 @ sp needed
7133 .LVL631:
7134 .LVL632:
7135 001a F8BD pop {r3, r4, r5, r6, r7, pc}
7136 .LVL633:
7137 .L494:
3750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7138 .loc 1 3750 0
7139 001c 0029 cmp r1, #0
7140 001e 57D0 beq .L482
3750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7141 .loc 1 3750 0 is_stmt 0 discriminator 1
7142 0020 002E cmp r6, #0
7143 0022 55D0 beq .L482
3757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7144 .loc 1 3757 0 is_stmt 1
7145 0024 4023 movs r3, #64
7146 0026 C35C ldrb r3, [r0, r3]
7147 0028 012B cmp r3, #1
7148 002a 00D1 bne .LCB7285
7149 002c A5E0 b .L492 @long jump
7150 .LCB7285:
3757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7151 .loc 1 3757 0 is_stmt 0 discriminator 2
7152 002e 4023 movs r3, #64
7153 0030 0122 movs r2, #1
7154 0032 C254 strb r2, [r0, r3]
3760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7155 .loc 1 3760 0 is_stmt 1 discriminator 2
7156 0034 0521 movs r1, #5
7157 .LVL634:
7158 0036 FFF7FEFF bl I2C_Disable_IRQ
7159 .LVL635:
3764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7160 .loc 1 3764 0 discriminator 2
7161 003a 4123 movs r3, #65
7162 003c E35C ldrb r3, [r4, r3]
7163 003e 2A2B cmp r3, #42
7164 0040 4BD0 beq .L495
3789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7165 .loc 1 3789 0
7166 0042 4123 movs r3, #65
7167 0044 E35C ldrb r3, [r4, r3]
7168 0046 292B cmp r3, #41
7169 0048 62D0 beq .L496
7170 .L485:
3816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
7171 .loc 1 3816 0
7172 004a 4123 movs r3, #65
7173 004c 2922 movs r2, #41
7174 004e E254 strb r2, [r4, r3]
3817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7175 .loc 1 3817 0
7176 0050 0133 adds r3, r3, #1
7177 0052 093A subs r2, r2, #9
ARM GAS /tmp/ccpK4Ax4.s page 260
7178 0054 E254 strb r2, [r4, r3]
3818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7179 .loc 1 3818 0
7180 0056 0023 movs r3, #0
7181 0058 6364 str r3, [r4, #68]
3821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7182 .loc 1 3821 0
7183 005a 2268 ldr r2, [r4]
7184 005c 5368 ldr r3, [r2, #4]
7185 005e 4849 ldr r1, .L498
7186 0060 0B40 ands r3, r1
7187 0062 5360 str r3, [r2, #4]
3824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
7188 .loc 1 3824 0
7189 0064 6562 str r5, [r4, #36]
3825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
7190 .loc 1 3825 0
7191 0066 6685 strh r6, [r4, #42]
3826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7192 .loc 1 3826 0
7193 0068 638D ldrh r3, [r4, #42]
7194 006a 2385 strh r3, [r4, #40]
3827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
7195 .loc 1 3827 0
7196 006c E762 str r7, [r4, #44]
3828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7197 .loc 1 3828 0
7198 006e 454B ldr r3, .L498+4
7199 0070 6363 str r3, [r4, #52]
3830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7200 .loc 1 3830 0
7201 0072 A36B ldr r3, [r4, #56]
7202 0074 002B cmp r3, #0
7203 0076 61D0 beq .L486
3833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7204 .loc 1 3833 0
7205 0078 434A ldr r2, .L498+8
7206 007a 9A62 str r2, [r3, #40]
3836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7207 .loc 1 3836 0
7208 007c A36B ldr r3, [r4, #56]
7209 007e 434A ldr r2, .L498+12
7210 0080 1A63 str r2, [r3, #48]
3839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7211 .loc 1 3839 0
7212 0082 A26B ldr r2, [r4, #56]
7213 0084 0023 movs r3, #0
7214 0086 D362 str r3, [r2, #44]
3840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7215 .loc 1 3840 0
7216 0088 A26B ldr r2, [r4, #56]
7217 008a 5363 str r3, [r2, #52]
3843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7218 .loc 1 3843 0
7219 008c 2268 ldr r2, [r4]
7220 008e 2832 adds r2, r2, #40
7221 0090 238D ldrh r3, [r4, #40]
ARM GAS /tmp/ccpK4Ax4.s page 261
7222 0092 2900 movs r1, r5
7223 0094 A06B ldr r0, [r4, #56]
7224 0096 FFF7FEFF bl HAL_DMA_Start_IT
7225 .LVL636:
7226 009a 051E subs r5, r0, #0
7227 .LVL637:
3860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7228 .loc 1 3860 0
7229 009c 5CD1 bne .L497
3863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7230 .loc 1 3863 0
7231 009e 638D ldrh r3, [r4, #42]
7232 00a0 228D ldrh r2, [r4, #40]
7233 00a2 9B1A subs r3, r3, r2
7234 00a4 9BB2 uxth r3, r3
7235 00a6 6385 strh r3, [r4, #42]
3866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7236 .loc 1 3866 0
7237 00a8 0023 movs r3, #0
7238 00aa 2385 strh r3, [r4, #40]
3883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7239 .loc 1 3883 0
7240 00ac 2368 ldr r3, [r4]
7241 00ae 9A69 ldr r2, [r3, #24]
7242 00b0 D203 lsls r2, r2, #15
7243 00b2 5FD4 bmi .L489
7244 .L490:
3891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7245 .loc 1 3891 0
7246 00b4 4023 movs r3, #64
7247 00b6 0022 movs r2, #0
7248 00b8 E254 strb r2, [r4, r3]
3897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7249 .loc 1 3897 0
7250 00ba 0421 movs r1, #4
7251 00bc 2000 movs r0, r4
7252 .LVL638:
7253 00be FFF7FEFF bl I2C_Enable_IRQ
7254 .LVL639:
3900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7255 .loc 1 3900 0
7256 00c2 2268 ldr r2, [r4]
7257 00c4 1168 ldr r1, [r2]
7258 00c6 8023 movs r3, #128
7259 00c8 DB01 lsls r3, r3, #7
7260 00ca 0B43 orrs r3, r1
7261 00cc 1360 str r3, [r2]
3902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7262 .loc 1 3902 0
7263 00ce A3E7 b .L481
7264 .LVL640:
7265 .L482:
3752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
7266 .loc 1 3752 0
7267 00d0 8023 movs r3, #128
7268 00d2 9B00 lsls r3, r3, #2
7269 00d4 6364 str r3, [r4, #68]
ARM GAS /tmp/ccpK4Ax4.s page 262
3753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7270 .loc 1 3753 0
7271 00d6 0125 movs r5, #1
7272 00d8 9EE7 b .L481
7273 .LVL641:
7274 .L495:
3767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7275 .loc 1 3767 0
7276 00da 0221 movs r1, #2
7277 00dc 2000 movs r0, r4
7278 00de FFF7FEFF bl I2C_Disable_IRQ
7279 .LVL642:
3769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7280 .loc 1 3769 0
7281 00e2 2368 ldr r3, [r4]
7282 00e4 1A68 ldr r2, [r3]
7283 00e6 1204 lsls r2, r2, #16
7284 00e8 AFD5 bpl .L485
3772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7285 .loc 1 3772 0
7286 00ea E26B ldr r2, [r4, #60]
7287 00ec 002A cmp r2, #0
7288 00ee ACD0 beq .L485
3774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7289 .loc 1 3774 0
7290 00f0 1A68 ldr r2, [r3]
7291 00f2 2349 ldr r1, .L498
7292 00f4 0A40 ands r2, r1
7293 00f6 1A60 str r2, [r3]
3778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7294 .loc 1 3778 0
7295 00f8 E36B ldr r3, [r4, #60]
7296 00fa 254A ldr r2, .L498+16
7297 00fc 5A63 str r2, [r3, #52]
3781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7298 .loc 1 3781 0
7299 00fe E06B ldr r0, [r4, #60]
7300 0100 FFF7FEFF bl HAL_DMA_Abort_IT
7301 .LVL643:
7302 0104 0028 cmp r0, #0
7303 0106 A0D0 beq .L485
3784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7304 .loc 1 3784 0
7305 0108 E06B ldr r0, [r4, #60]
7306 010a 436B ldr r3, [r0, #52]
7307 010c 9847 blx r3
7308 .LVL644:
7309 010e 9CE7 b .L485
7310 .L496:
3791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7311 .loc 1 3791 0
7312 0110 2368 ldr r3, [r4]
7313 0112 1A68 ldr r2, [r3]
7314 0114 5204 lsls r2, r2, #17
7315 0116 98D5 bpl .L485
3793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7316 .loc 1 3793 0
ARM GAS /tmp/ccpK4Ax4.s page 263
7317 0118 1A68 ldr r2, [r3]
7318 011a 1E49 ldr r1, .L498+20
7319 011c 0A40 ands r2, r1
7320 011e 1A60 str r2, [r3]
3796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7321 .loc 1 3796 0
7322 0120 A36B ldr r3, [r4, #56]
7323 0122 002B cmp r3, #0
7324 0124 91D0 beq .L485
3800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7325 .loc 1 3800 0
7326 0126 1A4A ldr r2, .L498+16
7327 0128 5A63 str r2, [r3, #52]
3803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7328 .loc 1 3803 0
7329 012a A06B ldr r0, [r4, #56]
7330 012c FFF7FEFF bl HAL_DMA_Abort_IT
7331 .LVL645:
7332 0130 0028 cmp r0, #0
7333 0132 8AD0 beq .L485
3806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7334 .loc 1 3806 0
7335 0134 A06B ldr r0, [r4, #56]
7336 0136 436B ldr r3, [r0, #52]
7337 0138 9847 blx r3
7338 .LVL646:
7339 013a 86E7 b .L485
7340 .L486:
3848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7341 .loc 1 3848 0
7342 013c 4123 movs r3, #65
7343 013e 2822 movs r2, #40
7344 0140 E254 strb r2, [r4, r3]
3849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7345 .loc 1 3849 0
7346 0142 0022 movs r2, #0
7347 0144 0133 adds r3, r3, #1
7348 0146 E254 strb r2, [r4, r3]
3852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7349 .loc 1 3852 0
7350 0148 636C ldr r3, [r4, #68]
7351 014a 8021 movs r1, #128
7352 014c 0B43 orrs r3, r1
7353 014e 6364 str r3, [r4, #68]
3855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7354 .loc 1 3855 0
7355 0150 4023 movs r3, #64
7356 0152 E254 strb r2, [r4, r3]
3857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7357 .loc 1 3857 0
7358 0154 0125 movs r5, #1
7359 .LVL647:
7360 0156 5FE7 b .L481
7361 .LVL648:
7362 .L497:
3871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7363 .loc 1 3871 0
ARM GAS /tmp/ccpK4Ax4.s page 264
7364 0158 4123 movs r3, #65
7365 015a 2822 movs r2, #40
7366 015c E254 strb r2, [r4, r3]
3872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7367 .loc 1 3872 0
7368 015e 0022 movs r2, #0
7369 0160 0133 adds r3, r3, #1
7370 0162 E254 strb r2, [r4, r3]
3875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7371 .loc 1 3875 0
7372 0164 636C ldr r3, [r4, #68]
7373 0166 1021 movs r1, #16
7374 0168 0B43 orrs r3, r1
7375 016a 6364 str r3, [r4, #68]
3878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7376 .loc 1 3878 0
7377 016c 4023 movs r3, #64
7378 016e E254 strb r2, [r4, r3]
3880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7379 .loc 1 3880 0
7380 0170 0125 movs r5, #1
7381 0172 51E7 b .L481
7382 .L489:
3887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7383 .loc 1 3887 0
7384 0174 0822 movs r2, #8
7385 0176 DA61 str r2, [r3, #28]
7386 0178 9CE7 b .L490
7387 .LVL649:
7388 .L492:
3757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7389 .loc 1 3757 0
7390 017a 0225 movs r5, #2
7391 017c 4CE7 b .L481
7392 .L499:
7393 017e C046 .align 2
7394 .L498:
7395 0180 FF7FFFFF .word -32769
7396 0184 00000000 .word I2C_Slave_ISR_DMA
7397 0188 00000000 .word I2C_DMASlaveTransmitCplt
7398 018c 00000000 .word I2C_DMAError
7399 0190 00000000 .word I2C_DMAAbort
7400 0194 FFBFFFFF .word -16385
7401 .cfi_endproc
7402 .LFE68:
7404 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits
7405 .align 1
7406 .global HAL_I2C_Slave_Seq_Receive_IT
7407 .syntax unified
7408 .code 16
7409 .thumb_func
7410 .fpu softvfp
7412 HAL_I2C_Slave_Seq_Receive_IT:
7413 .LFB69:
3921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */
7414 .loc 1 3921 0
7415 .cfi_startproc
ARM GAS /tmp/ccpK4Ax4.s page 265
7416 @ args = 0, pretend = 0, frame = 0
7417 @ frame_needed = 0, uses_anonymous_args = 0
7418 .LVL650:
7419 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
7420 .LCFI59:
7421 .cfi_def_cfa_offset 24
7422 .cfi_offset 3, -24
7423 .cfi_offset 4, -20
7424 .cfi_offset 5, -16
7425 .cfi_offset 6, -12
7426 .cfi_offset 7, -8
7427 .cfi_offset 14, -4
7428 0002 0700 movs r7, r0
7429 0004 0C00 movs r4, r1
7430 0006 1500 movs r5, r2
7431 0008 1E00 movs r6, r3
3925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7432 .loc 1 3925 0
7433 000a 4123 movs r3, #65
7434 .LVL651:
7435 000c C35C ldrb r3, [r0, r3]
7436 000e 2822 movs r2, #40
7437 .LVL652:
7438 0010 1340 ands r3, r2
7439 0012 282B cmp r3, #40
7440 0014 01D0 beq .L508
4001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7441 .loc 1 4001 0
7442 0016 0120 movs r0, #1
7443 .LVL653:
7444 .L501:
4003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7445 .loc 1 4003 0
7446 @ sp needed
7447 .LVL654:
7448 .LVL655:
7449 .LVL656:
7450 0018 F8BD pop {r3, r4, r5, r6, r7, pc}
7451 .LVL657:
7452 .L508:
3927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7453 .loc 1 3927 0
7454 001a 0029 cmp r1, #0
7455 001c 01D0 beq .L502
3927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7456 .loc 1 3927 0 is_stmt 0 discriminator 1
7457 001e 002D cmp r5, #0
7458 0020 04D1 bne .L503
7459 .L502:
3929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
7460 .loc 1 3929 0 is_stmt 1
7461 0022 8023 movs r3, #128
7462 0024 9B00 lsls r3, r3, #2
7463 0026 7B64 str r3, [r7, #68]
3930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7464 .loc 1 3930 0
7465 0028 0120 movs r0, #1
ARM GAS /tmp/ccpK4Ax4.s page 266
7466 .LVL658:
7467 002a F5E7 b .L501
7468 .LVL659:
7469 .L503:
3934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7470 .loc 1 3934 0
7471 002c 0621 movs r1, #6
7472 .LVL660:
7473 002e FFF7FEFF bl I2C_Disable_IRQ
7474 .LVL661:
3937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7475 .loc 1 3937 0
7476 0032 4023 movs r3, #64
7477 0034 FB5C ldrb r3, [r7, r3]
7478 0036 012B cmp r3, #1
7479 0038 43D0 beq .L507
3937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7480 .loc 1 3937 0 is_stmt 0 discriminator 2
7481 003a 4023 movs r3, #64
7482 003c 0122 movs r2, #1
7483 003e FA54 strb r2, [r7, r3]
3941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7484 .loc 1 3941 0 is_stmt 1 discriminator 2
7485 0040 0133 adds r3, r3, #1
7486 0042 FB5C ldrb r3, [r7, r3]
7487 0044 292B cmp r3, #41
7488 0046 22D0 beq .L509
7489 .L504:
3967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
7490 .loc 1 3967 0
7491 0048 4123 movs r3, #65
7492 004a 2A22 movs r2, #42
7493 004c FA54 strb r2, [r7, r3]
3968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7494 .loc 1 3968 0
7495 004e 0133 adds r3, r3, #1
7496 0050 0A3A subs r2, r2, #10
7497 0052 FA54 strb r2, [r7, r3]
3969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7498 .loc 1 3969 0
7499 0054 0023 movs r3, #0
7500 0056 7B64 str r3, [r7, #68]
3972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7501 .loc 1 3972 0
7502 0058 3A68 ldr r2, [r7]
7503 005a 5368 ldr r3, [r2, #4]
7504 005c 1A49 ldr r1, .L510
7505 005e 0B40 ands r3, r1
7506 0060 5360 str r3, [r2, #4]
3975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
7507 .loc 1 3975 0
7508 0062 7C62 str r4, [r7, #36]
3976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
7509 .loc 1 3976 0
7510 0064 7D85 strh r5, [r7, #42]
3977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7511 .loc 1 3977 0
ARM GAS /tmp/ccpK4Ax4.s page 267
7512 0066 7B8D ldrh r3, [r7, #42]
7513 0068 3B85 strh r3, [r7, #40]
3978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
7514 .loc 1 3978 0
7515 006a FE62 str r6, [r7, #44]
3979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7516 .loc 1 3979 0
7517 006c 174B ldr r3, .L510+4
7518 006e 7B63 str r3, [r7, #52]
3981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7519 .loc 1 3981 0
7520 0070 3B68 ldr r3, [r7]
7521 0072 9A69 ldr r2, [r3, #24]
7522 0074 D203 lsls r2, r2, #15
7523 0076 01D4 bmi .L505
3985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7524 .loc 1 3985 0
7525 0078 0822 movs r2, #8
7526 007a DA61 str r2, [r3, #28]
7527 .L505:
3989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7528 .loc 1 3989 0
7529 007c 4023 movs r3, #64
7530 007e 0022 movs r2, #0
7531 0080 FA54 strb r2, [r7, r3]
3995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7532 .loc 1 3995 0
7533 0082 0621 movs r1, #6
7534 0084 3800 movs r0, r7
7535 0086 FFF7FEFF bl I2C_Enable_IRQ
7536 .LVL662:
3997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7537 .loc 1 3997 0
7538 008a 0020 movs r0, #0
7539 008c C4E7 b .L501
7540 .L509:
3944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7541 .loc 1 3944 0
7542 008e 0121 movs r1, #1
7543 0090 3800 movs r0, r7
7544 0092 FFF7FEFF bl I2C_Disable_IRQ
7545 .LVL663:
3946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7546 .loc 1 3946 0
7547 0096 3B68 ldr r3, [r7]
7548 0098 1A68 ldr r2, [r3]
7549 009a 5204 lsls r2, r2, #17
7550 009c D4D5 bpl .L504
3948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7551 .loc 1 3948 0
7552 009e 1A68 ldr r2, [r3]
7553 00a0 0B49 ldr r1, .L510+8
7554 00a2 0A40 ands r2, r1
7555 00a4 1A60 str r2, [r3]
3951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7556 .loc 1 3951 0
7557 00a6 BB6B ldr r3, [r7, #56]
ARM GAS /tmp/ccpK4Ax4.s page 268
7558 00a8 002B cmp r3, #0
7559 00aa CDD0 beq .L504
3955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7560 .loc 1 3955 0
7561 00ac 094A ldr r2, .L510+12
7562 00ae 5A63 str r2, [r3, #52]
3958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7563 .loc 1 3958 0
7564 00b0 B86B ldr r0, [r7, #56]
7565 00b2 FFF7FEFF bl HAL_DMA_Abort_IT
7566 .LVL664:
7567 00b6 0028 cmp r0, #0
7568 00b8 C6D0 beq .L504
3961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7569 .loc 1 3961 0
7570 00ba B86B ldr r0, [r7, #56]
7571 00bc 436B ldr r3, [r0, #52]
7572 00be 9847 blx r3
7573 .LVL665:
7574 00c0 C2E7 b .L504
7575 .L507:
3937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7576 .loc 1 3937 0
7577 00c2 0220 movs r0, #2
7578 00c4 A8E7 b .L501
7579 .L511:
7580 00c6 C046 .align 2
7581 .L510:
7582 00c8 FF7FFFFF .word -32769
7583 00cc 00000000 .word I2C_Slave_ISR_IT
7584 00d0 FFBFFFFF .word -16385
7585 00d4 00000000 .word I2C_DMAAbort
7586 .cfi_endproc
7587 .LFE69:
7589 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits
7590 .align 1
7591 .global HAL_I2C_Slave_Seq_Receive_DMA
7592 .syntax unified
7593 .code 16
7594 .thumb_func
7595 .fpu softvfp
7597 HAL_I2C_Slave_Seq_Receive_DMA:
7598 .LFB70:
4016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7599 .loc 1 4016 0
7600 .cfi_startproc
7601 @ args = 0, pretend = 0, frame = 0
7602 @ frame_needed = 0, uses_anonymous_args = 0
7603 .LVL666:
7604 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
7605 .LCFI60:
7606 .cfi_def_cfa_offset 24
7607 .cfi_offset 3, -24
7608 .cfi_offset 4, -20
7609 .cfi_offset 5, -16
7610 .cfi_offset 6, -12
7611 .cfi_offset 7, -8
ARM GAS /tmp/ccpK4Ax4.s page 269
7612 .cfi_offset 14, -4
7613 0002 0400 movs r4, r0
7614 0004 0D00 movs r5, r1
7615 0006 1600 movs r6, r2
7616 0008 1F00 movs r7, r3
4022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7617 .loc 1 4022 0
7618 000a 4123 movs r3, #65
7619 .LVL667:
7620 000c C35C ldrb r3, [r0, r3]
7621 000e 2822 movs r2, #40
7622 .LVL668:
7623 0010 1340 ands r3, r2
7624 0012 282B cmp r3, #40
7625 0014 02D0 beq .L526
4180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7626 .loc 1 4180 0
7627 0016 0125 movs r5, #1
7628 .LVL669:
7629 .L513:
4182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7630 .loc 1 4182 0
7631 0018 2800 movs r0, r5
7632 @ sp needed
7633 .LVL670:
7634 .LVL671:
7635 001a F8BD pop {r3, r4, r5, r6, r7, pc}
7636 .LVL672:
7637 .L526:
4024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7638 .loc 1 4024 0
7639 001c 0029 cmp r1, #0
7640 001e 01D0 beq .L514
4024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7641 .loc 1 4024 0 is_stmt 0 discriminator 1
7642 0020 002E cmp r6, #0
7643 0022 04D1 bne .L515
7644 .L514:
4026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR;
7645 .loc 1 4026 0 is_stmt 1
7646 0024 8023 movs r3, #128
7647 0026 9B00 lsls r3, r3, #2
7648 0028 6364 str r3, [r4, #68]
4027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7649 .loc 1 4027 0
7650 002a 0125 movs r5, #1
7651 002c F4E7 b .L513
7652 .L515:
4031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7653 .loc 1 4031 0
7654 002e 0621 movs r1, #6
7655 .LVL673:
7656 0030 FFF7FEFF bl I2C_Disable_IRQ
7657 .LVL674:
4034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7658 .loc 1 4034 0
7659 0034 4023 movs r3, #64
ARM GAS /tmp/ccpK4Ax4.s page 270
7660 0036 E35C ldrb r3, [r4, r3]
7661 0038 012B cmp r3, #1
7662 003a 00D1 bne .LCB7795
7663 003c 9DE0 b .L524 @long jump
7664 .LCB7795:
4034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7665 .loc 1 4034 0 is_stmt 0 discriminator 2
7666 003e 4023 movs r3, #64
7667 0040 0122 movs r2, #1
7668 0042 E254 strb r2, [r4, r3]
4038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7669 .loc 1 4038 0 is_stmt 1 discriminator 2
7670 0044 0133 adds r3, r3, #1
7671 0046 E35C ldrb r3, [r4, r3]
7672 0048 292B cmp r3, #41
7673 004a 46D0 beq .L527
4063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7674 .loc 1 4063 0
7675 004c 4123 movs r3, #65
7676 004e E35C ldrb r3, [r4, r3]
7677 0050 2A2B cmp r3, #42
7678 0052 5DD0 beq .L528
7679 .L517:
4090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
7680 .loc 1 4090 0
7681 0054 4123 movs r3, #65
7682 0056 2A22 movs r2, #42
7683 0058 E254 strb r2, [r4, r3]
4091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7684 .loc 1 4091 0
7685 005a 0133 adds r3, r3, #1
7686 005c 0A3A subs r2, r2, #10
7687 005e E254 strb r2, [r4, r3]
4092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7688 .loc 1 4092 0
7689 0060 0023 movs r3, #0
7690 0062 6364 str r3, [r4, #68]
4095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7691 .loc 1 4095 0
7692 0064 2268 ldr r2, [r4]
7693 0066 5368 ldr r3, [r2, #4]
7694 0068 4549 ldr r1, .L530
7695 006a 0B40 ands r3, r1
7696 006c 5360 str r3, [r2, #4]
4098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size;
7697 .loc 1 4098 0
7698 006e 6562 str r5, [r4, #36]
4099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
7699 .loc 1 4099 0
7700 0070 6685 strh r6, [r4, #42]
4100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7701 .loc 1 4100 0
7702 0072 638D ldrh r3, [r4, #42]
7703 0074 2385 strh r3, [r4, #40]
4101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
7704 .loc 1 4101 0
7705 0076 E762 str r7, [r4, #44]
ARM GAS /tmp/ccpK4Ax4.s page 271
4102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7706 .loc 1 4102 0
7707 0078 424B ldr r3, .L530+4
7708 007a 6363 str r3, [r4, #52]
4104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7709 .loc 1 4104 0
7710 007c E36B ldr r3, [r4, #60]
7711 007e 002B cmp r3, #0
7712 0080 5CD0 beq .L518
4107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7713 .loc 1 4107 0
7714 0082 414A ldr r2, .L530+8
7715 0084 9A62 str r2, [r3, #40]
4110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7716 .loc 1 4110 0
7717 0086 E36B ldr r3, [r4, #60]
7718 0088 404A ldr r2, .L530+12
7719 008a 1A63 str r2, [r3, #48]
4113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
7720 .loc 1 4113 0
7721 008c E26B ldr r2, [r4, #60]
7722 008e 0023 movs r3, #0
7723 0090 D362 str r3, [r2, #44]
4114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7724 .loc 1 4114 0
7725 0092 E26B ldr r2, [r4, #60]
7726 0094 5363 str r3, [r2, #52]
4117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7727 .loc 1 4117 0
7728 0096 2168 ldr r1, [r4]
7729 0098 2431 adds r1, r1, #36
7730 009a 238D ldrh r3, [r4, #40]
7731 009c 2A00 movs r2, r5
7732 009e E06B ldr r0, [r4, #60]
7733 00a0 FFF7FEFF bl HAL_DMA_Start_IT
7734 .LVL675:
7735 00a4 051E subs r5, r0, #0
7736 .LVL676:
4134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7737 .loc 1 4134 0
7738 00a6 57D1 bne .L529
4137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7739 .loc 1 4137 0
7740 00a8 638D ldrh r3, [r4, #42]
7741 00aa 228D ldrh r2, [r4, #40]
7742 00ac 9B1A subs r3, r3, r2
7743 00ae 9BB2 uxth r3, r3
7744 00b0 6385 strh r3, [r4, #42]
4140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7745 .loc 1 4140 0
7746 00b2 0023 movs r3, #0
7747 00b4 2385 strh r3, [r4, #40]
4157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7748 .loc 1 4157 0
7749 00b6 2368 ldr r3, [r4]
7750 00b8 9A69 ldr r2, [r3, #24]
7751 00ba D203 lsls r2, r2, #15
ARM GAS /tmp/ccpK4Ax4.s page 272
7752 00bc 5AD5 bpl .L521
7753 .L522:
4165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7754 .loc 1 4165 0
7755 00be 4023 movs r3, #64
7756 00c0 0022 movs r2, #0
7757 00c2 E254 strb r2, [r4, r3]
4171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7758 .loc 1 4171 0
7759 00c4 0621 movs r1, #6
7760 00c6 2000 movs r0, r4
7761 .LVL677:
7762 00c8 FFF7FEFF bl I2C_Enable_IRQ
7763 .LVL678:
4174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7764 .loc 1 4174 0
7765 00cc 2268 ldr r2, [r4]
7766 00ce 1168 ldr r1, [r2]
7767 00d0 8023 movs r3, #128
7768 00d2 1B02 lsls r3, r3, #8
7769 00d4 0B43 orrs r3, r1
7770 00d6 1360 str r3, [r2]
4176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7771 .loc 1 4176 0
7772 00d8 9EE7 b .L513
7773 .LVL679:
7774 .L527:
4041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7775 .loc 1 4041 0
7776 00da 0121 movs r1, #1
7777 00dc 2000 movs r0, r4
7778 00de FFF7FEFF bl I2C_Disable_IRQ
7779 .LVL680:
4043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7780 .loc 1 4043 0
7781 00e2 2368 ldr r3, [r4]
7782 00e4 1A68 ldr r2, [r3]
7783 00e6 5204 lsls r2, r2, #17
7784 00e8 B4D5 bpl .L517
4046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7785 .loc 1 4046 0
7786 00ea A26B ldr r2, [r4, #56]
7787 00ec 002A cmp r2, #0
7788 00ee B1D0 beq .L517
4048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7789 .loc 1 4048 0
7790 00f0 1A68 ldr r2, [r3]
7791 00f2 2749 ldr r1, .L530+16
7792 00f4 0A40 ands r2, r1
7793 00f6 1A60 str r2, [r3]
4052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7794 .loc 1 4052 0
7795 00f8 A36B ldr r3, [r4, #56]
7796 00fa 264A ldr r2, .L530+20
7797 00fc 5A63 str r2, [r3, #52]
4055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7798 .loc 1 4055 0
ARM GAS /tmp/ccpK4Ax4.s page 273
7799 00fe A06B ldr r0, [r4, #56]
7800 0100 FFF7FEFF bl HAL_DMA_Abort_IT
7801 .LVL681:
7802 0104 0028 cmp r0, #0
7803 0106 A5D0 beq .L517
4058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7804 .loc 1 4058 0
7805 0108 A06B ldr r0, [r4, #56]
7806 010a 436B ldr r3, [r0, #52]
7807 010c 9847 blx r3
7808 .LVL682:
7809 010e A1E7 b .L517
7810 .L528:
4065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7811 .loc 1 4065 0
7812 0110 2368 ldr r3, [r4]
7813 0112 1A68 ldr r2, [r3]
7814 0114 1204 lsls r2, r2, #16
7815 0116 9DD5 bpl .L517
4067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7816 .loc 1 4067 0
7817 0118 1A68 ldr r2, [r3]
7818 011a 1949 ldr r1, .L530
7819 011c 0A40 ands r2, r1
7820 011e 1A60 str r2, [r3]
4070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7821 .loc 1 4070 0
7822 0120 E36B ldr r3, [r4, #60]
7823 0122 002B cmp r3, #0
7824 0124 96D0 beq .L517
4074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7825 .loc 1 4074 0
7826 0126 1B4A ldr r2, .L530+20
7827 0128 5A63 str r2, [r3, #52]
4077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7828 .loc 1 4077 0
7829 012a E06B ldr r0, [r4, #60]
7830 012c FFF7FEFF bl HAL_DMA_Abort_IT
7831 .LVL683:
7832 0130 0028 cmp r0, #0
7833 0132 8FD0 beq .L517
4080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7834 .loc 1 4080 0
7835 0134 E06B ldr r0, [r4, #60]
7836 0136 436B ldr r3, [r0, #52]
7837 0138 9847 blx r3
7838 .LVL684:
7839 013a 8BE7 b .L517
7840 .L518:
4122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7841 .loc 1 4122 0
7842 013c 4123 movs r3, #65
7843 013e 2822 movs r2, #40
7844 0140 E254 strb r2, [r4, r3]
4123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7845 .loc 1 4123 0
7846 0142 0022 movs r2, #0
ARM GAS /tmp/ccpK4Ax4.s page 274
7847 0144 0133 adds r3, r3, #1
7848 0146 E254 strb r2, [r4, r3]
4126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7849 .loc 1 4126 0
7850 0148 636C ldr r3, [r4, #68]
7851 014a 8021 movs r1, #128
7852 014c 0B43 orrs r3, r1
7853 014e 6364 str r3, [r4, #68]
4129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7854 .loc 1 4129 0
7855 0150 4023 movs r3, #64
7856 0152 E254 strb r2, [r4, r3]
4131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7857 .loc 1 4131 0
7858 0154 0125 movs r5, #1
7859 .LVL685:
7860 0156 5FE7 b .L513
7861 .LVL686:
7862 .L529:
4145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7863 .loc 1 4145 0
7864 0158 4123 movs r3, #65
7865 015a 2822 movs r2, #40
7866 015c E254 strb r2, [r4, r3]
4146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7867 .loc 1 4146 0
7868 015e 0022 movs r2, #0
7869 0160 0133 adds r3, r3, #1
7870 0162 E254 strb r2, [r4, r3]
4149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7871 .loc 1 4149 0
7872 0164 636C ldr r3, [r4, #68]
7873 0166 1021 movs r1, #16
7874 0168 0B43 orrs r3, r1
7875 016a 6364 str r3, [r4, #68]
4152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7876 .loc 1 4152 0
7877 016c 4023 movs r3, #64
7878 016e E254 strb r2, [r4, r3]
4154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7879 .loc 1 4154 0
7880 0170 0125 movs r5, #1
7881 0172 51E7 b .L513
7882 .L521:
4161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7883 .loc 1 4161 0
7884 0174 0822 movs r2, #8
7885 0176 DA61 str r2, [r3, #28]
7886 0178 A1E7 b .L522
7887 .LVL687:
7888 .L524:
4034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7889 .loc 1 4034 0
7890 017a 0225 movs r5, #2
7891 .LVL688:
7892 017c 4CE7 b .L513
7893 .L531:
ARM GAS /tmp/ccpK4Ax4.s page 275
7894 017e C046 .align 2
7895 .L530:
7896 0180 FF7FFFFF .word -32769
7897 0184 00000000 .word I2C_Slave_ISR_DMA
7898 0188 00000000 .word I2C_DMASlaveReceiveCplt
7899 018c 00000000 .word I2C_DMAError
7900 0190 FFBFFFFF .word -16385
7901 0194 00000000 .word I2C_DMAAbort
7902 .cfi_endproc
7903 .LFE70:
7905 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits
7906 .align 1
7907 .global HAL_I2C_EnableListen_IT
7908 .syntax unified
7909 .code 16
7910 .thumb_func
7911 .fpu softvfp
7913 HAL_I2C_EnableListen_IT:
7914 .LFB71:
4191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
7915 .loc 1 4191 0
7916 .cfi_startproc
7917 @ args = 0, pretend = 0, frame = 0
7918 @ frame_needed = 0, uses_anonymous_args = 0
7919 .LVL689:
7920 0000 10B5 push {r4, lr}
7921 .LCFI61:
7922 .cfi_def_cfa_offset 8
7923 .cfi_offset 4, -8
7924 .cfi_offset 14, -4
4192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7925 .loc 1 4192 0
7926 0002 4123 movs r3, #65
7927 0004 C35C ldrb r3, [r0, r3]
7928 0006 202B cmp r3, #32
7929 0008 01D0 beq .L535
4204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7930 .loc 1 4204 0
7931 000a 0220 movs r0, #2
7932 .LVL690:
7933 .L533:
4206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7934 .loc 1 4206 0
7935 @ sp needed
7936 000c 10BD pop {r4, pc}
7937 .LVL691:
7938 .L535:
4194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
7939 .loc 1 4194 0
7940 000e 2133 adds r3, r3, #33
7941 0010 2822 movs r2, #40
7942 0012 C254 strb r2, [r0, r3]
4195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7943 .loc 1 4195 0
7944 0014 034B ldr r3, .L536
7945 0016 4363 str r3, [r0, #52]
4198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 276
7946 .loc 1 4198 0
7947 0018 0421 movs r1, #4
7948 001a FFF7FEFF bl I2C_Enable_IRQ
7949 .LVL692:
4200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7950 .loc 1 4200 0
7951 001e 0020 movs r0, #0
7952 0020 F4E7 b .L533
7953 .L537:
7954 0022 C046 .align 2
7955 .L536:
7956 0024 00000000 .word I2C_Slave_ISR_IT
7957 .cfi_endproc
7958 .LFE71:
7960 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits
7961 .align 1
7962 .global HAL_I2C_DisableListen_IT
7963 .syntax unified
7964 .code 16
7965 .thumb_func
7966 .fpu softvfp
7968 HAL_I2C_DisableListen_IT:
7969 .LFB72:
4215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
7970 .loc 1 4215 0
7971 .cfi_startproc
7972 @ args = 0, pretend = 0, frame = 0
7973 @ frame_needed = 0, uses_anonymous_args = 0
7974 .LVL693:
7975 0000 70B5 push {r4, r5, r6, lr}
7976 .LCFI62:
7977 .cfi_def_cfa_offset 16
7978 .cfi_offset 4, -16
7979 .cfi_offset 5, -12
7980 .cfi_offset 6, -8
7981 .cfi_offset 14, -4
4220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
7982 .loc 1 4220 0
7983 0002 4123 movs r3, #65
7984 0004 C35C ldrb r3, [r0, r3]
7985 0006 282B cmp r3, #40
7986 0008 01D0 beq .L541
4235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
7987 .loc 1 4235 0
7988 000a 0220 movs r0, #2
7989 .LVL694:
7990 .L539:
4237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
7991 .loc 1 4237 0
7992 @ sp needed
7993 000c 70BD pop {r4, r5, r6, pc}
7994 .LVL695:
7995 .L541:
4222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
7996 .loc 1 4222 0
7997 000e 4124 movs r4, #65
7998 0010 025D ldrb r2, [r0, r4]
ARM GAS /tmp/ccpK4Ax4.s page 277
7999 .LVL696:
4223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
8000 .loc 1 4223 0
8001 0012 4221 movs r1, #66
8002 0014 435C ldrb r3, [r0, r1]
8003 0016 0325 movs r5, #3
8004 0018 2A40 ands r2, r5
8005 .LVL697:
8006 001a 1343 orrs r3, r2
8007 001c 0363 str r3, [r0, #48]
4224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8008 .loc 1 4224 0
8009 001e 2023 movs r3, #32
8010 0020 0355 strb r3, [r0, r4]
4225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
8011 .loc 1 4225 0
8012 0022 0023 movs r3, #0
8013 0024 4354 strb r3, [r0, r1]
4226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8014 .loc 1 4226 0
8015 0026 4363 str r3, [r0, #52]
4229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8016 .loc 1 4229 0
8017 0028 3E39 subs r1, r1, #62
8018 002a FFF7FEFF bl I2C_Disable_IRQ
8019 .LVL698:
4231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
8020 .loc 1 4231 0
8021 002e 0020 movs r0, #0
8022 0030 ECE7 b .L539
8023 .cfi_endproc
8024 .LFE72:
8026 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits
8027 .align 1
8028 .global HAL_I2C_Master_Abort_IT
8029 .syntax unified
8030 .code 16
8031 .thumb_func
8032 .fpu softvfp
8034 HAL_I2C_Master_Abort_IT:
8035 .LFB73:
4248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER)
8036 .loc 1 4248 0
8037 .cfi_startproc
8038 @ args = 0, pretend = 0, frame = 0
8039 @ frame_needed = 0, uses_anonymous_args = 0
8040 .LVL699:
8041 0000 70B5 push {r4, r5, r6, lr}
8042 .LCFI63:
8043 .cfi_def_cfa_offset 16
8044 .cfi_offset 4, -16
8045 .cfi_offset 5, -12
8046 .cfi_offset 6, -8
8047 .cfi_offset 14, -4
8048 0002 82B0 sub sp, sp, #8
8049 .LCFI64:
8050 .cfi_def_cfa_offset 24
ARM GAS /tmp/ccpK4Ax4.s page 278
8051 0004 0400 movs r4, r0
8052 0006 0D00 movs r5, r1
4249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8053 .loc 1 4249 0
8054 0008 4223 movs r3, #66
8055 000a C35C ldrb r3, [r0, r3]
8056 000c 102B cmp r3, #16
8057 000e 02D0 beq .L546
4279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
8058 .loc 1 4279 0
8059 0010 0120 movs r0, #1
8060 .LVL700:
8061 .L543:
4281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8062 .loc 1 4281 0
8063 0012 02B0 add sp, sp, #8
8064 @ sp needed
8065 .LVL701:
8066 0014 70BD pop {r4, r5, r6, pc}
8067 .LVL702:
8068 .L546:
4252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8069 .loc 1 4252 0
8070 0016 3033 adds r3, r3, #48
8071 0018 C35C ldrb r3, [r0, r3]
8072 001a 012B cmp r3, #1
8073 001c 1DD0 beq .L545
4252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8074 .loc 1 4252 0 is_stmt 0 discriminator 2
8075 001e 4026 movs r6, #64
8076 0020 0123 movs r3, #1
8077 0022 8355 strb r3, [r0, r6]
4255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
8078 .loc 1 4255 0 is_stmt 1 discriminator 2
8079 0024 0221 movs r1, #2
8080 .LVL703:
8081 0026 FFF7FEFF bl I2C_Disable_IRQ
8082 .LVL704:
4256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8083 .loc 1 4256 0 discriminator 2
8084 002a 0121 movs r1, #1
8085 002c 2000 movs r0, r4
8086 002e FFF7FEFF bl I2C_Disable_IRQ
8087 .LVL705:
4259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8088 .loc 1 4259 0 discriminator 2
8089 0032 4123 movs r3, #65
8090 0034 6022 movs r2, #96
8091 0036 E254 strb r2, [r4, r3]
4263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8092 .loc 1 4263 0 discriminator 2
8093 0038 3F33 adds r3, r3, #63
8094 003a 094A ldr r2, .L547
8095 003c 0092 str r2, [sp]
8096 003e 9B04 lsls r3, r3, #18
8097 0040 0122 movs r2, #1
8098 0042 2900 movs r1, r5
ARM GAS /tmp/ccpK4Ax4.s page 279
8099 0044 2000 movs r0, r4
8100 0046 FFF7FEFF bl I2C_TransferConfig
8101 .LVL706:
4266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8102 .loc 1 4266 0 discriminator 2
8103 004a 0023 movs r3, #0
8104 004c A355 strb r3, [r4, r6]
4271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8105 .loc 1 4271 0 discriminator 2
8106 004e 1221 movs r1, #18
8107 0050 2000 movs r0, r4
8108 0052 FFF7FEFF bl I2C_Enable_IRQ
8109 .LVL707:
4273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
8110 .loc 1 4273 0 discriminator 2
8111 0056 0020 movs r0, #0
8112 0058 DBE7 b .L543
8113 .LVL708:
8114 .L545:
4252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8115 .loc 1 4252 0
8116 005a 0220 movs r0, #2
8117 .LVL709:
8118 005c D9E7 b .L543
8119 .L548:
8120 005e C046 .align 2
8121 .L547:
8122 0060 00400080 .word -2147467264
8123 .cfi_endproc
8124 .LFE73:
8126 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits
8127 .align 1
8128 .global HAL_I2C_EV_IRQHandler
8129 .syntax unified
8130 .code 16
8131 .thumb_func
8132 .fpu softvfp
8134 HAL_I2C_EV_IRQHandler:
8135 .LFB74:
4298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
8136 .loc 1 4298 0
8137 .cfi_startproc
8138 @ args = 0, pretend = 0, frame = 0
8139 @ frame_needed = 0, uses_anonymous_args = 0
8140 .LVL710:
8141 0000 10B5 push {r4, lr}
8142 .LCFI65:
8143 .cfi_def_cfa_offset 8
8144 .cfi_offset 4, -8
8145 .cfi_offset 14, -4
4300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
8146 .loc 1 4300 0
8147 0002 0368 ldr r3, [r0]
8148 0004 9969 ldr r1, [r3, #24]
8149 .LVL711:
4301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8150 .loc 1 4301 0
ARM GAS /tmp/ccpK4Ax4.s page 280
8151 0006 1A68 ldr r2, [r3]
8152 .LVL712:
4304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8153 .loc 1 4304 0
8154 0008 436B ldr r3, [r0, #52]
8155 000a 002B cmp r3, #0
8156 000c 00D0 beq .L549
4306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
8157 .loc 1 4306 0
8158 000e 9847 blx r3
8159 .LVL713:
8160 .L549:
4308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8161 .loc 1 4308 0
8162 @ sp needed
8163 0010 10BD pop {r4, pc}
8164 .cfi_endproc
8165 .LFE74:
8167 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits
8168 .align 1
8169 .weak HAL_I2C_MasterTxCpltCallback
8170 .syntax unified
8171 .code 16
8172 .thumb_func
8173 .fpu softvfp
8175 HAL_I2C_MasterTxCpltCallback:
8176 .LFB76:
4366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8177 .loc 1 4366 0
8178 .cfi_startproc
8179 @ args = 0, pretend = 0, frame = 0
8180 @ frame_needed = 0, uses_anonymous_args = 0
8181 @ link register save eliminated.
8182 .LVL714:
4373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8183 .loc 1 4373 0
8184 @ sp needed
8185 0000 7047 bx lr
8186 .cfi_endproc
8187 .LFE76:
8189 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits
8190 .align 1
8191 .weak HAL_I2C_MasterRxCpltCallback
8192 .syntax unified
8193 .code 16
8194 .thumb_func
8195 .fpu softvfp
8197 HAL_I2C_MasterRxCpltCallback:
8198 .LFB77:
4382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8199 .loc 1 4382 0
8200 .cfi_startproc
8201 @ args = 0, pretend = 0, frame = 0
8202 @ frame_needed = 0, uses_anonymous_args = 0
8203 @ link register save eliminated.
8204 .LVL715:
4389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 281
8205 .loc 1 4389 0
8206 @ sp needed
8207 0000 7047 bx lr
8208 .cfi_endproc
8209 .LFE77:
8211 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits
8212 .align 1
8213 .syntax unified
8214 .code 16
8215 .thumb_func
8216 .fpu softvfp
8218 I2C_ITMasterSeqCplt:
8219 .LFB96:
5318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */
8220 .loc 1 5318 0
8221 .cfi_startproc
8222 @ args = 0, pretend = 0, frame = 0
8223 @ frame_needed = 0, uses_anonymous_args = 0
8224 .LVL716:
8225 0000 70B5 push {r4, r5, r6, lr}
8226 .LCFI66:
8227 .cfi_def_cfa_offset 16
8228 .cfi_offset 4, -16
8229 .cfi_offset 5, -12
8230 .cfi_offset 6, -8
8231 .cfi_offset 14, -4
8232 0002 0400 movs r4, r0
5320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8233 .loc 1 5320 0
8234 0004 4223 movs r3, #66
8235 0006 0022 movs r2, #0
8236 0008 C254 strb r2, [r0, r3]
5324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8237 .loc 1 5324 0
8238 000a 013B subs r3, r3, #1
8239 000c C35C ldrb r3, [r0, r3]
8240 000e 212B cmp r3, #33
8241 0010 0FD0 beq .L556
5346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
8242 .loc 1 5346 0
8243 0012 4123 movs r3, #65
8244 0014 2022 movs r2, #32
8245 0016 C254 strb r2, [r0, r3]
5347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
8246 .loc 1 5347 0
8247 0018 2F3B subs r3, r3, #47
8248 001a 0363 str r3, [r0, #48]
5348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8249 .loc 1 5348 0
8250 001c 0025 movs r5, #0
8251 001e 4563 str r5, [r0, #52]
5351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8252 .loc 1 5351 0
8253 0020 0221 movs r1, #2
8254 0022 FFF7FEFF bl I2C_Disable_IRQ
8255 .LVL717:
5354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 282
8256 .loc 1 5354 0
8257 0026 4023 movs r3, #64
8258 0028 E554 strb r5, [r4, r3]
5360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
8259 .loc 1 5360 0
8260 002a 2000 movs r0, r4
8261 002c FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
8262 .LVL718:
8263 .L553:
5363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8264 .loc 1 5363 0
8265 @ sp needed
8266 .LVL719:
8267 0030 70BD pop {r4, r5, r6, pc}
8268 .LVL720:
8269 .L556:
5326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
8270 .loc 1 5326 0
8271 0032 2033 adds r3, r3, #32
8272 0034 2032 adds r2, r2, #32
8273 0036 C254 strb r2, [r0, r3]
5327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
8274 .loc 1 5327 0
8275 0038 303B subs r3, r3, #48
8276 003a 0363 str r3, [r0, #48]
5328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8277 .loc 1 5328 0
8278 003c 0025 movs r5, #0
8279 003e 4563 str r5, [r0, #52]
5331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8280 .loc 1 5331 0
8281 0040 0121 movs r1, #1
8282 0042 FFF7FEFF bl I2C_Disable_IRQ
8283 .LVL721:
5334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8284 .loc 1 5334 0
8285 0046 4023 movs r3, #64
8286 0048 E554 strb r5, [r4, r3]
5340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
8287 .loc 1 5340 0
8288 004a 2000 movs r0, r4
8289 004c FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
8290 .LVL722:
8291 0050 EEE7 b .L553
8292 .cfi_endproc
8293 .LFE96:
8295 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits
8296 .align 1
8297 .weak HAL_I2C_SlaveTxCpltCallback
8298 .syntax unified
8299 .code 16
8300 .thumb_func
8301 .fpu softvfp
8303 HAL_I2C_SlaveTxCpltCallback:
8304 .LFB78:
4397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8305 .loc 1 4397 0
ARM GAS /tmp/ccpK4Ax4.s page 283
8306 .cfi_startproc
8307 @ args = 0, pretend = 0, frame = 0
8308 @ frame_needed = 0, uses_anonymous_args = 0
8309 @ link register save eliminated.
8310 .LVL723:
4404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8311 .loc 1 4404 0
8312 @ sp needed
8313 0000 7047 bx lr
8314 .cfi_endproc
8315 .LFE78:
8317 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits
8318 .align 1
8319 .weak HAL_I2C_SlaveRxCpltCallback
8320 .syntax unified
8321 .code 16
8322 .thumb_func
8323 .fpu softvfp
8325 HAL_I2C_SlaveRxCpltCallback:
8326 .LFB79:
4413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8327 .loc 1 4413 0
8328 .cfi_startproc
8329 @ args = 0, pretend = 0, frame = 0
8330 @ frame_needed = 0, uses_anonymous_args = 0
8331 @ link register save eliminated.
8332 .LVL724:
4420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8333 .loc 1 4420 0
8334 @ sp needed
8335 0000 7047 bx lr
8336 .cfi_endproc
8337 .LFE79:
8339 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits
8340 .align 1
8341 .syntax unified
8342 .code 16
8343 .thumb_func
8344 .fpu softvfp
8346 I2C_ITSlaveSeqCplt:
8347 .LFB97:
5371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */
8348 .loc 1 5371 0
8349 .cfi_startproc
8350 @ args = 0, pretend = 0, frame = 0
8351 @ frame_needed = 0, uses_anonymous_args = 0
8352 .LVL725:
8353 0000 10B5 push {r4, lr}
8354 .LCFI67:
8355 .cfi_def_cfa_offset 8
8356 .cfi_offset 4, -8
8357 .cfi_offset 14, -4
8358 0002 0400 movs r4, r0
5373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8359 .loc 1 5373 0
8360 0004 4223 movs r3, #66
8361 0006 0022 movs r2, #0
ARM GAS /tmp/ccpK4Ax4.s page 284
8362 0008 C254 strb r2, [r0, r3]
5375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8363 .loc 1 5375 0
8364 000a 013B subs r3, r3, #1
8365 000c C35C ldrb r3, [r0, r3]
8366 000e 292B cmp r3, #41
8367 0010 04D0 beq .L562
5395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8368 .loc 1 5395 0
8369 0012 4123 movs r3, #65
8370 0014 C35C ldrb r3, [r0, r3]
8371 0016 2A2B cmp r3, #42
8372 0018 0FD0 beq .L563
8373 .LVL726:
8374 .L559:
5418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8375 .loc 1 5418 0
8376 @ sp needed
8377 .LVL727:
8378 001a 10BD pop {r4, pc}
8379 .LVL728:
8380 .L562:
5378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
8381 .loc 1 5378 0
8382 001c 1833 adds r3, r3, #24
8383 001e 2832 adds r2, r2, #40
8384 0020 C254 strb r2, [r0, r3]
5379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8385 .loc 1 5379 0
8386 0022 203B subs r3, r3, #32
8387 0024 0363 str r3, [r0, #48]
5382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8388 .loc 1 5382 0
8389 0026 0121 movs r1, #1
8390 0028 FFF7FEFF bl I2C_Disable_IRQ
8391 .LVL729:
5385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8392 .loc 1 5385 0
8393 002c 4023 movs r3, #64
8394 002e 0022 movs r2, #0
8395 0030 E254 strb r2, [r4, r3]
5391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
8396 .loc 1 5391 0
8397 0032 2000 movs r0, r4
8398 0034 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
8399 .LVL730:
8400 0038 EFE7 b .L559
8401 .LVL731:
8402 .L563:
5398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
8403 .loc 1 5398 0
8404 003a 1733 adds r3, r3, #23
8405 003c 2822 movs r2, #40
8406 003e C254 strb r2, [r0, r3]
5399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8407 .loc 1 5399 0
8408 0040 1F3B subs r3, r3, #31
ARM GAS /tmp/ccpK4Ax4.s page 285
8409 0042 0363 str r3, [r0, #48]
5402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8410 .loc 1 5402 0
8411 0044 0221 movs r1, #2
8412 0046 FFF7FEFF bl I2C_Disable_IRQ
8413 .LVL732:
5405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8414 .loc 1 5405 0
8415 004a 4023 movs r3, #64
8416 004c 0022 movs r2, #0
8417 004e E254 strb r2, [r4, r3]
5411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
8418 .loc 1 5411 0
8419 0050 2000 movs r0, r4
8420 0052 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
8421 .LVL733:
5418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8422 .loc 1 5418 0
8423 0056 E0E7 b .L559
8424 .cfi_endproc
8425 .LFE97:
8427 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits
8428 .align 1
8429 .syntax unified
8430 .code 16
8431 .thumb_func
8432 .fpu softvfp
8434 I2C_DMASlaveTransmitCplt:
8435 .LFB104:
5921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
8436 .loc 1 5921 0
8437 .cfi_startproc
8438 @ args = 0, pretend = 0, frame = 0
8439 @ frame_needed = 0, uses_anonymous_args = 0
8440 .LVL734:
8441 0000 10B5 push {r4, lr}
8442 .LCFI68:
8443 .cfi_def_cfa_offset 8
8444 .cfi_offset 4, -8
8445 .cfi_offset 14, -4
5922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
8446 .loc 1 5922 0
8447 0002 406A ldr r0, [r0, #36]
8448 .LVL735:
5923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8449 .loc 1 5923 0
8450 0004 C36A ldr r3, [r0, #44]
8451 .LVL736:
5925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8452 .loc 1 5925 0
8453 0006 8022 movs r2, #128
8454 0008 5204 lsls r2, r2, #17
8455 000a 9342 cmp r3, r2
8456 000c 01D0 beq .L565
5925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8457 .loc 1 5925 0 is_stmt 0 discriminator 1
8458 000e 002B cmp r3, #0
ARM GAS /tmp/ccpK4Ax4.s page 286
8459 0010 06D1 bne .L564
8460 .L565:
5928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8461 .loc 1 5928 0 is_stmt 1
8462 0012 0268 ldr r2, [r0]
8463 0014 1368 ldr r3, [r2]
8464 .LVL737:
8465 0016 0349 ldr r1, .L567
8466 0018 0B40 ands r3, r1
8467 001a 1360 str r3, [r2]
5932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
8468 .loc 1 5932 0
8469 001c FFF7FEFF bl I2C_ITSlaveSeqCplt
8470 .LVL738:
8471 .L564:
5940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8472 .loc 1 5940 0
8473 @ sp needed
8474 0020 10BD pop {r4, pc}
8475 .L568:
8476 0022 C046 .align 2
8477 .L567:
8478 0024 FFBFFFFF .word -16385
8479 .cfi_endproc
8480 .LFE104:
8482 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits
8483 .align 1
8484 .syntax unified
8485 .code 16
8486 .thumb_func
8487 .fpu softvfp
8489 I2C_DMASlaveReceiveCplt:
8490 .LFB106:
5996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
8491 .loc 1 5996 0
8492 .cfi_startproc
8493 @ args = 0, pretend = 0, frame = 0
8494 @ frame_needed = 0, uses_anonymous_args = 0
8495 .LVL739:
8496 0000 10B5 push {r4, lr}
8497 .LCFI69:
8498 .cfi_def_cfa_offset 8
8499 .cfi_offset 4, -8
8500 .cfi_offset 14, -4
5997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
8501 .loc 1 5997 0
8502 0002 406A ldr r0, [r0, #36]
8503 .LVL740:
5998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8504 .loc 1 5998 0
8505 0004 C26A ldr r2, [r0, #44]
8506 .LVL741:
6000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
8507 .loc 1 6000 0
8508 0006 C36B ldr r3, [r0, #60]
8509 0008 1B68 ldr r3, [r3]
8510 000a 5B68 ldr r3, [r3, #4]
ARM GAS /tmp/ccpK4Ax4.s page 287
8511 000c 002B cmp r3, #0
8512 000e 09D1 bne .L569
6000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
8513 .loc 1 6000 0 is_stmt 0 discriminator 1
8514 0010 054B ldr r3, .L571
8515 0012 9A42 cmp r2, r3
8516 0014 06D0 beq .L569
6004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8517 .loc 1 6004 0 is_stmt 1
8518 0016 0268 ldr r2, [r0]
8519 .LVL742:
8520 0018 1368 ldr r3, [r2]
8521 001a 0449 ldr r1, .L571+4
8522 001c 0B40 ands r3, r1
8523 001e 1360 str r3, [r2]
6007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
8524 .loc 1 6007 0
8525 0020 FFF7FEFF bl I2C_ITSlaveSeqCplt
8526 .LVL743:
8527 .L569:
6015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8528 .loc 1 6015 0
8529 @ sp needed
8530 0024 10BD pop {r4, pc}
8531 .L572:
8532 0026 C046 .align 2
8533 .L571:
8534 0028 0000FFFF .word -65536
8535 002c FF7FFFFF .word -32769
8536 .cfi_endproc
8537 .LFE106:
8539 .section .text.HAL_I2C_AddrCallback,"ax",%progbits
8540 .align 1
8541 .weak HAL_I2C_AddrCallback
8542 .syntax unified
8543 .code 16
8544 .thumb_func
8545 .fpu softvfp
8547 HAL_I2C_AddrCallback:
8548 .LFB80:
4431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8549 .loc 1 4431 0
8550 .cfi_startproc
8551 @ args = 0, pretend = 0, frame = 0
8552 @ frame_needed = 0, uses_anonymous_args = 0
8553 @ link register save eliminated.
8554 .LVL744:
4440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8555 .loc 1 4440 0
8556 @ sp needed
8557 0000 7047 bx lr
8558 .cfi_endproc
8559 .LFE80:
8561 .section .text.I2C_ITAddrCplt,"ax",%progbits
8562 .align 1
8563 .syntax unified
8564 .code 16
ARM GAS /tmp/ccpK4Ax4.s page 288
8565 .thumb_func
8566 .fpu softvfp
8568 I2C_ITAddrCplt:
8569 .LFB95:
5223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint8_t transferdirection;
8570 .loc 1 5223 0
8571 .cfi_startproc
8572 @ args = 0, pretend = 0, frame = 0
8573 @ frame_needed = 0, uses_anonymous_args = 0
8574 .LVL745:
8575 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
8576 .LCFI70:
8577 .cfi_def_cfa_offset 24
8578 .cfi_offset 3, -24
8579 .cfi_offset 4, -20
8580 .cfi_offset 5, -16
8581 .cfi_offset 6, -12
8582 .cfi_offset 7, -8
8583 .cfi_offset 14, -4
8584 0002 0400 movs r4, r0
5233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8585 .loc 1 5233 0
8586 0004 4123 movs r3, #65
8587 0006 C35C ldrb r3, [r0, r3]
8588 0008 2822 movs r2, #40
8589 000a 1340 ands r3, r2
8590 000c 282B cmp r3, #40
8591 000e 06D0 beq .L579
5305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8592 .loc 1 5305 0
8593 0010 0368 ldr r3, [r0]
8594 0012 0822 movs r2, #8
8595 0014 DA61 str r2, [r3, #28]
5308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
8596 .loc 1 5308 0
8597 0016 4023 movs r3, #64
8598 0018 0022 movs r2, #0
8599 001a C254 strb r2, [r0, r3]
8600 .LVL746:
8601 .L574:
5310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8602 .loc 1 5310 0
8603 @ sp needed
8604 .LVL747:
8605 001c F8BD pop {r3, r4, r5, r6, r7, pc}
8606 .LVL748:
8607 .L579:
5235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
8608 .loc 1 5235 0
8609 001e 0368 ldr r3, [r0]
8610 0020 9E69 ldr r6, [r3, #24]
8611 0022 360C lsrs r6, r6, #16
8612 0024 273A subs r2, r2, #39
8613 0026 1640 ands r6, r2
8614 .LVL749:
5236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
8615 .loc 1 5236 0
ARM GAS /tmp/ccpK4Ax4.s page 289
8616 0028 9A69 ldr r2, [r3, #24]
8617 002a 120C lsrs r2, r2, #16
8618 002c FE27 movs r7, #254
8619 002e 3A40 ands r2, r7
8620 0030 1500 movs r5, r2
8621 .LVL750:
5237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
8622 .loc 1 5237 0
8623 0032 9A68 ldr r2, [r3, #8]
8624 0034 9205 lsls r2, r2, #22
8625 0036 920D lsrs r2, r2, #22
8626 .LVL751:
5238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8627 .loc 1 5238 0
8628 0038 D868 ldr r0, [r3, #12]
8629 .LVL752:
8630 003a 0740 ands r7, r0
8631 .LVL753:
5241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8632 .loc 1 5241 0
8633 003c E168 ldr r1, [r4, #12]
8634 .LVL754:
8635 003e 0229 cmp r1, #2
8636 0040 22D1 bne .L576
5243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8637 .loc 1 5243 0
8638 0042 D009 lsrs r0, r2, #7
8639 0044 4540 eors r5, r0
8640 .LVL755:
8641 0046 0431 adds r1, r1, #4
8642 0048 2942 tst r1, r5
8643 004a 10D1 bne .L577
8644 .LVL756:
5246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
8645 .loc 1 5246 0
8646 004c A16C ldr r1, [r4, #72]
8647 004e 0131 adds r1, r1, #1
8648 0050 A164 str r1, [r4, #72]
5247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8649 .loc 1 5247 0
8650 0052 A16C ldr r1, [r4, #72]
8651 0054 0229 cmp r1, #2
8652 0056 E1D1 bne .L574
5250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8653 .loc 1 5250 0
8654 0058 0021 movs r1, #0
8655 005a A164 str r1, [r4, #72]
5253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8656 .loc 1 5253 0
8657 005c 0820 movs r0, #8
8658 005e D861 str r0, [r3, #28]
5256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8659 .loc 1 5256 0
8660 0060 4023 movs r3, #64
8661 0062 E154 strb r1, [r4, r3]
5262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
8662 .loc 1 5262 0
ARM GAS /tmp/ccpK4Ax4.s page 290
8663 0064 3100 movs r1, r6
8664 0066 2000 movs r0, r4
8665 0068 FFF7FEFF bl HAL_I2C_AddrCallback
8666 .LVL757:
8667 006c D6E7 b .L574
8668 .LVL758:
8669 .L577:
5271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8670 .loc 1 5271 0
8671 006e 0421 movs r1, #4
8672 0070 2000 movs r0, r4
8673 0072 FFF7FEFF bl I2C_Disable_IRQ
8674 .LVL759:
5274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8675 .loc 1 5274 0
8676 0076 4023 movs r3, #64
8677 0078 0022 movs r2, #0
8678 007a E254 strb r2, [r4, r3]
5280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
8679 .loc 1 5280 0
8680 007c 3A00 movs r2, r7
8681 007e 3100 movs r1, r6
8682 0080 2000 movs r0, r4
8683 0082 FFF7FEFF bl HAL_I2C_AddrCallback
8684 .LVL760:
8685 0086 C9E7 b .L574
8686 .LVL761:
8687 .L576:
5288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8688 .loc 1 5288 0
8689 0088 0421 movs r1, #4
8690 008a 2000 movs r0, r4
8691 008c FFF7FEFF bl I2C_Disable_IRQ
8692 .LVL762:
5291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8693 .loc 1 5291 0
8694 0090 4023 movs r3, #64
8695 0092 0022 movs r2, #0
8696 0094 E254 strb r2, [r4, r3]
5297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
8697 .loc 1 5297 0
8698 0096 2A00 movs r2, r5
8699 0098 3100 movs r1, r6
8700 009a 2000 movs r0, r4
8701 009c FFF7FEFF bl HAL_I2C_AddrCallback
8702 .LVL763:
8703 00a0 BCE7 b .L574
8704 .cfi_endproc
8705 .LFE95:
8707 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits
8708 .align 1
8709 .weak HAL_I2C_ListenCpltCallback
8710 .syntax unified
8711 .code 16
8712 .thumb_func
8713 .fpu softvfp
8715 HAL_I2C_ListenCpltCallback:
ARM GAS /tmp/ccpK4Ax4.s page 291
8716 .LFB81:
4449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8717 .loc 1 4449 0
8718 .cfi_startproc
8719 @ args = 0, pretend = 0, frame = 0
8720 @ frame_needed = 0, uses_anonymous_args = 0
8721 @ link register save eliminated.
8722 .LVL764:
4456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8723 .loc 1 4456 0
8724 @ sp needed
8725 0000 7047 bx lr
8726 .cfi_endproc
8727 .LFE81:
8729 .section .text.I2C_ITListenCplt,"ax",%progbits
8730 .align 1
8731 .syntax unified
8732 .code 16
8733 .thumb_func
8734 .fpu softvfp
8736 I2C_ITListenCplt:
8737 .LFB100:
5683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */
8738 .loc 1 5683 0
8739 .cfi_startproc
8740 @ args = 0, pretend = 0, frame = 0
8741 @ frame_needed = 0, uses_anonymous_args = 0
8742 .LVL765:
8743 0000 10B5 push {r4, lr}
8744 .LCFI71:
8745 .cfi_def_cfa_offset 8
8746 .cfi_offset 4, -8
8747 .cfi_offset 14, -4
8748 0002 0400 movs r4, r0
5685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
8749 .loc 1 5685 0
8750 0004 164B ldr r3, .L583
8751 0006 C362 str r3, [r0, #44]
5686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
8752 .loc 1 5686 0
8753 0008 0023 movs r3, #0
8754 000a 0363 str r3, [r0, #48]
5687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8755 .loc 1 5687 0
8756 000c 4122 movs r2, #65
8757 000e 2020 movs r0, #32
8758 .LVL766:
8759 0010 A054 strb r0, [r4, r2]
5688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
8760 .loc 1 5688 0
8761 0012 0132 adds r2, r2, #1
8762 0014 A354 strb r3, [r4, r2]
5689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8763 .loc 1 5689 0
8764 0016 6363 str r3, [r4, #52]
5692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8765 .loc 1 5692 0
ARM GAS /tmp/ccpK4Ax4.s page 292
8766 0018 4B07 lsls r3, r1, #29
8767 001a 13D5 bpl .L582
5695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8768 .loc 1 5695 0
8769 001c 2368 ldr r3, [r4]
8770 001e 5B6A ldr r3, [r3, #36]
8771 0020 626A ldr r2, [r4, #36]
8772 0022 1370 strb r3, [r2]
5698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8773 .loc 1 5698 0
8774 0024 636A ldr r3, [r4, #36]
8775 0026 0133 adds r3, r3, #1
8776 0028 6362 str r3, [r4, #36]
5700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8777 .loc 1 5700 0
8778 002a 238D ldrh r3, [r4, #40]
8779 002c 002B cmp r3, #0
8780 002e 09D0 beq .L582
5702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
8781 .loc 1 5702 0
8782 0030 013B subs r3, r3, #1
8783 0032 2385 strh r3, [r4, #40]
5703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8784 .loc 1 5703 0
8785 0034 638D ldrh r3, [r4, #42]
8786 0036 013B subs r3, r3, #1
8787 0038 9BB2 uxth r3, r3
8788 003a 6385 strh r3, [r4, #42]
5706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
8789 .loc 1 5706 0
8790 003c 636C ldr r3, [r4, #68]
8791 003e 0422 movs r2, #4
8792 0040 1343 orrs r3, r2
8793 0042 6364 str r3, [r4, #68]
8794 .L582:
5711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8795 .loc 1 5711 0
8796 0044 0721 movs r1, #7
8797 .LVL767:
8798 0046 2000 movs r0, r4
8799 0048 FFF7FEFF bl I2C_Disable_IRQ
8800 .LVL768:
5714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8801 .loc 1 5714 0
8802 004c 2368 ldr r3, [r4]
8803 004e 1022 movs r2, #16
8804 0050 DA61 str r2, [r3, #28]
5717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8805 .loc 1 5717 0
8806 0052 4023 movs r3, #64
8807 0054 0022 movs r2, #0
8808 0056 E254 strb r2, [r4, r3]
5723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
8809 .loc 1 5723 0
8810 0058 2000 movs r0, r4
8811 005a FFF7FEFF bl HAL_I2C_ListenCpltCallback
8812 .LVL769:
ARM GAS /tmp/ccpK4Ax4.s page 293
5725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8813 .loc 1 5725 0
8814 @ sp needed
8815 .LVL770:
8816 005e 10BD pop {r4, pc}
8817 .L584:
8818 .align 2
8819 .L583:
8820 0060 0000FFFF .word -65536
8821 .cfi_endproc
8822 .LFE100:
8824 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits
8825 .align 1
8826 .weak HAL_I2C_MemTxCpltCallback
8827 .syntax unified
8828 .code 16
8829 .thumb_func
8830 .fpu softvfp
8832 HAL_I2C_MemTxCpltCallback:
8833 .LFB82:
4465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8834 .loc 1 4465 0
8835 .cfi_startproc
8836 @ args = 0, pretend = 0, frame = 0
8837 @ frame_needed = 0, uses_anonymous_args = 0
8838 @ link register save eliminated.
8839 .LVL771:
4472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8840 .loc 1 4472 0
8841 @ sp needed
8842 0000 7047 bx lr
8843 .cfi_endproc
8844 .LFE82:
8846 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits
8847 .align 1
8848 .weak HAL_I2C_MemRxCpltCallback
8849 .syntax unified
8850 .code 16
8851 .thumb_func
8852 .fpu softvfp
8854 HAL_I2C_MemRxCpltCallback:
8855 .LFB83:
4481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8856 .loc 1 4481 0
8857 .cfi_startproc
8858 @ args = 0, pretend = 0, frame = 0
8859 @ frame_needed = 0, uses_anonymous_args = 0
8860 @ link register save eliminated.
8861 .LVL772:
4488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8862 .loc 1 4488 0
8863 @ sp needed
8864 0000 7047 bx lr
8865 .cfi_endproc
8866 .LFE83:
8868 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits
8869 .align 1
ARM GAS /tmp/ccpK4Ax4.s page 294
8870 .weak HAL_I2C_ErrorCallback
8871 .syntax unified
8872 .code 16
8873 .thumb_func
8874 .fpu softvfp
8876 HAL_I2C_ErrorCallback:
8877 .LFB84:
4497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8878 .loc 1 4497 0
8879 .cfi_startproc
8880 @ args = 0, pretend = 0, frame = 0
8881 @ frame_needed = 0, uses_anonymous_args = 0
8882 @ link register save eliminated.
8883 .LVL773:
4504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8884 .loc 1 4504 0
8885 @ sp needed
8886 0000 7047 bx lr
8887 .cfi_endproc
8888 .LFE84:
8890 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits
8891 .align 1
8892 .weak HAL_I2C_AbortCpltCallback
8893 .syntax unified
8894 .code 16
8895 .thumb_func
8896 .fpu softvfp
8898 HAL_I2C_AbortCpltCallback:
8899 .LFB85:
4513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8900 .loc 1 4513 0
8901 .cfi_startproc
8902 @ args = 0, pretend = 0, frame = 0
8903 @ frame_needed = 0, uses_anonymous_args = 0
8904 @ link register save eliminated.
8905 .LVL774:
4520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8906 .loc 1 4520 0
8907 @ sp needed
8908 0000 7047 bx lr
8909 .cfi_endproc
8910 .LFE85:
8912 .section .text.I2C_ITError,"ax",%progbits
8913 .align 1
8914 .syntax unified
8915 .code 16
8916 .thumb_func
8917 .fpu softvfp
8919 I2C_ITError:
8920 .LFB101:
5734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
8921 .loc 1 5734 0
8922 .cfi_startproc
8923 @ args = 0, pretend = 0, frame = 0
8924 @ frame_needed = 0, uses_anonymous_args = 0
8925 .LVL775:
8926 0000 10B5 push {r4, lr}
ARM GAS /tmp/ccpK4Ax4.s page 295
8927 .LCFI72:
8928 .cfi_def_cfa_offset 8
8929 .cfi_offset 4, -8
8930 .cfi_offset 14, -4
8931 0002 0400 movs r4, r0
5735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8932 .loc 1 5735 0
8933 0004 4123 movs r3, #65
8934 0006 C35C ldrb r3, [r0, r3]
8935 .LVL776:
5738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
8936 .loc 1 5738 0
8937 0008 0022 movs r2, #0
8938 000a 4220 movs r0, #66
8939 .LVL777:
8940 000c 2254 strb r2, [r4, r0]
5739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = 0U;
8941 .loc 1 5739 0
8942 000e 3548 ldr r0, .L598
8943 0010 E062 str r0, [r4, #44]
5740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8944 .loc 1 5740 0
8945 0012 6285 strh r2, [r4, #42]
5743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8946 .loc 1 5743 0
8947 0014 626C ldr r2, [r4, #68]
8948 0016 1143 orrs r1, r2
8949 .LVL778:
8950 0018 6164 str r1, [r4, #68]
5747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
8951 .loc 1 5747 0
8952 001a 283B subs r3, r3, #40
8953 .LVL779:
8954 001c DBB2 uxtb r3, r3
5746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
8955 .loc 1 5746 0
8956 001e 022B cmp r3, #2
8957 0020 23D8 bhi .L590
5751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8958 .loc 1 5751 0
8959 0022 0321 movs r1, #3
8960 0024 2000 movs r0, r4
8961 0026 FFF7FEFF bl I2C_Disable_IRQ
8962 .LVL780:
5754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
8963 .loc 1 5754 0
8964 002a 4123 movs r3, #65
8965 002c 2822 movs r2, #40
8966 002e E254 strb r2, [r4, r3]
5755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
8967 .loc 1 5755 0
8968 0030 0023 movs r3, #0
8969 0032 2363 str r3, [r4, #48]
5756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
8970 .loc 1 5756 0
8971 0034 2C4B ldr r3, .L598+4
8972 0036 6363 str r3, [r4, #52]
ARM GAS /tmp/ccpK4Ax4.s page 296
8973 .L591:
5775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8974 .loc 1 5775 0
8975 0038 2368 ldr r3, [r4]
8976 003a 1A68 ldr r2, [r3]
8977 003c 5204 lsls r2, r2, #17
8978 003e 23D5 bpl .L593
5777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8979 .loc 1 5777 0
8980 0040 1A68 ldr r2, [r3]
8981 0042 2A49 ldr r1, .L598+8
8982 0044 0A40 ands r2, r1
8983 0046 1A60 str r2, [r3]
5779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8984 .loc 1 5779 0
8985 0048 A36B ldr r3, [r4, #56]
8986 004a 002B cmp r3, #0
8987 004c 0CD0 beq .L589
5783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8988 .loc 1 5783 0
8989 004e 284A ldr r2, .L598+12
8990 0050 5A63 str r2, [r3, #52]
5786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
8991 .loc 1 5786 0
8992 0052 4023 movs r3, #64
8993 0054 0022 movs r2, #0
8994 0056 E254 strb r2, [r4, r3]
5789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
8995 .loc 1 5789 0
8996 0058 A06B ldr r0, [r4, #56]
8997 005a FFF7FEFF bl HAL_DMA_Abort_IT
8998 .LVL781:
8999 005e 0028 cmp r0, #0
9000 0060 02D0 beq .L589
5792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9001 .loc 1 5792 0
9002 0062 A06B ldr r0, [r4, #56]
9003 0064 436B ldr r3, [r0, #52]
9004 0066 9847 blx r3
9005 .LVL782:
9006 .L589:
5844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9007 .loc 1 5844 0
9008 @ sp needed
9009 .LVL783:
9010 0068 10BD pop {r4, pc}
9011 .LVL784:
9012 .L590:
5761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9013 .loc 1 5761 0
9014 006a 0721 movs r1, #7
9015 006c 2000 movs r0, r4
9016 006e FFF7FEFF bl I2C_Disable_IRQ
9017 .LVL785:
5765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9018 .loc 1 5765 0
9019 0072 4123 movs r3, #65
ARM GAS /tmp/ccpK4Ax4.s page 297
9020 0074 E35C ldrb r3, [r4, r3]
9021 0076 602B cmp r3, #96
9022 0078 02D0 beq .L592
5768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9023 .loc 1 5768 0
9024 007a 4123 movs r3, #65
9025 007c 2022 movs r2, #32
9026 007e E254 strb r2, [r4, r3]
9027 .L592:
5770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
9028 .loc 1 5770 0
9029 0080 0023 movs r3, #0
9030 0082 2363 str r3, [r4, #48]
5771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9031 .loc 1 5771 0
9032 0084 6363 str r3, [r4, #52]
9033 0086 D7E7 b .L591
9034 .L593:
5797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9035 .loc 1 5797 0
9036 0088 1A68 ldr r2, [r3]
9037 008a 1204 lsls r2, r2, #16
9038 008c 14D5 bpl .L595
5799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9039 .loc 1 5799 0
9040 008e 1A68 ldr r2, [r3]
9041 0090 1849 ldr r1, .L598+16
9042 0092 0A40 ands r2, r1
9043 0094 1A60 str r2, [r3]
5801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9044 .loc 1 5801 0
9045 0096 E36B ldr r3, [r4, #60]
9046 0098 002B cmp r3, #0
9047 009a E5D0 beq .L589
5805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9048 .loc 1 5805 0
9049 009c 144A ldr r2, .L598+12
9050 009e 5A63 str r2, [r3, #52]
5808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9051 .loc 1 5808 0
9052 00a0 4023 movs r3, #64
9053 00a2 0022 movs r2, #0
9054 00a4 E254 strb r2, [r4, r3]
5811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9055 .loc 1 5811 0
9056 00a6 E06B ldr r0, [r4, #60]
9057 00a8 FFF7FEFF bl HAL_DMA_Abort_IT
9058 .LVL786:
9059 00ac 0028 cmp r0, #0
9060 00ae DBD0 beq .L589
5814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9061 .loc 1 5814 0
9062 00b0 E06B ldr r0, [r4, #60]
9063 00b2 436B ldr r3, [r0, #52]
9064 00b4 9847 blx r3
9065 .LVL787:
9066 00b6 D7E7 b .L589
ARM GAS /tmp/ccpK4Ax4.s page 298
9067 .L595:
5818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9068 .loc 1 5818 0
9069 00b8 4123 movs r3, #65
9070 00ba E35C ldrb r3, [r4, r3]
9071 00bc 602B cmp r3, #96
9072 00be 06D0 beq .L597
5835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9073 .loc 1 5835 0
9074 00c0 4023 movs r3, #64
9075 00c2 0022 movs r2, #0
9076 00c4 E254 strb r2, [r4, r3]
5841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9077 .loc 1 5841 0
9078 00c6 2000 movs r0, r4
9079 00c8 FFF7FEFF bl HAL_I2C_ErrorCallback
9080 .LVL788:
5844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9081 .loc 1 5844 0
9082 00cc CCE7 b .L589
9083 .L597:
5820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9084 .loc 1 5820 0
9085 00ce 1F3B subs r3, r3, #31
9086 00d0 2022 movs r2, #32
9087 00d2 E254 strb r2, [r4, r3]
5823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9088 .loc 1 5823 0
9089 00d4 013B subs r3, r3, #1
9090 00d6 0022 movs r2, #0
9091 00d8 E254 strb r2, [r4, r3]
5829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9092 .loc 1 5829 0
9093 00da 2000 movs r0, r4
9094 00dc FFF7FEFF bl HAL_I2C_AbortCpltCallback
9095 .LVL789:
9096 00e0 C2E7 b .L589
9097 .L599:
9098 00e2 C046 .align 2
9099 .L598:
9100 00e4 0000FFFF .word -65536
9101 00e8 00000000 .word I2C_Slave_ISR_IT
9102 00ec FFBFFFFF .word -16385
9103 00f0 00000000 .word I2C_DMAAbort
9104 00f4 FF7FFFFF .word -32769
9105 .cfi_endproc
9106 .LFE101:
9108 .section .text.I2C_ITSlaveCplt,"ax",%progbits
9109 .align 1
9110 .syntax unified
9111 .code 16
9112 .thumb_func
9113 .fpu softvfp
9115 I2C_ITSlaveCplt:
9116 .LFB99:
5546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
9117 .loc 1 5546 0
ARM GAS /tmp/ccpK4Ax4.s page 299
9118 .cfi_startproc
9119 @ args = 0, pretend = 0, frame = 0
9120 @ frame_needed = 0, uses_anonymous_args = 0
9121 .LVL790:
9122 0000 70B5 push {r4, r5, r6, lr}
9123 .LCFI73:
9124 .cfi_def_cfa_offset 16
9125 .cfi_offset 4, -16
9126 .cfi_offset 5, -12
9127 .cfi_offset 6, -8
9128 .cfi_offset 14, -4
9129 0002 0400 movs r4, r0
9130 0004 0D00 movs r5, r1
5547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
9131 .loc 1 5547 0
9132 0006 0368 ldr r3, [r0]
9133 0008 1E68 ldr r6, [r3]
9134 .LVL791:
5551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9135 .loc 1 5551 0
9136 000a 2022 movs r2, #32
9137 000c DA61 str r2, [r3, #28]
5554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9138 .loc 1 5554 0
9139 000e 0721 movs r1, #7
9140 .LVL792:
9141 0010 FFF7FEFF bl I2C_Disable_IRQ
9142 .LVL793:
5557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9143 .loc 1 5557 0
9144 0014 2268 ldr r2, [r4]
9145 0016 5168 ldr r1, [r2, #4]
9146 0018 8023 movs r3, #128
9147 001a 1B02 lsls r3, r3, #8
9148 001c 0B43 orrs r3, r1
9149 001e 5360 str r3, [r2, #4]
5560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9150 .loc 1 5560 0
9151 0020 2268 ldr r2, [r4]
9152 0022 5368 ldr r3, [r2, #4]
9153 0024 3A49 ldr r1, .L612
9154 0026 0B40 ands r3, r1
9155 0028 5360 str r3, [r2, #4]
5563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9156 .loc 1 5563 0
9157 002a 2000 movs r0, r4
9158 002c FFF7FEFF bl I2C_Flush_TXDR
9159 .LVL794:
5566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9160 .loc 1 5566 0
9161 0030 7304 lsls r3, r6, #17
9162 0032 3CD5 bpl .L601
5568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9163 .loc 1 5568 0
9164 0034 A36B ldr r3, [r4, #56]
9165 0036 002B cmp r3, #0
9166 0038 03D0 beq .L602
ARM GAS /tmp/ccpK4Ax4.s page 300
5570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9167 .loc 1 5570 0
9168 003a 1B68 ldr r3, [r3]
9169 003c 5B68 ldr r3, [r3, #4]
9170 003e 9BB2 uxth r3, r3
9171 0040 6385 strh r3, [r4, #42]
9172 .L602:
5586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9173 .loc 1 5586 0
9174 0042 6B07 lsls r3, r5, #29
9175 0044 11D5 bpl .L603
5589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9176 .loc 1 5589 0
9177 0046 0423 movs r3, #4
9178 0048 9D43 bics r5, r3
9179 .LVL795:
5592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9180 .loc 1 5592 0
9181 004a 2368 ldr r3, [r4]
9182 004c 5B6A ldr r3, [r3, #36]
9183 004e 626A ldr r2, [r4, #36]
9184 0050 1370 strb r3, [r2]
5595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9185 .loc 1 5595 0
9186 0052 636A ldr r3, [r4, #36]
9187 0054 0133 adds r3, r3, #1
9188 0056 6362 str r3, [r4, #36]
5597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9189 .loc 1 5597 0
9190 0058 238D ldrh r3, [r4, #40]
9191 005a 002B cmp r3, #0
9192 005c 05D0 beq .L603
5599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
9193 .loc 1 5599 0
9194 005e 013B subs r3, r3, #1
9195 0060 2385 strh r3, [r4, #40]
5600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9196 .loc 1 5600 0
9197 0062 638D ldrh r3, [r4, #42]
9198 0064 013B subs r3, r3, #1
9199 0066 9BB2 uxth r3, r3
9200 0068 6385 strh r3, [r4, #42]
9201 .L603:
5605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9202 .loc 1 5605 0
9203 006a 638D ldrh r3, [r4, #42]
9204 006c 9BB2 uxth r3, r3
9205 006e 002B cmp r3, #0
9206 0070 03D0 beq .L604
5608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9207 .loc 1 5608 0
9208 0072 636C ldr r3, [r4, #68]
9209 0074 0422 movs r2, #4
9210 0076 1343 orrs r3, r2
9211 0078 6364 str r3, [r4, #68]
9212 .L604:
5611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
ARM GAS /tmp/ccpK4Ax4.s page 301
9213 .loc 1 5611 0
9214 007a 0023 movs r3, #0
9215 007c 2363 str r3, [r4, #48]
5612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
9216 .loc 1 5612 0
9217 007e 4222 movs r2, #66
9218 0080 A354 strb r3, [r4, r2]
5613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9219 .loc 1 5613 0
9220 0082 6363 str r3, [r4, #52]
5615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9221 .loc 1 5615 0
9222 0084 636C ldr r3, [r4, #68]
9223 0086 002B cmp r3, #0
9224 0088 1BD1 bne .L609
5627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9225 .loc 1 5627 0
9226 008a E26A ldr r2, [r4, #44]
9227 008c 214B ldr r3, .L612+4
9228 008e 9A42 cmp r2, r3
9229 0090 24D1 bne .L610
5646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9230 .loc 1 5646 0
9231 0092 4123 movs r3, #65
9232 0094 E35C ldrb r3, [r4, r3]
9233 0096 222B cmp r3, #34
9234 0098 2FD0 beq .L611
5662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9235 .loc 1 5662 0
9236 009a 4123 movs r3, #65
9237 009c 2022 movs r2, #32
9238 009e E254 strb r2, [r4, r3]
5665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9239 .loc 1 5665 0
9240 00a0 013B subs r3, r3, #1
9241 00a2 0022 movs r2, #0
9242 00a4 E254 strb r2, [r4, r3]
5671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9243 .loc 1 5671 0
9244 00a6 2000 movs r0, r4
9245 00a8 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
9246 .LVL796:
5674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9247 .loc 1 5674 0
9248 00ac 24E0 b .L600
9249 .LVL797:
9250 .L601:
5573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9251 .loc 1 5573 0
9252 00ae 3304 lsls r3, r6, #16
9253 00b0 C7D5 bpl .L602
5575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9254 .loc 1 5575 0
9255 00b2 E36B ldr r3, [r4, #60]
9256 00b4 002B cmp r3, #0
9257 00b6 C4D0 beq .L602
5577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpK4Ax4.s page 302
9258 .loc 1 5577 0
9259 00b8 1B68 ldr r3, [r3]
9260 00ba 5B68 ldr r3, [r3, #4]
9261 00bc 9BB2 uxth r3, r3
9262 00be 6385 strh r3, [r4, #42]
9263 00c0 BFE7 b .L602
9264 .LVL798:
9265 .L609:
5618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9266 .loc 1 5618 0
9267 00c2 616C ldr r1, [r4, #68]
9268 00c4 2000 movs r0, r4
9269 00c6 FFF7FEFF bl I2C_ITError
9270 .LVL799:
5621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9271 .loc 1 5621 0
9272 00ca 4123 movs r3, #65
9273 00cc E35C ldrb r3, [r4, r3]
9274 00ce 282B cmp r3, #40
9275 00d0 12D1 bne .L600
5624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9276 .loc 1 5624 0
9277 00d2 2900 movs r1, r5
9278 00d4 2000 movs r0, r4
9279 00d6 FFF7FEFF bl I2C_ITListenCplt
9280 .LVL800:
9281 00da 0DE0 b .L600
9282 .L610:
5630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9283 .loc 1 5630 0
9284 00dc 2000 movs r0, r4
9285 00de FFF7FEFF bl I2C_ITSlaveSeqCplt
9286 .LVL801:
5632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9287 .loc 1 5632 0
9288 00e2 0C4B ldr r3, .L612+4
9289 00e4 E362 str r3, [r4, #44]
5633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9290 .loc 1 5633 0
9291 00e6 4123 movs r3, #65
9292 00e8 2022 movs r2, #32
9293 00ea E254 strb r2, [r4, r3]
5636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9294 .loc 1 5636 0
9295 00ec 013B subs r3, r3, #1
9296 00ee 0022 movs r2, #0
9297 00f0 E254 strb r2, [r4, r3]
5642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9298 .loc 1 5642 0
9299 00f2 2000 movs r0, r4
9300 00f4 FFF7FEFF bl HAL_I2C_ListenCpltCallback
9301 .LVL802:
9302 .L600:
5674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9303 .loc 1 5674 0
9304 @ sp needed
9305 .LVL803:
ARM GAS /tmp/ccpK4Ax4.s page 303
9306 .LVL804:
9307 .LVL805:
9308 00f8 70BD pop {r4, r5, r6, pc}
9309 .LVL806:
9310 .L611:
5648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9311 .loc 1 5648 0
9312 00fa 1F33 adds r3, r3, #31
9313 00fc 2022 movs r2, #32
9314 00fe E254 strb r2, [r4, r3]
5651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9315 .loc 1 5651 0
9316 0100 013B subs r3, r3, #1
9317 0102 0022 movs r2, #0
9318 0104 E254 strb r2, [r4, r3]
5657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9319 .loc 1 5657 0
9320 0106 2000 movs r0, r4
9321 0108 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
9322 .LVL807:
9323 010c F4E7 b .L600
9324 .L613:
9325 010e C046 .align 2
9326 .L612:
9327 0110 00E800FE .word -33495040
9328 0114 0000FFFF .word -65536
9329 .cfi_endproc
9330 .LFE99:
9332 .section .text.I2C_Slave_ISR_IT,"ax",%progbits
9333 .align 1
9334 .syntax unified
9335 .code 16
9336 .thumb_func
9337 .fpu softvfp
9339 I2C_Slave_ISR_IT:
9340 .LFB90:
4733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
9341 .loc 1 4733 0
9342 .cfi_startproc
9343 @ args = 0, pretend = 0, frame = 0
9344 @ frame_needed = 0, uses_anonymous_args = 0
9345 .LVL808:
9346 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
9347 .LCFI74:
9348 .cfi_def_cfa_offset 24
9349 .cfi_offset 3, -24
9350 .cfi_offset 4, -20
9351 .cfi_offset 5, -16
9352 .cfi_offset 6, -12
9353 .cfi_offset 7, -8
9354 .cfi_offset 14, -4
9355 0002 0400 movs r4, r0
9356 0004 0D00 movs r5, r1
9357 0006 1600 movs r6, r2
4734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
9358 .loc 1 4734 0
9359 0008 C76A ldr r7, [r0, #44]
ARM GAS /tmp/ccpK4Ax4.s page 304
9360 .LVL809:
4738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9361 .loc 1 4738 0
9362 000a 4023 movs r3, #64
9363 000c C35C ldrb r3, [r0, r3]
9364 000e 012B cmp r3, #1
9365 0010 00D1 bne .LCB9263
9366 0012 96E0 b .L628 @long jump
9367 .LCB9263:
4738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9368 .loc 1 4738 0 is_stmt 0 discriminator 2
9369 0014 0123 movs r3, #1
9370 0016 4022 movs r2, #64
9371 .LVL810:
9372 0018 8354 strb r3, [r0, r2]
4741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9373 .loc 1 4741 0 is_stmt 1 discriminator 2
9374 001a 4A09 lsrs r2, r1, #5
9375 001c 1342 tst r3, r2
9376 001e 01D0 beq .L616
4741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9377 .loc 1 4741 0 is_stmt 0 discriminator 1
9378 0020 B306 lsls r3, r6, #26
9379 0022 17D4 bmi .L629
9380 .LVL811:
9381 .L616:
4747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9382 .loc 1 4747 0 is_stmt 1
9383 0024 EB06 lsls r3, r5, #27
9384 0026 40D5 bpl .L617
4747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9385 .loc 1 4747 0 is_stmt 0 discriminator 1
9386 0028 F306 lsls r3, r6, #27
9387 002a 3ED5 bpl .L617
4753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9388 .loc 1 4753 0 is_stmt 1
9389 002c 638D ldrh r3, [r4, #42]
9390 002e 9BB2 uxth r3, r3
9391 0030 002B cmp r3, #0
9392 0032 28D1 bne .L618
4755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9393 .loc 1 4755 0
9394 0034 4133 adds r3, r3, #65
9395 0036 E35C ldrb r3, [r4, r3]
9396 0038 282B cmp r3, #40
9397 003a 0ED0 beq .L630
9398 .L619:
4760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9399 .loc 1 4760 0
9400 003c 4123 movs r3, #65
9401 003e E35C ldrb r3, [r4, r3]
9402 0040 292B cmp r3, #41
9403 0042 13D0 beq .L631
9404 .L621:
4775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9405 .loc 1 4775 0
9406 0044 2368 ldr r3, [r4]
ARM GAS /tmp/ccpK4Ax4.s page 305
9407 0046 1022 movs r2, #16
9408 0048 DA61 str r2, [r3, #28]
9409 .L620:
4852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9410 .loc 1 4852 0
9411 004a 4023 movs r3, #64
9412 004c 0022 movs r2, #0
9413 004e E254 strb r2, [r4, r3]
4854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9414 .loc 1 4854 0
9415 0050 0020 movs r0, #0
9416 .L615:
4855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9417 .loc 1 4855 0
9418 @ sp needed
9419 .LVL812:
9420 .LVL813:
9421 .LVL814:
9422 .LVL815:
9423 0052 F8BD pop {r3, r4, r5, r6, r7, pc}
9424 .LVL816:
9425 .L629:
4744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9426 .loc 1 4744 0
9427 0054 FFF7FEFF bl I2C_ITSlaveCplt
9428 .LVL817:
9429 0058 E4E7 b .L616
9430 .L630:
4755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9431 .loc 1 4755 0 discriminator 1
9432 005a 8023 movs r3, #128
9433 005c 9B04 lsls r3, r3, #18
9434 005e 9F42 cmp r7, r3
9435 0060 ECD1 bne .L619
4758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9436 .loc 1 4758 0
9437 0062 2900 movs r1, r5
9438 0064 2000 movs r0, r4
9439 0066 FFF7FEFF bl I2C_ITListenCplt
9440 .LVL818:
9441 006a EEE7 b .L620
9442 .L631:
4760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9443 .loc 1 4760 0 discriminator 1
9444 006c 364B ldr r3, .L633
9445 006e 9F42 cmp r7, r3
9446 0070 E8D0 beq .L621
4763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9447 .loc 1 4763 0
9448 0072 2368 ldr r3, [r4]
9449 0074 1022 movs r2, #16
9450 0076 DA61 str r2, [r3, #28]
4766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9451 .loc 1 4766 0
9452 0078 2000 movs r0, r4
9453 007a FFF7FEFF bl I2C_Flush_TXDR
9454 .LVL819:
ARM GAS /tmp/ccpK4Ax4.s page 306
4770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9455 .loc 1 4770 0
9456 007e 2000 movs r0, r4
9457 0080 FFF7FEFF bl I2C_ITSlaveSeqCplt
9458 .LVL820:
9459 0084 E1E7 b .L620
9460 .L618:
4782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9461 .loc 1 4782 0
9462 0086 2368 ldr r3, [r4]
9463 0088 1022 movs r2, #16
9464 008a DA61 str r2, [r3, #28]
4785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9465 .loc 1 4785 0
9466 008c 636C ldr r3, [r4, #68]
9467 008e 0C3A subs r2, r2, #12
9468 0090 1343 orrs r3, r2
9469 0092 6364 str r3, [r4, #68]
4787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9470 .loc 1 4787 0
9471 0094 002F cmp r7, #0
9472 0096 03D0 beq .L622
4787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9473 .loc 1 4787 0 is_stmt 0 discriminator 1
9474 0098 8023 movs r3, #128
9475 009a 5B04 lsls r3, r3, #17
9476 009c 9F42 cmp r7, r3
9477 009e D4D1 bne .L620
9478 .L622:
4790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9479 .loc 1 4790 0 is_stmt 1
9480 00a0 616C ldr r1, [r4, #68]
9481 00a2 2000 movs r0, r4
9482 00a4 FFF7FEFF bl I2C_ITError
9483 .LVL821:
9484 00a8 CFE7 b .L620
9485 .L617:
4794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9486 .loc 1 4794 0
9487 00aa 6B07 lsls r3, r5, #29
9488 00ac 1ED5 bpl .L623
4794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9489 .loc 1 4794 0 is_stmt 0 discriminator 1
9490 00ae 7307 lsls r3, r6, #29
9491 00b0 1CD5 bpl .L623
4796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9492 .loc 1 4796 0 is_stmt 1
9493 00b2 638D ldrh r3, [r4, #42]
9494 00b4 9BB2 uxth r3, r3
9495 00b6 002B cmp r3, #0
9496 00b8 0DD0 beq .L624
4799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9497 .loc 1 4799 0
9498 00ba 2368 ldr r3, [r4]
9499 00bc 5B6A ldr r3, [r3, #36]
9500 00be 626A ldr r2, [r4, #36]
9501 00c0 1370 strb r3, [r2]
ARM GAS /tmp/ccpK4Ax4.s page 307
4802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9502 .loc 1 4802 0
9503 00c2 636A ldr r3, [r4, #36]
9504 00c4 0133 adds r3, r3, #1
9505 00c6 6362 str r3, [r4, #36]
4804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
9506 .loc 1 4804 0
9507 00c8 238D ldrh r3, [r4, #40]
9508 00ca 013B subs r3, r3, #1
9509 00cc 2385 strh r3, [r4, #40]
4805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9510 .loc 1 4805 0
9511 00ce 638D ldrh r3, [r4, #42]
9512 00d0 013B subs r3, r3, #1
9513 00d2 9BB2 uxth r3, r3
9514 00d4 6385 strh r3, [r4, #42]
9515 .L624:
4808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9516 .loc 1 4808 0
9517 00d6 638D ldrh r3, [r4, #42]
9518 00d8 9BB2 uxth r3, r3
9519 00da 002B cmp r3, #0
9520 00dc B5D1 bne .L620
4808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9521 .loc 1 4808 0 is_stmt 0 discriminator 1
9522 00de 1A4B ldr r3, .L633
9523 00e0 9F42 cmp r7, r3
9524 00e2 B2D0 beq .L620
4812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9525 .loc 1 4812 0 is_stmt 1
9526 00e4 2000 movs r0, r4
9527 00e6 FFF7FEFF bl I2C_ITSlaveSeqCplt
9528 .LVL822:
9529 00ea AEE7 b .L620
9530 .L623:
4815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9531 .loc 1 4815 0
9532 00ec 2B07 lsls r3, r5, #28
9533 00ee 01D5 bpl .L625
4815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9534 .loc 1 4815 0 is_stmt 0 discriminator 1
9535 00f0 3307 lsls r3, r6, #28
9536 00f2 16D4 bmi .L632
9537 .L625:
4819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9538 .loc 1 4819 0 is_stmt 1
9539 00f4 AB07 lsls r3, r5, #30
9540 00f6 A8D5 bpl .L620
4819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9541 .loc 1 4819 0 is_stmt 0 discriminator 1
9542 00f8 B307 lsls r3, r6, #30
9543 00fa A6D5 bpl .L620
4825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9544 .loc 1 4825 0 is_stmt 1
9545 00fc 638D ldrh r3, [r4, #42]
9546 00fe 9BB2 uxth r3, r3
9547 0100 002B cmp r3, #0
ARM GAS /tmp/ccpK4Ax4.s page 308
9548 0102 13D0 beq .L626
4828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9549 .loc 1 4828 0
9550 0104 2368 ldr r3, [r4]
9551 0106 626A ldr r2, [r4, #36]
9552 0108 1278 ldrb r2, [r2]
9553 010a 9A62 str r2, [r3, #40]
4831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9554 .loc 1 4831 0
9555 010c 636A ldr r3, [r4, #36]
9556 010e 0133 adds r3, r3, #1
9557 0110 6362 str r3, [r4, #36]
4833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--;
9558 .loc 1 4833 0
9559 0112 638D ldrh r3, [r4, #42]
9560 0114 013B subs r3, r3, #1
9561 0116 9BB2 uxth r3, r3
9562 0118 6385 strh r3, [r4, #42]
4834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9563 .loc 1 4834 0
9564 011a 238D ldrh r3, [r4, #40]
9565 011c 013B subs r3, r3, #1
9566 011e 2385 strh r3, [r4, #40]
9567 0120 93E7 b .L620
9568 .L632:
4817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9569 .loc 1 4817 0
9570 0122 2900 movs r1, r5
9571 0124 2000 movs r0, r4
9572 0126 FFF7FEFF bl I2C_ITAddrCplt
9573 .LVL823:
9574 012a 8EE7 b .L620
9575 .L626:
4838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9576 .loc 1 4838 0
9577 012c 8023 movs r3, #128
9578 012e 5B04 lsls r3, r3, #17
9579 0130 9F42 cmp r7, r3
9580 0132 02D0 beq .L627
4838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9581 .loc 1 4838 0 is_stmt 0 discriminator 1
9582 0134 002F cmp r7, #0
9583 0136 00D0 beq .LCB9518
9584 0138 87E7 b .L620 @long jump
9585 .LCB9518:
9586 .L627:
4842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9587 .loc 1 4842 0 is_stmt 1
9588 013a 2000 movs r0, r4
9589 013c FFF7FEFF bl I2C_ITSlaveSeqCplt
9590 .LVL824:
9591 0140 83E7 b .L620
9592 .LVL825:
9593 .L628:
4738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9594 .loc 1 4738 0
9595 0142 0220 movs r0, #2
ARM GAS /tmp/ccpK4Ax4.s page 309
9596 .LVL826:
9597 0144 85E7 b .L615
9598 .L634:
9599 0146 C046 .align 2
9600 .L633:
9601 0148 0000FFFF .word -65536
9602 .cfi_endproc
9603 .LFE90:
9605 .section .text.I2C_ITMasterCplt,"ax",%progbits
9606 .align 1
9607 .syntax unified
9608 .code 16
9609 .thumb_func
9610 .fpu softvfp
9612 I2C_ITMasterCplt:
9613 .LFB98:
5427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror;
9614 .loc 1 5427 0
9615 .cfi_startproc
9616 @ args = 0, pretend = 0, frame = 0
9617 @ frame_needed = 0, uses_anonymous_args = 0
9618 .LVL827:
9619 0000 10B5 push {r4, lr}
9620 .LCFI75:
9621 .cfi_def_cfa_offset 8
9622 .cfi_offset 4, -8
9623 .cfi_offset 14, -4
9624 0002 0400 movs r4, r0
5431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9625 .loc 1 5431 0
9626 0004 0368 ldr r3, [r0]
9627 0006 2022 movs r2, #32
9628 0008 DA61 str r2, [r3, #28]
5434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9629 .loc 1 5434 0
9630 000a 0268 ldr r2, [r0]
9631 000c 5368 ldr r3, [r2, #4]
9632 000e 2F48 ldr r0, .L646
9633 .LVL828:
9634 0010 0340 ands r3, r0
9635 0012 5360 str r3, [r2, #4]
5437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL;
9636 .loc 1 5437 0
9637 0014 0023 movs r3, #0
9638 0016 2363 str r3, [r4, #48]
5438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
9639 .loc 1 5438 0
9640 0018 6363 str r3, [r4, #52]
5439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9641 .loc 1 5439 0
9642 001a 2D4B ldr r3, .L646+4
9643 001c E362 str r3, [r4, #44]
5441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9644 .loc 1 5441 0
9645 001e CB06 lsls r3, r1, #27
9646 0020 06D5 bpl .L636
5444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 310
9647 .loc 1 5444 0
9648 0022 2368 ldr r3, [r4]
9649 0024 1022 movs r2, #16
9650 0026 DA61 str r2, [r3, #28]
5447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9651 .loc 1 5447 0
9652 0028 636C ldr r3, [r4, #68]
9653 002a 0C3A subs r2, r2, #12
9654 002c 1343 orrs r3, r2
9655 002e 6364 str r3, [r4, #68]
9656 .L636:
5451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9657 .loc 1 5451 0
9658 0030 2000 movs r0, r4
9659 0032 FFF7FEFF bl I2C_Flush_TXDR
9660 .LVL829:
5454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9661 .loc 1 5454 0
9662 0036 0321 movs r1, #3
9663 0038 2000 movs r0, r4
9664 003a FFF7FEFF bl I2C_Disable_IRQ
9665 .LVL830:
5457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9666 .loc 1 5457 0
9667 003e 626C ldr r2, [r4, #68]
9668 .LVL831:
5460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9669 .loc 1 5460 0
9670 0040 4123 movs r3, #65
9671 0042 E35C ldrb r3, [r4, r3]
9672 0044 602B cmp r3, #96
9673 0046 19D0 beq .L637
5460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9674 .loc 1 5460 0 is_stmt 0 discriminator 1
9675 0048 002A cmp r2, #0
9676 004a 17D1 bne .L637
5466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9677 .loc 1 5466 0 is_stmt 1
9678 004c 4123 movs r3, #65
9679 004e E35C ldrb r3, [r4, r3]
9680 0050 212B cmp r3, #33
9681 0052 18D0 beq .L643
5500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9682 .loc 1 5500 0
9683 0054 4123 movs r3, #65
9684 0056 E35C ldrb r3, [r4, r3]
9685 0058 222B cmp r3, #34
9686 005a 13D1 bne .L635
5502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9687 .loc 1 5502 0
9688 005c 1F33 adds r3, r3, #31
9689 005e 2022 movs r2, #32
9690 .LVL832:
9691 0060 E254 strb r2, [r4, r3]
5504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9692 .loc 1 5504 0
9693 0062 0133 adds r3, r3, #1
ARM GAS /tmp/ccpK4Ax4.s page 311
9694 0064 E35C ldrb r3, [r4, r3]
9695 0066 402B cmp r3, #64
9696 0068 26D0 beq .L644
5520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9697 .loc 1 5520 0
9698 006a 0023 movs r3, #0
9699 006c 4222 movs r2, #66
9700 006e A354 strb r3, [r4, r2]
5523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9701 .loc 1 5523 0
9702 0070 023A subs r2, r2, #2
9703 0072 A354 strb r3, [r4, r2]
5529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9704 .loc 1 5529 0
9705 0074 2000 movs r0, r4
9706 0076 FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
9707 .LVL833:
5537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9708 .loc 1 5537 0
9709 007a 03E0 b .L635
9710 .LVL834:
9711 .L637:
5463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9712 .loc 1 5463 0
9713 007c 616C ldr r1, [r4, #68]
9714 007e 2000 movs r0, r4
9715 0080 FFF7FEFF bl I2C_ITError
9716 .LVL835:
9717 .L635:
5537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9718 .loc 1 5537 0
9719 @ sp needed
9720 .LVL836:
9721 0084 10BD pop {r4, pc}
9722 .LVL837:
9723 .L643:
5468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9724 .loc 1 5468 0
9725 0086 2033 adds r3, r3, #32
9726 0088 2022 movs r2, #32
9727 .LVL838:
9728 008a E254 strb r2, [r4, r3]
5470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9729 .loc 1 5470 0
9730 008c 0133 adds r3, r3, #1
9731 008e E35C ldrb r3, [r4, r3]
9732 0090 402B cmp r3, #64
9733 0092 08D0 beq .L645
5486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9734 .loc 1 5486 0
9735 0094 0023 movs r3, #0
9736 0096 4222 movs r2, #66
9737 0098 A354 strb r3, [r4, r2]
5489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9738 .loc 1 5489 0
9739 009a 023A subs r2, r2, #2
9740 009c A354 strb r3, [r4, r2]
ARM GAS /tmp/ccpK4Ax4.s page 312
5495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9741 .loc 1 5495 0
9742 009e 2000 movs r0, r4
9743 00a0 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
9744 .LVL839:
9745 00a4 EEE7 b .L635
9746 .L645:
5472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9747 .loc 1 5472 0
9748 00a6 0023 movs r3, #0
9749 00a8 2232 adds r2, r2, #34
9750 00aa A354 strb r3, [r4, r2]
5475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9751 .loc 1 5475 0
9752 00ac 023A subs r2, r2, #2
9753 00ae A354 strb r3, [r4, r2]
5481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9754 .loc 1 5481 0
9755 00b0 2000 movs r0, r4
9756 00b2 FFF7FEFF bl HAL_I2C_MemTxCpltCallback
9757 .LVL840:
9758 00b6 E5E7 b .L635
9759 .L644:
5506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9760 .loc 1 5506 0
9761 00b8 0023 movs r3, #0
9762 00ba 2232 adds r2, r2, #34
9763 00bc A354 strb r3, [r4, r2]
5509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9764 .loc 1 5509 0
9765 00be 023A subs r2, r2, #2
9766 00c0 A354 strb r3, [r4, r2]
5515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9767 .loc 1 5515 0
9768 00c2 2000 movs r0, r4
9769 00c4 FFF7FEFF bl HAL_I2C_MemRxCpltCallback
9770 .LVL841:
9771 00c8 DCE7 b .L635
9772 .L647:
9773 00ca C046 .align 2
9774 .L646:
9775 00cc 00E800FE .word -33495040
9776 00d0 0000FFFF .word -65536
9777 .cfi_endproc
9778 .LFE98:
9780 .section .text.I2C_Master_ISR_IT,"ax",%progbits
9781 .align 1
9782 .syntax unified
9783 .code 16
9784 .thumb_func
9785 .fpu softvfp
9787 I2C_Master_ISR_IT:
9788 .LFB89:
4596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress;
9789 .loc 1 4596 0
9790 .cfi_startproc
9791 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/ccpK4Ax4.s page 313
9792 @ frame_needed = 0, uses_anonymous_args = 0
9793 .LVL842:
9794 0000 70B5 push {r4, r5, r6, lr}
9795 .LCFI76:
9796 .cfi_def_cfa_offset 16
9797 .cfi_offset 4, -16
9798 .cfi_offset 5, -12
9799 .cfi_offset 6, -8
9800 .cfi_offset 14, -4
9801 0002 82B0 sub sp, sp, #8
9802 .LCFI77:
9803 .cfi_def_cfa_offset 24
9804 0004 0400 movs r4, r0
9805 0006 0D00 movs r5, r1
9806 0008 1600 movs r6, r2
9807 .LVL843:
4601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9808 .loc 1 4601 0
9809 000a 4023 movs r3, #64
9810 000c C35C ldrb r3, [r0, r3]
9811 000e 012B cmp r3, #1
9812 0010 00D1 bne .LCB9725
9813 0012 ADE0 b .L662 @long jump
9814 .LCB9725:
4601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9815 .loc 1 4601 0 is_stmt 0 discriminator 2
9816 0014 0123 movs r3, #1
9817 0016 4022 movs r2, #64
9818 .LVL844:
9819 0018 8354 strb r3, [r0, r2]
4603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9820 .loc 1 4603 0 is_stmt 1 discriminator 2
9821 001a 0A09 lsrs r2, r1, #4
9822 001c 1342 tst r3, r2
9823 001e 01D0 beq .L650
4603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9824 .loc 1 4603 0 is_stmt 0 discriminator 1
9825 0020 F306 lsls r3, r6, #27
9826 0022 1ED4 bmi .L663
9827 .L650:
4616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9828 .loc 1 4616 0 is_stmt 1
9829 0024 6B07 lsls r3, r5, #29
9830 0026 26D5 bpl .L652
4616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9831 .loc 1 4616 0 is_stmt 0 discriminator 1
9832 0028 7307 lsls r3, r6, #29
9833 002a 24D5 bpl .L652
4619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9834 .loc 1 4619 0 is_stmt 1
9835 002c 0423 movs r3, #4
9836 002e 9D43 bics r5, r3
9837 .LVL845:
4622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9838 .loc 1 4622 0
9839 0030 2368 ldr r3, [r4]
9840 0032 5B6A ldr r3, [r3, #36]
ARM GAS /tmp/ccpK4Ax4.s page 314
9841 0034 626A ldr r2, [r4, #36]
9842 0036 1370 strb r3, [r2]
4625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9843 .loc 1 4625 0
9844 0038 636A ldr r3, [r4, #36]
9845 003a 0133 adds r3, r3, #1
9846 003c 6362 str r3, [r4, #36]
4627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
9847 .loc 1 4627 0
9848 003e 238D ldrh r3, [r4, #40]
9849 0040 013B subs r3, r3, #1
9850 0042 2385 strh r3, [r4, #40]
4628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9851 .loc 1 4628 0
9852 0044 638D ldrh r3, [r4, #42]
9853 0046 013B subs r3, r3, #1
9854 0048 9BB2 uxth r3, r3
9855 004a 6385 strh r3, [r4, #42]
9856 .LVL846:
9857 .L651:
4712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9858 .loc 1 4712 0
9859 004c AB06 lsls r3, r5, #26
9860 004e 02D5 bpl .L661
4712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9861 .loc 1 4712 0 is_stmt 0 discriminator 1
9862 0050 B306 lsls r3, r6, #26
9863 0052 00D5 bpl .LCB9787
9864 0054 87E0 b .L664 @long jump
9865 .LCB9787:
9866 .L661:
4719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9867 .loc 1 4719 0 is_stmt 1
9868 0056 4023 movs r3, #64
9869 0058 0022 movs r2, #0
9870 005a E254 strb r2, [r4, r3]
4721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9871 .loc 1 4721 0
9872 005c 0020 movs r0, #0
9873 .L649:
4722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9874 .loc 1 4722 0
9875 005e 02B0 add sp, sp, #8
9876 @ sp needed
9877 .LVL847:
9878 .LVL848:
9879 .LVL849:
9880 0060 70BD pop {r4, r5, r6, pc}
9881 .LVL850:
9882 .L663:
4606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9883 .loc 1 4606 0
9884 0062 0368 ldr r3, [r0]
9885 0064 1022 movs r2, #16
9886 0066 DA61 str r2, [r3, #28]
4611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9887 .loc 1 4611 0
ARM GAS /tmp/ccpK4Ax4.s page 315
9888 0068 436C ldr r3, [r0, #68]
9889 006a 0C3A subs r2, r2, #12
9890 006c 1343 orrs r3, r2
9891 006e 4364 str r3, [r0, #68]
4614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9892 .loc 1 4614 0
9893 0070 FFF7FEFF bl I2C_Flush_TXDR
9894 .LVL851:
9895 0074 EAE7 b .L651
9896 .LVL852:
9897 .L652:
4630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9898 .loc 1 4630 0
9899 0076 AB07 lsls r3, r5, #30
9900 0078 10D5 bpl .L653
4630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9901 .loc 1 4630 0 is_stmt 0 discriminator 1
9902 007a B307 lsls r3, r6, #30
9903 007c 0ED5 bpl .L653
4633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9904 .loc 1 4633 0 is_stmt 1
9905 007e 2368 ldr r3, [r4]
9906 0080 626A ldr r2, [r4, #36]
9907 0082 1278 ldrb r2, [r2]
9908 0084 9A62 str r2, [r3, #40]
4636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9909 .loc 1 4636 0
9910 0086 636A ldr r3, [r4, #36]
9911 0088 0133 adds r3, r3, #1
9912 008a 6362 str r3, [r4, #36]
4638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--;
9913 .loc 1 4638 0
9914 008c 238D ldrh r3, [r4, #40]
9915 008e 013B subs r3, r3, #1
9916 0090 2385 strh r3, [r4, #40]
4639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9917 .loc 1 4639 0
9918 0092 638D ldrh r3, [r4, #42]
9919 0094 013B subs r3, r3, #1
9920 0096 9BB2 uxth r3, r3
9921 0098 6385 strh r3, [r4, #42]
9922 009a D7E7 b .L651
9923 .L653:
4641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9924 .loc 1 4641 0
9925 009c 2B06 lsls r3, r5, #24
9926 009e 40D5 bpl .L654
4641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9927 .loc 1 4641 0 is_stmt 0 discriminator 1
9928 00a0 7306 lsls r3, r6, #25
9929 00a2 3ED5 bpl .L654
4643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9930 .loc 1 4643 0 is_stmt 1
9931 00a4 638D ldrh r3, [r4, #42]
9932 00a6 9BB2 uxth r3, r3
9933 00a8 002B cmp r3, #0
9934 00aa 2DD0 beq .L655
ARM GAS /tmp/ccpK4Ax4.s page 316
4643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9935 .loc 1 4643 0 is_stmt 0 discriminator 1
9936 00ac 238D ldrh r3, [r4, #40]
9937 00ae 002B cmp r3, #0
9938 00b0 2AD1 bne .L655
4645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
9939 .loc 1 4645 0 is_stmt 1
9940 00b2 2368 ldr r3, [r4]
9941 00b4 5968 ldr r1, [r3, #4]
9942 .LVL853:
9943 00b6 8905 lsls r1, r1, #22
9944 00b8 890D lsrs r1, r1, #22
9945 .LVL854:
4647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9946 .loc 1 4647 0
9947 00ba 638D ldrh r3, [r4, #42]
9948 00bc 9BB2 uxth r3, r3
9949 00be FF2B cmp r3, #255
9950 00c0 0ED8 bhi .L665
4654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
9951 .loc 1 4654 0
9952 00c2 628D ldrh r2, [r4, #42]
9953 00c4 92B2 uxth r2, r2
9954 00c6 2285 strh r2, [r4, #40]
4655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
9955 .loc 1 4655 0
9956 00c8 E06A ldr r0, [r4, #44]
9957 .LVL855:
9958 00ca 2A4B ldr r3, .L666
9959 00cc 9842 cmp r0, r3
9960 00ce 12D0 beq .L657
4657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9961 .loc 1 4657 0
9962 00d0 E36A ldr r3, [r4, #44]
9963 00d2 D2B2 uxtb r2, r2
9964 00d4 0020 movs r0, #0
9965 00d6 0090 str r0, [sp]
9966 00d8 2000 movs r0, r4
9967 00da FFF7FEFF bl I2C_TransferConfig
9968 .LVL856:
9969 00de B5E7 b .L651
9970 .LVL857:
9971 .L665:
4649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
9972 .loc 1 4649 0
9973 00e0 FF23 movs r3, #255
9974 00e2 2385 strh r3, [r4, #40]
4650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9975 .loc 1 4650 0
9976 00e4 7F3B subs r3, r3, #127
9977 00e6 0022 movs r2, #0
9978 00e8 0092 str r2, [sp]
9979 00ea 5B04 lsls r3, r3, #17
9980 00ec FF32 adds r2, r2, #255
9981 00ee 2000 movs r0, r4
9982 .LVL858:
9983 00f0 FFF7FEFF bl I2C_TransferConfig
ARM GAS /tmp/ccpK4Ax4.s page 317
9984 .LVL859:
9985 00f4 AAE7 b .L651
9986 .LVL860:
9987 .L657:
4661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
9988 .loc 1 4661 0
9989 00f6 8023 movs r3, #128
9990 00f8 D2B2 uxtb r2, r2
9991 00fa 0020 movs r0, #0
9992 00fc 0090 str r0, [sp]
9993 00fe 9B04 lsls r3, r3, #18
9994 0100 2000 movs r0, r4
9995 0102 FFF7FEFF bl I2C_TransferConfig
9996 .LVL861:
9997 0106 A1E7 b .L651
9998 .LVL862:
9999 .L655:
4668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10000 .loc 1 4668 0
10001 0108 2368 ldr r3, [r4]
10002 010a 5B68 ldr r3, [r3, #4]
10003 010c 9B01 lsls r3, r3, #6
10004 010e 03D4 bmi .L658
4671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10005 .loc 1 4671 0
10006 0110 2000 movs r0, r4
10007 .LVL863:
10008 0112 FFF7FEFF bl I2C_ITMasterSeqCplt
10009 .LVL864:
10010 0116 99E7 b .L651
10011 .LVL865:
10012 .L658:
4677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10013 .loc 1 4677 0
10014 0118 4021 movs r1, #64
10015 .LVL866:
10016 011a 2000 movs r0, r4
10017 .LVL867:
10018 011c FFF7FEFF bl I2C_ITError
10019 .LVL868:
10020 0120 94E7 b .L651
10021 .LVL869:
10022 .L654:
4681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10023 .loc 1 4681 0
10024 0122 6B06 lsls r3, r5, #25
10025 0124 00D4 bmi .LCB9991
10026 0126 91E7 b .L651 @long jump
10027 .LCB9991:
4681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10028 .loc 1 4681 0 is_stmt 0 discriminator 1
10029 0128 7306 lsls r3, r6, #25
10030 012a 00D4 bmi .LCB9996
10031 012c 8EE7 b .L651 @long jump
10032 .LCB9996:
4683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10033 .loc 1 4683 0 is_stmt 1
ARM GAS /tmp/ccpK4Ax4.s page 318
10034 012e 638D ldrh r3, [r4, #42]
10035 0130 9BB2 uxth r3, r3
10036 0132 002B cmp r3, #0
10037 0134 12D1 bne .L659
4685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10038 .loc 1 4685 0
10039 0136 2368 ldr r3, [r4]
10040 0138 5A68 ldr r2, [r3, #4]
10041 013a 9201 lsls r2, r2, #6
10042 013c 00D5 bpl .LCB10006
10043 013e 85E7 b .L651 @long jump
10044 .LCB10006:
4688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10045 .loc 1 4688 0
10046 0140 E16A ldr r1, [r4, #44]
10047 .LVL870:
10048 0142 0C4A ldr r2, .L666
10049 0144 9142 cmp r1, r2
10050 0146 05D1 bne .L660
4691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10051 .loc 1 4691 0
10052 0148 5968 ldr r1, [r3, #4]
10053 014a 8022 movs r2, #128
10054 014c D201 lsls r2, r2, #7
10055 014e 0A43 orrs r2, r1
10056 0150 5A60 str r2, [r3, #4]
10057 0152 7BE7 b .L651
10058 .L660:
4696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10059 .loc 1 4696 0
10060 0154 2000 movs r0, r4
10061 .LVL871:
10062 0156 FFF7FEFF bl I2C_ITMasterSeqCplt
10063 .LVL872:
10064 015a 77E7 b .L651
10065 .LVL873:
10066 .L659:
4704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10067 .loc 1 4704 0
10068 015c 4021 movs r1, #64
10069 .LVL874:
10070 015e 2000 movs r0, r4
10071 .LVL875:
10072 0160 FFF7FEFF bl I2C_ITError
10073 .LVL876:
10074 0164 72E7 b .L651
10075 .LVL877:
10076 .L664:
4715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10077 .loc 1 4715 0
10078 0166 2900 movs r1, r5
10079 0168 2000 movs r0, r4
10080 016a FFF7FEFF bl I2C_ITMasterCplt
10081 .LVL878:
10082 016e 72E7 b .L661
10083 .LVL879:
10084 .L662:
ARM GAS /tmp/ccpK4Ax4.s page 319
4601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10085 .loc 1 4601 0
10086 0170 0220 movs r0, #2
10087 .LVL880:
10088 0172 74E7 b .L649
10089 .L667:
10090 .align 2
10091 .L666:
10092 0174 0000FFFF .word -65536
10093 .cfi_endproc
10094 .LFE89:
10096 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits
10097 .align 1
10098 .syntax unified
10099 .code 16
10100 .thumb_func
10101 .fpu softvfp
10103 I2C_Slave_ISR_DMA:
10104 .LFB92:
5001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10105 .loc 1 5001 0
10106 .cfi_startproc
10107 @ args = 0, pretend = 0, frame = 0
10108 @ frame_needed = 0, uses_anonymous_args = 0
10109 .LVL881:
10110 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
10111 .LCFI78:
10112 .cfi_def_cfa_offset 24
10113 .cfi_offset 3, -24
10114 .cfi_offset 4, -20
10115 .cfi_offset 5, -16
10116 .cfi_offset 6, -12
10117 .cfi_offset 7, -8
10118 .cfi_offset 14, -4
10119 0002 0400 movs r4, r0
10120 0004 0D00 movs r5, r1
10121 0006 1600 movs r6, r2
5002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
10122 .loc 1 5002 0
10123 0008 C76A ldr r7, [r0, #44]
10124 .LVL882:
5006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10125 .loc 1 5006 0
10126 000a 4023 movs r3, #64
10127 000c C35C ldrb r3, [r0, r3]
10128 000e 012B cmp r3, #1
10129 0010 00D1 bne .LCB10095
10130 0012 75E0 b .L682 @long jump
10131 .LCB10095:
5006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10132 .loc 1 5006 0 is_stmt 0 discriminator 2
10133 0014 0123 movs r3, #1
10134 0016 4022 movs r2, #64
10135 .LVL883:
10136 0018 8354 strb r3, [r0, r2]
5009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10137 .loc 1 5009 0 is_stmt 1 discriminator 2
ARM GAS /tmp/ccpK4Ax4.s page 320
10138 001a 4A09 lsrs r2, r1, #5
10139 001c 1342 tst r3, r2
10140 001e 01D0 beq .L670
5009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10141 .loc 1 5009 0 is_stmt 0 discriminator 1
10142 0020 B306 lsls r3, r6, #26
10143 0022 14D4 bmi .L686
10144 .LVL884:
10145 .L670:
5015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10146 .loc 1 5015 0 is_stmt 1
10147 0024 EB06 lsls r3, r5, #27
10148 0026 5DD5 bpl .L671
5015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10149 .loc 1 5015 0 is_stmt 0 discriminator 1
10150 0028 F306 lsls r3, r6, #27
10151 002a 5BD5 bpl .L671
5021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
10152 .loc 1 5021 0 is_stmt 1
10153 002c B20B lsrs r2, r6, #14
10154 002e 0123 movs r3, #1
10155 0030 1340 ands r3, r2
10156 0032 01D1 bne .L672
5021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
10157 .loc 1 5021 0 is_stmt 0 discriminator 1
10158 0034 3204 lsls r2, r6, #16
10159 0036 51D5 bpl .L673
10160 .L672:
5025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10161 .loc 1 5025 0 is_stmt 1
10162 0038 E26B ldr r2, [r4, #60]
10163 003a 002A cmp r2, #0
10164 003c 0AD0 beq .L683
5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10165 .loc 1 5027 0
10166 003e 3104 lsls r1, r6, #16
10167 0040 0AD5 bpl .L684
5029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10168 .loc 1 5029 0
10169 0042 1268 ldr r2, [r2]
10170 0044 5268 ldr r2, [r2, #4]
10171 0046 002A cmp r2, #0
10172 0048 24D0 beq .L685
5003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10173 .loc 1 5003 0
10174 004a 0021 movs r1, #0
10175 004c 05E0 b .L674
10176 .LVL885:
10177 .L686:
5012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10178 .loc 1 5012 0
10179 004e FFF7FEFF bl I2C_ITSlaveCplt
10180 .LVL886:
10181 0052 E7E7 b .L670
10182 .L683:
5003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10183 .loc 1 5003 0
ARM GAS /tmp/ccpK4Ax4.s page 321
10184 0054 0021 movs r1, #0
10185 0056 00E0 b .L674
10186 .L684:
10187 0058 0021 movs r1, #0
10188 .L674:
10189 .LVL887:
5037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10190 .loc 1 5037 0
10191 005a A26B ldr r2, [r4, #56]
10192 005c 002A cmp r2, #0
10193 005e 05D0 beq .L675
5039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10194 .loc 1 5039 0
10195 0060 002B cmp r3, #0
10196 0062 03D0 beq .L675
5041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10197 .loc 1 5041 0
10198 0064 1368 ldr r3, [r2]
10199 0066 5B68 ldr r3, [r3, #4]
10200 0068 002B cmp r3, #0
10201 006a 15D0 beq .L676
10202 .L675:
5048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10203 .loc 1 5048 0
10204 006c 0129 cmp r1, #1
10205 006e 13D0 beq .L676
5077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10206 .loc 1 5077 0
10207 0070 2368 ldr r3, [r4]
10208 0072 1022 movs r2, #16
10209 0074 DA61 str r2, [r3, #28]
5080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10210 .loc 1 5080 0
10211 0076 636C ldr r3, [r4, #68]
10212 0078 0C3A subs r2, r2, #12
10213 007a 1343 orrs r3, r2
10214 007c 6364 str r3, [r4, #68]
5082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10215 .loc 1 5082 0
10216 007e 002F cmp r7, #0
10217 0080 03D0 beq .L681
5082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10218 .loc 1 5082 0 is_stmt 0 discriminator 1
10219 0082 8023 movs r3, #128
10220 0084 5B04 lsls r3, r3, #17
10221 0086 9F42 cmp r7, r3
10222 0088 30D1 bne .L679
10223 .L681:
5085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10224 .loc 1 5085 0 is_stmt 1
10225 008a 616C ldr r1, [r4, #68]
10226 .LVL888:
10227 008c 2000 movs r0, r4
10228 008e FFF7FEFF bl I2C_ITError
10229 .LVL889:
10230 0092 2BE0 b .L679
10231 .LVL890:
ARM GAS /tmp/ccpK4Ax4.s page 322
10232 .L685:
5031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10233 .loc 1 5031 0
10234 0094 0121 movs r1, #1
10235 0096 E0E7 b .L674
10236 .LVL891:
10237 .L676:
5050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10238 .loc 1 5050 0
10239 0098 4123 movs r3, #65
10240 009a E35C ldrb r3, [r4, r3]
10241 009c 282B cmp r3, #40
10242 009e 07D0 beq .L687
10243 .L678:
5055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10244 .loc 1 5055 0
10245 00a0 4123 movs r3, #65
10246 00a2 E35C ldrb r3, [r4, r3]
10247 00a4 292B cmp r3, #41
10248 00a6 0CD0 beq .L688
10249 .L680:
5070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10250 .loc 1 5070 0
10251 00a8 2368 ldr r3, [r4]
10252 00aa 1022 movs r2, #16
10253 00ac DA61 str r2, [r3, #28]
10254 00ae 1DE0 b .L679
10255 .L687:
5050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10256 .loc 1 5050 0 discriminator 1
10257 00b0 8023 movs r3, #128
10258 00b2 9B04 lsls r3, r3, #18
10259 00b4 9F42 cmp r7, r3
10260 00b6 F3D1 bne .L678
5053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10261 .loc 1 5053 0
10262 00b8 2900 movs r1, r5
10263 .LVL892:
10264 00ba 2000 movs r0, r4
10265 00bc FFF7FEFF bl I2C_ITListenCplt
10266 .LVL893:
10267 00c0 14E0 b .L679
10268 .LVL894:
10269 .L688:
5055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10270 .loc 1 5055 0 discriminator 1
10271 00c2 104B ldr r3, .L690
10272 00c4 9F42 cmp r7, r3
10273 00c6 EFD0 beq .L680
5058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10274 .loc 1 5058 0
10275 00c8 2368 ldr r3, [r4]
10276 00ca 1022 movs r2, #16
10277 00cc DA61 str r2, [r3, #28]
5061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10278 .loc 1 5061 0
10279 00ce 2000 movs r0, r4
ARM GAS /tmp/ccpK4Ax4.s page 323
10280 00d0 FFF7FEFF bl I2C_Flush_TXDR
10281 .LVL895:
5065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10282 .loc 1 5065 0
10283 00d4 2000 movs r0, r4
10284 00d6 FFF7FEFF bl I2C_ITSlaveSeqCplt
10285 .LVL896:
10286 00da 07E0 b .L679
10287 .LVL897:
10288 .L673:
5092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10289 .loc 1 5092 0
10290 00dc 2368 ldr r3, [r4]
10291 00de 1022 movs r2, #16
10292 00e0 DA61 str r2, [r3, #28]
10293 00e2 03E0 b .L679
10294 .L671:
5095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10295 .loc 1 5095 0
10296 00e4 2B07 lsls r3, r5, #28
10297 00e6 01D5 bpl .L679
5095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10298 .loc 1 5095 0 is_stmt 0 discriminator 1
10299 00e8 3307 lsls r3, r6, #28
10300 00ea 04D4 bmi .L689
10301 .LVL898:
10302 .L679:
5105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10303 .loc 1 5105 0 is_stmt 1
10304 00ec 4023 movs r3, #64
10305 00ee 0022 movs r2, #0
10306 00f0 E254 strb r2, [r4, r3]
5107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10307 .loc 1 5107 0
10308 00f2 0020 movs r0, #0
10309 .L669:
5108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10310 .loc 1 5108 0
10311 @ sp needed
10312 .LVL899:
10313 .LVL900:
10314 .LVL901:
10315 .LVL902:
10316 00f4 F8BD pop {r3, r4, r5, r6, r7, pc}
10317 .LVL903:
10318 .L689:
5097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10319 .loc 1 5097 0
10320 00f6 2900 movs r1, r5
10321 00f8 2000 movs r0, r4
10322 00fa FFF7FEFF bl I2C_ITAddrCplt
10323 .LVL904:
10324 00fe F5E7 b .L679
10325 .LVL905:
10326 .L682:
5006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10327 .loc 1 5006 0
ARM GAS /tmp/ccpK4Ax4.s page 324
10328 0100 0220 movs r0, #2
10329 .LVL906:
10330 0102 F7E7 b .L669
10331 .L691:
10332 .align 2
10333 .L690:
10334 0104 0000FFFF .word -65536
10335 .cfi_endproc
10336 .LFE92:
10338 .section .text.I2C_Master_ISR_DMA,"ax",%progbits
10339 .align 1
10340 .syntax unified
10341 .code 16
10342 .thumb_func
10343 .fpu softvfp
10345 I2C_Master_ISR_DMA:
10346 .LFB91:
4866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress;
10347 .loc 1 4866 0
10348 .cfi_startproc
10349 @ args = 0, pretend = 0, frame = 0
10350 @ frame_needed = 0, uses_anonymous_args = 0
10351 .LVL907:
10352 0000 10B5 push {r4, lr}
10353 .LCFI79:
10354 .cfi_def_cfa_offset 8
10355 .cfi_offset 4, -8
10356 .cfi_offset 14, -4
10357 0002 82B0 sub sp, sp, #8
10358 .LCFI80:
10359 .cfi_def_cfa_offset 16
10360 0004 0400 movs r4, r0
4871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10361 .loc 1 4871 0
10362 0006 4023 movs r3, #64
10363 0008 C35C ldrb r3, [r0, r3]
10364 000a 012B cmp r3, #1
10365 000c 00D1 bne .LCB10362
10366 000e 91E0 b .L705 @long jump
10367 .LCB10362:
4871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10368 .loc 1 4871 0 is_stmt 0 discriminator 2
10369 0010 0123 movs r3, #1
10370 0012 4020 movs r0, #64
10371 .LVL908:
10372 0014 2354 strb r3, [r4, r0]
4873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10373 .loc 1 4873 0 is_stmt 1 discriminator 2
10374 0016 0809 lsrs r0, r1, #4
10375 0018 0342 tst r3, r0
10376 001a 01D0 beq .L694
4873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10377 .loc 1 4873 0 is_stmt 0 discriminator 1
10378 001c D306 lsls r3, r2, #27
10379 001e 2FD4 bmi .L707
10380 .L694:
4889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpK4Ax4.s page 325
10381 .loc 1 4889 0 is_stmt 1
10382 0020 0B06 lsls r3, r1, #24
10383 0022 60D5 bpl .L696
4889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10384 .loc 1 4889 0 is_stmt 0 discriminator 1
10385 0024 5306 lsls r3, r2, #25
10386 0026 5ED5 bpl .L696
4892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10387 .loc 1 4892 0 is_stmt 1
10388 0028 2268 ldr r2, [r4]
10389 .LVL909:
10390 002a 1368 ldr r3, [r2]
10391 002c 4021 movs r1, #64
10392 .LVL910:
10393 002e 8B43 bics r3, r1
10394 0030 1360 str r3, [r2]
4894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10395 .loc 1 4894 0
10396 0032 638D ldrh r3, [r4, #42]
10397 0034 9BB2 uxth r3, r3
10398 0036 002B cmp r3, #0
10399 0038 48D0 beq .L697
4897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10400 .loc 1 4897 0
10401 003a 2368 ldr r3, [r4]
10402 003c 5968 ldr r1, [r3, #4]
10403 003e 8905 lsls r1, r1, #22
10404 0040 890D lsrs r1, r1, #22
10405 .LVL911:
4900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10406 .loc 1 4900 0
10407 0042 638D ldrh r3, [r4, #42]
10408 0044 9BB2 uxth r3, r3
10409 0046 FF2B cmp r3, #255
10410 0048 2ED9 bls .L698
4902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
10411 .loc 1 4902 0
10412 004a FF23 movs r3, #255
10413 004c 2385 strh r3, [r4, #40]
10414 .LVL912:
4903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10415 .loc 1 4903 0
10416 004e 8023 movs r3, #128
10417 0050 5B04 lsls r3, r3, #17
10418 .LVL913:
10419 .L699:
4919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10420 .loc 1 4919 0
10421 0052 228D ldrh r2, [r4, #40]
10422 0054 D2B2 uxtb r2, r2
10423 0056 0020 movs r0, #0
10424 0058 0090 str r0, [sp]
10425 005a 2000 movs r0, r4
10426 005c FFF7FEFF bl I2C_TransferConfig
10427 .LVL914:
4922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10428 .loc 1 4922 0
ARM GAS /tmp/ccpK4Ax4.s page 326
10429 0060 638D ldrh r3, [r4, #42]
10430 0062 228D ldrh r2, [r4, #40]
10431 0064 9B1A subs r3, r3, r2
10432 0066 9BB2 uxth r3, r3
10433 0068 6385 strh r3, [r4, #42]
4925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10434 .loc 1 4925 0
10435 006a 4123 movs r3, #65
10436 006c E35C ldrb r3, [r4, r3]
10437 006e 222B cmp r3, #34
10438 0070 25D0 beq .L708
4931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10439 .loc 1 4931 0
10440 0072 2268 ldr r2, [r4]
10441 0074 1168 ldr r1, [r2]
10442 0076 8023 movs r3, #128
10443 0078 DB01 lsls r3, r3, #7
10444 007a 0B43 orrs r3, r1
10445 007c 1360 str r3, [r2]
10446 007e 0DE0 b .L695
10447 .LVL915:
10448 .L707:
4876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10449 .loc 1 4876 0
10450 0080 2368 ldr r3, [r4]
10451 0082 1022 movs r2, #16
10452 .LVL916:
10453 0084 DA61 str r2, [r3, #28]
4879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10454 .loc 1 4879 0
10455 0086 636C ldr r3, [r4, #68]
10456 0088 0C3A subs r2, r2, #12
10457 008a 1343 orrs r3, r2
10458 008c 6364 str r3, [r4, #68]
4884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10459 .loc 1 4884 0
10460 008e 1221 movs r1, #18
10461 .LVL917:
10462 0090 2000 movs r0, r4
10463 0092 FFF7FEFF bl I2C_Enable_IRQ
10464 .LVL918:
4887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10465 .loc 1 4887 0
10466 0096 2000 movs r0, r4
10467 0098 FFF7FEFF bl I2C_Flush_TXDR
10468 .LVL919:
10469 .L695:
4987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10470 .loc 1 4987 0
10471 009c 4023 movs r3, #64
10472 009e 0022 movs r2, #0
10473 00a0 E254 strb r2, [r4, r3]
4989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10474 .loc 1 4989 0
10475 00a2 0020 movs r0, #0
10476 .L693:
4990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
ARM GAS /tmp/ccpK4Ax4.s page 327
10477 .loc 1 4990 0
10478 00a4 02B0 add sp, sp, #8
10479 @ sp needed
10480 .LVL920:
10481 00a6 10BD pop {r4, pc}
10482 .LVL921:
10483 .L698:
4907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
10484 .loc 1 4907 0
10485 00a8 638D ldrh r3, [r4, #42]
10486 00aa 2385 strh r3, [r4, #40]
4908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10487 .loc 1 4908 0
10488 00ac E26A ldr r2, [r4, #44]
10489 00ae 224B ldr r3, .L709
10490 00b0 9A42 cmp r2, r3
10491 00b2 01D0 beq .L706
4910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10492 .loc 1 4910 0
10493 00b4 E36A ldr r3, [r4, #44]
10494 .LVL922:
10495 00b6 CCE7 b .L699
10496 .LVL923:
10497 .L706:
4914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10498 .loc 1 4914 0
10499 00b8 8023 movs r3, #128
10500 00ba 9B04 lsls r3, r3, #18
10501 00bc C9E7 b .L699
10502 .LVL924:
10503 .L708:
4927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10504 .loc 1 4927 0
10505 00be 2268 ldr r2, [r4]
10506 00c0 1168 ldr r1, [r2]
10507 00c2 8023 movs r3, #128
10508 00c4 1B02 lsls r3, r3, #8
10509 00c6 0B43 orrs r3, r1
10510 00c8 1360 str r3, [r2]
10511 00ca E7E7 b .L695
10512 .L697:
4937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10513 .loc 1 4937 0
10514 00cc 2368 ldr r3, [r4]
10515 00ce 5B68 ldr r3, [r3, #4]
10516 00d0 9B01 lsls r3, r3, #6
10517 00d2 03D4 bmi .L701
4940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10518 .loc 1 4940 0
10519 00d4 2000 movs r0, r4
10520 00d6 FFF7FEFF bl I2C_ITMasterSeqCplt
10521 .LVL925:
10522 00da DFE7 b .L695
10523 .L701:
4946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10524 .loc 1 4946 0
10525 00dc 4021 movs r1, #64
ARM GAS /tmp/ccpK4Ax4.s page 328
10526 00de 2000 movs r0, r4
10527 00e0 FFF7FEFF bl I2C_ITError
10528 .LVL926:
10529 00e4 DAE7 b .L695
10530 .LVL927:
10531 .L696:
4950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10532 .loc 1 4950 0
10533 00e6 4B06 lsls r3, r1, #25
10534 00e8 1CD5 bpl .L702
4950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10535 .loc 1 4950 0 is_stmt 0 discriminator 1
10536 00ea 5306 lsls r3, r2, #25
10537 00ec 1AD5 bpl .L702
4952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10538 .loc 1 4952 0 is_stmt 1
10539 00ee 638D ldrh r3, [r4, #42]
10540 00f0 9BB2 uxth r3, r3
10541 00f2 002B cmp r3, #0
10542 00f4 11D1 bne .L703
4954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10543 .loc 1 4954 0
10544 00f6 2368 ldr r3, [r4]
10545 00f8 5A68 ldr r2, [r3, #4]
10546 .LVL928:
10547 00fa 9201 lsls r2, r2, #6
10548 00fc CED4 bmi .L695
4957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10549 .loc 1 4957 0
10550 00fe E16A ldr r1, [r4, #44]
10551 .LVL929:
10552 0100 0D4A ldr r2, .L709
10553 0102 9142 cmp r1, r2
10554 0104 05D1 bne .L704
4960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10555 .loc 1 4960 0
10556 0106 5968 ldr r1, [r3, #4]
10557 0108 8022 movs r2, #128
10558 010a D201 lsls r2, r2, #7
10559 010c 0A43 orrs r2, r1
10560 010e 5A60 str r2, [r3, #4]
10561 0110 C4E7 b .L695
10562 .L704:
4965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10563 .loc 1 4965 0
10564 0112 2000 movs r0, r4
10565 0114 FFF7FEFF bl I2C_ITMasterSeqCplt
10566 .LVL930:
10567 0118 C0E7 b .L695
10568 .LVL931:
10569 .L703:
4973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10570 .loc 1 4973 0
10571 011a 4021 movs r1, #64
10572 .LVL932:
10573 011c 2000 movs r0, r4
10574 011e FFF7FEFF bl I2C_ITError
ARM GAS /tmp/ccpK4Ax4.s page 329
10575 .LVL933:
10576 0122 BBE7 b .L695
10577 .LVL934:
10578 .L702:
4976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10579 .loc 1 4976 0
10580 0124 8B06 lsls r3, r1, #26
10581 0126 B9D5 bpl .L695
4976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10582 .loc 1 4976 0 is_stmt 0 discriminator 1
10583 0128 9306 lsls r3, r2, #26
10584 012a B7D5 bpl .L695
4979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10585 .loc 1 4979 0 is_stmt 1
10586 012c 2000 movs r0, r4
10587 012e FFF7FEFF bl I2C_ITMasterCplt
10588 .LVL935:
10589 0132 B3E7 b .L695
10590 .LVL936:
10591 .L705:
4871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10592 .loc 1 4871 0
10593 0134 0220 movs r0, #2
10594 .LVL937:
10595 0136 B5E7 b .L693
10596 .L710:
10597 .align 2
10598 .L709:
10599 0138 0000FFFF .word -65536
10600 .cfi_endproc
10601 .LFE91:
10603 .section .text.I2C_DMAError,"ax",%progbits
10604 .align 1
10605 .syntax unified
10606 .code 16
10607 .thumb_func
10608 .fpu softvfp
10610 I2C_DMAError:
10611 .LFB107:
6023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
10612 .loc 1 6023 0
10613 .cfi_startproc
10614 @ args = 0, pretend = 0, frame = 0
10615 @ frame_needed = 0, uses_anonymous_args = 0
10616 .LVL938:
10617 0000 10B5 push {r4, lr}
10618 .LCFI81:
10619 .cfi_def_cfa_offset 8
10620 .cfi_offset 4, -8
10621 .cfi_offset 14, -4
6024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10622 .loc 1 6024 0
10623 0002 406A ldr r0, [r0, #36]
10624 .LVL939:
6027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10625 .loc 1 6027 0
10626 0004 0268 ldr r2, [r0]
ARM GAS /tmp/ccpK4Ax4.s page 330
10627 0006 5168 ldr r1, [r2, #4]
10628 0008 8023 movs r3, #128
10629 000a 1B02 lsls r3, r3, #8
10630 000c 0B43 orrs r3, r1
10631 000e 5360 str r3, [r2, #4]
6030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10632 .loc 1 6030 0
10633 0010 1021 movs r1, #16
10634 0012 FFF7FEFF bl I2C_ITError
10635 .LVL940:
6031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10636 .loc 1 6031 0
10637 @ sp needed
10638 0016 10BD pop {r4, pc}
10639 .cfi_endproc
10640 .LFE107:
10642 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits
10643 .align 1
10644 .syntax unified
10645 .code 16
10646 .thumb_func
10647 .fpu softvfp
10649 I2C_DMAMasterTransmitCplt:
10650 .LFB103:
5873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
10651 .loc 1 5873 0
10652 .cfi_startproc
10653 @ args = 0, pretend = 0, frame = 0
10654 @ frame_needed = 0, uses_anonymous_args = 0
10655 .LVL941:
10656 0000 10B5 push {r4, lr}
10657 .LCFI82:
10658 .cfi_def_cfa_offset 8
10659 .cfi_offset 4, -8
10660 .cfi_offset 14, -4
5874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10661 .loc 1 5874 0
10662 0002 446A ldr r4, [r0, #36]
10663 .LVL942:
5877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10664 .loc 1 5877 0
10665 0004 2268 ldr r2, [r4]
10666 0006 1368 ldr r3, [r2]
10667 0008 1549 ldr r1, .L720
10668 000a 0B40 ands r3, r1
10669 000c 1360 str r3, [r2]
5880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10670 .loc 1 5880 0
10671 000e 638D ldrh r3, [r4, #42]
10672 0010 9BB2 uxth r3, r3
10673 0012 002B cmp r3, #0
10674 0014 17D0 beq .L718
5889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10675 .loc 1 5889 0
10676 0016 218D ldrh r1, [r4, #40]
10677 0018 636A ldr r3, [r4, #36]
10678 001a 9C46 mov ip, r3
ARM GAS /tmp/ccpK4Ax4.s page 331
10679 001c 6144 add r1, r1, ip
10680 001e 6162 str r1, [r4, #36]
5892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10681 .loc 1 5892 0
10682 0020 638D ldrh r3, [r4, #42]
10683 0022 9BB2 uxth r3, r3
10684 0024 FF2B cmp r3, #255
10685 0026 13D9 bls .L715
5894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10686 .loc 1 5894 0
10687 0028 FF23 movs r3, #255
10688 002a 2385 strh r3, [r4, #40]
10689 .L716:
5902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10690 .loc 1 5902 0
10691 002c 2268 ldr r2, [r4]
10692 002e 2832 adds r2, r2, #40
10693 0030 238D ldrh r3, [r4, #40]
10694 0032 A06B ldr r0, [r4, #56]
10695 .LVL943:
10696 0034 FFF7FEFF bl HAL_DMA_Start_IT
10697 .LVL944:
10698 0038 0028 cmp r0, #0
10699 003a 0CD1 bne .L719
5910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10700 .loc 1 5910 0
10701 003c 1221 movs r1, #18
10702 003e 2000 movs r0, r4
10703 0040 FFF7FEFF bl I2C_Enable_IRQ
10704 .LVL945:
10705 .L712:
5913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10706 .loc 1 5913 0
10707 @ sp needed
10708 .LVL946:
10709 0044 10BD pop {r4, pc}
10710 .LVL947:
10711 .L718:
5883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10712 .loc 1 5883 0
10713 0046 1221 movs r1, #18
10714 0048 2000 movs r0, r4
10715 .LVL948:
10716 004a FFF7FEFF bl I2C_Enable_IRQ
10717 .LVL949:
10718 004e F9E7 b .L712
10719 .LVL950:
10720 .L715:
5898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10721 .loc 1 5898 0
10722 0050 638D ldrh r3, [r4, #42]
10723 0052 2385 strh r3, [r4, #40]
10724 0054 EAE7 b .L716
10725 .LVL951:
10726 .L719:
5905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10727 .loc 1 5905 0
ARM GAS /tmp/ccpK4Ax4.s page 332
10728 0056 1021 movs r1, #16
10729 0058 2000 movs r0, r4
10730 005a FFF7FEFF bl I2C_ITError
10731 .LVL952:
10732 005e F1E7 b .L712
10733 .L721:
10734 .align 2
10735 .L720:
10736 0060 FFBFFFFF .word -16385
10737 .cfi_endproc
10738 .LFE103:
10740 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits
10741 .align 1
10742 .syntax unified
10743 .code 16
10744 .thumb_func
10745 .fpu softvfp
10747 I2C_DMAMasterReceiveCplt:
10748 .LFB105:
5948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
10749 .loc 1 5948 0
10750 .cfi_startproc
10751 @ args = 0, pretend = 0, frame = 0
10752 @ frame_needed = 0, uses_anonymous_args = 0
10753 .LVL953:
10754 0000 10B5 push {r4, lr}
10755 .LCFI83:
10756 .cfi_def_cfa_offset 8
10757 .cfi_offset 4, -8
10758 .cfi_offset 14, -4
5949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10759 .loc 1 5949 0
10760 0002 446A ldr r4, [r0, #36]
10761 .LVL954:
5952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10762 .loc 1 5952 0
10763 0004 2268 ldr r2, [r4]
10764 0006 1368 ldr r3, [r2]
10765 0008 1549 ldr r1, .L730
10766 000a 0B40 ands r3, r1
10767 000c 1360 str r3, [r2]
5955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10768 .loc 1 5955 0
10769 000e 638D ldrh r3, [r4, #42]
10770 0010 9BB2 uxth r3, r3
10771 0012 002B cmp r3, #0
10772 0014 17D0 beq .L728
5964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10773 .loc 1 5964 0
10774 0016 228D ldrh r2, [r4, #40]
10775 0018 636A ldr r3, [r4, #36]
10776 001a 9C46 mov ip, r3
10777 001c 6244 add r2, r2, ip
10778 001e 6262 str r2, [r4, #36]
5967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10779 .loc 1 5967 0
10780 0020 638D ldrh r3, [r4, #42]
ARM GAS /tmp/ccpK4Ax4.s page 333
10781 0022 9BB2 uxth r3, r3
10782 0024 FF2B cmp r3, #255
10783 0026 13D9 bls .L725
5969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10784 .loc 1 5969 0
10785 0028 FF23 movs r3, #255
10786 002a 2385 strh r3, [r4, #40]
10787 .L726:
5977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10788 .loc 1 5977 0
10789 002c 2168 ldr r1, [r4]
10790 002e 2431 adds r1, r1, #36
10791 0030 238D ldrh r3, [r4, #40]
10792 0032 E06B ldr r0, [r4, #60]
10793 .LVL955:
10794 0034 FFF7FEFF bl HAL_DMA_Start_IT
10795 .LVL956:
10796 0038 0028 cmp r0, #0
10797 003a 0CD1 bne .L729
5985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10798 .loc 1 5985 0
10799 003c 1221 movs r1, #18
10800 003e 2000 movs r0, r4
10801 0040 FFF7FEFF bl I2C_Enable_IRQ
10802 .LVL957:
10803 .L722:
5988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10804 .loc 1 5988 0
10805 @ sp needed
10806 .LVL958:
10807 0044 10BD pop {r4, pc}
10808 .LVL959:
10809 .L728:
5958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10810 .loc 1 5958 0
10811 0046 1221 movs r1, #18
10812 0048 2000 movs r0, r4
10813 .LVL960:
10814 004a FFF7FEFF bl I2C_Enable_IRQ
10815 .LVL961:
10816 004e F9E7 b .L722
10817 .LVL962:
10818 .L725:
5973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10819 .loc 1 5973 0
10820 0050 638D ldrh r3, [r4, #42]
10821 0052 2385 strh r3, [r4, #40]
10822 0054 EAE7 b .L726
10823 .LVL963:
10824 .L729:
5980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10825 .loc 1 5980 0
10826 0056 1021 movs r1, #16
10827 0058 2000 movs r0, r4
10828 005a FFF7FEFF bl I2C_ITError
10829 .LVL964:
10830 005e F1E7 b .L722
ARM GAS /tmp/ccpK4Ax4.s page 334
10831 .L731:
10832 .align 2
10833 .L730:
10834 0060 FF7FFFFF .word -32769
10835 .cfi_endproc
10836 .LFE105:
10838 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits
10839 .align 1
10840 .global HAL_I2C_ER_IRQHandler
10841 .syntax unified
10842 .code 16
10843 .thumb_func
10844 .fpu softvfp
10846 HAL_I2C_ER_IRQHandler:
10847 .LFB75:
4317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
10848 .loc 1 4317 0
10849 .cfi_startproc
10850 @ args = 0, pretend = 0, frame = 0
10851 @ frame_needed = 0, uses_anonymous_args = 0
10852 .LVL965:
10853 0000 70B5 push {r4, r5, r6, lr}
10854 .LCFI84:
10855 .cfi_def_cfa_offset 16
10856 .cfi_offset 4, -16
10857 .cfi_offset 5, -12
10858 .cfi_offset 6, -8
10859 .cfi_offset 14, -4
4318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
10860 .loc 1 4318 0
10861 0002 0268 ldr r2, [r0]
10862 0004 9369 ldr r3, [r2, #24]
10863 .LVL966:
4319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror;
10864 .loc 1 4319 0
10865 0006 1168 ldr r1, [r2]
10866 .LVL967:
4323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10867 .loc 1 4323 0
10868 0008 DC05 lsls r4, r3, #23
10869 000a 08D5 bpl .L733
4323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10870 .loc 1 4323 0 is_stmt 0 discriminator 1
10871 000c 0C06 lsls r4, r1, #24
10872 000e 06D5 bpl .L733
4325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10873 .loc 1 4325 0 is_stmt 1
10874 0010 446C ldr r4, [r0, #68]
10875 0012 0125 movs r5, #1
10876 0014 2C43 orrs r4, r5
10877 0016 4464 str r4, [r0, #68]
4328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10878 .loc 1 4328 0
10879 0018 8024 movs r4, #128
10880 001a 6400 lsls r4, r4, #1
10881 001c D461 str r4, [r2, #28]
10882 .L733:
ARM GAS /tmp/ccpK4Ax4.s page 335
4332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10883 .loc 1 4332 0
10884 001e 5A05 lsls r2, r3, #21
10885 0020 09D5 bpl .L734
4332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10886 .loc 1 4332 0 is_stmt 0 discriminator 1
10887 0022 0A06 lsls r2, r1, #24
10888 0024 07D5 bpl .L734
4334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10889 .loc 1 4334 0 is_stmt 1
10890 0026 426C ldr r2, [r0, #68]
10891 0028 0824 movs r4, #8
10892 002a 2243 orrs r2, r4
10893 002c 4264 str r2, [r0, #68]
4337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10894 .loc 1 4337 0
10895 002e 0268 ldr r2, [r0]
10896 0030 8024 movs r4, #128
10897 0032 E400 lsls r4, r4, #3
10898 0034 D461 str r4, [r2, #28]
10899 .L734:
4341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10900 .loc 1 4341 0
10901 0036 9B05 lsls r3, r3, #22
10902 0038 09D5 bpl .L735
10903 .LVL968:
4341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10904 .loc 1 4341 0 is_stmt 0 discriminator 1
10905 003a 0B06 lsls r3, r1, #24
10906 003c 07D5 bpl .L735
4343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10907 .loc 1 4343 0 is_stmt 1
10908 003e 436C ldr r3, [r0, #68]
10909 0040 0222 movs r2, #2
10910 0042 1343 orrs r3, r2
10911 0044 4364 str r3, [r0, #68]
4346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10912 .loc 1 4346 0
10913 0046 0368 ldr r3, [r0]
10914 0048 FF32 adds r2, r2, #255
10915 004a FF32 adds r2, r2, #255
10916 004c DA61 str r2, [r3, #28]
10917 .L735:
4350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10918 .loc 1 4350 0
10919 004e 416C ldr r1, [r0, #68]
10920 .LVL969:
4353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10921 .loc 1 4353 0
10922 0050 0B23 movs r3, #11
10923 0052 0B42 tst r3, r1
10924 0054 00D1 bne .L737
10925 .LVL970:
10926 .L732:
4357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10927 .loc 1 4357 0
10928 @ sp needed
ARM GAS /tmp/ccpK4Ax4.s page 336
10929 0056 70BD pop {r4, r5, r6, pc}
10930 .LVL971:
10931 .L737:
4355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
10932 .loc 1 4355 0
10933 0058 FFF7FEFF bl I2C_ITError
10934 .LVL972:
4357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10935 .loc 1 4357 0
10936 005c FBE7 b .L732
10937 .cfi_endproc
10938 .LFE75:
10940 .section .text.I2C_DMAAbort,"ax",%progbits
10941 .align 1
10942 .syntax unified
10943 .code 16
10944 .thumb_func
10945 .fpu softvfp
10947 I2C_DMAAbort:
10948 .LFB108:
6040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
10949 .loc 1 6040 0
10950 .cfi_startproc
10951 @ args = 0, pretend = 0, frame = 0
10952 @ frame_needed = 0, uses_anonymous_args = 0
10953 .LVL973:
10954 0000 10B5 push {r4, lr}
10955 .LCFI85:
10956 .cfi_def_cfa_offset 8
10957 .cfi_offset 4, -8
10958 .cfi_offset 14, -4
6041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10959 .loc 1 6041 0
10960 0002 406A ldr r0, [r0, #36]
10961 .LVL974:
6044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
10962 .loc 1 6044 0
10963 0004 826B ldr r2, [r0, #56]
10964 0006 0023 movs r3, #0
10965 0008 5363 str r3, [r2, #52]
6045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10966 .loc 1 6045 0
10967 000a C26B ldr r2, [r0, #60]
10968 000c 5363 str r3, [r2, #52]
6048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** {
10969 .loc 1 6048 0
10970 000e 4133 adds r3, r3, #65
10971 0010 C35C ldrb r3, [r0, r3]
10972 0012 602B cmp r3, #96
10973 0014 02D0 beq .L741
6065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10974 .loc 1 6065 0
10975 0016 FFF7FEFF bl HAL_I2C_ErrorCallback
10976 .LVL975:
10977 .L738:
6068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10978 .loc 1 6068 0
ARM GAS /tmp/ccpK4Ax4.s page 337
10979 @ sp needed
10980 001a 10BD pop {r4, pc}
10981 .LVL976:
10982 .L741:
6050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
10983 .loc 1 6050 0
10984 001c 1F3B subs r3, r3, #31
10985 001e 2022 movs r2, #32
10986 0020 C254 strb r2, [r0, r3]
6056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10987 .loc 1 6056 0
10988 0022 FFF7FEFF bl HAL_I2C_AbortCpltCallback
10989 .LVL977:
10990 0026 F8E7 b .L738
10991 .cfi_endproc
10992 .LFE108:
10994 .section .text.HAL_I2C_GetState,"ax",%progbits
10995 .align 1
10996 .global HAL_I2C_GetState
10997 .syntax unified
10998 .code 16
10999 .thumb_func
11000 .fpu softvfp
11002 HAL_I2C_GetState:
11003 .LFB86:
4548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return I2C handle state */
11004 .loc 1 4548 0
11005 .cfi_startproc
11006 @ args = 0, pretend = 0, frame = 0
11007 @ frame_needed = 0, uses_anonymous_args = 0
11008 @ link register save eliminated.
11009 .LVL978:
4550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
11010 .loc 1 4550 0
11011 0000 4123 movs r3, #65
11012 0002 C05C ldrb r0, [r0, r3]
11013 .LVL979:
11014 0004 C0B2 uxtb r0, r0
4551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
11015 .loc 1 4551 0
11016 @ sp needed
11017 0006 7047 bx lr
11018 .cfi_endproc
11019 .LFE86:
11021 .section .text.HAL_I2C_GetMode,"ax",%progbits
11022 .align 1
11023 .global HAL_I2C_GetMode
11024 .syntax unified
11025 .code 16
11026 .thumb_func
11027 .fpu softvfp
11029 HAL_I2C_GetMode:
11030 .LFB87:
4560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->Mode;
11031 .loc 1 4560 0
11032 .cfi_startproc
11033 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/ccpK4Ax4.s page 338
11034 @ frame_needed = 0, uses_anonymous_args = 0
11035 @ link register save eliminated.
11036 .LVL980:
4561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
11037 .loc 1 4561 0
11038 0000 4223 movs r3, #66
11039 0002 C05C ldrb r0, [r0, r3]
11040 .LVL981:
11041 0004 C0B2 uxtb r0, r0
4562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
11042 .loc 1 4562 0
11043 @ sp needed
11044 0006 7047 bx lr
11045 .cfi_endproc
11046 .LFE87:
11048 .section .text.HAL_I2C_GetError,"ax",%progbits
11049 .align 1
11050 .global HAL_I2C_GetError
11051 .syntax unified
11052 .code 16
11053 .thumb_func
11054 .fpu softvfp
11056 HAL_I2C_GetError:
11057 .LFB88:
4571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->ErrorCode;
11058 .loc 1 4571 0
11059 .cfi_startproc
11060 @ args = 0, pretend = 0, frame = 0
11061 @ frame_needed = 0, uses_anonymous_args = 0
11062 @ link register save eliminated.
11063 .LVL982:
4572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** }
11064 .loc 1 4572 0
11065 0000 406C ldr r0, [r0, #68]
11066 .LVL983:
4573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c ****
11067 .loc 1 4573 0
11068 @ sp needed
11069 0002 7047 bx lr
11070 .cfi_endproc
11071 .LFE88:
11073 .text
11074 .Letext0:
11075 .file 2 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/machin
11076 .file 3 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/_s
11077 .file 4 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h"
11078 .file 5 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h"
11079 .file 6 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h"
11080 .file 7 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h"
11081 .file 8 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h"
11082 .file 9 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_i2c.h"
11083 .file 10 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h"
ARM GAS /tmp/ccpK4Ax4.s page 339
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32f0xx_hal_i2c.c
/tmp/ccpK4Ax4.s:16 .text.I2C_Flush_TXDR:0000000000000000 $t
/tmp/ccpK4Ax4.s:22 .text.I2C_Flush_TXDR:0000000000000000 I2C_Flush_TXDR
/tmp/ccpK4Ax4.s:58 .text.I2C_TransferConfig:0000000000000000 $t
/tmp/ccpK4Ax4.s:64 .text.I2C_TransferConfig:0000000000000000 I2C_TransferConfig
/tmp/ccpK4Ax4.s:108 .text.I2C_TransferConfig:0000000000000028 $d
/tmp/ccpK4Ax4.s:113 .text.I2C_Enable_IRQ:0000000000000000 $t
/tmp/ccpK4Ax4.s:119 .text.I2C_Enable_IRQ:0000000000000000 I2C_Enable_IRQ
/tmp/ccpK4Ax4.s:240 .text.I2C_Enable_IRQ:0000000000000074 $d
/tmp/ccpK4Ax4.s:10345 .text.I2C_Master_ISR_DMA:0000000000000000 I2C_Master_ISR_DMA
/tmp/ccpK4Ax4.s:10103 .text.I2C_Slave_ISR_DMA:0000000000000000 I2C_Slave_ISR_DMA
/tmp/ccpK4Ax4.s:246 .text.I2C_Disable_IRQ:0000000000000000 $t
/tmp/ccpK4Ax4.s:252 .text.I2C_Disable_IRQ:0000000000000000 I2C_Disable_IRQ
/tmp/ccpK4Ax4.s:371 .text.I2C_ConvertOtherXferOptions:0000000000000000 $t
/tmp/ccpK4Ax4.s:377 .text.I2C_ConvertOtherXferOptions:0000000000000000 I2C_ConvertOtherXferOptions
/tmp/ccpK4Ax4.s:415 .text.I2C_IsAcknowledgeFailed:0000000000000000 $t
/tmp/ccpK4Ax4.s:421 .text.I2C_IsAcknowledgeFailed:0000000000000000 I2C_IsAcknowledgeFailed
/tmp/ccpK4Ax4.s:533 .text.I2C_IsAcknowledgeFailed:000000000000007c $d
/tmp/ccpK4Ax4.s:538 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 $t
/tmp/ccpK4Ax4.s:544 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 I2C_WaitOnTXISFlagUntilTimeout
/tmp/ccpK4Ax4.s:626 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 $t
/tmp/ccpK4Ax4.s:632 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 I2C_WaitOnFlagUntilTimeout
/tmp/ccpK4Ax4.s:709 .text.I2C_RequestMemoryWrite:0000000000000000 $t
/tmp/ccpK4Ax4.s:715 .text.I2C_RequestMemoryWrite:0000000000000000 I2C_RequestMemoryWrite
/tmp/ccpK4Ax4.s:812 .text.I2C_RequestMemoryWrite:0000000000000070 $d
/tmp/ccpK4Ax4.s:817 .text.I2C_RequestMemoryRead:0000000000000000 $t
/tmp/ccpK4Ax4.s:823 .text.I2C_RequestMemoryRead:0000000000000000 I2C_RequestMemoryRead
/tmp/ccpK4Ax4.s:917 .text.I2C_RequestMemoryRead:000000000000006c $d
/tmp/ccpK4Ax4.s:922 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 $t
/tmp/ccpK4Ax4.s:928 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 I2C_WaitOnSTOPFlagUntilTimeout
/tmp/ccpK4Ax4.s:1007 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 $t
/tmp/ccpK4Ax4.s:1013 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 I2C_WaitOnRXNEFlagUntilTimeout
/tmp/ccpK4Ax4.s:1127 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000080 $d
/tmp/ccpK4Ax4.s:1132 .text.HAL_I2C_MspInit:0000000000000000 $t
/tmp/ccpK4Ax4.s:1139 .text.HAL_I2C_MspInit:0000000000000000 HAL_I2C_MspInit
/tmp/ccpK4Ax4.s:1154 .text.HAL_I2C_Init:0000000000000000 $t
/tmp/ccpK4Ax4.s:1161 .text.HAL_I2C_Init:0000000000000000 HAL_I2C_Init
/tmp/ccpK4Ax4.s:1309 .text.HAL_I2C_Init:00000000000000c0 $d
/tmp/ccpK4Ax4.s:1316 .text.HAL_I2C_MspDeInit:0000000000000000 $t
/tmp/ccpK4Ax4.s:1323 .text.HAL_I2C_MspDeInit:0000000000000000 HAL_I2C_MspDeInit
/tmp/ccpK4Ax4.s:1338 .text.HAL_I2C_DeInit:0000000000000000 $t
/tmp/ccpK4Ax4.s:1345 .text.HAL_I2C_DeInit:0000000000000000 HAL_I2C_DeInit
/tmp/ccpK4Ax4.s:1405 .text.HAL_I2C_Master_Transmit:0000000000000000 $t
/tmp/ccpK4Ax4.s:1412 .text.HAL_I2C_Master_Transmit:0000000000000000 HAL_I2C_Master_Transmit
/tmp/ccpK4Ax4.s:1680 .text.HAL_I2C_Master_Transmit:0000000000000164 $d
/tmp/ccpK4Ax4.s:1686 .text.HAL_I2C_Master_Receive:0000000000000000 $t
/tmp/ccpK4Ax4.s:1693 .text.HAL_I2C_Master_Receive:0000000000000000 HAL_I2C_Master_Receive
/tmp/ccpK4Ax4.s:1961 .text.HAL_I2C_Master_Receive:0000000000000164 $d
/tmp/ccpK4Ax4.s:1967 .text.HAL_I2C_Slave_Transmit:0000000000000000 $t
/tmp/ccpK4Ax4.s:1974 .text.HAL_I2C_Slave_Transmit:0000000000000000 HAL_I2C_Slave_Transmit
/tmp/ccpK4Ax4.s:2276 .text.HAL_I2C_Slave_Transmit:0000000000000194 $d
/tmp/ccpK4Ax4.s:2281 .text.HAL_I2C_Slave_Receive:0000000000000000 $t
/tmp/ccpK4Ax4.s:2288 .text.HAL_I2C_Slave_Receive:0000000000000000 HAL_I2C_Slave_Receive
/tmp/ccpK4Ax4.s:2571 .text.HAL_I2C_Slave_Receive:0000000000000178 $d
/tmp/ccpK4Ax4.s:2576 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 $t
/tmp/ccpK4Ax4.s:2583 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 HAL_I2C_Master_Transmit_IT
ARM GAS /tmp/ccpK4Ax4.s page 340
/tmp/ccpK4Ax4.s:2712 .text.HAL_I2C_Master_Transmit_IT:0000000000000088 $d
/tmp/ccpK4Ax4.s:9787 .text.I2C_Master_ISR_IT:0000000000000000 I2C_Master_ISR_IT
/tmp/ccpK4Ax4.s:2719 .text.HAL_I2C_Master_Receive_IT:0000000000000000 $t
/tmp/ccpK4Ax4.s:2726 .text.HAL_I2C_Master_Receive_IT:0000000000000000 HAL_I2C_Master_Receive_IT
/tmp/ccpK4Ax4.s:2855 .text.HAL_I2C_Master_Receive_IT:0000000000000088 $d
/tmp/ccpK4Ax4.s:2862 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 $t
/tmp/ccpK4Ax4.s:2869 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 HAL_I2C_Slave_Transmit_IT
/tmp/ccpK4Ax4.s:2957 .text.HAL_I2C_Slave_Transmit_IT:0000000000000058 $d
/tmp/ccpK4Ax4.s:9339 .text.I2C_Slave_ISR_IT:0000000000000000 I2C_Slave_ISR_IT
/tmp/ccpK4Ax4.s:2964 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 $t
/tmp/ccpK4Ax4.s:2971 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 HAL_I2C_Slave_Receive_IT
/tmp/ccpK4Ax4.s:3059 .text.HAL_I2C_Slave_Receive_IT:0000000000000058 $d
/tmp/ccpK4Ax4.s:3066 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 $t
/tmp/ccpK4Ax4.s:3073 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 HAL_I2C_Master_Transmit_DMA
/tmp/ccpK4Ax4.s:3332 .text.HAL_I2C_Master_Transmit_DMA:000000000000013c $d
/tmp/ccpK4Ax4.s:10649 .text.I2C_DMAMasterTransmitCplt:0000000000000000 I2C_DMAMasterTransmitCplt
/tmp/ccpK4Ax4.s:10610 .text.I2C_DMAError:0000000000000000 I2C_DMAError
/tmp/ccpK4Ax4.s:3342 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 $t
/tmp/ccpK4Ax4.s:3349 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 HAL_I2C_Master_Receive_DMA
/tmp/ccpK4Ax4.s:3607 .text.HAL_I2C_Master_Receive_DMA:000000000000013c $d
/tmp/ccpK4Ax4.s:10747 .text.I2C_DMAMasterReceiveCplt:0000000000000000 I2C_DMAMasterReceiveCplt
/tmp/ccpK4Ax4.s:3617 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 $t
/tmp/ccpK4Ax4.s:3624 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Transmit_DMA
/tmp/ccpK4Ax4.s:3811 .text.HAL_I2C_Slave_Transmit_DMA:00000000000000e0 $d
/tmp/ccpK4Ax4.s:8434 .text.I2C_DMASlaveTransmitCplt:0000000000000000 I2C_DMASlaveTransmitCplt
/tmp/ccpK4Ax4.s:3820 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 $t
/tmp/ccpK4Ax4.s:3827 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 HAL_I2C_Slave_Receive_DMA
/tmp/ccpK4Ax4.s:4017 .text.HAL_I2C_Slave_Receive_DMA:00000000000000e4 $d
/tmp/ccpK4Ax4.s:8489 .text.I2C_DMASlaveReceiveCplt:0000000000000000 I2C_DMASlaveReceiveCplt
/tmp/ccpK4Ax4.s:4026 .text.HAL_I2C_Mem_Write:0000000000000000 $t
/tmp/ccpK4Ax4.s:4033 .text.HAL_I2C_Mem_Write:0000000000000000 HAL_I2C_Mem_Write
/tmp/ccpK4Ax4.s:4340 .text.HAL_I2C_Mem_Write:000000000000019c $d
/tmp/ccpK4Ax4.s:4345 .text.HAL_I2C_Mem_Read:0000000000000000 $t
/tmp/ccpK4Ax4.s:4352 .text.HAL_I2C_Mem_Read:0000000000000000 HAL_I2C_Mem_Read
/tmp/ccpK4Ax4.s:4661 .text.HAL_I2C_Mem_Read:00000000000001a0 $d
/tmp/ccpK4Ax4.s:4667 .text.HAL_I2C_Mem_Write_IT:0000000000000000 $t
/tmp/ccpK4Ax4.s:4674 .text.HAL_I2C_Mem_Write_IT:0000000000000000 HAL_I2C_Mem_Write_IT
/tmp/ccpK4Ax4.s:4849 .text.HAL_I2C_Mem_Write_IT:00000000000000cc $d
/tmp/ccpK4Ax4.s:4855 .text.HAL_I2C_Mem_Read_IT:0000000000000000 $t
/tmp/ccpK4Ax4.s:4862 .text.HAL_I2C_Mem_Read_IT:0000000000000000 HAL_I2C_Mem_Read_IT
/tmp/ccpK4Ax4.s:5038 .text.HAL_I2C_Mem_Read_IT:00000000000000cc $d
/tmp/ccpK4Ax4.s:5045 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 $t
/tmp/ccpK4Ax4.s:5052 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 HAL_I2C_Mem_Write_DMA
/tmp/ccpK4Ax4.s:5327 .text.HAL_I2C_Mem_Write_DMA:0000000000000158 $d
/tmp/ccpK4Ax4.s:5335 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 $t
/tmp/ccpK4Ax4.s:5342 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 HAL_I2C_Mem_Read_DMA
/tmp/ccpK4Ax4.s:5618 .text.HAL_I2C_Mem_Read_DMA:0000000000000158 $d
/tmp/ccpK4Ax4.s:5627 .text.HAL_I2C_IsDeviceReady:0000000000000000 $t
/tmp/ccpK4Ax4.s:5634 .text.HAL_I2C_IsDeviceReady:0000000000000000 HAL_I2C_IsDeviceReady
/tmp/ccpK4Ax4.s:5939 .text.HAL_I2C_IsDeviceReady:000000000000017c $d
/tmp/ccpK4Ax4.s:5944 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 $t
/tmp/ccpK4Ax4.s:5951 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 HAL_I2C_Master_Seq_Transmit_IT
/tmp/ccpK4Ax4.s:6116 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000000000b0 $d
/tmp/ccpK4Ax4.s:6122 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 $t
/tmp/ccpK4Ax4.s:6129 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Master_Seq_Transmit_DMA
/tmp/ccpK4Ax4.s:6416 .text.HAL_I2C_Master_Seq_Transmit_DMA:000000000000015c $d
/tmp/ccpK4Ax4.s:6425 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 $t
ARM GAS /tmp/ccpK4Ax4.s page 341
/tmp/ccpK4Ax4.s:6432 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 HAL_I2C_Master_Seq_Receive_IT
/tmp/ccpK4Ax4.s:6597 .text.HAL_I2C_Master_Seq_Receive_IT:00000000000000b0 $d
/tmp/ccpK4Ax4.s:6603 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 $t
/tmp/ccpK4Ax4.s:6610 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 HAL_I2C_Master_Seq_Receive_DMA
/tmp/ccpK4Ax4.s:6897 .text.HAL_I2C_Master_Seq_Receive_DMA:000000000000015c $d
/tmp/ccpK4Ax4.s:6906 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 $t
/tmp/ccpK4Ax4.s:6913 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 HAL_I2C_Slave_Seq_Transmit_IT
/tmp/ccpK4Ax4.s:7083 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000000000c8 $d
/tmp/ccpK4Ax4.s:10947 .text.I2C_DMAAbort:0000000000000000 I2C_DMAAbort
/tmp/ccpK4Ax4.s:7090 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 $t
/tmp/ccpK4Ax4.s:7097 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Seq_Transmit_DMA
/tmp/ccpK4Ax4.s:7395 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000180 $d
/tmp/ccpK4Ax4.s:7405 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 $t
/tmp/ccpK4Ax4.s:7412 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 HAL_I2C_Slave_Seq_Receive_IT
/tmp/ccpK4Ax4.s:7582 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000000000c8 $d
/tmp/ccpK4Ax4.s:7590 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 $t
/tmp/ccpK4Ax4.s:7597 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 HAL_I2C_Slave_Seq_Receive_DMA
/tmp/ccpK4Ax4.s:7896 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000180 $d
/tmp/ccpK4Ax4.s:7906 .text.HAL_I2C_EnableListen_IT:0000000000000000 $t
/tmp/ccpK4Ax4.s:7913 .text.HAL_I2C_EnableListen_IT:0000000000000000 HAL_I2C_EnableListen_IT
/tmp/ccpK4Ax4.s:7956 .text.HAL_I2C_EnableListen_IT:0000000000000024 $d
/tmp/ccpK4Ax4.s:7961 .text.HAL_I2C_DisableListen_IT:0000000000000000 $t
/tmp/ccpK4Ax4.s:7968 .text.HAL_I2C_DisableListen_IT:0000000000000000 HAL_I2C_DisableListen_IT
/tmp/ccpK4Ax4.s:8027 .text.HAL_I2C_Master_Abort_IT:0000000000000000 $t
/tmp/ccpK4Ax4.s:8034 .text.HAL_I2C_Master_Abort_IT:0000000000000000 HAL_I2C_Master_Abort_IT
/tmp/ccpK4Ax4.s:8122 .text.HAL_I2C_Master_Abort_IT:0000000000000060 $d
/tmp/ccpK4Ax4.s:8127 .text.HAL_I2C_EV_IRQHandler:0000000000000000 $t
/tmp/ccpK4Ax4.s:8134 .text.HAL_I2C_EV_IRQHandler:0000000000000000 HAL_I2C_EV_IRQHandler
/tmp/ccpK4Ax4.s:8168 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 $t
/tmp/ccpK4Ax4.s:8175 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 HAL_I2C_MasterTxCpltCallback
/tmp/ccpK4Ax4.s:8190 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 $t
/tmp/ccpK4Ax4.s:8197 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 HAL_I2C_MasterRxCpltCallback
/tmp/ccpK4Ax4.s:8212 .text.I2C_ITMasterSeqCplt:0000000000000000 $t
/tmp/ccpK4Ax4.s:8218 .text.I2C_ITMasterSeqCplt:0000000000000000 I2C_ITMasterSeqCplt
/tmp/ccpK4Ax4.s:8296 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 $t
/tmp/ccpK4Ax4.s:8303 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 HAL_I2C_SlaveTxCpltCallback
/tmp/ccpK4Ax4.s:8318 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 $t
/tmp/ccpK4Ax4.s:8325 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 HAL_I2C_SlaveRxCpltCallback
/tmp/ccpK4Ax4.s:8340 .text.I2C_ITSlaveSeqCplt:0000000000000000 $t
/tmp/ccpK4Ax4.s:8346 .text.I2C_ITSlaveSeqCplt:0000000000000000 I2C_ITSlaveSeqCplt
/tmp/ccpK4Ax4.s:8428 .text.I2C_DMASlaveTransmitCplt:0000000000000000 $t
/tmp/ccpK4Ax4.s:8478 .text.I2C_DMASlaveTransmitCplt:0000000000000024 $d
/tmp/ccpK4Ax4.s:8483 .text.I2C_DMASlaveReceiveCplt:0000000000000000 $t
/tmp/ccpK4Ax4.s:8534 .text.I2C_DMASlaveReceiveCplt:0000000000000028 $d
/tmp/ccpK4Ax4.s:8540 .text.HAL_I2C_AddrCallback:0000000000000000 $t
/tmp/ccpK4Ax4.s:8547 .text.HAL_I2C_AddrCallback:0000000000000000 HAL_I2C_AddrCallback
/tmp/ccpK4Ax4.s:8562 .text.I2C_ITAddrCplt:0000000000000000 $t
/tmp/ccpK4Ax4.s:8568 .text.I2C_ITAddrCplt:0000000000000000 I2C_ITAddrCplt
/tmp/ccpK4Ax4.s:8708 .text.HAL_I2C_ListenCpltCallback:0000000000000000 $t
/tmp/ccpK4Ax4.s:8715 .text.HAL_I2C_ListenCpltCallback:0000000000000000 HAL_I2C_ListenCpltCallback
/tmp/ccpK4Ax4.s:8730 .text.I2C_ITListenCplt:0000000000000000 $t
/tmp/ccpK4Ax4.s:8736 .text.I2C_ITListenCplt:0000000000000000 I2C_ITListenCplt
/tmp/ccpK4Ax4.s:8820 .text.I2C_ITListenCplt:0000000000000060 $d
/tmp/ccpK4Ax4.s:8825 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 $t
/tmp/ccpK4Ax4.s:8832 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 HAL_I2C_MemTxCpltCallback
/tmp/ccpK4Ax4.s:8847 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 $t
/tmp/ccpK4Ax4.s:8854 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 HAL_I2C_MemRxCpltCallback
ARM GAS /tmp/ccpK4Ax4.s page 342
/tmp/ccpK4Ax4.s:8869 .text.HAL_I2C_ErrorCallback:0000000000000000 $t
/tmp/ccpK4Ax4.s:8876 .text.HAL_I2C_ErrorCallback:0000000000000000 HAL_I2C_ErrorCallback
/tmp/ccpK4Ax4.s:8891 .text.HAL_I2C_AbortCpltCallback:0000000000000000 $t
/tmp/ccpK4Ax4.s:8898 .text.HAL_I2C_AbortCpltCallback:0000000000000000 HAL_I2C_AbortCpltCallback
/tmp/ccpK4Ax4.s:8913 .text.I2C_ITError:0000000000000000 $t
/tmp/ccpK4Ax4.s:8919 .text.I2C_ITError:0000000000000000 I2C_ITError
/tmp/ccpK4Ax4.s:9100 .text.I2C_ITError:00000000000000e4 $d
/tmp/ccpK4Ax4.s:9109 .text.I2C_ITSlaveCplt:0000000000000000 $t
/tmp/ccpK4Ax4.s:9115 .text.I2C_ITSlaveCplt:0000000000000000 I2C_ITSlaveCplt
/tmp/ccpK4Ax4.s:9327 .text.I2C_ITSlaveCplt:0000000000000110 $d
/tmp/ccpK4Ax4.s:9333 .text.I2C_Slave_ISR_IT:0000000000000000 $t
/tmp/ccpK4Ax4.s:9601 .text.I2C_Slave_ISR_IT:0000000000000148 $d
/tmp/ccpK4Ax4.s:9606 .text.I2C_ITMasterCplt:0000000000000000 $t
/tmp/ccpK4Ax4.s:9612 .text.I2C_ITMasterCplt:0000000000000000 I2C_ITMasterCplt
/tmp/ccpK4Ax4.s:9775 .text.I2C_ITMasterCplt:00000000000000cc $d
/tmp/ccpK4Ax4.s:9781 .text.I2C_Master_ISR_IT:0000000000000000 $t
/tmp/ccpK4Ax4.s:10092 .text.I2C_Master_ISR_IT:0000000000000174 $d
/tmp/ccpK4Ax4.s:10097 .text.I2C_Slave_ISR_DMA:0000000000000000 $t
/tmp/ccpK4Ax4.s:10334 .text.I2C_Slave_ISR_DMA:0000000000000104 $d
/tmp/ccpK4Ax4.s:10339 .text.I2C_Master_ISR_DMA:0000000000000000 $t
/tmp/ccpK4Ax4.s:10599 .text.I2C_Master_ISR_DMA:0000000000000138 $d
/tmp/ccpK4Ax4.s:10604 .text.I2C_DMAError:0000000000000000 $t
/tmp/ccpK4Ax4.s:10643 .text.I2C_DMAMasterTransmitCplt:0000000000000000 $t
/tmp/ccpK4Ax4.s:10736 .text.I2C_DMAMasterTransmitCplt:0000000000000060 $d
/tmp/ccpK4Ax4.s:10741 .text.I2C_DMAMasterReceiveCplt:0000000000000000 $t
/tmp/ccpK4Ax4.s:10834 .text.I2C_DMAMasterReceiveCplt:0000000000000060 $d
/tmp/ccpK4Ax4.s:10839 .text.HAL_I2C_ER_IRQHandler:0000000000000000 $t
/tmp/ccpK4Ax4.s:10846 .text.HAL_I2C_ER_IRQHandler:0000000000000000 HAL_I2C_ER_IRQHandler
/tmp/ccpK4Ax4.s:10941 .text.I2C_DMAAbort:0000000000000000 $t
/tmp/ccpK4Ax4.s:10995 .text.HAL_I2C_GetState:0000000000000000 $t
/tmp/ccpK4Ax4.s:11002 .text.HAL_I2C_GetState:0000000000000000 HAL_I2C_GetState
/tmp/ccpK4Ax4.s:11022 .text.HAL_I2C_GetMode:0000000000000000 $t
/tmp/ccpK4Ax4.s:11029 .text.HAL_I2C_GetMode:0000000000000000 HAL_I2C_GetMode
/tmp/ccpK4Ax4.s:11049 .text.HAL_I2C_GetError:0000000000000000 $t
/tmp/ccpK4Ax4.s:11056 .text.HAL_I2C_GetError:0000000000000000 HAL_I2C_GetError
UNDEFINED SYMBOLS
HAL_GetTick
HAL_DMA_Start_IT
HAL_DMA_Abort_IT