ARM GAS /tmp/ccpuPECZ.s page 1
1 .cpu cortex-m0plus
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 "stm32l0xx_hal_i2c.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits
16 .align 1
17 .syntax unified
18 .code 16
19 .thumb_func
20 .fpu softvfp
22 I2C_DMASlaveTransmitCplt:
23 .LFB99:
24 .file 1 "./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c"
1:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ******************************************************************************
3:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @file stm32l0xx_hal_i2c.c
4:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @author MCD Application Team
5:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C HAL module driver.
6:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * This file provides firmware functions to manage the following
7:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral:
8:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * + Initialization and de-initialization functions
9:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * + IO operation functions
10:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * + Peripheral State and Errors functions
11:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *
12:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @verbatim
13:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ==============================================================================
14:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ##### How to use this driver #####
15:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ==============================================================================
16:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..]
17:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** The I2C HAL driver can be used as follows:
18:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
19:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example:
20:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef hi2c;
21:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
22:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API:
23:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (##) Enable the I2Cx interface clock
24:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (##) I2C pins configuration
25:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs
26:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain
27:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process
28:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority
29:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel
30:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process
31:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for the transmit or receive channel
32:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using
33:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Configure the DMA handle parameters
34:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx channel
ARM GAS /tmp/ccpuPECZ.s page 2
35:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle
36:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on
37:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the DMA Tx or Rx channel
38:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
39:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres
40:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure
41:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
42:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level H
43:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API.
44:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
45:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceRead
46:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
47:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver :
48:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
49:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** Polling mode IO operation ***
50:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** =================================
51:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..]
52:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using HAL_I2C_Master_Transmit(
53:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using HAL_I2C_Master_Receive()
54:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Transmit()
55:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Receive()
56:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
57:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** Polling mode IO MEM operation ***
58:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** =====================================
59:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..]
60:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using HAL_I2C_Mem_W
61:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using HAL_I2C_Mem_
62:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
63:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
64:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** Interrupt mode IO operation ***
65:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ===================================
66:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..]
67:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Trans
68:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and user can
69:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MasterTxCpltCallback()
70:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Receiv
71:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and user can
72:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
73:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Transmi
74:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and user can
75:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
76:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Receive_
77:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and user can
78:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
79:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can
80:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_ErrorCallback()
81:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT()
82:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and user can
83:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_AbortCpltCallback()
84:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
85:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
86:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
87:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
88:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** Interrupt mode IO sequential operation ***
89:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ==============================================
90:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..]
91:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition
ARM GAS /tmp/ccpuPECZ.s page 3
92:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** when a direction change during transfer
93:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..]
94:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer
95:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Option field values are defined through @ref I2C_XFEROPTIONS and are listed below:
96:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functionnal is same as associated interfa
97:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con
98:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** and data to transfer without a final stop condition
99:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a
100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** and data to transfer without a final stop condition, an then permit a c
101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** several times (like HAL_I2C_Master_Sequential_Transmit_IT() then HAL_I2
102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart
103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases
105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart
106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases
108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Differents sequential I2C interfaces are listed below:
110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using HAL_
111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is execut
112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MasterTxCpltCallback()
113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using HAL_I
114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed
115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT()
117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and user can
118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_AbortCpltCallback()
119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT()
120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and user can
121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code to check the Address Match Code and the transmission direction request
122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and user can
123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_ListenCpltCallback()
124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using HAL_I
125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is execute
126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using HAL_I2
128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed a
129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can
131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_ErrorCallback()
132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT()
133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and user can
134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_AbortCpltCallback()
135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** Interrupt mode IO MEM operation ***
139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** =======================================
140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..]
141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address
142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Mem_Write_IT()
143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and user can
144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MemTxCpltCallback()
145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address
146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Mem_Read_IT()
147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and user can
148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MemRxCpltCallback()
ARM GAS /tmp/ccpuPECZ.s page 4
149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can
150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_ErrorCallback()
151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** DMA mode IO operation ***
153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ==============================
154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..]
155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using
156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Master_Transmit_DMA()
157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and user can
158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MasterTxCpltCallback()
159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using
160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Master_Receive_DMA()
161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and user can
162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using
164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Slave_Transmit_DMA()
165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and user can
166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using
168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Slave_Receive_DMA()
169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and user can
170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can
172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_ErrorCallback()
173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT()
174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and user can
175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_AbortCpltCallback()
176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** DMA mode IO MEM operation ***
180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** =================================
181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..]
182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using
183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Mem_Write_DMA()
184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and user can
185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MemTxCpltCallback()
186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using
187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Mem_Read_DMA()
188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and user can
189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MemRxCpltCallback()
190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can
191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_ErrorCallback()
192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** I2C HAL driver macros list ***
195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ==================================
196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..]
197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver.
198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE: Enable the I2C peripheral
200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE: Disable the I2C peripheral
201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode
202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not
203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag
204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt
205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt
ARM GAS /tmp/ccpuPECZ.s page 5
206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..]
208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros
209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @endverbatim
211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ******************************************************************************
212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @attention
213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *
214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *
© COPYRIGHT(c) 2016 STMicroelectronics
215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *
216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * Redistribution and use in source and binary forms, with or without modification,
217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * are permitted provided that the following conditions are met:
218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * 1. Redistributions of source code must retain the above copyright notice,
219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * this list of conditions and the following disclaimer.
220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * 2. Redistributions in binary form must reproduce the above copyright notice,
221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * this list of conditions and the following disclaimer in the documentation
222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * and/or other materials provided with the distribution.
223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * 3. Neither the name of STMicroelectronics nor the names of its contributors
224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * may be used to endorse or promote products derived from this software
225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * without specific prior written permission.
226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *
227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *
238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ******************************************************************************
239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/
242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #include
243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #include "stm32l0xx_hal.h"
244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @addtogroup STM32L0xx_HAL_Driver
246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{
247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C I2C
250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C HAL module driver
251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{
252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED
255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/
257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/
258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define
260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{
261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */
ARM GAS /tmp/ccpuPECZ.s page 6
263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */
264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */
265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */
266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */
267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */
268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */
269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */
270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */
271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */
272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U
274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define SlaveAddr_SHIFT 7U
275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define SlaveAddr_MSK 0x06U
276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */
278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((HAL_I2C_STATE_BUSY_TX | HAL_I2C_STATE_BUSY_RX) & (~(
279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE))
280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)((HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | HAL_I2C_MOD
281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)((HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | HAL_I2C_MOD
282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)((HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | HAL_I2C_MOD
283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)((HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | HAL_I2C_MOD
284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)((HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | HAL_I2C_MOD
285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)((HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | HAL_I2C_MOD
286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */
289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_XFER_TX_IT (0x00000001U)
290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_XFER_RX_IT (0x00000002U)
291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (0x00000004U)
292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (0x00000011U)
294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (0x00000012U)
295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (0x00000012U)
296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */
298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U)
299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @}
301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private macro -------------------------------------------------------------*/
304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) ((((__HANDLE__)->State) == HAL_I2C_STATE_BUSY_TX) ? \
305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ((uint32_t)((__HANDLE__)->hdmatx->Instance->CNDTR)) : \
306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ((uint32_t)((__HANDLE__)->hdmarx->Instance->CNDTR)))
307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/
309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/
310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions
312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{
313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions to handle DMA transfer */
315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma);
316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma);
317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma);
318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma);
319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma);
ARM GAS /tmp/ccpuPECZ.s page 7
320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma);
321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions to handle IT transfer */
323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITMasterSequentialCplt(I2C_HandleTypeDef *hi2c);
325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITSlaveSequentialCplt(I2C_HandleTypeDef *hi2c);
326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode);
330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions to handle IT transfer */
332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1
333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16
334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */
336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint
337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint3
338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uin
339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint
340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */
342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_
347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */
349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions to flush TXDR register */
353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c);
354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions to handle start, restart or stop a transfer */
356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_
357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @}
359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/
362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions
364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{
365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions
368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Initialization and Configuration functions
369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *
370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @verbatim
371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ===============================================================================
372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ##### Initialization and de-initialization functions #####
373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ===============================================================================
374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and
375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** deinitialize the I2Cx peripheral:
376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 8
377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures
378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ).
379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with
381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the selected configuration:
382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Clock Timing
383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Own Address 1
384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Addressing mode (Master, Slave)
385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Dual Addressing mode
386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Own Address 2
387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Own Address 2 Mask
388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) General call mode
389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Nostretch mode
390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration
392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** of the selected I2Cx peripheral.
393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @endverbatim
395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{
396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters
400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle.
401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the I2C handle allocation */
408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c == NULL)
409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode));
417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode));
418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2));
419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks));
420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode));
421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode));
422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET)
424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Allocate lock resource and initialize it */
426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED;
427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c);
430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 9
434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable the selected I2C peripheral */
435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/
438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */
439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK;
440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/
442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */
443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN;
444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */
446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT)
447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1);
449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */
451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1);
453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/
456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */
457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 = (I2C_CR2_ADD10);
460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */
462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK);
463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/
465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */
466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE;
467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */
469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | (hi2c->Init.OwnAddr
470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/
472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */
473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode);
474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the selected I2C peripheral */
476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c);
477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral.
488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
ARM GAS /tmp/ccpuPECZ.s page 10
491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c)
493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the I2C handle allocation */
495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c == NULL)
496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */
506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c);
510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Release Lock */
517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Initialize the I2C MSP.
524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c);
532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file
535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP.
540:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c);
ARM GAS /tmp/ccpuPECZ.s page 11
548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file
551:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @}
556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
557:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions
559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Data transfers functions
560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *
561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @verbatim
562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ===============================================================================
563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ##### IO operation functions #####
564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ===============================================================================
565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..]
566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data
567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** transfers.
568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) There are two modes of transfer:
570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode.
571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** The status of all data processing is returned by the same function
572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** after finishing transfer.
573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts
574:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup.
575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** The end of the data processing will be indicated through the
576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when
577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** using DMA mode.
578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) Blocking mode functions are :
580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit()
581:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive()
582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit()
583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive()
584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write()
585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read()
586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady()
587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are :
589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT()
590:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT()
591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT()
592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT()
593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT()
594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT()
595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are :
597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA()
598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA()
599:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA()
600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA()
601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA()
602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA()
603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode:
ARM GAS /tmp/ccpuPECZ.s page 12
605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback()
606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback()
607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback()
608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback()
609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback()
610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback()
611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback()
612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @endverbatim
614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{
615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode.
619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration
626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD
629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
630:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
631:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
637:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick();
639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
643:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */
655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRIT
660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
ARM GAS /tmp/ccpuPECZ.s page 13
662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_WRI
665:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TXIS flag is set */
670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Write data to TXDR */
682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = (*hi2c->pBuffPtr++);
683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferSize == 0U) && (hi2c->XferCount != 0U))
687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TCR flag is set */
689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is set */
709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpuPECZ.s page 14
719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
721:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */
722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
735:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
738:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
742:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode.
743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
744:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration
750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa
753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
760:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick();
763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
ARM GAS /tmp/ccpuPECZ.s page 15
776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */
779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_START_READ
784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_REA
789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
790:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
793:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until RXNE flag is set */
794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
801:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
803:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */
807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR;
808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferSize == 0U) && (hi2c->XferCount != 0U))
812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TCR flag is set */
814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
ARM GAS /tmp/ccpuPECZ.s page 16
833:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is set */
834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */
847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
851:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
854:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
857:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
859:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
860:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
861:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
863:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
865:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
866:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
867:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode.
868:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
869:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
870:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
871:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
872:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration
873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
874:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, ui
876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
877:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
878:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
879:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
880:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
882:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
883:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
884:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
885:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
887:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
888:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick();
ARM GAS /tmp/ccpuPECZ.s page 17
890:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
893:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
895:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
898:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
899:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
900:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */
901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
902:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
903:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until ADDR flag is set */
904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
905:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
906:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */
907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
909:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
911:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag */
912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If 10bit addressing mode is selected */
915:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
916:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until ADDR flag is set */
918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
919:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
920:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */
921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
923:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
925:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag */
926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
927:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
928:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */
930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK)
931:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
932:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */
933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
938:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
939:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TXIS flag is set */
940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
941:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
942:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */
943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
944:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
946:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 18
947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
948:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
949:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
950:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
951:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
952:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
953:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
955:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Write data to TXDR */
956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = (*hi2c->pBuffPtr++);
957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
958:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
959:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
960:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOP flag is set */
961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */
964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
965:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
967:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
968:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Normal use case for Transmitter mode */
969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* A NACK is generated to confirm the end of transfer */
970:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
971:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
973:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
974:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
975:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
976:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
977:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
978:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP flag */
979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
980:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
981:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
983:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
984:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */
985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
986:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
988:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
989:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */
990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
991:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
994:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
995:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
997:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
999:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1001:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpuPECZ.s page 19
1004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1006:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
1007:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode
1008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1009:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1011:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration
1013:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
1014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
1015:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uin
1016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1017:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
1018:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1019:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1022:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
1024:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1025:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
1026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1027:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1028:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick();
1030:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1031:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1033:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1035:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
1036:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
1038:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
1039:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1040:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */
1041:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1042:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1043:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1045:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1047:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
1049:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1050:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag */
1052:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1053:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1054:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */
1055:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK)
1056:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1058:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
1060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpuPECZ.s page 20
1061:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1063:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1064:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until RXNE flag is set */
1065:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1070:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Store Last receive data if any */
1071:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET)
1072:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1073:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */
1074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR;
1075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
1076:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1077:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1078:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_TIMEOUT)
1079:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
1081:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1082:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1083:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
1085:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1086:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */
1089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR;
1090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
1091:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1092:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1093:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOP flag is set */
1094:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1098:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
1100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
1102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
1106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP flag */
1110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
1113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
1114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
ARM GAS /tmp/ccpuPECZ.s page 21
1118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */
1121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
1130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
1138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt
1139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
1143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
1146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
1147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
1150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
1159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
1166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
1168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
ARM GAS /tmp/ccpuPECZ.s page 22
1175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */
1183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_GENERATE_START_WRITE);
1185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
1192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */
1195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
1196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
1197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
1199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
1207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt
1208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
1212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
1215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
1216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *
1217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
1219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
1228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
ARM GAS /tmp/ccpuPECZ.s page 23
1232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
1235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
1237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */
1252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_GENERATE_START_READ);
1254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
1261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
1263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */
1264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
1265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
1266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
1268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
1276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt
1277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
1282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
1283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
1284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
1288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
ARM GAS /tmp/ccpuPECZ.s page 24
1289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */
1295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
1298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
1300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
1303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
1310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */
1313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
1314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
1315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
1317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
1325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt
1326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
1331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
1332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
1333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
1337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */
1344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 25
1346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
1347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
1349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
1352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
1359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
1361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */
1362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
1363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
1364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
1366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
1374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA
1375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
1379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
1382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
1383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
1386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
1395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
1402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
ARM GAS /tmp/ccpuPECZ.s page 26
1403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
1404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
1406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
1419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
1421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
1422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the DMA error callback */
1424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
1425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
1427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
1428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
1429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */
1431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSi
1432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */
1434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
1435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_GENERATE_START_WRITE);
1436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update XferCount value */
1438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
1439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
1446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
1447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
1448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable DMA Request */
1450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
1451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
1455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */
1458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
1459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_WRI
ARM GAS /tmp/ccpuPECZ.s page 27
1460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
1467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */
1469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_
1470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
1471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
1474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
1482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA
1483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
1487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
1490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
1491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
1494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
1503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
1510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
1512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
1514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 28
1517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
1527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
1529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
1530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the DMA error callback */
1532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
1533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
1535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
1536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
1537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */
1539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pData, hi2c->XferSi
1540:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */
1542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
1543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_GENERATE_START_READ);
1544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update XferCount value */
1546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
1547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1551:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
1554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
1555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
1556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1557:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable DMA Request */
1558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
1559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
1563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */
1566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
1567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_REA
1568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
ARM GAS /tmp/ccpuPECZ.s page 29
1574:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
1575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */
1577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_
1578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
1579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
1581:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
1589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA
1590:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
1595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
1596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size
1597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1599:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
1603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
1605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
1612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
1614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
1617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
1619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
1620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the DMA error callback */
1622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
1623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
1625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
1626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
1627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */
1629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize
1630:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 30
1631:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */
1632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1637:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
1640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
1641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
1642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1643:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable DMA Request */
1644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
1645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
1647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
1655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA
1656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
1661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
1662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
1663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1665:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
1669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
1671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
1678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
1680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
1683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
1685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
1686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the DMA error callback */
ARM GAS /tmp/ccpuPECZ.s page 31
1688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
1689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
1691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
1692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
1693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */
1695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pData, hi2c->XferSize
1696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */
1698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
1706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
1707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
1708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable DMA Request */
1710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
1711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
1713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
1720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address
1721:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
1725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address
1726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
1727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration
1730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
1731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
1732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre
1733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
1735:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
1737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
1738:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1742:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
1744:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpuPECZ.s page 32
1745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
1747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick();
1751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
1753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
1755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
1759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1760:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
1762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
1764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
1765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
1767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL
1768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
1770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
1774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
1780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
1788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1790:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
1793:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** do
1796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TXIS flag is set */
1798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
1801:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 33
1802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
1803:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
1807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Write data to TXDR */
1811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = (*hi2c->pBuffPtr++);
1812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
1813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
1814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferSize == 0U) && (hi2c->XferCount != 0U))
1816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TCR flag is set */
1818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
1819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
1821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
1827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
1832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1833:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (hi2c->XferCount > 0U);
1837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
1839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
1840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
1843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
1845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
1849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1851:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */
1853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1854:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
1856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
1857:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
ARM GAS /tmp/ccpuPECZ.s page 34
1859:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1860:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1861:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1863:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
1865:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1866:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1867:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1868:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
1869:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1870:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1871:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1872:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
1873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address
1874:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
1876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1877:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
1878:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address
1879:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
1880:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
1881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
1882:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration
1883:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
1884:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
1885:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres
1886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1887:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
1888:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
1890:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
1891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1893:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1895:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("Bad pData or Size=0\r\n");
1897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
1898:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1899:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1900:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
1901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1902:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1903:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick();
1905:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1906:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
1907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("Timeout\r\n");
1909:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
1910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1911:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
1914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1915:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 35
1916:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
1917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
1919:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
1920:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
1922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_
1923:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("Error in memory read - %d\r\n", hi2c->ErrorCode);
1925:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
1926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1927:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1928:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
1930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1931:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1932:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
1934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
1936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1938:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1939:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */
1940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
1941:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1942:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1944:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_START_READ
1945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1946:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1948:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1949:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_REA
1950:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1951:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1952:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** do
1953:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until RXNE flag is set */
1955:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK)
1956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("waiting for flag timeout1\r\n");
1958:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
1959:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1960:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */
1962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR;
1963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
1964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
1965:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferSize == 0U) && (hi2c->XferCount != 0U))
1967:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1968:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TCR flag is set */
1969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
1970:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1971:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("waiting for flag timeout2\r\n");
1972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
ARM GAS /tmp/ccpuPECZ.s page 36
1973:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1974:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1975:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1976:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1977:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1978:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
1979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1980:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1981:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1983:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
1984:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1986:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (hi2c->XferCount > 0U);
1988:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1989:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
1990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
1991:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
1994:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1995:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("waiting for stop error %d\r\n", hi2c->ErrorCode);
1996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
1997:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
1999:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2001:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */
2005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2006:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2007:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
2008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
2009:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2011:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2013:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2015:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
2017:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2018:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2019:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("busy!!\r\n");
2021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
2022:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2024:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2025:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres
2026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2027:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2028:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
ARM GAS /tmp/ccpuPECZ.s page 37
2030:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address
2031:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2033:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
2034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
2035:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2036:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd
2037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2038:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
2039:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
2040:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2041:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
2042:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2043:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2045:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2047:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
2049:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2050:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2052:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2053:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
2054:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2055:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2056:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
2057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2058:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick();
2061:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2063:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2064:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2065:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
2067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
2069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2070:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2071:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2072:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2073:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2076:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2077:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2078:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2079:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2081:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2082:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2083:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar
2085:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2086:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
ARM GAS /tmp/ccpuPECZ.s page 38
2087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
2091:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2092:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2093:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2094:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2098:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
2102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
2109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */
2112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
2116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
2120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre
2125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
2129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address
2130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
2133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
2134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd
2136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
2138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
2139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
2141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
ARM GAS /tmp/ccpuPECZ.s page 39
2144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
2148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
2153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
2156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick();
2160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
2166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
2168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart
2184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
2186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
2190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_GENERATE_START_READ);
ARM GAS /tmp/ccpuPECZ.s page 40
2201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
2208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
2210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */
2211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
2212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
2213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
2215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
2219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address
2223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
2227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address
2228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
2231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
2232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA
2234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
2236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
2237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
2239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
2246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
2251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
2254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick();
ARM GAS /tmp/ccpuPECZ.s page 41
2258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
2264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
2266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
2268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar
2282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
2284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
2288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
2299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the DMA error callback */
2301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
2302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
2305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
2306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */
2308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize
2309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */
2311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
2313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update XferCount value */
ARM GAS /tmp/ccpuPECZ.s page 42
2315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
2323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable DMA Request */
2327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
2328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
2330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
2334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address.
2339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
2343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address
2344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be read
2347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
2348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd
2350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
2352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
2353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
2355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
2362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
2367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
2370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 43
2372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick();
2374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
2380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
2382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
2384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart
2398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
2400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
2404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
2415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the DMA error callback */
2417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
2418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
2421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
2422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */
2424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pData, hi2c->XferSize
2425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_GENERATE_START_READ);
2428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 44
2429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update XferCount value */
2430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable DMA Request */
2436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
2437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
2441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
2445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
2449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Checks if target device is ready for communication.
2454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @note This function is used with Memory devices
2455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
2459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Trials Number of trials
2460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration
2461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
2462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria
2464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
2466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0U;
2468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
2474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
2477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
2480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** do
2483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Generate Start */
2485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress);
ARM GAS /tmp/ccpuPECZ.s page 45
2486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
2488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/
2489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick();
2490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (__HAL_I2C_GET_FLAG(hi2c, I2C_F
2491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
2493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
2495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Device is ready */
2497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */
2506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET)
2507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
2510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */
2515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Device is ready */
2518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
2524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
2529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */
2534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
2535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/
2537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2540:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if the maximum allowed number of trials has been reached */
2541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_Trials++ == Trials)
2542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 46
2543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Generate Stop */
2544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
2545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
2548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2551:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */
2553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (I2C_Trials < Trials);
2557:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
2568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte
2573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
2574:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
2578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
2580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
2581:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
2582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Sequential_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddres
2584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
2586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
2587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
2589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
2590:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
2594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2599:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 47
2600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
2601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
2603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
2604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If size > MAX_NBYTE_SIZE, use reload mode */
2607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
2616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If transfer direction not change, do not generate Restart Condition */
2619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Mean Previous state is same as current state */
2620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX)
2621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
2623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
2626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, xferrequest);
2627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2630:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2631:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
2634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
2637:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
2641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2643:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter
2646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
2647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
2651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
2653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
2654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
2655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress
ARM GAS /tmp/ccpuPECZ.s page 48
2657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
2659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
2660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
2662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
2663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2665:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
2667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
2674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
2676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
2677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
2680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
2689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If transfer direction not change, do not generate Restart Condition */
2692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Mean Previous state is same as current state */
2693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX)
2694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
2696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
2699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, xferrequest);
2700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
2707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
2708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
2710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
ARM GAS /tmp/ccpuPECZ.s page 49
2714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit
2719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
2720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2721:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
2724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
2725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
2726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Sequential_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uin
2728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
2730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
2731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->State & HAL_I2C_STATE_LISTEN) == HAL_I2C_STATE_LISTEN)
2733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2735:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
2737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2738:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
2740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
2741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2742:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
2743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2744:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
2746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
2747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
2748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable associated Interrupts */
2750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
2751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
2754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */
2758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2760:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
2761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
2763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
2765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
2766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
2768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
2770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
ARM GAS /tmp/ccpuPECZ.s page 50
2771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
2772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
2780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* REnable ADDR interrupt */
2781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
2782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
2784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
2788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2790:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with
2793:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
2794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer
2797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent
2798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
2799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
2800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2801:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint
2802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2803:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
2804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
2805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->State & HAL_I2C_STATE_LISTEN) == HAL_I2C_STATE_LISTEN)
2807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
2811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
2814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
2815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
2817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
2820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
2821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
2822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable associated Interrupts */
2824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
2825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
ARM GAS /tmp/ccpuPECZ.s page 51
2828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */
2832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2833:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */
2835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
2837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
2839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
2840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT)
2842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
2844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
2845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
2846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2851:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
2854:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* REnable ADDR interrupt */
2855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
2856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2857:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
2858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2859:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2860:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2861:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
2862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2863:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2865:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2866:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt.
2867:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2868:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2869:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
2870:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2871:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c)
2872:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2874:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
2877:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2878:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the Address Match interrupt */
2879:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2880:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
2882:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2883:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2884:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 52
2885:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
2886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2887:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2888:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2890:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt.
2891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C
2893:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
2894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2895:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c)
2896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
2898:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tmp;
2899:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2900:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */
2901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
2902:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2903:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK;
2904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
2905:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2906:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
2908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2909:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable the Address Match interrupt */
2910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2911:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
2913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2915:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2916:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
2917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2919:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2920:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt.
2922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2923:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2925:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
2926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
2927:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2928:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress)
2929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER)
2931:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2932:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
2933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts */
2936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
2937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
2938:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2939:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */
2940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT;
2941:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 53
2942:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */
2943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe
2944:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP);
2945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2946:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
2947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2948:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2949:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2950:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2951:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */
2952:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
2953:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
2955:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
2957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2958:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wrong usage of abort function */
2959:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */
2960:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
2961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2965:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @}
2966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2967:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2968:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
2969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{
2970:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2971:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2973:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request.
2974:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2975:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2976:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
2977:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2978:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c)
2979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2980:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
2981:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
2982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
2983:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2984:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/
2985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferISR != NULL)
2986:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources);
2988:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2989:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2991:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
2992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request.
2993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2994:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
2995:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
2996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
2997:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c)
2998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 54
2999:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
3000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
3001:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/
3003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((itflags & I2C_FLAG_BERR) != RESET) && ((itsources & I2C_IT_ERRI) != RESET))
3004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR;
3006:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3007:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear BERR flag */
3008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
3009:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3011:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/
3012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((itflags & I2C_FLAG_OVR) != RESET) && ((itsources & I2C_IT_ERRI) != RESET))
3013:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR;
3015:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear OVR flag */
3017:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
3018:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3019:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/
3021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((itflags & I2C_FLAG_ARLO) != RESET) && ((itsources & I2C_IT_ERRI) != RESET))
3022:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO;
3024:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3025:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ARLO flag */
3026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
3027:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3028:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */
3030:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->ErrorCode & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C
3031:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
3033:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3035:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3036:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback.
3038:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3039:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3040:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
3041:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3042:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c)
3043:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
3045:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c);
3046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3047:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
3048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file
3049:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3050:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3052:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3053:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback.
3054:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3055:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
ARM GAS /tmp/ccpuPECZ.s page 55
3056:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
3057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3058:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
3059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
3061:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c);
3062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3063:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
3064:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file
3065:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback.
3069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3070:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3071:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
3072:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3073:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c)
3074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
3076:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c);
3077:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3078:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
3079:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file
3080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3081:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3082:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3083:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback.
3085:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3086:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
3088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
3090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3091:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
3092:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c);
3093:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3094:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
3095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file
3096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3098:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Slave Address Match callback.
3101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE
3104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code
3105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
3106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM
3108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
3110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c);
3111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(TransferDirection);
3112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(AddrMatchCode);
ARM GAS /tmp/ccpuPECZ.s page 56
3113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
3115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file
3116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Listen Complete callback.
3121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
3124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c)
3126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
3128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c);
3129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
3131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file
3132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback.
3137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
3140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c)
3142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
3144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c);
3145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
3147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file
3148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback.
3153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
3156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c)
3158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
3160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c);
3161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
3163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file
3164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C error callback.
3169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
ARM GAS /tmp/ccpuPECZ.s page 57
3170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
3172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c)
3174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
3176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c);
3177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
3179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file
3180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C abort callback.
3185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
3188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c)
3190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
3192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c);
3193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
3195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file
3196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @}
3201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions
3204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions
3205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *
3206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @verbatim
3207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ===============================================================================
3208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions #####
3209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ===============================================================================
3210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..]
3211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral
3212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** and the data flow.
3213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @endverbatim
3215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{
3216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Return the I2C handle state.
3220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL state
3223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c)
3225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Return I2C handle state */
ARM GAS /tmp/ccpuPECZ.s page 58
3227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return hi2c->State;
3228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode.
3232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for I2C module
3234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL mode
3235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c)
3237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return hi2c->Mode;
3239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Return the I2C error code.
3243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval I2C Error Code
3246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c)
3248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return hi2c->ErrorCode;
3250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @}
3254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @}
3258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions
3261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{
3262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt.
3266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
3269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
3270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
3271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint
3273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint16_t devaddress = 0U;
3275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
3277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_AF) != RESET) && ((ITSources & I2C_IT_NACKI) != RESET))
3280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */
3282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
3283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 59
3284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set corresponding Error Code */
3285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
3286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
3287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
3288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Flush TX register */
3290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
3291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_RXNE) != RESET) && ((ITSources & I2C_IT_RXI) != RESET))
3293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */
3295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR;
3296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
3297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
3298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_TXIS) != RESET) && ((ITSources & I2C_IT_TXI) != RESET))
3300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Write data to TXDR */
3302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = (*hi2c->pBuffPtr++);
3303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
3304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
3305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_TCR) != RESET) && ((ITSources & I2C_IT_TCI) != RESET))
3307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferSize == 0U) && (hi2c->XferCount != 0U))
3309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** devaddress = (hi2c->Instance->CR2 & I2C_CR2_SADD);
3311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
3316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
3321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, hi2c->XferSize, hi2c->XferOptions, I2C_NO_STARTSTOP)
3323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
3327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
3333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
3334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
3336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITMasterSequentialCplt(hi2c);
3337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
ARM GAS /tmp/ccpuPECZ.s page 60
3341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
3342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
3343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_TC) != RESET) && ((ITSources & I2C_IT_TCI) != RESET))
3347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
3349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
3351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
3353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
3354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Generate Stop */
3356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
3357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
3361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITMasterSequentialCplt(hi2c);
3362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
3368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
3369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
3370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_STOPF) != RESET) && ((ITSources & I2C_IT_STOPI) != RESET))
3374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Master complete process */
3376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
3377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
3380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
3383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt.
3387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
3390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
3391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
3392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint3
3394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process locked */
3396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 61
3398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_AF) != RESET) && ((ITSources & I2C_IT_NACKI) != RESET))
3399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check that I2C transfer finished */
3401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
3402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Mean XferCount == 0*/
3403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* So clear Flag NACKF only */
3404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
3405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((hi2c->XferOptions == I2C_FIRST_AND_LAST_FRAME) || (hi2c->XferOptions == I2C_LAST_FRAME)
3407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_LISTEN))
3408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Listen complete process */
3410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags);
3411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if ((hi2c->XferOptions != I2C_NO_OPTION_FRAME) && (hi2c->State == HAL_I2C_STATE_BUSY_TX_
3413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */
3415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
3416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Flush TX register */
3418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
3419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Last Byte is Transmitted */
3421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
3422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITSlaveSequentialCplt(hi2c);
3423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */
3427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
3428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
3433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */
3434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
3435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
3437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
3438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_RXNE) != RESET) && ((ITSources & I2C_IT_RXI) != RESET))
3441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
3443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */
3445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR;
3446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
3447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
3448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \
3451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferOptions != I2C_NO_OPTION_FRAME))
3452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
3454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITSlaveSequentialCplt(hi2c);
ARM GAS /tmp/ccpuPECZ.s page 62
3455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_ADDR) != RESET) && ((ITSources & I2C_IT_ADDRI) != RESET))
3458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags);
3460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_TXIS) != RESET) && ((ITSources & I2C_IT_TXI) != RESET))
3462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */
3464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */
3465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if all Datas have already been sent */
3466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */
3467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
3468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Write data to TXDR */
3470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = (*hi2c->pBuffPtr++);
3471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
3472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
3473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferOptions == I2C_NEXT_FRAME) || (hi2c->XferOptions == I2C_FIRST_FRAME))
3477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Last Byte is Transmitted */
3479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
3480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITSlaveSequentialCplt(hi2c);
3481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if STOPF is set */
3486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_STOPF) != RESET) && ((ITSources & I2C_IT_STOPI) != RESET))
3487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Slave complete process */
3489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags);
3490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
3493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
3496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA.
3500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
3503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
3504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
3505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uin
3507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint16_t devaddress = 0U;
3509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
3510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */
ARM GAS /tmp/ccpuPECZ.s page 63
3512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_AF) != RESET) && ((ITSources & I2C_IT_NACKI) != RESET))
3515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */
3517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
3518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set corresponding Error Code */
3520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
3521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
3523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
3524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
3525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
3526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Flush TX register */
3528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
3529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_TCR) != RESET) && ((ITSources & I2C_IT_TCI) != RESET))
3531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable TC interrupt */
3533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI);
3534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
3536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Recover Slave address */
3538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** devaddress = (hi2c->Instance->CR2 & I2C_CR2_SADD);
3539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3540:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
3541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3551:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */
3553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
3554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update XferCount value */
3556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3557:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable DMA Request */
3559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
3560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
3562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
3566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
ARM GAS /tmp/ccpuPECZ.s page 64
3569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
3571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
3572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
3573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3574:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_STOPF) != RESET) && ((ITSources & I2C_IT_STOPI) != RESET))
3576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Master complete process */
3578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
3579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3581:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
3582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
3585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA.
3589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3590:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
3592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
3593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
3594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint
3596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process locked */
3598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3599:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_AF) != RESET) && ((ITSources & I2C_IT_NACKI) != RESET))
3601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check that I2C transfer finished */
3603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
3604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Mean XferCount == 0 */
3605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* So clear Flag NACKF only */
3606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c) == 0U)
3607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */
3609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
3610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
3614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */
3615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
3616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
3618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
3619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_ADDR) != RESET) && ((ITSources & I2C_IT_ADDRI) != RESET))
3622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag */
3624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
3625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpuPECZ.s page 65
3626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_STOPF) != RESET) && ((ITSources & I2C_IT_STOPI) != RESET))
3627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Slave complete process */
3629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags);
3630:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3631:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
3633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
3636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3637:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques
3640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3643:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
3644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address
3645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
3646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration
3647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Tickstart Tick start value
3648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
3649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1
3651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRITE);
3653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TXIS flag is set */
3655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
3656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
3658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
3660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
3664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3665:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If Memory address size is 8Bit */
3668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
3669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Memory Address */
3671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
3672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If Memory address size is 16Bit */
3674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send MSB of Memory Address */
3677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
3678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TXIS flag is set */
3680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
3681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
ARM GAS /tmp/ccpuPECZ.s page 66
3683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
3685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
3689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send LSB of Memory Address */
3693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
3694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TCR flag is set */
3697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK)
3698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
3700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
3703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request
3707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
3709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface
3711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address
3712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
3713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration
3714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Tickstart Tick start value
3715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
3716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16
3718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WRITE);
3720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3721:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TXIS flag is set */
3722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
3723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("I2C_RequestMemoryRead error %d\r\n", hi2c->ErrorCode);
3725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
3726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
3728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
3732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3735:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If Memory address size is 8Bit */
3736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
3737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3738:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Memory Address */
3739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
ARM GAS /tmp/ccpuPECZ.s page 67
3740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If Memory address size is 16Bit */
3742:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3744:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send MSB of Memory Address */
3745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
3746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TXIS flag is set */
3748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
3749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("I2C_RequestMemoryRead error2 %d\r\n", hi2c->ErrorCode);
3751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
3752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
3754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
3758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3760:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send LSB of Memory Address */
3762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
3763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TC flag is set */
3766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK)
3767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("I2C_RequestMemoryRead TIMEOUT\r\n");
3769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
3770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
3773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C Address complete process callback.
3777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle.
3778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
3779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
3780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
3782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint8_t transferdirection = 0U;
3784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint16_t slaveaddrcode = 0U;
3785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint16_t ownadd1code = 0U;
3786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint16_t ownadd2code = 0U;
3787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
3789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(ITFlags);
3790:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */
3792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->State & HAL_I2C_STATE_LISTEN) == HAL_I2C_STATE_LISTEN)
3793:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c);
3795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
3796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
ARM GAS /tmp/ccpuPECZ.s page 68
3797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
3798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If 10bits addressing mode is selected */
3800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
3801:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((slaveaddrcode & SlaveAddr_MSK) == ((ownadd1code >> SlaveAddr_SHIFT) & SlaveAddr_MSK))
3803:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** slaveaddrcode = ownadd1code;
3805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->AddrEventCount++;
3806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
3807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset Address Event counter */
3809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->AddrEventCount = 0U;
3810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag */
3812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
3813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
3815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call Slave Addr callback */
3818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
3819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** slaveaddrcode = ownadd2code;
3824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable ADDR Interrupts */
3826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
3827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
3829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call Slave Addr callback */
3832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
3833:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */
3836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable ADDR Interrupts */
3839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
3840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
3842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call Slave Addr callback */
3845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
3846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Else clear address flag only */
3849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3851:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag */
3852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
3853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 69
3854:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
3855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3857:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3859:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3860:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C Master sequential complete process.
3861:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle.
3862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
3863:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITMasterSequentialCplt(I2C_HandleTypeDef *hi2c)
3865:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3866:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset I2C handle mode */
3867:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3868:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3869:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */
3870:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */
3871:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
3872:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3874:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
3875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
3876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3877:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts */
3878:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
3879:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3880:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
3881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3882:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3883:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
3884:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
3885:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
3887:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
3888:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3890:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
3891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
3892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3893:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts */
3894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
3895:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
3897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3898:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3899:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
3900:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
3901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3902:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3903:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3905:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C Slave sequential complete process.
3906:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle.
3907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
3908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3909:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITSlaveSequentialCplt(I2C_HandleTypeDef *hi2c)
3910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 70
3911:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset I2C handle mode */
3912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
3915:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3916:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */
3917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
3918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
3919:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3920:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts */
3921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
3922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3923:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
3924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3925:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Tx complete callback to inform upper layer of the end of transmit process */
3927:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
3928:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
3931:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3932:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */
3933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
3934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
3935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts */
3937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
3938:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3939:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
3940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3941:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3942:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Rx complete callback to inform upper layer of the end of receive process */
3943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
3944:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3946:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
3948:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C Master complete process.
3949:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle.
3950:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
3951:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
3952:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
3953:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
3954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3955:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */
3956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3958:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
3959:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
3960:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset handle parameters */
3962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
3963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
3964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3965:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((ITFlags & I2C_FLAG_AF) != RESET)
3967:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 71
3968:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */
3969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
3970:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3971:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set acknowledge error code */
3972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
3973:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3974:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3975:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Flush TX register */
3976:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
3977:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3978:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts */
3979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_RX_IT);
3980:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3981:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
3982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->ErrorCode != HAL_I2C_ERROR_NONE) || (hi2c->State == HAL_I2C_STATE_ABORT))
3983:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3984:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
3985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
3986:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */
3988:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
3989:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3991:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
3993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3994:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3995:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
3997:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3999:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c);
4001:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
4003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4006:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4007:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4009:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
4011:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4013:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
4014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
4015:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4017:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4018:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
4019:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4022:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4024:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 72
4025:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c);
4026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4027:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
4028:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4030:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4031:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4033:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
4035:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4036:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4038:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4039:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4040:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C Slave complete process.
4041:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle.
4042:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
4043:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
4044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4045:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
4046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4047:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */
4048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
4049:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4050:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag */
4051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4052:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4053:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable all interrupts */
4054:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT | I2C_XFER_RX_IT);
4055:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4056:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */
4057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
4058:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
4060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
4061:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Flush TX register */
4063:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
4064:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4065:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
4066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) ||
4067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN))
4068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = I2C_GET_DMA_REMAIN_DATA(hi2c);
4070:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4071:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4072:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */
4073:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
4074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
4076:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
4077:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4078:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4079:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Store Last receive data if any */
4080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_RXNE) != RESET))
4081:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 73
4082:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */
4083:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR;
4084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4085:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
4086:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
4088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
4089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
4091:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
4092:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4093:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4094:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
4096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
4098:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE)
4100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
4103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
4105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
4106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Listen complete process */
4108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags);
4109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
4112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
4120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
4121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
4124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Slave Rx Complete callback */
4131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
4132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
4134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
ARM GAS /tmp/ccpuPECZ.s page 74
4139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Slave Tx Complete callback */
4141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
4142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C Listen complete process.
4147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle.
4148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
4149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
4150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
4152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset handle parameters */
4154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
4156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
4159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Store Last receive data if any */
4161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_RXNE) != RESET))
4162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */
4164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR;
4165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
4167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
4169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
4170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
4172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
4173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable all Interrupts*/
4177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT);
4178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */
4180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
4186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
4187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C interrupts error process.
4191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle.
4192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ErrorCode Error code to handle.
4193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
4194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode)
ARM GAS /tmp/ccpuPECZ.s page 75
4196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset handle parameters */
4198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = 0U;
4201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set new error code */
4203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode;
4204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts */
4206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) ||
4207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
4208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN))
4209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */
4211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT);
4212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */
4214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
4216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
4217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
4219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable all interrupts */
4221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT);
4222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If state is an abort treatment on goind, don't change state */
4224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* This change will be do later */
4225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT)
4226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */
4228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
4231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
4232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Abort DMA TX transfer if any */
4235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
4236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
4242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Abort DMA TX */
4247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
4248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
4251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpuPECZ.s page 76
4253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Abort DMA RX transfer if any */
4254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
4255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
4257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
4261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Abort DMA RX */
4266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
4267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */
4269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
4270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_ABORT)
4273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c);
4281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
4283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c);
4289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C Tx data register flush process.
4294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle.
4295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
4296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c)
4298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If a pending TXIS flag is set */
4300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */
4301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET)
4302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U;
4304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Flush TX register if not empty */
4307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)
4308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE);
ARM GAS /tmp/ccpuPECZ.s page 77
4310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback.
4315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hdma DMA handle
4316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
4317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma)
4319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
4321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable DMA Request */
4323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
4326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
4327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable STOP interrupt */
4329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
4330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
4332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
4333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update Buffer pointer */
4335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
4336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the XferSize to transfer */
4338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
4339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
4341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
4343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */
4348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, hi2c-
4349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable TC interrupts */
4351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
4352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback.
4357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hdma DMA handle
4358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
4359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma)
4361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
25 .loc 1 4361 0
26 .cfi_startproc
27 @ args = 0, pretend = 0, frame = 0
28 @ frame_needed = 0, uses_anonymous_args = 0
29 @ link register save eliminated.
ARM GAS /tmp/ccpuPECZ.s page 78
30 .LVL0:
4362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hdma);
4364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
4366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */
4367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
4368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
31 .loc 1 4368 0
32 @ sp needed
33 0000 7047 bx lr
34 .cfi_endproc
35 .LFE99:
37 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits
38 .align 1
39 .syntax unified
40 .code 16
41 .thumb_func
42 .fpu softvfp
44 I2C_DMASlaveReceiveCplt:
45 .LFB101:
4369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback.
4372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hdma DMA handle
4373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
4374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma)
4376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
4378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable DMA Request */
4380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
4381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
4383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
4384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable STOP interrupt */
4386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
4387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
4389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
4390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update Buffer pointer */
4392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
4393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the XferSize to transfer */
4395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
4396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
4398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
4400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */
ARM GAS /tmp/ccpuPECZ.s page 79
4405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, hi2c-
4406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable TC interrupts */
4408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
4409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback.
4414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hdma DMA handle
4415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
4416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma)
4418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
46 .loc 1 4418 0
47 .cfi_startproc
48 @ args = 0, pretend = 0, frame = 0
49 @ frame_needed = 0, uses_anonymous_args = 0
50 @ link register save eliminated.
51 .LVL1:
4419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hdma);
4421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
4423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */
4424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
4425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
52 .loc 1 4425 0
53 @ sp needed
54 0000 7047 bx lr
55 .cfi_endproc
56 .LFE101:
58 .section .text.I2C_Disable_IRQ,"ax",%progbits
59 .align 1
60 .syntax unified
61 .code 16
62 .thumb_func
63 .fpu softvfp
65 I2C_Disable_IRQ:
66 .LFB111:
4426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DMA I2C communication error callback.
4429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hdma DMA handle
4430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
4431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma)
4433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
4435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Acknowledge */
4437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
4438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
4441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 80
4443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DMA I2C communication abort callback
4445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure).
4446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hdma DMA handle.
4447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
4448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma)
4450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
4452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Acknowledge */
4454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
4455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset AbortCpltCallback */
4457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if come from abort from user */
4461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
4462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c);
4467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
4469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c);
4472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout.
4477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check.
4480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Status The new Flag status (SET or RESET).
4481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration
4482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Tickstart Tick start value
4483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
4484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
4486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
4488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check for the Timeout */
4490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
4491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((Timeout == 0U) || ((HAL_GetTick() - Tickstart) > Timeout))
4493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
ARM GAS /tmp/ccpuPECZ.s page 81
4500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
4504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag.
4508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration
4511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Tickstart Tick start value
4512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
4513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
4515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
4517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if a NACK is detected */
4519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK)
4520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("I2C_WaitOnTXISFlagUntilTimeout ->I2C_IsAcknowledgeFailed error\r\n");
4522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
4523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check for the Timeout */
4526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
4527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((Timeout == 0U) || ((HAL_GetTick() - Tickstart) > Timeout))
4529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
4531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("I2C_WaitOnTXISFlagUntilTimeout timeout\r\n");
4538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
4539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4540:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
4543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag.
4547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration
4550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Tickstart Tick start value
4551:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
4552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
4554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
4556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 82
4557:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if a NACK is detected */
4558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK)
4559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
4561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check for the Timeout */
4564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((Timeout == 0U) || ((HAL_GetTick() - Tickstart) > Timeout))
4565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
4567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
4574:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
4577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag.
4581:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration
4584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Tickstart Tick start value
4585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
4586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
4588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)
4590:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if a NACK is detected */
4592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK)
4593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
4595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if a STOPF is detected */
4598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET)
4599:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */
4601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
4602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
4604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
4605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
ARM GAS /tmp/ccpuPECZ.s page 83
4614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check for the Timeout */
4617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((Timeout == 0U) || ((HAL_GetTick() - Tickstart) > Timeout))
4618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
4620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
4626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
4629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4630:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4631:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief This function handles Acknowledge failed detection during an I2C Communication.
4633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration
4636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Tickstart Tick start value
4637:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
4638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_
4640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
4642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4643:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOP Flag is reset */
4644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */
4645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
4646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check for the Timeout */
4648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
4649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((Timeout == 0U) || ((HAL_GetTick() - Tickstart) > Timeout))
4651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
4658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACKF Flag */
4663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4665:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */
4666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
4667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Flush TX register */
4669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
4670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 84
4671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */
4672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
4673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF;
4675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
4679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
4682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
4684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar
4688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle.
4689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed.
4690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed.
4691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * This parameter must be a value between 0 and 255.
4692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation.
4693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * This parameter can be one of the following values:
4694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode .
4695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode.
4696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode.
4697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation.
4698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * This parameter can be one of the following values:
4699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition.
4700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0).
4701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request.
4702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request.
4703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None
4704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_
4706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
4708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
4709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode));
4710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request));
4711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* update CR2 register */
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEN
4714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
4715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts.
4719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4721:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
4722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
4723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
4725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tmpisr = 0U;
4727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 85
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferISR == I2C_Master_ISR_DMA) || \
4729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
4730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
4732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
4734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
4735:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_ERROR_IT) == I2C_XFER_ERROR_IT)
4738:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
4740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
4741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4742:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_CPLT_IT) == I2C_XFER_CPLT_IT)
4744:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable STOP interrupts */
4746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
4747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RELOAD_IT) == I2C_XFER_RELOAD_IT)
4750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable TC interrupts */
4752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
4753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else
4756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
4758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, and ADDR interrupts */
4760:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
4761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
4764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
4766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI;
4767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
4770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
4772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI;
4773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_CPLT_IT) == I2C_XFER_CPLT_IT)
4776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable STOP interrupts */
4778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
4779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable interrupts only at the end */
4783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */
4784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* all interrupts requested done */
ARM GAS /tmp/ccpuPECZ.s page 86
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr);
4786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
4788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4790:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts.
4792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4793:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C.
4794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
4795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status
4796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */
4797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
4798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
67 .loc 1 4798 0
68 .cfi_startproc
69 @ args = 0, pretend = 0, frame = 0
70 @ frame_needed = 0, uses_anonymous_args = 0
71 .LVL2:
72 0000 30B5 push {r4, r5, lr}
73 .LCFI0:
74 .cfi_def_cfa_offset 12
75 .cfi_offset 4, -12
76 .cfi_offset 5, -8
77 .cfi_offset 14, -4
78 .LVL3:
4799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tmpisr = 0U;
4800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4801:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
79 .loc 1 4801 0
80 0002 CB07 lsls r3, r1, #31
81 0004 09D5 bpl .L10
82 .LVL4:
4802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4803:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable TC and TXI interrupts */
4804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI;
4805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->State & HAL_I2C_STATE_LISTEN) != HAL_I2C_STATE_LISTEN)
83 .loc 1 4806 0
84 0006 4123 movs r3, #65
85 0008 C35C ldrb r3, [r0, r3]
86 000a 2822 movs r2, #40
87 000c 1340 ands r3, r2
88 000e 282B cmp r3, #40
89 0010 01D0 beq .L13
4807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
4809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
90 .loc 1 4809 0
91 0012 F223 movs r3, #242
92 0014 02E0 b .L4
93 .L13:
4804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
94 .loc 1 4804 0
95 0016 1A33 adds r3, r3, #26
96 0018 00E0 b .L4
97 .LVL5:
ARM GAS /tmp/ccpuPECZ.s page 87
98 .L10:
4799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
99 .loc 1 4799 0
100 001a 0023 movs r3, #0
101 .LVL6:
102 .L4:
4810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
103 .loc 1 4813 0
104 001c 8A07 lsls r2, r1, #30
105 001e 09D5 bpl .L5
4814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable TC and RXI interrupts */
4816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI;
106 .loc 1 4816 0
107 0020 4424 movs r4, #68
108 0022 1C43 orrs r4, r3
109 .LVL7:
4817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->State & HAL_I2C_STATE_LISTEN) != HAL_I2C_STATE_LISTEN)
110 .loc 1 4818 0
111 0024 4122 movs r2, #65
112 0026 825C ldrb r2, [r0, r2]
113 0028 2825 movs r5, #40
114 002a 2A40 ands r2, r5
115 002c 282A cmp r2, #40
116 002e 15D0 beq .L12
4819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
4821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
117 .loc 1 4821 0
118 0030 F422 movs r2, #244
119 0032 1343 orrs r3, r2
120 .LVL8:
121 .L5:
4822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
122 .loc 1 4825 0
123 0034 4A07 lsls r2, r1, #29
124 0036 01D5 bpl .L6
4826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */
4828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
125 .loc 1 4828 0
126 0038 B822 movs r2, #184
127 003a 1343 orrs r3, r2
128 .LVL9:
129 .L6:
4829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_ERROR_IT) == I2C_XFER_ERROR_IT)
130 .loc 1 4831 0
131 003c 1122 movs r2, #17
ARM GAS /tmp/ccpuPECZ.s page 88
132 003e 0A40 ands r2, r1
133 0040 112A cmp r2, #17
134 0042 0DD0 beq .L14
135 .L7:
136 0044 1222 movs r2, #18
137 0046 1140 ands r1, r2
138 .LVL10:
4832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4833:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
4834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
4835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_CPLT_IT) == I2C_XFER_CPLT_IT)
139 .loc 1 4837 0
140 0048 1229 cmp r1, #18
141 004a 0CD0 beq .L15
142 .L8:
4838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable STOP interrupts */
4840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
4841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RELOAD_IT) == I2C_XFER_RELOAD_IT)
143 .loc 1 4843 0
144 004c 1229 cmp r1, #18
145 004e 0DD0 beq .L16
146 .L9:
4844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable TC interrupts */
4846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
4847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable interrupts only at the end */
4850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */
4851:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* all disable interrupts request are not done */
4852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr);
147 .loc 1 4852 0
148 0050 0168 ldr r1, [r0]
149 0052 0A68 ldr r2, [r1]
150 0054 9A43 bics r2, r3
151 0056 0A60 str r2, [r1]
4853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4854:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK;
4855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
152 .loc 1 4855 0
153 0058 0020 movs r0, #0
154 .LVL11:
155 @ sp needed
156 005a 30BD pop {r4, r5, pc}
157 .LVL12:
158 .L12:
4816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
159 .loc 1 4816 0
160 005c 2300 movs r3, r4
161 005e E9E7 b .L5
162 .LVL13:
163 .L14:
ARM GAS /tmp/ccpuPECZ.s page 89
4834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
164 .loc 1 4834 0
165 0060 7F32 adds r2, r2, #127
166 0062 1343 orrs r3, r2
167 .LVL14:
168 0064 EEE7 b .L7
169 .LVL15:
170 .L15:
4840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
171 .loc 1 4840 0
172 0066 0E32 adds r2, r2, #14
173 0068 1343 orrs r3, r2
174 .LVL16:
175 006a EFE7 b .L8
176 .L16:
4846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
177 .loc 1 4846 0
178 006c 4022 movs r2, #64
179 006e 1343 orrs r3, r2
180 .LVL17:
181 0070 EEE7 b .L9
182 .cfi_endproc
183 .LFE111:
185 .section .text.I2C_IsAcknowledgeFailed,"ax",%progbits
186 .align 1
187 .syntax unified
188 .code 16
189 .thumb_func
190 .fpu softvfp
192 I2C_IsAcknowledgeFailed:
193 .LFB108:
4640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
194 .loc 1 4640 0
195 .cfi_startproc
196 @ args = 0, pretend = 0, frame = 0
197 @ frame_needed = 0, uses_anonymous_args = 0
198 .LVL18:
199 0000 70B5 push {r4, r5, r6, lr}
200 .LCFI1:
201 .cfi_def_cfa_offset 16
202 .cfi_offset 4, -16
203 .cfi_offset 5, -12
204 .cfi_offset 6, -8
205 .cfi_offset 14, -4
206 0002 0400 movs r4, r0
207 0004 0E00 movs r6, r1
208 0006 1500 movs r5, r2
4641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
209 .loc 1 4641 0
210 0008 0368 ldr r3, [r0]
211 000a 9B69 ldr r3, [r3, #24]
212 000c DB06 lsls r3, r3, #27
213 000e 16D5 bpl .L25
214 .LVL19:
215 .L20:
4645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
216 .loc 1 4645 0
ARM GAS /tmp/ccpuPECZ.s page 90
217 0010 2368 ldr r3, [r4]
218 0012 9A69 ldr r2, [r3, #24]
219 0014 9206 lsls r2, r2, #26
220 0016 14D4 bmi .L26
4648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
221 .loc 1 4648 0
222 0018 731C adds r3, r6, #1
223 001a F9D0 beq .L20
4650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
224 .loc 1 4650 0
225 001c 002E cmp r6, #0
226 001e 04D0 beq .L21
4650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
227 .loc 1 4650 0 is_stmt 0 discriminator 1
228 0020 FFF7FEFF bl HAL_GetTick
229 .LVL20:
230 0024 401B subs r0, r0, r5
231 0026 B042 cmp r0, r6
232 0028 F2D9 bls .L20
233 .L21:
4652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
234 .loc 1 4652 0 is_stmt 1
235 002a 4123 movs r3, #65
236 002c 2022 movs r2, #32
237 002e E254 strb r2, [r4, r3]
4653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
238 .loc 1 4653 0
239 0030 0023 movs r3, #0
240 0032 2232 adds r2, r2, #34
241 0034 A354 strb r3, [r4, r2]
4656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
242 .loc 1 4656 0
243 0036 023A subs r2, r2, #2
244 0038 A354 strb r3, [r4, r2]
4657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
245 .loc 1 4657 0
246 003a 0320 movs r0, #3
247 003c 24E0 b .L19
248 .LVL21:
249 .L25:
4683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
250 .loc 1 4683 0
251 003e 0020 movs r0, #0
252 .LVL22:
253 0040 22E0 b .L19
254 .LVL23:
255 .L26:
4663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
256 .loc 1 4663 0
257 0042 1022 movs r2, #16
258 0044 DA61 str r2, [r3, #28]
4666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
259 .loc 1 4666 0
260 0046 2368 ldr r3, [r4]
261 0048 1032 adds r2, r2, #16
262 004a DA61 str r2, [r3, #28]
263 .LVL24:
ARM GAS /tmp/ccpuPECZ.s page 91
264 .LBB142:
265 .LBB143:
4301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
266 .loc 1 4301 0
267 004c 2368 ldr r3, [r4]
268 004e 9A69 ldr r2, [r3, #24]
269 0050 9207 lsls r2, r2, #30
270 0052 01D5 bpl .L23
4303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
271 .loc 1 4303 0
272 0054 0022 movs r2, #0
273 0056 9A62 str r2, [r3, #40]
274 .L23:
4307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
275 .loc 1 4307 0
276 0058 2368 ldr r3, [r4]
277 005a 9A69 ldr r2, [r3, #24]
278 005c D207 lsls r2, r2, #31
279 005e 03D4 bmi .L24
4309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
280 .loc 1 4309 0
281 0060 9A69 ldr r2, [r3, #24]
282 0062 0121 movs r1, #1
283 0064 0A43 orrs r2, r1
284 0066 9A61 str r2, [r3, #24]
285 .L24:
286 .LVL25:
287 .LBE143:
288 .LBE142:
4672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
289 .loc 1 4672 0
290 0068 2268 ldr r2, [r4]
291 006a 5368 ldr r3, [r2, #4]
292 006c 0749 ldr r1, .L27
293 006e 0B40 ands r3, r1
294 0070 5360 str r3, [r2, #4]
4674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
295 .loc 1 4674 0
296 0072 0423 movs r3, #4
297 0074 6364 str r3, [r4, #68]
4675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
298 .loc 1 4675 0
299 0076 3D33 adds r3, r3, #61
300 0078 2022 movs r2, #32
301 007a E254 strb r2, [r4, r3]
4676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
302 .loc 1 4676 0
303 007c 0023 movs r3, #0
304 007e 2232 adds r2, r2, #34
305 0080 A354 strb r3, [r4, r2]
4679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
306 .loc 1 4679 0
307 0082 023A subs r2, r2, #2
308 0084 A354 strb r3, [r4, r2]
4681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
309 .loc 1 4681 0
310 0086 0120 movs r0, #1
ARM GAS /tmp/ccpuPECZ.s page 92
311 .L19:
4684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
312 .loc 1 4684 0
313 @ sp needed
314 .LVL26:
315 .LVL27:
316 .LVL28:
317 0088 70BD pop {r4, r5, r6, pc}
318 .L28:
319 008a C046 .align 2
320 .L27:
321 008c 00E800FE .word -33495040
322 .cfi_endproc
323 .LFE108:
325 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits
326 .align 1
327 .syntax unified
328 .code 16
329 .thumb_func
330 .fpu softvfp
332 I2C_WaitOnFlagUntilTimeout:
333 .LFB104:
4486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
334 .loc 1 4486 0
335 .cfi_startproc
336 @ args = 4, pretend = 0, frame = 0
337 @ frame_needed = 0, uses_anonymous_args = 0
338 .LVL29:
339 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
340 .LCFI2:
341 .cfi_def_cfa_offset 24
342 .cfi_offset 3, -24
343 .cfi_offset 4, -20
344 .cfi_offset 5, -16
345 .cfi_offset 6, -12
346 .cfi_offset 7, -8
347 .cfi_offset 14, -4
348 0002 0600 movs r6, r0
349 0004 0C00 movs r4, r1
350 0006 1700 movs r7, r2
351 0008 1D00 movs r5, r3
352 .LVL30:
353 .L31:
4487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
354 .loc 1 4487 0
355 000a 3368 ldr r3, [r6]
356 000c 9B69 ldr r3, [r3, #24]
357 000e 2340 ands r3, r4
358 0010 1B1B subs r3, r3, r4
359 0012 5A42 rsbs r2, r3, #0
360 0014 5341 adcs r3, r3, r2
361 0016 BB42 cmp r3, r7
362 0018 13D1 bne .L35
4490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
363 .loc 1 4490 0
364 001a 6B1C adds r3, r5, #1
365 001c F5D0 beq .L31
ARM GAS /tmp/ccpuPECZ.s page 93
4492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
366 .loc 1 4492 0
367 001e 002D cmp r5, #0
368 0020 05D0 beq .L32
4492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
369 .loc 1 4492 0 is_stmt 0 discriminator 1
370 0022 FFF7FEFF bl HAL_GetTick
371 .LVL31:
372 0026 069B ldr r3, [sp, #24]
373 0028 C01A subs r0, r0, r3
374 002a A842 cmp r0, r5
375 002c EDD9 bls .L31
376 .L32:
4494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
377 .loc 1 4494 0 is_stmt 1
378 002e 4123 movs r3, #65
379 0030 2022 movs r2, #32
380 0032 F254 strb r2, [r6, r3]
4495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
381 .loc 1 4495 0
382 0034 0023 movs r3, #0
383 0036 2232 adds r2, r2, #34
384 0038 B354 strb r3, [r6, r2]
4498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
385 .loc 1 4498 0
386 003a 023A subs r2, r2, #2
387 003c B354 strb r3, [r6, r2]
4499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
388 .loc 1 4499 0
389 003e 0320 movs r0, #3
390 0040 00E0 b .L33
391 .L35:
4503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
392 .loc 1 4503 0
393 0042 0020 movs r0, #0
394 .L33:
4504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
395 .loc 1 4504 0
396 @ sp needed
397 .LVL32:
398 .LVL33:
399 .LVL34:
400 0044 F8BD pop {r3, r4, r5, r6, r7, pc}
401 .cfi_endproc
402 .LFE104:
404 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits
405 .align 1
406 .syntax unified
407 .code 16
408 .thumb_func
409 .fpu softvfp
411 I2C_WaitOnSTOPFlagUntilTimeout:
412 .LFB106:
4554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
413 .loc 1 4554 0
414 .cfi_startproc
415 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/ccpuPECZ.s page 94
416 @ frame_needed = 0, uses_anonymous_args = 0
417 .LVL35:
418 0000 70B5 push {r4, r5, r6, lr}
419 .LCFI3:
420 .cfi_def_cfa_offset 16
421 .cfi_offset 4, -16
422 .cfi_offset 5, -12
423 .cfi_offset 6, -8
424 .cfi_offset 14, -4
425 0002 0500 movs r5, r0
426 0004 0C00 movs r4, r1
427 0006 1600 movs r6, r2
428 .LVL36:
429 .L37:
4555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
430 .loc 1 4555 0
431 0008 2B68 ldr r3, [r5]
432 000a 9B69 ldr r3, [r3, #24]
433 000c 9B06 lsls r3, r3, #26
434 000e 1AD4 bmi .L42
4558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
435 .loc 1 4558 0
436 0010 3200 movs r2, r6
437 0012 2100 movs r1, r4
438 0014 2800 movs r0, r5
439 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed
440 .LVL37:
441 001a 0028 cmp r0, #0
442 001c 15D1 bne .L41
4564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
443 .loc 1 4564 0
444 001e 002C cmp r4, #0
445 0020 04D0 beq .L39
4564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
446 .loc 1 4564 0 is_stmt 0 discriminator 1
447 0022 FFF7FEFF bl HAL_GetTick
448 .LVL38:
449 0026 801B subs r0, r0, r6
450 0028 A042 cmp r0, r4
451 002a EDD9 bls .L37
452 .L39:
4566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
453 .loc 1 4566 0 is_stmt 1
454 002c 6B6C ldr r3, [r5, #68]
455 002e 2022 movs r2, #32
456 0030 1343 orrs r3, r2
457 0032 6B64 str r3, [r5, #68]
4567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
458 .loc 1 4567 0
459 0034 4123 movs r3, #65
460 0036 EA54 strb r2, [r5, r3]
4568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
461 .loc 1 4568 0
462 0038 0023 movs r3, #0
463 003a 2232 adds r2, r2, #34
464 003c AB54 strb r3, [r5, r2]
4571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 95
465 .loc 1 4571 0
466 003e 023A subs r2, r2, #2
467 0040 AB54 strb r3, [r5, r2]
4573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
468 .loc 1 4573 0
469 0042 0320 movs r0, #3
470 .L38:
4577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
471 .loc 1 4577 0
472 @ sp needed
473 .LVL39:
474 .LVL40:
475 .LVL41:
476 0044 70BD pop {r4, r5, r6, pc}
477 .LVL42:
478 .L42:
4576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
479 .loc 1 4576 0
480 0046 0020 movs r0, #0
481 0048 FCE7 b .L38
482 .L41:
4560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
483 .loc 1 4560 0
484 004a 0120 movs r0, #1
485 004c FAE7 b .L38
486 .cfi_endproc
487 .LFE106:
489 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits
490 .align 1
491 .syntax unified
492 .code 16
493 .thumb_func
494 .fpu softvfp
496 I2C_WaitOnRXNEFlagUntilTimeout:
497 .LFB107:
4588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)
498 .loc 1 4588 0
499 .cfi_startproc
500 @ args = 0, pretend = 0, frame = 0
501 @ frame_needed = 0, uses_anonymous_args = 0
502 .LVL43:
503 0000 70B5 push {r4, r5, r6, lr}
504 .LCFI4:
505 .cfi_def_cfa_offset 16
506 .cfi_offset 4, -16
507 .cfi_offset 5, -12
508 .cfi_offset 6, -8
509 .cfi_offset 14, -4
510 0002 0400 movs r4, r0
511 0004 0D00 movs r5, r1
512 0006 1600 movs r6, r2
513 .LVL44:
514 .L44:
4589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
515 .loc 1 4589 0
516 0008 2368 ldr r3, [r4]
517 000a 9B69 ldr r3, [r3, #24]
ARM GAS /tmp/ccpuPECZ.s page 96
518 000c 5B07 lsls r3, r3, #29
519 000e 2DD4 bmi .L50
4592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
520 .loc 1 4592 0
521 0010 3200 movs r2, r6
522 0012 2900 movs r1, r5
523 0014 2000 movs r0, r4
524 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed
525 .LVL45:
526 001a 0028 cmp r0, #0
527 001c 28D1 bne .L49
4598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
528 .loc 1 4598 0
529 001e 2368 ldr r3, [r4]
530 0020 9A69 ldr r2, [r3, #24]
531 0022 9206 lsls r2, r2, #26
532 0024 11D4 bmi .L51
4617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
533 .loc 1 4617 0
534 0026 002D cmp r5, #0
535 0028 04D0 beq .L47
4617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
536 .loc 1 4617 0 is_stmt 0 discriminator 1
537 002a FFF7FEFF bl HAL_GetTick
538 .LVL46:
539 002e 801B subs r0, r0, r6
540 0030 A842 cmp r0, r5
541 0032 E9D9 bls .L44
542 .L47:
4619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
543 .loc 1 4619 0 is_stmt 1
544 0034 636C ldr r3, [r4, #68]
545 0036 2022 movs r2, #32
546 0038 1343 orrs r3, r2
547 003a 6364 str r3, [r4, #68]
4620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
548 .loc 1 4620 0
549 003c 4123 movs r3, #65
550 003e E254 strb r2, [r4, r3]
4623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
551 .loc 1 4623 0
552 0040 013B subs r3, r3, #1
553 0042 0022 movs r2, #0
554 0044 E254 strb r2, [r4, r3]
4625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
555 .loc 1 4625 0
556 0046 0320 movs r0, #3
557 .L45:
4629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
558 .loc 1 4629 0
559 @ sp needed
560 .LVL47:
561 .LVL48:
562 .LVL49:
563 0048 70BD pop {r4, r5, r6, pc}
564 .LVL50:
565 .L51:
ARM GAS /tmp/ccpuPECZ.s page 97
4601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
566 .loc 1 4601 0
567 004a 2022 movs r2, #32
568 004c DA61 str r2, [r3, #28]
4604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
569 .loc 1 4604 0
570 004e 2168 ldr r1, [r4]
571 0050 4B68 ldr r3, [r1, #4]
572 0052 0848 ldr r0, .L52
573 0054 0340 ands r3, r0
574 0056 4B60 str r3, [r1, #4]
4606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
575 .loc 1 4606 0
576 0058 0023 movs r3, #0
577 005a 6364 str r3, [r4, #68]
4607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
578 .loc 1 4607 0
579 005c 4121 movs r1, #65
580 005e 6254 strb r2, [r4, r1]
4608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
581 .loc 1 4608 0
582 0060 2232 adds r2, r2, #34
583 0062 A354 strb r3, [r4, r2]
4611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
584 .loc 1 4611 0
585 0064 023A subs r2, r2, #2
586 0066 A354 strb r3, [r4, r2]
4613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
587 .loc 1 4613 0
588 0068 0120 movs r0, #1
589 006a EDE7 b .L45
590 .L50:
4628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
591 .loc 1 4628 0
592 006c 0020 movs r0, #0
593 006e EBE7 b .L45
594 .L49:
4594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
595 .loc 1 4594 0
596 0070 0120 movs r0, #1
597 0072 E9E7 b .L45
598 .L53:
599 .align 2
600 .L52:
601 0074 00E800FE .word -33495040
602 .cfi_endproc
603 .LFE107:
605 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits
606 .align 1
607 .syntax unified
608 .code 16
609 .thumb_func
610 .fpu softvfp
612 I2C_WaitOnTXISFlagUntilTimeout:
613 .LFB105:
4515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
614 .loc 1 4515 0
ARM GAS /tmp/ccpuPECZ.s page 98
615 .cfi_startproc
616 @ args = 0, pretend = 0, frame = 0
617 @ frame_needed = 0, uses_anonymous_args = 0
618 .LVL51:
619 0000 70B5 push {r4, r5, r6, lr}
620 .LCFI5:
621 .cfi_def_cfa_offset 16
622 .cfi_offset 4, -16
623 .cfi_offset 5, -12
624 .cfi_offset 6, -8
625 .cfi_offset 14, -4
626 0002 0400 movs r4, r0
627 0004 0D00 movs r5, r1
628 0006 1600 movs r6, r2
629 .LVL52:
630 .L58:
4516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
631 .loc 1 4516 0
632 0008 2368 ldr r3, [r4]
633 000a 9B69 ldr r3, [r3, #24]
634 000c 9B07 lsls r3, r3, #30
635 000e 24D4 bmi .L61
4519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
636 .loc 1 4519 0
637 0010 3200 movs r2, r6
638 0012 2900 movs r1, r5
639 0014 2000 movs r0, r4
640 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed
641 .LVL53:
642 001a 0028 cmp r0, #0
643 001c 18D1 bne .L62
4526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
644 .loc 1 4526 0
645 001e 6B1C adds r3, r5, #1
646 0020 F2D0 beq .L58
4528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
647 .loc 1 4528 0
648 0022 002D cmp r5, #0
649 0024 04D0 beq .L59
4528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
650 .loc 1 4528 0 is_stmt 0 discriminator 1
651 0026 FFF7FEFF bl HAL_GetTick
652 .LVL54:
653 002a 801B subs r0, r0, r6
654 002c A842 cmp r0, r5
655 002e EBD9 bls .L58
656 .L59:
4530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
657 .loc 1 4530 0 is_stmt 1
658 0030 636C ldr r3, [r4, #68]
659 0032 2022 movs r2, #32
660 0034 1343 orrs r3, r2
661 0036 6364 str r3, [r4, #68]
4531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
662 .loc 1 4531 0
663 0038 4123 movs r3, #65
664 003a E254 strb r2, [r4, r3]
ARM GAS /tmp/ccpuPECZ.s page 99
4532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
665 .loc 1 4532 0
666 003c 0023 movs r3, #0
667 003e 2232 adds r2, r2, #34
668 0040 A354 strb r3, [r4, r2]
4535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
669 .loc 1 4535 0
670 0042 023A subs r2, r2, #2
671 0044 A354 strb r3, [r4, r2]
4537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
672 .loc 1 4537 0
673 0046 0648 ldr r0, .L63
674 0048 FFF7FEFF bl vcom_Send
675 .LVL55:
4538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
676 .loc 1 4538 0
677 004c 0320 movs r0, #3
678 004e 05E0 b .L57
679 .L62:
4521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
680 .loc 1 4521 0
681 0050 0448 ldr r0, .L63+4
682 0052 FFF7FEFF bl vcom_Send
683 .LVL56:
4522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
684 .loc 1 4522 0
685 0056 0120 movs r0, #1
686 0058 00E0 b .L57
687 .L61:
4542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
688 .loc 1 4542 0
689 005a 0020 movs r0, #0
690 .L57:
4543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
691 .loc 1 4543 0
692 @ sp needed
693 .LVL57:
694 .LVL58:
695 .LVL59:
696 005c 70BD pop {r4, r5, r6, pc}
697 .L64:
698 005e C046 .align 2
699 .L63:
700 0060 44000000 .word .LC2
701 0064 00000000 .word .LC0
702 .cfi_endproc
703 .LFE105:
705 .section .text.I2C_RequestMemoryWrite,"ax",%progbits
706 .align 1
707 .syntax unified
708 .code 16
709 .thumb_func
710 .fpu softvfp
712 I2C_RequestMemoryWrite:
713 .LFB88:
3651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRITE);
714 .loc 1 3651 0
ARM GAS /tmp/ccpuPECZ.s page 100
715 .cfi_startproc
716 @ args = 8, pretend = 0, frame = 0
717 @ frame_needed = 0, uses_anonymous_args = 0
718 .LVL60:
719 0000 F0B5 push {r4, r5, r6, r7, lr}
720 .LCFI6:
721 .cfi_def_cfa_offset 20
722 .cfi_offset 4, -20
723 .cfi_offset 5, -16
724 .cfi_offset 6, -12
725 .cfi_offset 7, -8
726 .cfi_offset 14, -4
727 0002 83B0 sub sp, sp, #12
728 .LCFI7:
729 .cfi_def_cfa_offset 32
730 0004 0600 movs r6, r0
731 0006 1500 movs r5, r2
732 0008 1C00 movs r4, r3
3652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
733 .loc 1 3652 0
734 000a DAB2 uxtb r2, r3
735 .LVL61:
736 .LBB144:
737 .LBB145:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
738 .loc 1 4713 0
739 000c 0068 ldr r0, [r0]
740 .LVL62:
741 000e 4368 ldr r3, [r0, #4]
742 .LVL63:
743 0010 1F4F ldr r7, .L73
744 0012 3B40 ands r3, r7
745 0014 8905 lsls r1, r1, #22
746 .LVL64:
747 0016 890D lsrs r1, r1, #22
748 0018 1204 lsls r2, r2, #16
749 .LVL65:
750 001a 1143 orrs r1, r2
751 001c 1D4A ldr r2, .L73+4
752 001e 1143 orrs r1, r2
753 0020 1943 orrs r1, r3
754 0022 4160 str r1, [r0, #4]
755 .LVL66:
756 .LBE145:
757 .LBE144:
3655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
758 .loc 1 3655 0
759 0024 099A ldr r2, [sp, #36]
760 0026 0899 ldr r1, [sp, #32]
761 0028 3000 movs r0, r6
762 002a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
763 .LVL67:
764 002e 0028 cmp r0, #0
765 0030 05D0 beq .L66
3657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
766 .loc 1 3657 0
767 0032 736C ldr r3, [r6, #68]
ARM GAS /tmp/ccpuPECZ.s page 101
768 0034 042B cmp r3, #4
769 0036 26D1 bne .L71
3659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
770 .loc 1 3659 0
771 0038 0120 movs r0, #1
772 .L67:
3703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
773 .loc 1 3703 0
774 003a 03B0 add sp, sp, #12
775 @ sp needed
776 .LVL68:
777 003c F0BD pop {r4, r5, r6, r7, pc}
778 .LVL69:
779 .L66:
3668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
780 .loc 1 3668 0
781 003e 012C cmp r4, #1
782 0040 0ED1 bne .L68
3671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
783 .loc 1 3671 0
784 0042 3368 ldr r3, [r6]
785 0044 EDB2 uxtb r5, r5
786 0046 9D62 str r5, [r3, #40]
787 .L69:
3697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
788 .loc 1 3697 0
789 0048 099B ldr r3, [sp, #36]
790 004a 0093 str r3, [sp]
791 004c 089B ldr r3, [sp, #32]
792 004e 0022 movs r2, #0
793 0050 8021 movs r1, #128
794 0052 3000 movs r0, r6
795 0054 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
796 .LVL70:
797 0058 0028 cmp r0, #0
798 005a EED0 beq .L67
3699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
799 .loc 1 3699 0
800 005c 0320 movs r0, #3
801 005e ECE7 b .L67
802 .L68:
3677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
803 .loc 1 3677 0
804 0060 3368 ldr r3, [r6]
805 0062 2A0A lsrs r2, r5, #8
806 0064 9A62 str r2, [r3, #40]
3680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
807 .loc 1 3680 0
808 0066 099A ldr r2, [sp, #36]
809 0068 0899 ldr r1, [sp, #32]
810 006a 3000 movs r0, r6
811 006c FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
812 .LVL71:
813 0070 0028 cmp r0, #0
814 0072 04D0 beq .L70
3682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
815 .loc 1 3682 0
ARM GAS /tmp/ccpuPECZ.s page 102
816 0074 736C ldr r3, [r6, #68]
817 0076 042B cmp r3, #4
818 0078 07D1 bne .L72
3684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
819 .loc 1 3684 0
820 007a 0120 movs r0, #1
821 007c DDE7 b .L67
822 .L70:
3693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
823 .loc 1 3693 0
824 007e 3368 ldr r3, [r6]
825 0080 EDB2 uxtb r5, r5
826 0082 9D62 str r5, [r3, #40]
827 0084 E0E7 b .L69
828 .L71:
3663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
829 .loc 1 3663 0
830 0086 0320 movs r0, #3
831 0088 D7E7 b .L67
832 .L72:
3688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
833 .loc 1 3688 0
834 008a 0320 movs r0, #3
835 008c D5E7 b .L67
836 .L74:
837 008e C046 .align 2
838 .L73:
839 0090 009800FC .word -67069952
840 0094 00200081 .word -2130698240
841 .cfi_endproc
842 .LFE88:
844 .section .text.I2C_RequestMemoryRead,"ax",%progbits
845 .align 1
846 .syntax unified
847 .code 16
848 .thumb_func
849 .fpu softvfp
851 I2C_RequestMemoryRead:
852 .LFB89:
3718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WRITE);
853 .loc 1 3718 0
854 .cfi_startproc
855 @ args = 8, pretend = 0, frame = 0
856 @ frame_needed = 0, uses_anonymous_args = 0
857 .LVL72:
858 0000 F0B5 push {r4, r5, r6, r7, lr}
859 .LCFI8:
860 .cfi_def_cfa_offset 20
861 .cfi_offset 4, -20
862 .cfi_offset 5, -16
863 .cfi_offset 6, -12
864 .cfi_offset 7, -8
865 .cfi_offset 14, -4
866 0002 83B0 sub sp, sp, #12
867 .LCFI9:
868 .cfi_def_cfa_offset 32
869 0004 0600 movs r6, r0
ARM GAS /tmp/ccpuPECZ.s page 103
870 0006 1400 movs r4, r2
871 0008 1D00 movs r5, r3
3719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
872 .loc 1 3719 0
873 000a DAB2 uxtb r2, r3
874 .LVL73:
875 .LBB146:
876 .LBB147:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
877 .loc 1 4713 0
878 000c 0068 ldr r0, [r0]
879 .LVL74:
880 000e 4368 ldr r3, [r0, #4]
881 .LVL75:
882 0010 254F ldr r7, .L86
883 0012 3B40 ands r3, r7
884 0014 8905 lsls r1, r1, #22
885 .LVL76:
886 0016 890D lsrs r1, r1, #22
887 0018 1204 lsls r2, r2, #16
888 .LVL77:
889 001a 1143 orrs r1, r2
890 001c 234A ldr r2, .L86+4
891 001e 1143 orrs r1, r2
892 0020 1943 orrs r1, r3
893 0022 4160 str r1, [r0, #4]
894 .LVL78:
895 .LBE147:
896 .LBE146:
3722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
897 .loc 1 3722 0
898 0024 099A ldr r2, [sp, #36]
899 0026 0899 ldr r1, [sp, #32]
900 0028 3000 movs r0, r6
901 002a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
902 .LVL79:
903 002e 0028 cmp r0, #0
904 0030 10D1 bne .L83
3736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
905 .loc 1 3736 0
906 0032 012D cmp r5, #1
907 0034 17D1 bne .L78
3739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
908 .loc 1 3739 0
909 0036 3368 ldr r3, [r6]
910 0038 E4B2 uxtb r4, r4
911 003a 9C62 str r4, [r3, #40]
912 .L79:
3766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
913 .loc 1 3766 0
914 003c 099B ldr r3, [sp, #36]
915 003e 0093 str r3, [sp]
916 0040 089B ldr r3, [sp, #32]
917 0042 0022 movs r2, #0
918 0044 4021 movs r1, #64
919 0046 3000 movs r0, r6
920 0048 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
ARM GAS /tmp/ccpuPECZ.s page 104
921 .LVL80:
922 004c 0028 cmp r0, #0
923 004e 21D1 bne .L84
924 .L77:
3773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
925 .loc 1 3773 0
926 0050 03B0 add sp, sp, #12
927 @ sp needed
928 .LVL81:
929 0052 F0BD pop {r4, r5, r6, r7, pc}
930 .LVL82:
931 .L83:
3724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
932 .loc 1 3724 0
933 0054 716C ldr r1, [r6, #68]
934 0056 1648 ldr r0, .L86+8
935 0058 FFF7FEFF bl vcom_Send
936 .LVL83:
3725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
937 .loc 1 3725 0
938 005c 736C ldr r3, [r6, #68]
939 005e 042B cmp r3, #4
940 0060 1DD1 bne .L81
3727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
941 .loc 1 3727 0
942 0062 0120 movs r0, #1
943 0064 F4E7 b .L77
944 .L78:
3745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
945 .loc 1 3745 0
946 0066 3368 ldr r3, [r6]
947 0068 220A lsrs r2, r4, #8
948 006a 9A62 str r2, [r3, #40]
3748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
949 .loc 1 3748 0
950 006c 099A ldr r2, [sp, #36]
951 006e 0899 ldr r1, [sp, #32]
952 0070 3000 movs r0, r6
953 0072 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
954 .LVL84:
955 0076 0028 cmp r0, #0
956 0078 03D1 bne .L85
3762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
957 .loc 1 3762 0
958 007a 3368 ldr r3, [r6]
959 007c E4B2 uxtb r4, r4
960 007e 9C62 str r4, [r3, #40]
961 0080 DCE7 b .L79
962 .L85:
3750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
963 .loc 1 3750 0
964 0082 716C ldr r1, [r6, #68]
965 0084 0B48 ldr r0, .L86+12
966 0086 FFF7FEFF bl vcom_Send
967 .LVL85:
3751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
968 .loc 1 3751 0
ARM GAS /tmp/ccpuPECZ.s page 105
969 008a 736C ldr r3, [r6, #68]
970 008c 042B cmp r3, #4
971 008e 08D1 bne .L82
3753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
972 .loc 1 3753 0
973 0090 0120 movs r0, #1
974 0092 DDE7 b .L77
975 .L84:
3768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
976 .loc 1 3768 0
977 0094 0848 ldr r0, .L86+16
978 0096 FFF7FEFF bl vcom_Send
979 .LVL86:
3769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
980 .loc 1 3769 0
981 009a 0320 movs r0, #3
982 009c D8E7 b .L77
983 .L81:
3731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
984 .loc 1 3731 0
985 009e 0320 movs r0, #3
986 00a0 D6E7 b .L77
987 .L82:
3757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
988 .loc 1 3757 0
989 00a2 0320 movs r0, #3
990 00a4 D4E7 b .L77
991 .L87:
992 00a6 C046 .align 2
993 .L86:
994 00a8 009800FC .word -67069952
995 00ac 00200080 .word -2147475456
996 00b0 00000000 .word .LC4
997 00b4 24000000 .word .LC6
998 00b8 48000000 .word .LC8
999 .cfi_endproc
1000 .LFE89:
1002 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits
1003 .align 1
1004 .syntax unified
1005 .code 16
1006 .thumb_func
1007 .fpu softvfp
1009 I2C_DMAMasterTransmitCplt:
1010 .LFB98:
4319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
1011 .loc 1 4319 0
1012 .cfi_startproc
1013 @ args = 0, pretend = 0, frame = 0
1014 @ frame_needed = 0, uses_anonymous_args = 0
1015 .LVL87:
1016 0000 10B5 push {r4, lr}
1017 .LCFI10:
1018 .cfi_def_cfa_offset 8
1019 .cfi_offset 4, -8
1020 .cfi_offset 14, -4
4320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 106
1021 .loc 1 4320 0
1022 0002 846A ldr r4, [r0, #40]
1023 .LVL88:
4323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1024 .loc 1 4323 0
1025 0004 2268 ldr r2, [r4]
1026 0006 1368 ldr r3, [r2]
1027 0008 1E49 ldr r1, .L101
1028 000a 0B40 ands r3, r1
1029 000c 1360 str r3, [r2]
4326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1030 .loc 1 4326 0
1031 000e 638D ldrh r3, [r4, #42]
1032 0010 9BB2 uxth r3, r3
1033 0012 002B cmp r3, #0
1034 0014 10D1 bne .L89
1035 .LVL89:
1036 .LBB148:
1037 .LBB149:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
1038 .loc 1 4728 0
1039 0016 636B ldr r3, [r4, #52]
1040 0018 1B4A ldr r2, .L101+4
1041 001a 9342 cmp r3, r2
1042 001c 0AD0 beq .L95
1043 001e 1B4A ldr r2, .L101+8
1044 0020 9342 cmp r3, r2
1045 0022 05D0 beq .L99
4778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1046 .loc 1 4778 0
1047 0024 F421 movs r1, #244
1048 .L90:
1049 .LVL90:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1050 .loc 1 4785 0
1051 0026 2268 ldr r2, [r4]
1052 0028 1368 ldr r3, [r2]
1053 002a 0B43 orrs r3, r1
1054 002c 1360 str r3, [r2]
1055 .LVL91:
1056 .L88:
1057 .LBE149:
1058 .LBE148:
4353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1059 .loc 1 4353 0
1060 @ sp needed
1061 .LVL92:
1062 002e 10BD pop {r4, pc}
1063 .LVL93:
1064 .L99:
1065 .LBB151:
1066 .LBB150:
4752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1067 .loc 1 4752 0
1068 0030 6021 movs r1, #96
1069 0032 F8E7 b .L90
1070 .L95:
ARM GAS /tmp/ccpuPECZ.s page 107
1071 0034 6021 movs r1, #96
1072 0036 F6E7 b .L90
1073 .LVL94:
1074 .L89:
1075 .LBE150:
1076 .LBE151:
4335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1077 .loc 1 4335 0
1078 0038 218D ldrh r1, [r4, #40]
1079 003a 636A ldr r3, [r4, #36]
1080 003c 9C46 mov ip, r3
1081 003e 6144 add r1, r1, ip
1082 0040 6162 str r1, [r4, #36]
4338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1083 .loc 1 4338 0
1084 0042 638D ldrh r3, [r4, #42]
1085 0044 9BB2 uxth r3, r3
1086 0046 FF2B cmp r3, #255
1087 0048 14D9 bls .L92
4340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1088 .loc 1 4340 0
1089 004a FF23 movs r3, #255
1090 004c 2385 strh r3, [r4, #40]
1091 .L93:
4348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1092 .loc 1 4348 0
1093 004e 2268 ldr r2, [r4]
1094 0050 2832 adds r2, r2, #40
1095 0052 238D ldrh r3, [r4, #40]
1096 0054 A06B ldr r0, [r4, #56]
1097 .LVL95:
1098 0056 FFF7FEFF bl HAL_DMA_Start_IT
1099 .LVL96:
1100 .LBB152:
1101 .LBB153:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
1102 .loc 1 4728 0
1103 005a 636B ldr r3, [r4, #52]
1104 005c 0A4A ldr r2, .L101+4
1105 005e 9342 cmp r3, r2
1106 0060 0DD0 beq .L97
1107 0062 0A4A ldr r2, .L101+8
1108 0064 9342 cmp r3, r2
1109 0066 08D0 beq .L100
4778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1110 .loc 1 4778 0
1111 0068 F421 movs r1, #244
1112 .L94:
1113 .LVL97:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1114 .loc 1 4785 0
1115 006a 2268 ldr r2, [r4]
1116 006c 1368 ldr r3, [r2]
1117 006e 0B43 orrs r3, r1
1118 0070 1360 str r3, [r2]
1119 .LBE153:
1120 .LBE152:
ARM GAS /tmp/ccpuPECZ.s page 108
4353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1121 .loc 1 4353 0
1122 0072 DCE7 b .L88
1123 .LVL98:
1124 .L92:
4344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1125 .loc 1 4344 0
1126 0074 638D ldrh r3, [r4, #42]
1127 0076 2385 strh r3, [r4, #40]
1128 0078 E9E7 b .L93
1129 .LVL99:
1130 .L100:
1131 .LBB155:
1132 .LBB154:
4752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1133 .loc 1 4752 0
1134 007a 6021 movs r1, #96
1135 007c F5E7 b .L94
1136 .L97:
1137 007e 6021 movs r1, #96
1138 0080 F3E7 b .L94
1139 .L102:
1140 0082 C046 .align 2
1141 .L101:
1142 0084 FFBFFFFF .word -16385
1143 0088 00000000 .word I2C_Master_ISR_DMA
1144 008c 00000000 .word I2C_Slave_ISR_DMA
1145 .LBE154:
1146 .LBE155:
1147 .cfi_endproc
1148 .LFE98:
1150 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits
1151 .align 1
1152 .syntax unified
1153 .code 16
1154 .thumb_func
1155 .fpu softvfp
1157 I2C_DMAMasterReceiveCplt:
1158 .LFB100:
4376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
1159 .loc 1 4376 0
1160 .cfi_startproc
1161 @ args = 0, pretend = 0, frame = 0
1162 @ frame_needed = 0, uses_anonymous_args = 0
1163 .LVL100:
1164 0000 10B5 push {r4, lr}
1165 .LCFI11:
1166 .cfi_def_cfa_offset 8
1167 .cfi_offset 4, -8
1168 .cfi_offset 14, -4
4377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1169 .loc 1 4377 0
1170 0002 846A ldr r4, [r0, #40]
1171 .LVL101:
4380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1172 .loc 1 4380 0
1173 0004 2268 ldr r2, [r4]
ARM GAS /tmp/ccpuPECZ.s page 109
1174 0006 1368 ldr r3, [r2]
1175 0008 1E49 ldr r1, .L116
1176 000a 0B40 ands r3, r1
1177 000c 1360 str r3, [r2]
4383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1178 .loc 1 4383 0
1179 000e 638D ldrh r3, [r4, #42]
1180 0010 9BB2 uxth r3, r3
1181 0012 002B cmp r3, #0
1182 0014 10D1 bne .L104
1183 .LVL102:
1184 .LBB156:
1185 .LBB157:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
1186 .loc 1 4728 0
1187 0016 636B ldr r3, [r4, #52]
1188 0018 1B4A ldr r2, .L116+4
1189 001a 9342 cmp r3, r2
1190 001c 0AD0 beq .L110
1191 001e 1B4A ldr r2, .L116+8
1192 0020 9342 cmp r3, r2
1193 0022 05D0 beq .L114
4778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1194 .loc 1 4778 0
1195 0024 F421 movs r1, #244
1196 .L105:
1197 .LVL103:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1198 .loc 1 4785 0
1199 0026 2268 ldr r2, [r4]
1200 0028 1368 ldr r3, [r2]
1201 002a 0B43 orrs r3, r1
1202 002c 1360 str r3, [r2]
1203 .LVL104:
1204 .L103:
1205 .LBE157:
1206 .LBE156:
4410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1207 .loc 1 4410 0
1208 @ sp needed
1209 .LVL105:
1210 002e 10BD pop {r4, pc}
1211 .LVL106:
1212 .L114:
1213 .LBB159:
1214 .LBB158:
4752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1215 .loc 1 4752 0
1216 0030 6021 movs r1, #96
1217 0032 F8E7 b .L105
1218 .L110:
1219 0034 6021 movs r1, #96
1220 0036 F6E7 b .L105
1221 .LVL107:
1222 .L104:
1223 .LBE158:
1224 .LBE159:
ARM GAS /tmp/ccpuPECZ.s page 110
4392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1225 .loc 1 4392 0
1226 0038 228D ldrh r2, [r4, #40]
1227 003a 636A ldr r3, [r4, #36]
1228 003c 9C46 mov ip, r3
1229 003e 6244 add r2, r2, ip
1230 0040 6262 str r2, [r4, #36]
4395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1231 .loc 1 4395 0
1232 0042 638D ldrh r3, [r4, #42]
1233 0044 9BB2 uxth r3, r3
1234 0046 FF2B cmp r3, #255
1235 0048 14D9 bls .L107
4397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1236 .loc 1 4397 0
1237 004a FF23 movs r3, #255
1238 004c 2385 strh r3, [r4, #40]
1239 .L108:
4405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1240 .loc 1 4405 0
1241 004e 2168 ldr r1, [r4]
1242 0050 2431 adds r1, r1, #36
1243 0052 238D ldrh r3, [r4, #40]
1244 0054 E06B ldr r0, [r4, #60]
1245 .LVL108:
1246 0056 FFF7FEFF bl HAL_DMA_Start_IT
1247 .LVL109:
1248 .LBB160:
1249 .LBB161:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
1250 .loc 1 4728 0
1251 005a 636B ldr r3, [r4, #52]
1252 005c 0A4A ldr r2, .L116+4
1253 005e 9342 cmp r3, r2
1254 0060 0DD0 beq .L112
1255 0062 0A4A ldr r2, .L116+8
1256 0064 9342 cmp r3, r2
1257 0066 08D0 beq .L115
4778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1258 .loc 1 4778 0
1259 0068 F421 movs r1, #244
1260 .L109:
1261 .LVL110:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1262 .loc 1 4785 0
1263 006a 2268 ldr r2, [r4]
1264 006c 1368 ldr r3, [r2]
1265 006e 0B43 orrs r3, r1
1266 0070 1360 str r3, [r2]
1267 .LBE161:
1268 .LBE160:
4410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1269 .loc 1 4410 0
1270 0072 DCE7 b .L103
1271 .LVL111:
1272 .L107:
4401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpuPECZ.s page 111
1273 .loc 1 4401 0
1274 0074 638D ldrh r3, [r4, #42]
1275 0076 2385 strh r3, [r4, #40]
1276 0078 E9E7 b .L108
1277 .LVL112:
1278 .L115:
1279 .LBB163:
1280 .LBB162:
4752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1281 .loc 1 4752 0
1282 007a 6021 movs r1, #96
1283 007c F5E7 b .L109
1284 .L112:
1285 007e 6021 movs r1, #96
1286 0080 F3E7 b .L109
1287 .L117:
1288 0082 C046 .align 2
1289 .L116:
1290 0084 FF7FFFFF .word -32769
1291 0088 00000000 .word I2C_Master_ISR_DMA
1292 008c 00000000 .word I2C_Slave_ISR_DMA
1293 .LBE162:
1294 .LBE163:
1295 .cfi_endproc
1296 .LFE100:
1298 .section .text.HAL_I2C_MspInit,"ax",%progbits
1299 .align 1
1300 .weak HAL_I2C_MspInit
1301 .syntax unified
1302 .code 16
1303 .thumb_func
1304 .fpu softvfp
1306 HAL_I2C_MspInit:
1307 .LFB41:
529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
1308 .loc 1 529 0
1309 .cfi_startproc
1310 @ args = 0, pretend = 0, frame = 0
1311 @ frame_needed = 0, uses_anonymous_args = 0
1312 @ link register save eliminated.
1313 .LVL113:
536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1314 .loc 1 536 0
1315 @ sp needed
1316 0000 7047 bx lr
1317 .cfi_endproc
1318 .LFE41:
1320 .section .text.HAL_I2C_Init,"ax",%progbits
1321 .align 1
1322 .global HAL_I2C_Init
1323 .syntax unified
1324 .code 16
1325 .thumb_func
1326 .fpu softvfp
1328 HAL_I2C_Init:
1329 .LFB39:
406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the I2C handle allocation */
ARM GAS /tmp/ccpuPECZ.s page 112
1330 .loc 1 406 0
1331 .cfi_startproc
1332 @ args = 0, pretend = 0, frame = 0
1333 @ frame_needed = 0, uses_anonymous_args = 0
1334 .LVL114:
1335 0000 10B5 push {r4, lr}
1336 .LCFI12:
1337 .cfi_def_cfa_offset 8
1338 .cfi_offset 4, -8
1339 .cfi_offset 14, -4
1340 0002 041E subs r4, r0, #0
408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1341 .loc 1 408 0
1342 0004 59D0 beq .L125
423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1343 .loc 1 423 0
1344 0006 4123 movs r3, #65
1345 0008 C35C ldrb r3, [r0, r3]
1346 000a 002B cmp r3, #0
1347 000c 43D0 beq .L126
1348 .LVL115:
1349 .L121:
432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1350 .loc 1 432 0
1351 000e 4123 movs r3, #65
1352 0010 2422 movs r2, #36
1353 0012 E254 strb r2, [r4, r3]
435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1354 .loc 1 435 0
1355 0014 2268 ldr r2, [r4]
1356 0016 1368 ldr r3, [r2]
1357 0018 0121 movs r1, #1
1358 001a 8B43 bics r3, r1
1359 001c 1360 str r3, [r2]
439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1360 .loc 1 439 0
1361 001e 2268 ldr r2, [r4]
1362 0020 274B ldr r3, .L129
1363 0022 6168 ldr r1, [r4, #4]
1364 0024 0B40 ands r3, r1
1365 0026 1361 str r3, [r2, #16]
443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1366 .loc 1 443 0
1367 0028 2268 ldr r2, [r4]
1368 002a 9368 ldr r3, [r2, #8]
1369 002c 2549 ldr r1, .L129+4
1370 002e 0B40 ands r3, r1
1371 0030 9360 str r3, [r2, #8]
446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1372 .loc 1 446 0
1373 0032 E368 ldr r3, [r4, #12]
1374 0034 012B cmp r3, #1
1375 0036 34D0 beq .L127
452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1376 .loc 1 452 0
1377 0038 2268 ldr r2, [r4]
1378 003a 8423 movs r3, #132
ARM GAS /tmp/ccpuPECZ.s page 113
1379 003c 1B02 lsls r3, r3, #8
1380 003e A168 ldr r1, [r4, #8]
1381 0040 0B43 orrs r3, r1
1382 0042 9360 str r3, [r2, #8]
1383 .L123:
457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1384 .loc 1 457 0
1385 0044 E368 ldr r3, [r4, #12]
1386 0046 022B cmp r3, #2
1387 0048 32D0 beq .L128
1388 .L124:
462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1389 .loc 1 462 0
1390 004a 2268 ldr r2, [r4]
1391 004c 5168 ldr r1, [r2, #4]
1392 004e 1E4B ldr r3, .L129+8
1393 0050 0B43 orrs r3, r1
1394 0052 5360 str r3, [r2, #4]
466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1395 .loc 1 466 0
1396 0054 2268 ldr r2, [r4]
1397 0056 D368 ldr r3, [r2, #12]
1398 0058 1A49 ldr r1, .L129+4
1399 005a 0B40 ands r3, r1
1400 005c D360 str r3, [r2, #12]
469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1401 .loc 1 469 0
1402 005e 2369 ldr r3, [r4, #16]
1403 0060 6269 ldr r2, [r4, #20]
1404 0062 1343 orrs r3, r2
1405 0064 A269 ldr r2, [r4, #24]
1406 0066 1202 lsls r2, r2, #8
1407 0068 2168 ldr r1, [r4]
1408 006a 1343 orrs r3, r2
1409 006c CB60 str r3, [r1, #12]
473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1410 .loc 1 473 0
1411 006e 2268 ldr r2, [r4]
1412 0070 E369 ldr r3, [r4, #28]
1413 0072 216A ldr r1, [r4, #32]
1414 0074 0B43 orrs r3, r1
1415 0076 1360 str r3, [r2]
476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1416 .loc 1 476 0
1417 0078 2268 ldr r2, [r4]
1418 007a 1368 ldr r3, [r2]
1419 007c 0121 movs r1, #1
1420 007e 0B43 orrs r3, r1
1421 0080 1360 str r3, [r2]
478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1422 .loc 1 478 0
1423 0082 0023 movs r3, #0
1424 0084 6364 str r3, [r4, #68]
479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1425 .loc 1 479 0
1426 0086 4122 movs r2, #65
1427 0088 1F31 adds r1, r1, #31
ARM GAS /tmp/ccpuPECZ.s page 114
1428 008a A154 strb r1, [r4, r2]
480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1429 .loc 1 480 0
1430 008c 2363 str r3, [r4, #48]
481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1431 .loc 1 481 0
1432 008e 0132 adds r2, r2, #1
1433 0090 A354 strb r3, [r4, r2]
483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1434 .loc 1 483 0
1435 0092 0020 movs r0, #0
1436 .L120:
484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1437 .loc 1 484 0
1438 @ sp needed
1439 .LVL116:
1440 0094 10BD pop {r4, pc}
1441 .LVL117:
1442 .L126:
426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1443 .loc 1 426 0
1444 0096 4033 adds r3, r3, #64
1445 0098 0022 movs r2, #0
1446 009a C254 strb r2, [r0, r3]
429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1447 .loc 1 429 0
1448 009c FFF7FEFF bl HAL_I2C_MspInit
1449 .LVL118:
1450 00a0 B5E7 b .L121
1451 .L127:
448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1452 .loc 1 448 0
1453 00a2 2268 ldr r2, [r4]
1454 00a4 8023 movs r3, #128
1455 00a6 1B02 lsls r3, r3, #8
1456 00a8 A168 ldr r1, [r4, #8]
1457 00aa 0B43 orrs r3, r1
1458 00ac 9360 str r3, [r2, #8]
1459 00ae C9E7 b .L123
1460 .L128:
459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1461 .loc 1 459 0
1462 00b0 2368 ldr r3, [r4]
1463 00b2 8022 movs r2, #128
1464 00b4 1201 lsls r2, r2, #4
1465 00b6 5A60 str r2, [r3, #4]
1466 00b8 C7E7 b .L124
1467 .LVL119:
1468 .L125:
410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1469 .loc 1 410 0
1470 00ba 0120 movs r0, #1
1471 .LVL120:
1472 00bc EAE7 b .L120
1473 .L130:
1474 00be C046 .align 2
1475 .L129:
ARM GAS /tmp/ccpuPECZ.s page 115
1476 00c0 FFFFFFF0 .word -251658241
1477 00c4 FF7FFFFF .word -32769
1478 00c8 00800002 .word 33587200
1479 .cfi_endproc
1480 .LFE39:
1482 .section .text.HAL_I2C_MspDeInit,"ax",%progbits
1483 .align 1
1484 .weak HAL_I2C_MspDeInit
1485 .syntax unified
1486 .code 16
1487 .thumb_func
1488 .fpu softvfp
1490 HAL_I2C_MspDeInit:
1491 .LFB42:
545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
1492 .loc 1 545 0
1493 .cfi_startproc
1494 @ args = 0, pretend = 0, frame = 0
1495 @ frame_needed = 0, uses_anonymous_args = 0
1496 @ link register save eliminated.
1497 .LVL121:
552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1498 .loc 1 552 0
1499 @ sp needed
1500 0000 7047 bx lr
1501 .cfi_endproc
1502 .LFE42:
1504 .section .text.HAL_I2C_DeInit,"ax",%progbits
1505 .align 1
1506 .global HAL_I2C_DeInit
1507 .syntax unified
1508 .code 16
1509 .thumb_func
1510 .fpu softvfp
1512 HAL_I2C_DeInit:
1513 .LFB40:
493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the I2C handle allocation */
1514 .loc 1 493 0
1515 .cfi_startproc
1516 @ args = 0, pretend = 0, frame = 0
1517 @ frame_needed = 0, uses_anonymous_args = 0
1518 .LVL122:
1519 0000 70B5 push {r4, r5, r6, lr}
1520 .LCFI13:
1521 .cfi_def_cfa_offset 16
1522 .cfi_offset 4, -16
1523 .cfi_offset 5, -12
1524 .cfi_offset 6, -8
1525 .cfi_offset 14, -4
1526 0002 041E subs r4, r0, #0
495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1527 .loc 1 495 0
1528 0004 13D0 beq .L134
503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1529 .loc 1 503 0
1530 0006 4125 movs r5, #65
1531 0008 2423 movs r3, #36
ARM GAS /tmp/ccpuPECZ.s page 116
1532 000a 4355 strb r3, [r0, r5]
506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1533 .loc 1 506 0
1534 000c 0268 ldr r2, [r0]
1535 000e 1368 ldr r3, [r2]
1536 0010 0121 movs r1, #1
1537 0012 8B43 bics r3, r1
1538 0014 1360 str r3, [r2]
509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1539 .loc 1 509 0
1540 0016 FFF7FEFF bl HAL_I2C_MspDeInit
1541 .LVL123:
511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
1542 .loc 1 511 0
1543 001a 0023 movs r3, #0
1544 001c 6364 str r3, [r4, #68]
512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1545 .loc 1 512 0
1546 001e 6355 strb r3, [r4, r5]
513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1547 .loc 1 513 0
1548 0020 2363 str r3, [r4, #48]
514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1549 .loc 1 514 0
1550 0022 4222 movs r2, #66
1551 0024 A354 strb r3, [r4, r2]
517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1552 .loc 1 517 0
1553 0026 023A subs r2, r2, #2
1554 0028 A354 strb r3, [r4, r2]
519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1555 .loc 1 519 0
1556 002a 0020 movs r0, #0
1557 .L133:
520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1558 .loc 1 520 0
1559 @ sp needed
1560 .LVL124:
1561 002c 70BD pop {r4, r5, r6, pc}
1562 .LVL125:
1563 .L134:
497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1564 .loc 1 497 0
1565 002e 0120 movs r0, #1
1566 .LVL126:
1567 0030 FCE7 b .L133
1568 .cfi_endproc
1569 .LFE40:
1571 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits
1572 .align 1
1573 .global HAL_I2C_Master_Transmit
1574 .syntax unified
1575 .code 16
1576 .thumb_func
1577 .fpu softvfp
1579 HAL_I2C_Master_Transmit:
1580 .LFB43:
ARM GAS /tmp/ccpuPECZ.s page 117
629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
1581 .loc 1 629 0
1582 .cfi_startproc
1583 @ args = 4, pretend = 0, frame = 8
1584 @ frame_needed = 0, uses_anonymous_args = 0
1585 .LVL127:
1586 0000 F0B5 push {r4, r5, r6, r7, lr}
1587 .LCFI14:
1588 .cfi_def_cfa_offset 20
1589 .cfi_offset 4, -20
1590 .cfi_offset 5, -16
1591 .cfi_offset 6, -12
1592 .cfi_offset 7, -8
1593 .cfi_offset 14, -4
1594 0002 85B0 sub sp, sp, #20
1595 .LCFI15:
1596 .cfi_def_cfa_offset 40
1597 0004 0400 movs r4, r0
1598 0006 0D00 movs r5, r1
1599 0008 1700 movs r7, r2
1600 000a 0393 str r3, [sp, #12]
1601 .LVL128:
632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1602 .loc 1 632 0
1603 000c 4123 movs r3, #65
1604 .LVL129:
1605 000e C35C ldrb r3, [r0, r3]
1606 0010 202B cmp r3, #32
1607 0012 00D0 beq .LCB1634
1608 0014 BDE0 b .L147 @long jump
1609 .LCB1634:
635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1610 .loc 1 635 0
1611 0016 2033 adds r3, r3, #32
1612 0018 C35C ldrb r3, [r0, r3]
1613 001a 012B cmp r3, #1
1614 001c 00D1 bne .LCB1638
1615 001e BBE0 b .L148 @long jump
1616 .LCB1638:
635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1617 .loc 1 635 0 is_stmt 0 discriminator 2
1618 0020 4023 movs r3, #64
1619 0022 0122 movs r2, #1
1620 .LVL130:
1621 0024 C254 strb r2, [r0, r3]
638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1622 .loc 1 638 0 is_stmt 1 discriminator 2
1623 0026 FFF7FEFF bl HAL_GetTick
1624 .LVL131:
1625 002a 0600 movs r6, r0
1626 .LVL132:
1627 .L137:
1628 .LBB164:
1629 .LBB165:
4487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1630 .loc 1 4487 0
1631 002c 2368 ldr r3, [r4]
ARM GAS /tmp/ccpuPECZ.s page 118
1632 002e 9A69 ldr r2, [r3, #24]
1633 0030 1204 lsls r2, r2, #16
1634 0032 0ED5 bpl .L152
4492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1635 .loc 1 4492 0
1636 0034 FFF7FEFF bl HAL_GetTick
1637 .LVL133:
1638 0038 801B subs r0, r0, r6
1639 003a 1928 cmp r0, #25
1640 003c F6D9 bls .L137
4494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1641 .loc 1 4494 0
1642 003e 4123 movs r3, #65
1643 0040 2022 movs r2, #32
1644 0042 E254 strb r2, [r4, r3]
4495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1645 .loc 1 4495 0
1646 0044 0023 movs r3, #0
1647 0046 2232 adds r2, r2, #34
1648 0048 A354 strb r3, [r4, r2]
4498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
1649 .loc 1 4498 0
1650 004a 023A subs r2, r2, #2
1651 004c A354 strb r3, [r4, r2]
1652 .LVL134:
1653 .LBE165:
1654 .LBE164:
642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1655 .loc 1 642 0
1656 004e 0320 movs r0, #3
1657 0050 A0E0 b .L136
1658 .LVL135:
1659 .L152:
645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1660 .loc 1 645 0
1661 0052 4122 movs r2, #65
1662 0054 2121 movs r1, #33
1663 0056 A154 strb r1, [r4, r2]
646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1664 .loc 1 646 0
1665 0058 0132 adds r2, r2, #1
1666 005a 1139 subs r1, r1, #17
1667 005c A154 strb r1, [r4, r2]
647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1668 .loc 1 647 0
1669 005e 0022 movs r2, #0
1670 0060 6264 str r2, [r4, #68]
650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
1671 .loc 1 650 0
1672 0062 6762 str r7, [r4, #36]
651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
1673 .loc 1 651 0
1674 0064 6946 mov r1, sp
1675 0066 8989 ldrh r1, [r1, #12]
1676 0068 6185 strh r1, [r4, #42]
652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1677 .loc 1 652 0
ARM GAS /tmp/ccpuPECZ.s page 119
1678 006a 6263 str r2, [r4, #52]
656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1679 .loc 1 656 0
1680 006c 628D ldrh r2, [r4, #42]
1681 006e 92B2 uxth r2, r2
1682 0070 FF2A cmp r2, #255
1683 0072 0ED9 bls .L139
658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRIT
1684 .loc 1 658 0
1685 0074 FF22 movs r2, #255
1686 0076 2285 strh r2, [r4, #40]
1687 .LVL136:
1688 .LBB166:
1689 .LBB167:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
1690 .loc 1 4713 0
1691 0078 5A68 ldr r2, [r3, #4]
1692 007a 4B49 ldr r1, .L155
1693 007c 0A40 ands r2, r1
1694 007e A805 lsls r0, r5, #22
1695 0080 800D lsrs r0, r0, #22
1696 0082 FF21 movs r1, #255
1697 0084 0904 lsls r1, r1, #16
1698 0086 0843 orrs r0, r1
1699 0088 4849 ldr r1, .L155+4
1700 008a 0143 orrs r1, r0
1701 008c 0A43 orrs r2, r1
1702 008e 5A60 str r2, [r3, #4]
1703 0090 26E0 b .L144
1704 .LVL137:
1705 .L139:
1706 .LBE167:
1707 .LBE166:
663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_WRI
1708 .loc 1 663 0
1709 0092 628D ldrh r2, [r4, #42]
1710 0094 92B2 uxth r2, r2
1711 0096 2285 strh r2, [r4, #40]
664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1712 .loc 1 664 0
1713 0098 D2B2 uxtb r2, r2
1714 .LVL138:
1715 .LBB168:
1716 .LBB169:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
1717 .loc 1 4713 0
1718 009a 5968 ldr r1, [r3, #4]
1719 009c 4248 ldr r0, .L155
1720 009e 0140 ands r1, r0
1721 00a0 A805 lsls r0, r5, #22
1722 00a2 800D lsrs r0, r0, #22
1723 00a4 1204 lsls r2, r2, #16
1724 .LVL139:
1725 00a6 0243 orrs r2, r0
1726 00a8 4148 ldr r0, .L155+8
1727 00aa 0243 orrs r2, r0
1728 00ac 0A43 orrs r2, r1
ARM GAS /tmp/ccpuPECZ.s page 120
1729 00ae 5A60 str r2, [r3, #4]
1730 .LVL140:
1731 00b0 16E0 b .L144
1732 .LVL141:
1733 .L154:
1734 .LBE169:
1735 .LBE168:
672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1736 .loc 1 672 0
1737 00b2 636C ldr r3, [r4, #68]
1738 00b4 042B cmp r3, #4
1739 00b6 00D0 beq .LCB1796
1740 00b8 70E0 b .L149 @long jump
1741 .LCB1796:
674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1742 .loc 1 674 0
1743 00ba 0120 movs r0, #1
1744 00bc 6AE0 b .L136
1745 .L143:
701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
1746 .loc 1 701 0
1747 00be 638D ldrh r3, [r4, #42]
1748 00c0 9BB2 uxth r3, r3
1749 00c2 2385 strh r3, [r4, #40]
702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1750 .loc 1 702 0
1751 00c4 DBB2 uxtb r3, r3
1752 .LVL142:
1753 .LBB170:
1754 .LBB171:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
1755 .loc 1 4713 0
1756 00c6 2068 ldr r0, [r4]
1757 00c8 4268 ldr r2, [r0, #4]
1758 00ca 3A49 ldr r1, .L155+12
1759 00cc 0A40 ands r2, r1
1760 00ce A905 lsls r1, r5, #22
1761 00d0 890D lsrs r1, r1, #22
1762 00d2 1B04 lsls r3, r3, #16
1763 .LVL143:
1764 00d4 0B43 orrs r3, r1
1765 00d6 8021 movs r1, #128
1766 00d8 8904 lsls r1, r1, #18
1767 00da 0B43 orrs r3, r1
1768 00dc 1343 orrs r3, r2
1769 00de 4360 str r3, [r0, #4]
1770 .LVL144:
1771 .L144:
1772 .LBE171:
1773 .LBE170:
667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1774 .loc 1 667 0
1775 00e0 638D ldrh r3, [r4, #42]
1776 00e2 9BB2 uxth r3, r3
1777 00e4 002B cmp r3, #0
1778 00e6 38D0 beq .L153
670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 121
1779 .loc 1 670 0
1780 00e8 3200 movs r2, r6
1781 00ea 0A99 ldr r1, [sp, #40]
1782 00ec 2000 movs r0, r4
1783 00ee FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1784 .LVL145:
1785 00f2 0028 cmp r0, #0
1786 00f4 DDD1 bne .L154
682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
1787 .loc 1 682 0
1788 00f6 636A ldr r3, [r4, #36]
1789 00f8 5A1C adds r2, r3, #1
1790 00fa 6262 str r2, [r4, #36]
1791 00fc 2268 ldr r2, [r4]
1792 00fe 1B78 ldrb r3, [r3]
1793 0100 9362 str r3, [r2, #40]
683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
1794 .loc 1 683 0
1795 0102 638D ldrh r3, [r4, #42]
1796 0104 013B subs r3, r3, #1
1797 0106 9BB2 uxth r3, r3
1798 0108 6385 strh r3, [r4, #42]
684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1799 .loc 1 684 0
1800 010a 238D ldrh r3, [r4, #40]
1801 010c 013B subs r3, r3, #1
1802 010e 9BB2 uxth r3, r3
1803 0110 2385 strh r3, [r4, #40]
686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1804 .loc 1 686 0
1805 0112 002B cmp r3, #0
1806 0114 E4D1 bne .L144
686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1807 .loc 1 686 0 is_stmt 0 discriminator 1
1808 0116 638D ldrh r3, [r4, #42]
1809 0118 9BB2 uxth r3, r3
1810 011a 002B cmp r3, #0
1811 011c E0D0 beq .L144
689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1812 .loc 1 689 0 is_stmt 1
1813 011e 0096 str r6, [sp]
1814 0120 0A9B ldr r3, [sp, #40]
1815 0122 0022 movs r2, #0
1816 0124 8021 movs r1, #128
1817 0126 2000 movs r0, r4
1818 0128 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1819 .LVL146:
1820 012c 0028 cmp r0, #0
1821 012e 37D1 bne .L150
694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1822 .loc 1 694 0
1823 0130 638D ldrh r3, [r4, #42]
1824 0132 9BB2 uxth r3, r3
1825 0134 FF2B cmp r3, #255
1826 0136 C2D9 bls .L143
696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
1827 .loc 1 696 0
ARM GAS /tmp/ccpuPECZ.s page 122
1828 0138 FF23 movs r3, #255
1829 013a 2385 strh r3, [r4, #40]
1830 .LVL147:
1831 .LBB172:
1832 .LBB173:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
1833 .loc 1 4713 0
1834 013c 2068 ldr r0, [r4]
1835 013e 4368 ldr r3, [r0, #4]
1836 0140 1C4A ldr r2, .L155+12
1837 0142 1340 ands r3, r2
1838 0144 A905 lsls r1, r5, #22
1839 0146 890D lsrs r1, r1, #22
1840 0148 FF22 movs r2, #255
1841 014a 1204 lsls r2, r2, #16
1842 014c 1143 orrs r1, r2
1843 014e 8022 movs r2, #128
1844 0150 5204 lsls r2, r2, #17
1845 0152 0A43 orrs r2, r1
1846 0154 1343 orrs r3, r2
1847 0156 4360 str r3, [r0, #4]
1848 0158 C2E7 b .L144
1849 .LVL148:
1850 .L153:
1851 .LBE173:
1852 .LBE172:
709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1853 .loc 1 709 0
1854 015a 3200 movs r2, r6
1855 015c 0A99 ldr r1, [sp, #40]
1856 015e 2000 movs r0, r4
1857 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
1858 .LVL149:
1859 0164 0028 cmp r0, #0
1860 0166 04D0 beq .L146
711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1861 .loc 1 711 0
1862 0168 636C ldr r3, [r4, #68]
1863 016a 042B cmp r3, #4
1864 016c 1AD1 bne .L151
713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1865 .loc 1 713 0
1866 016e 0120 movs r0, #1
1867 0170 10E0 b .L136
1868 .L146:
722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1869 .loc 1 722 0
1870 0172 2368 ldr r3, [r4]
1871 0174 2022 movs r2, #32
1872 0176 DA61 str r2, [r3, #28]
725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1873 .loc 1 725 0
1874 0178 2168 ldr r1, [r4]
1875 017a 4B68 ldr r3, [r1, #4]
1876 017c 0E4D ldr r5, .L155+16
1877 017e 2B40 ands r3, r5
1878 0180 4B60 str r3, [r1, #4]
ARM GAS /tmp/ccpuPECZ.s page 123
727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1879 .loc 1 727 0
1880 0182 4123 movs r3, #65
1881 0184 E254 strb r2, [r4, r3]
728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1882 .loc 1 728 0
1883 0186 0023 movs r3, #0
1884 0188 2232 adds r2, r2, #34
1885 018a A354 strb r3, [r4, r2]
731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1886 .loc 1 731 0
1887 018c 023A subs r2, r2, #2
1888 018e A354 strb r3, [r4, r2]
733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1889 .loc 1 733 0
1890 0190 00E0 b .L136
1891 .LVL150:
1892 .L147:
737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1893 .loc 1 737 0
1894 0192 0220 movs r0, #2
1895 .LVL151:
1896 .L136:
739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1897 .loc 1 739 0
1898 0194 05B0 add sp, sp, #20
1899 @ sp needed
1900 .LVL152:
1901 .LVL153:
1902 0196 F0BD pop {r4, r5, r6, r7, pc}
1903 .LVL154:
1904 .L148:
635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1905 .loc 1 635 0
1906 0198 0220 movs r0, #2
1907 .LVL155:
1908 019a FBE7 b .L136
1909 .LVL156:
1910 .L149:
678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1911 .loc 1 678 0
1912 019c 0320 movs r0, #3
1913 019e F9E7 b .L136
1914 .L150:
691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1915 .loc 1 691 0
1916 01a0 0320 movs r0, #3
1917 01a2 F7E7 b .L136
1918 .L151:
717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
1919 .loc 1 717 0
1920 01a4 0320 movs r0, #3
1921 01a6 F5E7 b .L136
1922 .L156:
1923 .align 2
1924 .L155:
1925 01a8 009800FC .word -67069952
ARM GAS /tmp/ccpuPECZ.s page 124
1926 01ac 00200081 .word -2130698240
1927 01b0 00200082 .word -2113921024
1928 01b4 009C00FC .word -67068928
1929 01b8 00E800FE .word -33495040
1930 .cfi_endproc
1931 .LFE43:
1933 .section .text.HAL_I2C_Master_Receive,"ax",%progbits
1934 .align 1
1935 .global HAL_I2C_Master_Receive
1936 .syntax unified
1937 .code 16
1938 .thumb_func
1939 .fpu softvfp
1941 HAL_I2C_Master_Receive:
1942 .LFB44:
753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
1943 .loc 1 753 0
1944 .cfi_startproc
1945 @ args = 4, pretend = 0, frame = 8
1946 @ frame_needed = 0, uses_anonymous_args = 0
1947 .LVL157:
1948 0000 F0B5 push {r4, r5, r6, r7, lr}
1949 .LCFI16:
1950 .cfi_def_cfa_offset 20
1951 .cfi_offset 4, -20
1952 .cfi_offset 5, -16
1953 .cfi_offset 6, -12
1954 .cfi_offset 7, -8
1955 .cfi_offset 14, -4
1956 0002 85B0 sub sp, sp, #20
1957 .LCFI17:
1958 .cfi_def_cfa_offset 40
1959 0004 0400 movs r4, r0
1960 0006 0D00 movs r5, r1
1961 0008 1700 movs r7, r2
1962 000a 0393 str r3, [sp, #12]
1963 .LVL158:
756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1964 .loc 1 756 0
1965 000c 4123 movs r3, #65
1966 .LVL159:
1967 000e C35C ldrb r3, [r0, r3]
1968 0010 202B cmp r3, #32
1969 0012 00D0 beq .LCB2059
1970 0014 BDE0 b .L169 @long jump
1971 .LCB2059:
759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1972 .loc 1 759 0
1973 0016 2033 adds r3, r3, #32
1974 0018 C35C ldrb r3, [r0, r3]
1975 001a 012B cmp r3, #1
1976 001c 00D1 bne .LCB2063
1977 001e BBE0 b .L170 @long jump
1978 .LCB2063:
759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1979 .loc 1 759 0 is_stmt 0 discriminator 2
1980 0020 4023 movs r3, #64
ARM GAS /tmp/ccpuPECZ.s page 125
1981 0022 0122 movs r2, #1
1982 .LVL160:
1983 0024 C254 strb r2, [r0, r3]
762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
1984 .loc 1 762 0 is_stmt 1 discriminator 2
1985 0026 FFF7FEFF bl HAL_GetTick
1986 .LVL161:
1987 002a 0600 movs r6, r0
1988 .LVL162:
1989 .L159:
1990 .LBB174:
1991 .LBB175:
4487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1992 .loc 1 4487 0
1993 002c 2368 ldr r3, [r4]
1994 002e 9A69 ldr r2, [r3, #24]
1995 0030 1204 lsls r2, r2, #16
1996 0032 0ED5 bpl .L174
4492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
1997 .loc 1 4492 0
1998 0034 FFF7FEFF bl HAL_GetTick
1999 .LVL163:
2000 0038 801B subs r0, r0, r6
2001 003a 1928 cmp r0, #25
2002 003c F6D9 bls .L159
4494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2003 .loc 1 4494 0
2004 003e 4123 movs r3, #65
2005 0040 2022 movs r2, #32
2006 0042 E254 strb r2, [r4, r3]
4495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2007 .loc 1 4495 0
2008 0044 0023 movs r3, #0
2009 0046 2232 adds r2, r2, #34
2010 0048 A354 strb r3, [r4, r2]
4498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2011 .loc 1 4498 0
2012 004a 023A subs r2, r2, #2
2013 004c A354 strb r3, [r4, r2]
2014 .LVL164:
2015 .LBE175:
2016 .LBE174:
766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2017 .loc 1 766 0
2018 004e 0320 movs r0, #3
2019 0050 A0E0 b .L158
2020 .LVL165:
2021 .L174:
769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2022 .loc 1 769 0
2023 0052 4122 movs r2, #65
2024 0054 2221 movs r1, #34
2025 0056 A154 strb r1, [r4, r2]
770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2026 .loc 1 770 0
2027 0058 0132 adds r2, r2, #1
2028 005a 1239 subs r1, r1, #18
ARM GAS /tmp/ccpuPECZ.s page 126
2029 005c A154 strb r1, [r4, r2]
771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2030 .loc 1 771 0
2031 005e 0022 movs r2, #0
2032 0060 6264 str r2, [r4, #68]
774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
2033 .loc 1 774 0
2034 0062 6762 str r7, [r4, #36]
775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
2035 .loc 1 775 0
2036 0064 6946 mov r1, sp
2037 0066 8989 ldrh r1, [r1, #12]
2038 0068 6185 strh r1, [r4, #42]
776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2039 .loc 1 776 0
2040 006a 6263 str r2, [r4, #52]
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2041 .loc 1 780 0
2042 006c 628D ldrh r2, [r4, #42]
2043 006e 92B2 uxth r2, r2
2044 0070 FF2A cmp r2, #255
2045 0072 0ED9 bls .L161
782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_START_READ
2046 .loc 1 782 0
2047 0074 FF22 movs r2, #255
2048 0076 2285 strh r2, [r4, #40]
2049 .LVL166:
2050 .LBB176:
2051 .LBB177:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
2052 .loc 1 4713 0
2053 0078 5A68 ldr r2, [r3, #4]
2054 007a 4B49 ldr r1, .L177
2055 007c 0A40 ands r2, r1
2056 007e A805 lsls r0, r5, #22
2057 0080 800D lsrs r0, r0, #22
2058 0082 FF21 movs r1, #255
2059 0084 0904 lsls r1, r1, #16
2060 0086 0843 orrs r0, r1
2061 0088 4849 ldr r1, .L177+4
2062 008a 0143 orrs r1, r0
2063 008c 0A43 orrs r2, r1
2064 008e 5A60 str r2, [r3, #4]
2065 0090 26E0 b .L166
2066 .LVL167:
2067 .L161:
2068 .LBE177:
2069 .LBE176:
787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_REA
2070 .loc 1 787 0
2071 0092 628D ldrh r2, [r4, #42]
2072 0094 92B2 uxth r2, r2
2073 0096 2285 strh r2, [r4, #40]
788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2074 .loc 1 788 0
2075 0098 D2B2 uxtb r2, r2
2076 .LVL168:
ARM GAS /tmp/ccpuPECZ.s page 127
2077 .LBB178:
2078 .LBB179:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
2079 .loc 1 4713 0
2080 009a 5968 ldr r1, [r3, #4]
2081 009c 4248 ldr r0, .L177
2082 009e 0140 ands r1, r0
2083 00a0 A805 lsls r0, r5, #22
2084 00a2 800D lsrs r0, r0, #22
2085 00a4 1204 lsls r2, r2, #16
2086 .LVL169:
2087 00a6 0243 orrs r2, r0
2088 00a8 4148 ldr r0, .L177+8
2089 00aa 0243 orrs r2, r0
2090 00ac 0A43 orrs r2, r1
2091 00ae 5A60 str r2, [r3, #4]
2092 .LVL170:
2093 00b0 16E0 b .L166
2094 .LVL171:
2095 .L176:
2096 .LBE179:
2097 .LBE178:
796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2098 .loc 1 796 0
2099 00b2 636C ldr r3, [r4, #68]
2100 00b4 042B cmp r3, #4
2101 00b6 00D0 beq .LCB2221
2102 00b8 70E0 b .L171 @long jump
2103 .LCB2221:
798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2104 .loc 1 798 0
2105 00ba 0120 movs r0, #1
2106 00bc 6AE0 b .L158
2107 .L165:
826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
2108 .loc 1 826 0
2109 00be 638D ldrh r3, [r4, #42]
2110 00c0 9BB2 uxth r3, r3
2111 00c2 2385 strh r3, [r4, #40]
827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2112 .loc 1 827 0
2113 00c4 DBB2 uxtb r3, r3
2114 .LVL172:
2115 .LBB180:
2116 .LBB181:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
2117 .loc 1 4713 0
2118 00c6 2068 ldr r0, [r4]
2119 00c8 4268 ldr r2, [r0, #4]
2120 00ca 3A49 ldr r1, .L177+12
2121 00cc 0A40 ands r2, r1
2122 00ce A905 lsls r1, r5, #22
2123 00d0 890D lsrs r1, r1, #22
2124 00d2 1B04 lsls r3, r3, #16
2125 .LVL173:
2126 00d4 0B43 orrs r3, r1
2127 00d6 8021 movs r1, #128
ARM GAS /tmp/ccpuPECZ.s page 128
2128 00d8 8904 lsls r1, r1, #18
2129 00da 0B43 orrs r3, r1
2130 00dc 1343 orrs r3, r2
2131 00de 4360 str r3, [r0, #4]
2132 .LVL174:
2133 .L166:
2134 .LBE181:
2135 .LBE180:
791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2136 .loc 1 791 0
2137 00e0 638D ldrh r3, [r4, #42]
2138 00e2 9BB2 uxth r3, r3
2139 00e4 002B cmp r3, #0
2140 00e6 38D0 beq .L175
794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2141 .loc 1 794 0
2142 00e8 3200 movs r2, r6
2143 00ea 0A99 ldr r1, [sp, #40]
2144 00ec 2000 movs r0, r4
2145 00ee FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
2146 .LVL175:
2147 00f2 0028 cmp r0, #0
2148 00f4 DDD1 bne .L176
807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
2149 .loc 1 807 0
2150 00f6 2368 ldr r3, [r4]
2151 00f8 5A6A ldr r2, [r3, #36]
2152 00fa 636A ldr r3, [r4, #36]
2153 00fc 591C adds r1, r3, #1
2154 00fe 6162 str r1, [r4, #36]
2155 0100 1A70 strb r2, [r3]
808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
2156 .loc 1 808 0
2157 0102 238D ldrh r3, [r4, #40]
2158 0104 013B subs r3, r3, #1
2159 0106 9BB2 uxth r3, r3
2160 0108 2385 strh r3, [r4, #40]
809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2161 .loc 1 809 0
2162 010a 628D ldrh r2, [r4, #42]
2163 010c 013A subs r2, r2, #1
2164 010e 92B2 uxth r2, r2
2165 0110 6285 strh r2, [r4, #42]
811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2166 .loc 1 811 0
2167 0112 002B cmp r3, #0
2168 0114 E4D1 bne .L166
811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2169 .loc 1 811 0 is_stmt 0 discriminator 1
2170 0116 638D ldrh r3, [r4, #42]
2171 0118 9BB2 uxth r3, r3
2172 011a 002B cmp r3, #0
2173 011c E0D0 beq .L166
814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2174 .loc 1 814 0 is_stmt 1
2175 011e 0096 str r6, [sp]
2176 0120 0A9B ldr r3, [sp, #40]
ARM GAS /tmp/ccpuPECZ.s page 129
2177 0122 0022 movs r2, #0
2178 0124 8021 movs r1, #128
2179 0126 2000 movs r0, r4
2180 0128 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2181 .LVL176:
2182 012c 0028 cmp r0, #0
2183 012e 37D1 bne .L172
819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2184 .loc 1 819 0
2185 0130 638D ldrh r3, [r4, #42]
2186 0132 9BB2 uxth r3, r3
2187 0134 FF2B cmp r3, #255
2188 0136 C2D9 bls .L165
821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
2189 .loc 1 821 0
2190 0138 FF23 movs r3, #255
2191 013a 2385 strh r3, [r4, #40]
2192 .LVL177:
2193 .LBB182:
2194 .LBB183:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
2195 .loc 1 4713 0
2196 013c 2068 ldr r0, [r4]
2197 013e 4368 ldr r3, [r0, #4]
2198 0140 1C4A ldr r2, .L177+12
2199 0142 1340 ands r3, r2
2200 0144 A905 lsls r1, r5, #22
2201 0146 890D lsrs r1, r1, #22
2202 0148 FF22 movs r2, #255
2203 014a 1204 lsls r2, r2, #16
2204 014c 1143 orrs r1, r2
2205 014e 8022 movs r2, #128
2206 0150 5204 lsls r2, r2, #17
2207 0152 0A43 orrs r2, r1
2208 0154 1343 orrs r3, r2
2209 0156 4360 str r3, [r0, #4]
2210 0158 C2E7 b .L166
2211 .LVL178:
2212 .L175:
2213 .LBE183:
2214 .LBE182:
834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2215 .loc 1 834 0
2216 015a 3200 movs r2, r6
2217 015c 0A99 ldr r1, [sp, #40]
2218 015e 2000 movs r0, r4
2219 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2220 .LVL179:
2221 0164 0028 cmp r0, #0
2222 0166 04D0 beq .L168
836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2223 .loc 1 836 0
2224 0168 636C ldr r3, [r4, #68]
2225 016a 042B cmp r3, #4
2226 016c 1AD1 bne .L173
838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2227 .loc 1 838 0
ARM GAS /tmp/ccpuPECZ.s page 130
2228 016e 0120 movs r0, #1
2229 0170 10E0 b .L158
2230 .L168:
847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2231 .loc 1 847 0
2232 0172 2368 ldr r3, [r4]
2233 0174 2022 movs r2, #32
2234 0176 DA61 str r2, [r3, #28]
850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2235 .loc 1 850 0
2236 0178 2168 ldr r1, [r4]
2237 017a 4B68 ldr r3, [r1, #4]
2238 017c 0E4D ldr r5, .L177+16
2239 017e 2B40 ands r3, r5
2240 0180 4B60 str r3, [r1, #4]
852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2241 .loc 1 852 0
2242 0182 4123 movs r3, #65
2243 0184 E254 strb r2, [r4, r3]
853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2244 .loc 1 853 0
2245 0186 0023 movs r3, #0
2246 0188 2232 adds r2, r2, #34
2247 018a A354 strb r3, [r4, r2]
856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2248 .loc 1 856 0
2249 018c 023A subs r2, r2, #2
2250 018e A354 strb r3, [r4, r2]
858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2251 .loc 1 858 0
2252 0190 00E0 b .L158
2253 .LVL180:
2254 .L169:
862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2255 .loc 1 862 0
2256 0192 0220 movs r0, #2
2257 .LVL181:
2258 .L158:
864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2259 .loc 1 864 0
2260 0194 05B0 add sp, sp, #20
2261 @ sp needed
2262 .LVL182:
2263 .LVL183:
2264 0196 F0BD pop {r4, r5, r6, r7, pc}
2265 .LVL184:
2266 .L170:
759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2267 .loc 1 759 0
2268 0198 0220 movs r0, #2
2269 .LVL185:
2270 019a FBE7 b .L158
2271 .LVL186:
2272 .L171:
802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2273 .loc 1 802 0
2274 019c 0320 movs r0, #3
ARM GAS /tmp/ccpuPECZ.s page 131
2275 019e F9E7 b .L158
2276 .L172:
816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2277 .loc 1 816 0
2278 01a0 0320 movs r0, #3
2279 01a2 F7E7 b .L158
2280 .L173:
842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2281 .loc 1 842 0
2282 01a4 0320 movs r0, #3
2283 01a6 F5E7 b .L158
2284 .L178:
2285 .align 2
2286 .L177:
2287 01a8 009800FC .word -67069952
2288 01ac 00240081 .word -2130697216
2289 01b0 00240082 .word -2113920000
2290 01b4 009C00FC .word -67068928
2291 01b8 00E800FE .word -33495040
2292 .cfi_endproc
2293 .LFE44:
2295 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits
2296 .align 1
2297 .global HAL_I2C_Slave_Transmit
2298 .syntax unified
2299 .code 16
2300 .thumb_func
2301 .fpu softvfp
2303 HAL_I2C_Slave_Transmit:
2304 .LFB45:
876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
2305 .loc 1 876 0
2306 .cfi_startproc
2307 @ args = 0, pretend = 0, frame = 8
2308 @ frame_needed = 0, uses_anonymous_args = 0
2309 .LVL187:
2310 0000 F0B5 push {r4, r5, r6, r7, lr}
2311 .LCFI18:
2312 .cfi_def_cfa_offset 20
2313 .cfi_offset 4, -20
2314 .cfi_offset 5, -16
2315 .cfi_offset 6, -12
2316 .cfi_offset 7, -8
2317 .cfi_offset 14, -4
2318 0002 85B0 sub sp, sp, #20
2319 .LCFI19:
2320 .cfi_def_cfa_offset 40
2321 0004 0400 movs r4, r0
2322 0006 0D00 movs r5, r1
2323 0008 1600 movs r6, r2
2324 000a 0393 str r3, [sp, #12]
2325 .LVL188:
879:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2326 .loc 1 879 0
2327 000c 4123 movs r3, #65
2328 .LVL189:
2329 000e C35C ldrb r3, [r0, r3]
ARM GAS /tmp/ccpuPECZ.s page 132
2330 0010 202B cmp r3, #32
2331 0012 00D0 beq .LCB2483
2332 0014 B5E0 b .L189 @long jump
2333 .LCB2483:
881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2334 .loc 1 881 0
2335 0016 0029 cmp r1, #0
2336 0018 00D1 bne .LCB2485
2337 001a B5E0 b .L190 @long jump
2338 .LCB2485:
881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2339 .loc 1 881 0 is_stmt 0 discriminator 1
2340 001c 002A cmp r2, #0
2341 001e 00D1 bne .LCB2487
2342 0020 B4E0 b .L191 @long jump
2343 .LCB2487:
886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2344 .loc 1 886 0 is_stmt 1
2345 0022 2033 adds r3, r3, #32
2346 0024 C35C ldrb r3, [r0, r3]
2347 0026 012B cmp r3, #1
2348 0028 00D1 bne .LCB2491
2349 002a B1E0 b .L192 @long jump
2350 .LCB2491:
886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2351 .loc 1 886 0 is_stmt 0 discriminator 2
2352 002c 4023 movs r3, #64
2353 002e 0122 movs r2, #1
2354 .LVL190:
2355 0030 C254 strb r2, [r0, r3]
889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2356 .loc 1 889 0 is_stmt 1 discriminator 2
2357 0032 FFF7FEFF bl HAL_GetTick
2358 .LVL191:
2359 0036 0700 movs r7, r0
2360 .LVL192:
891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2361 .loc 1 891 0 discriminator 2
2362 0038 4123 movs r3, #65
2363 003a 2122 movs r2, #33
2364 003c E254 strb r2, [r4, r3]
892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2365 .loc 1 892 0 discriminator 2
2366 003e 0133 adds r3, r3, #1
2367 0040 013A subs r2, r2, #1
2368 0042 E254 strb r2, [r4, r3]
893:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2369 .loc 1 893 0 discriminator 2
2370 0044 0023 movs r3, #0
2371 0046 6364 str r3, [r4, #68]
896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
2372 .loc 1 896 0 discriminator 2
2373 0048 6562 str r5, [r4, #36]
897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
2374 .loc 1 897 0 discriminator 2
2375 004a 6685 strh r6, [r4, #42]
898:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 133
2376 .loc 1 898 0 discriminator 2
2377 004c 6363 str r3, [r4, #52]
901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2378 .loc 1 901 0 discriminator 2
2379 004e 2268 ldr r2, [r4]
2380 0050 5368 ldr r3, [r2, #4]
2381 0052 5249 ldr r1, .L202
2382 0054 0B40 ands r3, r1
2383 0056 5360 str r3, [r2, #4]
904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2384 .loc 1 904 0 discriminator 2
2385 0058 0090 str r0, [sp]
2386 005a 039B ldr r3, [sp, #12]
2387 005c 0022 movs r2, #0
2388 005e 0821 movs r1, #8
2389 0060 2000 movs r0, r4
2390 .LVL193:
2391 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2392 .LVL194:
2393 0066 0028 cmp r0, #0
2394 0068 25D1 bne .L195
912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2395 .loc 1 912 0
2396 006a 2368 ldr r3, [r4]
2397 006c 0822 movs r2, #8
2398 006e DA61 str r2, [r3, #28]
915:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2399 .loc 1 915 0
2400 0070 E368 ldr r3, [r4, #12]
2401 0072 022B cmp r3, #2
2402 0074 27D0 beq .L196
2403 .L182:
930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2404 .loc 1 930 0
2405 0076 8021 movs r1, #128
2406 0078 0097 str r7, [sp]
2407 007a 039B ldr r3, [sp, #12]
2408 007c 0022 movs r2, #0
2409 007e 4902 lsls r1, r1, #9
2410 0080 2000 movs r0, r4
2411 0082 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2412 .LVL195:
2413 0086 0028 cmp r0, #0
2414 0088 32D1 bne .L197
2415 .L184:
937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2416 .loc 1 937 0
2417 008a 638D ldrh r3, [r4, #42]
2418 008c 9BB2 uxth r3, r3
2419 008e 002B cmp r3, #0
2420 0090 41D0 beq .L198
940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2421 .loc 1 940 0
2422 0092 3A00 movs r2, r7
2423 0094 0399 ldr r1, [sp, #12]
2424 0096 2000 movs r0, r4
2425 0098 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
ARM GAS /tmp/ccpuPECZ.s page 134
2426 .LVL196:
2427 009c 0028 cmp r0, #0
2428 009e 2FD1 bne .L199
956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
2429 .loc 1 956 0
2430 00a0 636A ldr r3, [r4, #36]
2431 00a2 5A1C adds r2, r3, #1
2432 00a4 6262 str r2, [r4, #36]
2433 00a6 2268 ldr r2, [r4]
2434 00a8 1B78 ldrb r3, [r3]
2435 00aa 9362 str r3, [r2, #40]
957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2436 .loc 1 957 0
2437 00ac 638D ldrh r3, [r4, #42]
2438 00ae 013B subs r3, r3, #1
2439 00b0 9BB2 uxth r3, r3
2440 00b2 6385 strh r3, [r4, #42]
2441 00b4 E9E7 b .L184
2442 .L195:
907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2443 .loc 1 907 0
2444 00b6 2268 ldr r2, [r4]
2445 00b8 5168 ldr r1, [r2, #4]
2446 00ba 8023 movs r3, #128
2447 00bc 1B02 lsls r3, r3, #8
2448 00be 0B43 orrs r3, r1
2449 00c0 5360 str r3, [r2, #4]
908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2450 .loc 1 908 0
2451 00c2 0320 movs r0, #3
2452 00c4 5EE0 b .L180
2453 .L196:
918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2454 .loc 1 918 0
2455 00c6 0097 str r7, [sp]
2456 00c8 039B ldr r3, [sp, #12]
2457 00ca 0022 movs r2, #0
2458 00cc 0821 movs r1, #8
2459 00ce 2000 movs r0, r4
2460 00d0 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2461 .LVL197:
2462 00d4 0028 cmp r0, #0
2463 00d6 03D1 bne .L200
926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2464 .loc 1 926 0
2465 00d8 2368 ldr r3, [r4]
2466 00da 0822 movs r2, #8
2467 00dc DA61 str r2, [r3, #28]
2468 00de CAE7 b .L182
2469 .L200:
921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2470 .loc 1 921 0
2471 00e0 2268 ldr r2, [r4]
2472 00e2 5168 ldr r1, [r2, #4]
2473 00e4 8023 movs r3, #128
2474 00e6 1B02 lsls r3, r3, #8
2475 00e8 0B43 orrs r3, r1
ARM GAS /tmp/ccpuPECZ.s page 135
2476 00ea 5360 str r3, [r2, #4]
922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2477 .loc 1 922 0
2478 00ec 0320 movs r0, #3
2479 00ee 49E0 b .L180
2480 .L197:
933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2481 .loc 1 933 0
2482 00f0 2268 ldr r2, [r4]
2483 00f2 5168 ldr r1, [r2, #4]
2484 00f4 8023 movs r3, #128
2485 00f6 1B02 lsls r3, r3, #8
2486 00f8 0B43 orrs r3, r1
2487 00fa 5360 str r3, [r2, #4]
934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2488 .loc 1 934 0
2489 00fc 0320 movs r0, #3
2490 00fe 41E0 b .L180
2491 .L199:
943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2492 .loc 1 943 0
2493 0100 2268 ldr r2, [r4]
2494 0102 5168 ldr r1, [r2, #4]
2495 0104 8023 movs r3, #128
2496 0106 1B02 lsls r3, r3, #8
2497 0108 0B43 orrs r3, r1
2498 010a 5360 str r3, [r2, #4]
945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2499 .loc 1 945 0
2500 010c 636C ldr r3, [r4, #68]
2501 010e 042B cmp r3, #4
2502 0110 40D1 bne .L193
947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2503 .loc 1 947 0
2504 0112 0120 movs r0, #1
2505 0114 36E0 b .L180
2506 .L198:
961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2507 .loc 1 961 0
2508 0116 3A00 movs r2, r7
2509 0118 0399 ldr r1, [sp, #12]
2510 011a 2000 movs r0, r4
2511 011c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2512 .LVL198:
2513 0120 0028 cmp r0, #0
2514 0122 0AD0 beq .L187
964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2515 .loc 1 964 0
2516 0124 2268 ldr r2, [r4]
2517 0126 5168 ldr r1, [r2, #4]
2518 0128 8023 movs r3, #128
2519 012a 1B02 lsls r3, r3, #8
2520 012c 0B43 orrs r3, r1
2521 012e 5360 str r3, [r2, #4]
966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2522 .loc 1 966 0
2523 0130 636C ldr r3, [r4, #68]
ARM GAS /tmp/ccpuPECZ.s page 136
2524 0132 042B cmp r3, #4
2525 0134 30D1 bne .L194
970:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2526 .loc 1 970 0
2527 0136 0023 movs r3, #0
2528 0138 6364 str r3, [r4, #68]
2529 .L187:
979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2530 .loc 1 979 0
2531 013a 2368 ldr r3, [r4]
2532 013c 2022 movs r2, #32
2533 013e DA61 str r2, [r3, #28]
982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2534 .loc 1 982 0
2535 0140 8021 movs r1, #128
2536 0142 0097 str r7, [sp]
2537 0144 039B ldr r3, [sp, #12]
2538 0146 1F3A subs r2, r2, #31
2539 0148 0902 lsls r1, r1, #8
2540 014a 2000 movs r0, r4
2541 014c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2542 .LVL199:
2543 0150 0028 cmp r0, #0
2544 0152 0ED1 bne .L201
990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2545 .loc 1 990 0
2546 0154 2268 ldr r2, [r4]
2547 0156 5168 ldr r1, [r2, #4]
2548 0158 8023 movs r3, #128
2549 015a 1B02 lsls r3, r3, #8
2550 015c 0B43 orrs r3, r1
2551 015e 5360 str r3, [r2, #4]
992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2552 .loc 1 992 0
2553 0160 4123 movs r3, #65
2554 0162 2022 movs r2, #32
2555 0164 E254 strb r2, [r4, r3]
993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2556 .loc 1 993 0
2557 0166 0023 movs r3, #0
2558 0168 2232 adds r2, r2, #34
2559 016a A354 strb r3, [r4, r2]
996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2560 .loc 1 996 0
2561 016c 023A subs r2, r2, #2
2562 016e A354 strb r3, [r4, r2]
998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2563 .loc 1 998 0
2564 0170 08E0 b .L180
2565 .L201:
985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2566 .loc 1 985 0
2567 0172 2268 ldr r2, [r4]
2568 0174 5168 ldr r1, [r2, #4]
2569 0176 8023 movs r3, #128
2570 0178 1B02 lsls r3, r3, #8
2571 017a 0B43 orrs r3, r1
ARM GAS /tmp/ccpuPECZ.s page 137
2572 017c 5360 str r3, [r2, #4]
986:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2573 .loc 1 986 0
2574 017e 0320 movs r0, #3
2575 0180 00E0 b .L180
2576 .LVL200:
2577 .L189:
1002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2578 .loc 1 1002 0
2579 0182 0220 movs r0, #2
2580 .LVL201:
2581 .L180:
1004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2582 .loc 1 1004 0
2583 0184 05B0 add sp, sp, #20
2584 @ sp needed
2585 .LVL202:
2586 .LVL203:
2587 0186 F0BD pop {r4, r5, r6, r7, pc}
2588 .LVL204:
2589 .L190:
883:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2590 .loc 1 883 0
2591 0188 0120 movs r0, #1
2592 .LVL205:
2593 018a FBE7 b .L180
2594 .LVL206:
2595 .L191:
2596 018c 0120 movs r0, #1
2597 .LVL207:
2598 018e F9E7 b .L180
2599 .LVL208:
2600 .L192:
886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2601 .loc 1 886 0
2602 0190 0220 movs r0, #2
2603 .LVL209:
2604 0192 F7E7 b .L180
2605 .LVL210:
2606 .L193:
951:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2607 .loc 1 951 0
2608 0194 0320 movs r0, #3
2609 0196 F5E7 b .L180
2610 .L194:
974:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2611 .loc 1 974 0
2612 0198 0320 movs r0, #3
2613 019a F3E7 b .L180
2614 .L203:
2615 .align 2
2616 .L202:
2617 019c FF7FFFFF .word -32769
2618 .cfi_endproc
2619 .LFE45:
2621 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits
2622 .align 1
ARM GAS /tmp/ccpuPECZ.s page 138
2623 .global HAL_I2C_Slave_Receive
2624 .syntax unified
2625 .code 16
2626 .thumb_func
2627 .fpu softvfp
2629 HAL_I2C_Slave_Receive:
2630 .LFB46:
1016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
2631 .loc 1 1016 0
2632 .cfi_startproc
2633 @ args = 0, pretend = 0, frame = 8
2634 @ frame_needed = 0, uses_anonymous_args = 0
2635 .LVL211:
2636 0000 F0B5 push {r4, r5, r6, r7, lr}
2637 .LCFI20:
2638 .cfi_def_cfa_offset 20
2639 .cfi_offset 4, -20
2640 .cfi_offset 5, -16
2641 .cfi_offset 6, -12
2642 .cfi_offset 7, -8
2643 .cfi_offset 14, -4
2644 0002 85B0 sub sp, sp, #20
2645 .LCFI21:
2646 .cfi_def_cfa_offset 40
2647 0004 0500 movs r5, r0
2648 0006 0C00 movs r4, r1
2649 0008 1600 movs r6, r2
2650 000a 0393 str r3, [sp, #12]
2651 .LVL212:
1019:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2652 .loc 1 1019 0
2653 000c 4123 movs r3, #65
2654 .LVL213:
2655 000e C35C ldrb r3, [r0, r3]
2656 0010 202B cmp r3, #32
2657 0012 00D0 beq .LCB2808
2658 0014 ACE0 b .L213 @long jump
2659 .LCB2808:
1021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2660 .loc 1 1021 0
2661 0016 0029 cmp r1, #0
2662 0018 00D1 bne .LCB2810
2663 001a ACE0 b .L214 @long jump
2664 .LCB2810:
1021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2665 .loc 1 1021 0 is_stmt 0 discriminator 1
2666 001c 002A cmp r2, #0
2667 001e 00D1 bne .LCB2812
2668 0020 ABE0 b .L215 @long jump
2669 .LCB2812:
1026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2670 .loc 1 1026 0 is_stmt 1
2671 0022 2033 adds r3, r3, #32
2672 0024 C35C ldrb r3, [r0, r3]
2673 0026 012B cmp r3, #1
2674 0028 00D1 bne .LCB2816
2675 002a A8E0 b .L216 @long jump
ARM GAS /tmp/ccpuPECZ.s page 139
2676 .LCB2816:
1026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2677 .loc 1 1026 0 is_stmt 0 discriminator 2
2678 002c 4023 movs r3, #64
2679 002e 0122 movs r2, #1
2680 .LVL214:
2681 0030 C254 strb r2, [r0, r3]
1029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2682 .loc 1 1029 0 is_stmt 1 discriminator 2
2683 0032 FFF7FEFF bl HAL_GetTick
2684 .LVL215:
2685 0036 0700 movs r7, r0
2686 .LVL216:
1031:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2687 .loc 1 1031 0 discriminator 2
2688 0038 4123 movs r3, #65
2689 003a 2222 movs r2, #34
2690 003c EA54 strb r2, [r5, r3]
1032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2691 .loc 1 1032 0 discriminator 2
2692 003e 0133 adds r3, r3, #1
2693 0040 023A subs r2, r2, #2
2694 0042 EA54 strb r2, [r5, r3]
1033:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2695 .loc 1 1033 0 discriminator 2
2696 0044 0023 movs r3, #0
2697 0046 6B64 str r3, [r5, #68]
1036:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
2698 .loc 1 1036 0 discriminator 2
2699 0048 6C62 str r4, [r5, #36]
1037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
2700 .loc 1 1037 0 discriminator 2
2701 004a 6E85 strh r6, [r5, #42]
1038:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2702 .loc 1 1038 0 discriminator 2
2703 004c 6B63 str r3, [r5, #52]
1041:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2704 .loc 1 1041 0 discriminator 2
2705 004e 2A68 ldr r2, [r5]
2706 0050 5368 ldr r3, [r2, #4]
2707 0052 4D49 ldr r1, .L225
2708 0054 0B40 ands r3, r1
2709 0056 5360 str r3, [r2, #4]
1044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2710 .loc 1 1044 0 discriminator 2
2711 0058 0090 str r0, [sp]
2712 005a 039B ldr r3, [sp, #12]
2713 005c 0022 movs r2, #0
2714 005e 0821 movs r1, #8
2715 0060 2800 movs r0, r5
2716 .LVL217:
2717 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2718 .LVL218:
2719 0066 0028 cmp r0, #0
2720 0068 22D1 bne .L219
1052:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2721 .loc 1 1052 0
ARM GAS /tmp/ccpuPECZ.s page 140
2722 006a 2B68 ldr r3, [r5]
2723 006c 0822 movs r2, #8
2724 006e DA61 str r2, [r3, #28]
1055:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2725 .loc 1 1055 0
2726 0070 8021 movs r1, #128
2727 0072 0097 str r7, [sp]
2728 0074 039B ldr r3, [sp, #12]
2729 0076 073A subs r2, r2, #7
2730 0078 4902 lsls r1, r1, #9
2731 007a 2800 movs r0, r5
2732 007c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2733 .LVL219:
2734 0080 0028 cmp r0, #0
2735 0082 1DD1 bne .L220
2736 .L207:
1062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2737 .loc 1 1062 0
2738 0084 6B8D ldrh r3, [r5, #42]
2739 0086 9BB2 uxth r3, r3
2740 0088 002B cmp r3, #0
2741 008a 3BD0 beq .L221
1065:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2742 .loc 1 1065 0
2743 008c 3A00 movs r2, r7
2744 008e 0399 ldr r1, [sp, #12]
2745 0090 2800 movs r0, r5
2746 0092 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
2747 .LVL220:
2748 0096 0028 cmp r0, #0
2749 0098 1AD1 bne .L222
1089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
2750 .loc 1 1089 0
2751 009a 2B68 ldr r3, [r5]
2752 009c 5A6A ldr r2, [r3, #36]
2753 009e 6B6A ldr r3, [r5, #36]
2754 00a0 591C adds r1, r3, #1
2755 00a2 6962 str r1, [r5, #36]
2756 00a4 1A70 strb r2, [r3]
1090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2757 .loc 1 1090 0
2758 00a6 6B8D ldrh r3, [r5, #42]
2759 00a8 013B subs r3, r3, #1
2760 00aa 9BB2 uxth r3, r3
2761 00ac 6B85 strh r3, [r5, #42]
2762 00ae E9E7 b .L207
2763 .L219:
1047:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2764 .loc 1 1047 0
2765 00b0 2A68 ldr r2, [r5]
2766 00b2 5168 ldr r1, [r2, #4]
2767 00b4 8023 movs r3, #128
2768 00b6 1B02 lsls r3, r3, #8
2769 00b8 0B43 orrs r3, r1
2770 00ba 5360 str r3, [r2, #4]
1048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2771 .loc 1 1048 0
ARM GAS /tmp/ccpuPECZ.s page 141
2772 00bc 0320 movs r0, #3
2773 00be 58E0 b .L205
2774 .L220:
1058:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2775 .loc 1 1058 0
2776 00c0 2A68 ldr r2, [r5]
2777 00c2 5168 ldr r1, [r2, #4]
2778 00c4 8023 movs r3, #128
2779 00c6 1B02 lsls r3, r3, #8
2780 00c8 0B43 orrs r3, r1
2781 00ca 5360 str r3, [r2, #4]
1059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2782 .loc 1 1059 0
2783 00cc 0320 movs r0, #3
2784 00ce 50E0 b .L205
2785 .L222:
1068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2786 .loc 1 1068 0
2787 00d0 2A68 ldr r2, [r5]
2788 00d2 5168 ldr r1, [r2, #4]
2789 00d4 8023 movs r3, #128
2790 00d6 1B02 lsls r3, r3, #8
2791 00d8 0B43 orrs r3, r1
2792 00da 5360 str r3, [r2, #4]
1071:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2793 .loc 1 1071 0
2794 00dc 2B68 ldr r3, [r5]
2795 00de 9A69 ldr r2, [r3, #24]
2796 00e0 5207 lsls r2, r2, #29
2797 00e2 08D5 bpl .L209
1074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
2798 .loc 1 1074 0
2799 00e4 5A6A ldr r2, [r3, #36]
2800 00e6 6B6A ldr r3, [r5, #36]
2801 00e8 591C adds r1, r3, #1
2802 00ea 6962 str r1, [r5, #36]
2803 00ec 1A70 strb r2, [r3]
1075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2804 .loc 1 1075 0
2805 00ee 6B8D ldrh r3, [r5, #42]
2806 00f0 013B subs r3, r3, #1
2807 00f2 9BB2 uxth r3, r3
2808 00f4 6B85 strh r3, [r5, #42]
2809 .L209:
1078:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2810 .loc 1 1078 0
2811 00f6 6B6C ldr r3, [r5, #68]
2812 00f8 202B cmp r3, #32
2813 00fa 01D0 beq .L223
1084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2814 .loc 1 1084 0
2815 00fc 0120 movs r0, #1
2816 00fe 38E0 b .L205
2817 .L223:
1080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2818 .loc 1 1080 0
2819 0100 0320 movs r0, #3
ARM GAS /tmp/ccpuPECZ.s page 142
2820 0102 36E0 b .L205
2821 .L221:
1094:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2822 .loc 1 1094 0
2823 0104 3A00 movs r2, r7
2824 0106 0399 ldr r1, [sp, #12]
2825 0108 2800 movs r0, r5
2826 010a FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2827 .LVL221:
2828 010e 0028 cmp r0, #0
2829 0110 0AD0 beq .L211
1097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2830 .loc 1 1097 0
2831 0112 2A68 ldr r2, [r5]
2832 0114 5168 ldr r1, [r2, #4]
2833 0116 8023 movs r3, #128
2834 0118 1B02 lsls r3, r3, #8
2835 011a 0B43 orrs r3, r1
2836 011c 5360 str r3, [r2, #4]
1099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2837 .loc 1 1099 0
2838 011e 6B6C ldr r3, [r5, #68]
2839 0120 042B cmp r3, #4
2840 0122 2ED1 bne .L218
1101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2841 .loc 1 1101 0
2842 0124 0120 movs r0, #1
2843 0126 24E0 b .L205
2844 .L211:
1110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2845 .loc 1 1110 0
2846 0128 2B68 ldr r3, [r5]
2847 012a 2022 movs r2, #32
2848 012c DA61 str r2, [r3, #28]
1113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2849 .loc 1 1113 0
2850 012e 8021 movs r1, #128
2851 0130 0097 str r7, [sp]
2852 0132 039B ldr r3, [sp, #12]
2853 0134 1F3A subs r2, r2, #31
2854 0136 0902 lsls r1, r1, #8
2855 0138 2800 movs r0, r5
2856 013a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2857 .LVL222:
2858 013e 0028 cmp r0, #0
2859 0140 0ED1 bne .L224
1121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2860 .loc 1 1121 0
2861 0142 2A68 ldr r2, [r5]
2862 0144 5168 ldr r1, [r2, #4]
2863 0146 8023 movs r3, #128
2864 0148 1B02 lsls r3, r3, #8
2865 014a 0B43 orrs r3, r1
2866 014c 5360 str r3, [r2, #4]
1123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2867 .loc 1 1123 0
2868 014e 4123 movs r3, #65
ARM GAS /tmp/ccpuPECZ.s page 143
2869 0150 2022 movs r2, #32
2870 0152 EA54 strb r2, [r5, r3]
1124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2871 .loc 1 1124 0
2872 0154 0023 movs r3, #0
2873 0156 2232 adds r2, r2, #34
2874 0158 AB54 strb r3, [r5, r2]
1127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2875 .loc 1 1127 0
2876 015a 023A subs r2, r2, #2
2877 015c AB54 strb r3, [r5, r2]
1129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2878 .loc 1 1129 0
2879 015e 08E0 b .L205
2880 .L224:
1116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
2881 .loc 1 1116 0
2882 0160 2A68 ldr r2, [r5]
2883 0162 5168 ldr r1, [r2, #4]
2884 0164 8023 movs r3, #128
2885 0166 1B02 lsls r3, r3, #8
2886 0168 0B43 orrs r3, r1
2887 016a 5360 str r3, [r2, #4]
1117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2888 .loc 1 1117 0
2889 016c 0320 movs r0, #3
2890 016e 00E0 b .L205
2891 .LVL223:
2892 .L213:
1133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2893 .loc 1 1133 0
2894 0170 0220 movs r0, #2
2895 .LVL224:
2896 .L205:
1135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2897 .loc 1 1135 0
2898 0172 05B0 add sp, sp, #20
2899 @ sp needed
2900 .LVL225:
2901 .LVL226:
2902 0174 F0BD pop {r4, r5, r6, r7, pc}
2903 .LVL227:
2904 .L214:
1023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2905 .loc 1 1023 0
2906 0176 0120 movs r0, #1
2907 .LVL228:
2908 0178 FBE7 b .L205
2909 .LVL229:
2910 .L215:
2911 017a 0120 movs r0, #1
2912 .LVL230:
2913 017c F9E7 b .L205
2914 .LVL231:
2915 .L216:
1026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2916 .loc 1 1026 0
ARM GAS /tmp/ccpuPECZ.s page 144
2917 017e 0220 movs r0, #2
2918 .LVL232:
2919 0180 F7E7 b .L205
2920 .LVL233:
2921 .L218:
1105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
2922 .loc 1 1105 0
2923 0182 0320 movs r0, #3
2924 0184 F5E7 b .L205
2925 .L226:
2926 0186 C046 .align 2
2927 .L225:
2928 0188 FF7FFFFF .word -32769
2929 .cfi_endproc
2930 .LFE46:
2932 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits
2933 .align 1
2934 .global HAL_I2C_Master_Transmit_IT
2935 .syntax unified
2936 .code 16
2937 .thumb_func
2938 .fpu softvfp
2940 HAL_I2C_Master_Transmit_IT:
2941 .LFB47:
1148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
2942 .loc 1 1148 0
2943 .cfi_startproc
2944 @ args = 0, pretend = 0, frame = 0
2945 @ frame_needed = 0, uses_anonymous_args = 0
2946 .LVL234:
2947 0000 70B5 push {r4, r5, r6, lr}
2948 .LCFI22:
2949 .cfi_def_cfa_offset 16
2950 .cfi_offset 4, -16
2951 .cfi_offset 5, -12
2952 .cfi_offset 6, -8
2953 .cfi_offset 14, -4
2954 .LVL235:
1151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2955 .loc 1 1151 0
2956 0002 4124 movs r4, #65
2957 0004 045D ldrb r4, [r0, r4]
2958 0006 202C cmp r4, #32
2959 0008 48D1 bne .L232
1153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2960 .loc 1 1153 0
2961 000a 0468 ldr r4, [r0]
2962 000c A569 ldr r5, [r4, #24]
2963 000e 2D04 lsls r5, r5, #16
2964 0010 46D4 bmi .L233
1159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2965 .loc 1 1159 0
2966 0012 4025 movs r5, #64
2967 0014 455D ldrb r5, [r0, r5]
2968 0016 012D cmp r5, #1
2969 0018 44D0 beq .L234
1159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 145
2970 .loc 1 1159 0 is_stmt 0 discriminator 2
2971 001a 4025 movs r5, #64
2972 001c 0126 movs r6, #1
2973 001e 4655 strb r6, [r0, r5]
1161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2974 .loc 1 1161 0 is_stmt 1 discriminator 2
2975 0020 0135 adds r5, r5, #1
2976 0022 2036 adds r6, r6, #32
2977 0024 4655 strb r6, [r0, r5]
1162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2978 .loc 1 1162 0 discriminator 2
2979 0026 0135 adds r5, r5, #1
2980 0028 113E subs r6, r6, #17
2981 002a 4655 strb r6, [r0, r5]
1163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2982 .loc 1 1163 0 discriminator 2
2983 002c 0025 movs r5, #0
2984 002e 4564 str r5, [r0, #68]
1166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
2985 .loc 1 1166 0 discriminator 2
2986 0030 4262 str r2, [r0, #36]
1167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2987 .loc 1 1167 0 discriminator 2
2988 0032 4385 strh r3, [r0, #42]
1168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2989 .loc 1 1168 0 discriminator 2
2990 0034 1C4B ldr r3, .L238
2991 .LVL236:
2992 0036 C362 str r3, [r0, #44]
2993 .LVL237:
1169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
2994 .loc 1 1169 0 discriminator 2
2995 0038 1C4B ldr r3, .L238+4
2996 003a 4363 str r3, [r0, #52]
1171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
2997 .loc 1 1171 0 discriminator 2
2998 003c 438D ldrh r3, [r0, #42]
2999 003e 9BB2 uxth r3, r3
3000 0040 FF2B cmp r3, #255
3001 0042 22D9 bls .L229
1173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3002 .loc 1 1173 0
3003 0044 FF23 movs r3, #255
3004 0046 0385 strh r3, [r0, #40]
3005 .LVL238:
1174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3006 .loc 1 1174 0
3007 0048 8025 movs r5, #128
3008 004a 6D04 lsls r5, r5, #17
3009 .LVL239:
3010 .L230:
1184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3011 .loc 1 1184 0
3012 004c 028D ldrh r2, [r0, #40]
3013 .LVL240:
3014 004e D2B2 uxtb r2, r2
3015 .LVL241:
ARM GAS /tmp/ccpuPECZ.s page 146
3016 .LBB184:
3017 .LBB185:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
3018 .loc 1 4713 0
3019 0050 6368 ldr r3, [r4, #4]
3020 0052 174E ldr r6, .L238+8
3021 0054 3340 ands r3, r6
3022 0056 8905 lsls r1, r1, #22
3023 .LVL242:
3024 0058 890D lsrs r1, r1, #22
3025 005a 1204 lsls r2, r2, #16
3026 .LVL243:
3027 005c 1143 orrs r1, r2
3028 005e 0D43 orrs r5, r1
3029 .LVL244:
3030 0060 1449 ldr r1, .L238+12
3031 0062 2943 orrs r1, r5
3032 0064 1943 orrs r1, r3
3033 0066 6160 str r1, [r4, #4]
3034 .LVL245:
3035 .LBE185:
3036 .LBE184:
1187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3037 .loc 1 1187 0
3038 0068 4023 movs r3, #64
3039 006a 0022 movs r2, #0
3040 006c C254 strb r2, [r0, r3]
3041 .LVL246:
3042 .LBB186:
3043 .LBB187:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
3044 .loc 1 4728 0
3045 006e 436B ldr r3, [r0, #52]
3046 0070 114A ldr r2, .L238+16
3047 0072 9342 cmp r3, r2
3048 0074 10D0 beq .L235
3049 0076 114A ldr r2, .L238+20
3050 0078 9342 cmp r3, r2
3051 007a 0BD0 beq .L237
3052 007c F221 movs r1, #242
3053 .L231:
3054 .LVL247:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3055 .loc 1 4785 0
3056 007e 0268 ldr r2, [r0]
3057 0080 1368 ldr r3, [r2]
3058 0082 0B43 orrs r3, r1
3059 0084 1360 str r3, [r2]
3060 .LVL248:
3061 .LBE187:
3062 .LBE186:
1198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3063 .loc 1 1198 0
3064 0086 0020 movs r0, #0
3065 .LVL249:
3066 0088 09E0 b .L228
3067 .LVL250:
ARM GAS /tmp/ccpuPECZ.s page 147
3068 .L229:
1178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3069 .loc 1 1178 0
3070 008a 438D ldrh r3, [r0, #42]
3071 008c 0385 strh r3, [r0, #40]
3072 .LVL251:
1179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3073 .loc 1 1179 0
3074 008e 8025 movs r5, #128
3075 0090 AD04 lsls r5, r5, #18
3076 0092 DBE7 b .L230
3077 .LVL252:
3078 .L237:
3079 .LBB189:
3080 .LBB188:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
3081 .loc 1 4728 0
3082 0094 0021 movs r1, #0
3083 0096 F2E7 b .L231
3084 .L235:
3085 0098 0021 movs r1, #0
3086 009a F0E7 b .L231
3087 .LVL253:
3088 .L232:
3089 .LBE188:
3090 .LBE189:
1202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3091 .loc 1 1202 0
3092 009c 0220 movs r0, #2
3093 .LVL254:
3094 .L228:
1204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3095 .loc 1 1204 0
3096 @ sp needed
3097 009e 70BD pop {r4, r5, r6, pc}
3098 .LVL255:
3099 .L233:
1155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3100 .loc 1 1155 0
3101 00a0 0220 movs r0, #2
3102 .LVL256:
3103 00a2 FCE7 b .L228
3104 .LVL257:
3105 .L234:
1159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3106 .loc 1 1159 0
3107 00a4 0220 movs r0, #2
3108 .LVL258:
3109 00a6 FAE7 b .L228
3110 .L239:
3111 .align 2
3112 .L238:
3113 00a8 0000FFFF .word -65536
3114 00ac 00000000 .word I2C_Master_ISR_IT
3115 00b0 009800FC .word -67069952
3116 00b4 00200080 .word -2147475456
3117 00b8 00000000 .word I2C_Master_ISR_DMA
ARM GAS /tmp/ccpuPECZ.s page 148
3118 00bc 00000000 .word I2C_Slave_ISR_DMA
3119 .cfi_endproc
3120 .LFE47:
3122 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits
3123 .align 1
3124 .global HAL_I2C_Master_Receive_IT
3125 .syntax unified
3126 .code 16
3127 .thumb_func
3128 .fpu softvfp
3130 HAL_I2C_Master_Receive_IT:
3131 .LFB48:
1217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
3132 .loc 1 1217 0
3133 .cfi_startproc
3134 @ args = 0, pretend = 0, frame = 0
3135 @ frame_needed = 0, uses_anonymous_args = 0
3136 .LVL259:
3137 0000 70B5 push {r4, r5, r6, lr}
3138 .LCFI23:
3139 .cfi_def_cfa_offset 16
3140 .cfi_offset 4, -16
3141 .cfi_offset 5, -12
3142 .cfi_offset 6, -8
3143 .cfi_offset 14, -4
3144 .LVL260:
1220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3145 .loc 1 1220 0
3146 0002 4124 movs r4, #65
3147 0004 045D ldrb r4, [r0, r4]
3148 0006 202C cmp r4, #32
3149 0008 48D1 bne .L245
1222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3150 .loc 1 1222 0
3151 000a 0468 ldr r4, [r0]
3152 000c A569 ldr r5, [r4, #24]
3153 000e 2D04 lsls r5, r5, #16
3154 0010 46D4 bmi .L246
1228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3155 .loc 1 1228 0
3156 0012 4025 movs r5, #64
3157 0014 455D ldrb r5, [r0, r5]
3158 0016 012D cmp r5, #1
3159 0018 44D0 beq .L247
1228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3160 .loc 1 1228 0 is_stmt 0 discriminator 2
3161 001a 4025 movs r5, #64
3162 001c 0126 movs r6, #1
3163 001e 4655 strb r6, [r0, r5]
1230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3164 .loc 1 1230 0 is_stmt 1 discriminator 2
3165 0020 0135 adds r5, r5, #1
3166 0022 2136 adds r6, r6, #33
3167 0024 4655 strb r6, [r0, r5]
1231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3168 .loc 1 1231 0 discriminator 2
3169 0026 0135 adds r5, r5, #1
ARM GAS /tmp/ccpuPECZ.s page 149
3170 0028 123E subs r6, r6, #18
3171 002a 4655 strb r6, [r0, r5]
1232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3172 .loc 1 1232 0 discriminator 2
3173 002c 0025 movs r5, #0
3174 002e 4564 str r5, [r0, #68]
1235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
3175 .loc 1 1235 0 discriminator 2
3176 0030 4262 str r2, [r0, #36]
1236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3177 .loc 1 1236 0 discriminator 2
3178 0032 4385 strh r3, [r0, #42]
1237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3179 .loc 1 1237 0 discriminator 2
3180 0034 1C4B ldr r3, .L251
3181 .LVL261:
3182 0036 C362 str r3, [r0, #44]
3183 .LVL262:
1238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3184 .loc 1 1238 0 discriminator 2
3185 0038 1C4B ldr r3, .L251+4
3186 003a 4363 str r3, [r0, #52]
1240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3187 .loc 1 1240 0 discriminator 2
3188 003c 438D ldrh r3, [r0, #42]
3189 003e 9BB2 uxth r3, r3
3190 0040 FF2B cmp r3, #255
3191 0042 22D9 bls .L242
1242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3192 .loc 1 1242 0
3193 0044 FF23 movs r3, #255
3194 0046 0385 strh r3, [r0, #40]
3195 .LVL263:
1243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3196 .loc 1 1243 0
3197 0048 8025 movs r5, #128
3198 004a 6D04 lsls r5, r5, #17
3199 .LVL264:
3200 .L243:
1253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3201 .loc 1 1253 0
3202 004c 028D ldrh r2, [r0, #40]
3203 .LVL265:
3204 004e D2B2 uxtb r2, r2
3205 .LVL266:
3206 .LBB190:
3207 .LBB191:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
3208 .loc 1 4713 0
3209 0050 6368 ldr r3, [r4, #4]
3210 0052 174E ldr r6, .L251+8
3211 0054 3340 ands r3, r6
3212 0056 8905 lsls r1, r1, #22
3213 .LVL267:
3214 0058 890D lsrs r1, r1, #22
3215 005a 1204 lsls r2, r2, #16
3216 .LVL268:
ARM GAS /tmp/ccpuPECZ.s page 150
3217 005c 1143 orrs r1, r2
3218 005e 0D43 orrs r5, r1
3219 .LVL269:
3220 0060 1449 ldr r1, .L251+12
3221 0062 2943 orrs r1, r5
3222 0064 1943 orrs r1, r3
3223 0066 6160 str r1, [r4, #4]
3224 .LVL270:
3225 .LBE191:
3226 .LBE190:
1256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3227 .loc 1 1256 0
3228 0068 4023 movs r3, #64
3229 006a 0022 movs r2, #0
3230 006c C254 strb r2, [r0, r3]
3231 .LVL271:
3232 .LBB192:
3233 .LBB193:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
3234 .loc 1 4728 0
3235 006e 436B ldr r3, [r0, #52]
3236 0070 114A ldr r2, .L251+16
3237 0072 9342 cmp r3, r2
3238 0074 10D0 beq .L248
3239 0076 114A ldr r2, .L251+20
3240 0078 9342 cmp r3, r2
3241 007a 0BD0 beq .L250
3242 007c F421 movs r1, #244
3243 .L244:
3244 .LVL272:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3245 .loc 1 4785 0
3246 007e 0268 ldr r2, [r0]
3247 0080 1368 ldr r3, [r2]
3248 0082 0B43 orrs r3, r1
3249 0084 1360 str r3, [r2]
3250 .LVL273:
3251 .LBE193:
3252 .LBE192:
1267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3253 .loc 1 1267 0
3254 0086 0020 movs r0, #0
3255 .LVL274:
3256 0088 09E0 b .L241
3257 .LVL275:
3258 .L242:
1247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3259 .loc 1 1247 0
3260 008a 438D ldrh r3, [r0, #42]
3261 008c 0385 strh r3, [r0, #40]
3262 .LVL276:
1248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3263 .loc 1 1248 0
3264 008e 8025 movs r5, #128
3265 0090 AD04 lsls r5, r5, #18
3266 0092 DBE7 b .L243
3267 .LVL277:
ARM GAS /tmp/ccpuPECZ.s page 151
3268 .L250:
3269 .LBB195:
3270 .LBB194:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
3271 .loc 1 4728 0
3272 0094 0021 movs r1, #0
3273 0096 F2E7 b .L244
3274 .L248:
3275 0098 0021 movs r1, #0
3276 009a F0E7 b .L244
3277 .LVL278:
3278 .L245:
3279 .LBE194:
3280 .LBE195:
1271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3281 .loc 1 1271 0
3282 009c 0220 movs r0, #2
3283 .LVL279:
3284 .L241:
1273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3285 .loc 1 1273 0
3286 @ sp needed
3287 009e 70BD pop {r4, r5, r6, pc}
3288 .LVL280:
3289 .L246:
1224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3290 .loc 1 1224 0
3291 00a0 0220 movs r0, #2
3292 .LVL281:
3293 00a2 FCE7 b .L241
3294 .LVL282:
3295 .L247:
1228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3296 .loc 1 1228 0
3297 00a4 0220 movs r0, #2
3298 .LVL283:
3299 00a6 FAE7 b .L241
3300 .L252:
3301 .align 2
3302 .L251:
3303 00a8 0000FFFF .word -65536
3304 00ac 00000000 .word I2C_Master_ISR_IT
3305 00b0 009800FC .word -67069952
3306 00b4 00240080 .word -2147474432
3307 00b8 00000000 .word I2C_Master_ISR_DMA
3308 00bc 00000000 .word I2C_Slave_ISR_DMA
3309 .cfi_endproc
3310 .LFE48:
3312 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits
3313 .align 1
3314 .global HAL_I2C_Slave_Transmit_IT
3315 .syntax unified
3316 .code 16
3317 .thumb_func
3318 .fpu softvfp
3320 HAL_I2C_Slave_Transmit_IT:
3321 .LFB49:
ARM GAS /tmp/ccpuPECZ.s page 152
1284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3322 .loc 1 1284 0
3323 .cfi_startproc
3324 @ args = 0, pretend = 0, frame = 0
3325 @ frame_needed = 0, uses_anonymous_args = 0
3326 .LVL284:
3327 0000 F0B5 push {r4, r5, r6, r7, lr}
3328 .LCFI24:
3329 .cfi_def_cfa_offset 20
3330 .cfi_offset 4, -20
3331 .cfi_offset 5, -16
3332 .cfi_offset 6, -12
3333 .cfi_offset 7, -8
3334 .cfi_offset 14, -4
1285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3335 .loc 1 1285 0
3336 0002 4123 movs r3, #65
3337 0004 C35C ldrb r3, [r0, r3]
3338 0006 202B cmp r3, #32
3339 0008 23D1 bne .L255
1288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3340 .loc 1 1288 0
3341 000a 2033 adds r3, r3, #32
3342 000c C35C ldrb r3, [r0, r3]
3343 000e 012B cmp r3, #1
3344 0010 21D0 beq .L256
1288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3345 .loc 1 1288 0 is_stmt 0 discriminator 2
3346 0012 4024 movs r4, #64
3347 0014 0123 movs r3, #1
3348 0016 0355 strb r3, [r0, r4]
1290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3349 .loc 1 1290 0 is_stmt 1 discriminator 2
3350 0018 4033 adds r3, r3, #64
3351 001a 2125 movs r5, #33
3352 001c C554 strb r5, [r0, r3]
1291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3353 .loc 1 1291 0 discriminator 2
3354 001e 0133 adds r3, r3, #1
3355 0020 013D subs r5, r5, #1
3356 0022 C554 strb r5, [r0, r3]
1292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3357 .loc 1 1292 0 discriminator 2
3358 0024 0025 movs r5, #0
3359 0026 4564 str r5, [r0, #68]
1295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3360 .loc 1 1295 0 discriminator 2
3361 0028 0668 ldr r6, [r0]
3362 002a 7368 ldr r3, [r6, #4]
3363 002c 0B4F ldr r7, .L257
3364 002e 3B40 ands r3, r7
3365 0030 7360 str r3, [r6, #4]
1298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
3366 .loc 1 1298 0 discriminator 2
3367 0032 4162 str r1, [r0, #36]
1299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3368 .loc 1 1299 0 discriminator 2
ARM GAS /tmp/ccpuPECZ.s page 153
3369 0034 4285 strh r2, [r0, #42]
1300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3370 .loc 1 1300 0 discriminator 2
3371 0036 438D ldrh r3, [r0, #42]
3372 0038 0385 strh r3, [r0, #40]
1301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3373 .loc 1 1301 0 discriminator 2
3374 003a 094B ldr r3, .L257+4
3375 003c C362 str r3, [r0, #44]
1302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3376 .loc 1 1302 0 discriminator 2
3377 003e 094B ldr r3, .L257+8
3378 0040 4363 str r3, [r0, #52]
1305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3379 .loc 1 1305 0 discriminator 2
3380 0042 0555 strb r5, [r0, r4]
3381 .LVL285:
3382 .LBB196:
3383 .LBB197:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3384 .loc 1 4785 0 discriminator 2
3385 0044 0268 ldr r2, [r0]
3386 .LVL286:
3387 0046 1368 ldr r3, [r2]
3388 0048 FA21 movs r1, #250
3389 .LVL287:
3390 004a 0B43 orrs r3, r1
3391 004c 1360 str r3, [r2]
3392 .LVL288:
3393 .LBE197:
3394 .LBE196:
1316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3395 .loc 1 1316 0 discriminator 2
3396 004e 0020 movs r0, #0
3397 .LVL289:
3398 0050 00E0 b .L254
3399 .LVL290:
3400 .L255:
1320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3401 .loc 1 1320 0
3402 0052 0220 movs r0, #2
3403 .LVL291:
3404 .L254:
1322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3405 .loc 1 1322 0
3406 @ sp needed
3407 0054 F0BD pop {r4, r5, r6, r7, pc}
3408 .LVL292:
3409 .L256:
1288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3410 .loc 1 1288 0
3411 0056 0220 movs r0, #2
3412 .LVL293:
3413 0058 FCE7 b .L254
3414 .L258:
3415 005a C046 .align 2
3416 .L257:
ARM GAS /tmp/ccpuPECZ.s page 154
3417 005c FF7FFFFF .word -32769
3418 0060 0000FFFF .word -65536
3419 0064 00000000 .word I2C_Slave_ISR_IT
3420 .cfi_endproc
3421 .LFE49:
3423 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits
3424 .align 1
3425 .global HAL_I2C_Slave_Receive_IT
3426 .syntax unified
3427 .code 16
3428 .thumb_func
3429 .fpu softvfp
3431 HAL_I2C_Slave_Receive_IT:
3432 .LFB50:
1333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3433 .loc 1 1333 0
3434 .cfi_startproc
3435 @ args = 0, pretend = 0, frame = 0
3436 @ frame_needed = 0, uses_anonymous_args = 0
3437 .LVL294:
3438 0000 F0B5 push {r4, r5, r6, r7, lr}
3439 .LCFI25:
3440 .cfi_def_cfa_offset 20
3441 .cfi_offset 4, -20
3442 .cfi_offset 5, -16
3443 .cfi_offset 6, -12
3444 .cfi_offset 7, -8
3445 .cfi_offset 14, -4
1334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3446 .loc 1 1334 0
3447 0002 4123 movs r3, #65
3448 0004 C35C ldrb r3, [r0, r3]
3449 0006 202B cmp r3, #32
3450 0008 23D1 bne .L261
1337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3451 .loc 1 1337 0
3452 000a 2033 adds r3, r3, #32
3453 000c C35C ldrb r3, [r0, r3]
3454 000e 012B cmp r3, #1
3455 0010 21D0 beq .L262
1337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3456 .loc 1 1337 0 is_stmt 0 discriminator 2
3457 0012 4024 movs r4, #64
3458 0014 0123 movs r3, #1
3459 0016 0355 strb r3, [r0, r4]
1339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3460 .loc 1 1339 0 is_stmt 1 discriminator 2
3461 0018 4033 adds r3, r3, #64
3462 001a 2225 movs r5, #34
3463 001c C554 strb r5, [r0, r3]
1340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3464 .loc 1 1340 0 discriminator 2
3465 001e 0133 adds r3, r3, #1
3466 0020 023D subs r5, r5, #2
3467 0022 C554 strb r5, [r0, r3]
1341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3468 .loc 1 1341 0 discriminator 2
ARM GAS /tmp/ccpuPECZ.s page 155
3469 0024 0025 movs r5, #0
3470 0026 4564 str r5, [r0, #68]
1344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3471 .loc 1 1344 0 discriminator 2
3472 0028 0668 ldr r6, [r0]
3473 002a 7368 ldr r3, [r6, #4]
3474 002c 0B4F ldr r7, .L263
3475 002e 3B40 ands r3, r7
3476 0030 7360 str r3, [r6, #4]
1347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
3477 .loc 1 1347 0 discriminator 2
3478 0032 4162 str r1, [r0, #36]
1348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3479 .loc 1 1348 0 discriminator 2
3480 0034 4285 strh r2, [r0, #42]
1349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3481 .loc 1 1349 0 discriminator 2
3482 0036 438D ldrh r3, [r0, #42]
3483 0038 0385 strh r3, [r0, #40]
1350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3484 .loc 1 1350 0 discriminator 2
3485 003a 094B ldr r3, .L263+4
3486 003c C362 str r3, [r0, #44]
1351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3487 .loc 1 1351 0 discriminator 2
3488 003e 094B ldr r3, .L263+8
3489 0040 4363 str r3, [r0, #52]
1354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3490 .loc 1 1354 0 discriminator 2
3491 0042 0555 strb r5, [r0, r4]
3492 .LVL295:
3493 .LBB198:
3494 .LBB199:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3495 .loc 1 4785 0 discriminator 2
3496 0044 0268 ldr r2, [r0]
3497 .LVL296:
3498 0046 1368 ldr r3, [r2]
3499 0048 FC21 movs r1, #252
3500 .LVL297:
3501 004a 0B43 orrs r3, r1
3502 004c 1360 str r3, [r2]
3503 .LVL298:
3504 .LBE199:
3505 .LBE198:
1365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3506 .loc 1 1365 0 discriminator 2
3507 004e 0020 movs r0, #0
3508 .LVL299:
3509 0050 00E0 b .L260
3510 .LVL300:
3511 .L261:
1369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3512 .loc 1 1369 0
3513 0052 0220 movs r0, #2
3514 .LVL301:
3515 .L260:
ARM GAS /tmp/ccpuPECZ.s page 156
1371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3516 .loc 1 1371 0
3517 @ sp needed
3518 0054 F0BD pop {r4, r5, r6, r7, pc}
3519 .LVL302:
3520 .L262:
1337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3521 .loc 1 1337 0
3522 0056 0220 movs r0, #2
3523 .LVL303:
3524 0058 FCE7 b .L260
3525 .L264:
3526 005a C046 .align 2
3527 .L263:
3528 005c FF7FFFFF .word -32769
3529 0060 0000FFFF .word -65536
3530 0064 00000000 .word I2C_Slave_ISR_IT
3531 .cfi_endproc
3532 .LFE50:
3534 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits
3535 .align 1
3536 .global HAL_I2C_Master_Transmit_DMA
3537 .syntax unified
3538 .code 16
3539 .thumb_func
3540 .fpu softvfp
3542 HAL_I2C_Master_Transmit_DMA:
3543 .LFB51:
1384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
3544 .loc 1 1384 0
3545 .cfi_startproc
3546 @ args = 0, pretend = 0, frame = 0
3547 @ frame_needed = 0, uses_anonymous_args = 0
3548 .LVL304:
3549 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
3550 .LCFI26:
3551 .cfi_def_cfa_offset 24
3552 .cfi_offset 3, -24
3553 .cfi_offset 4, -20
3554 .cfi_offset 5, -16
3555 .cfi_offset 6, -12
3556 .cfi_offset 7, -8
3557 .cfi_offset 14, -4
3558 0002 0400 movs r4, r0
3559 0004 0D00 movs r5, r1
3560 0006 1100 movs r1, r2
3561 .LVL305:
1387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3562 .loc 1 1387 0
3563 0008 4122 movs r2, #65
3564 .LVL306:
3565 000a 825C ldrb r2, [r0, r2]
3566 000c 202A cmp r2, #32
3567 000e 00D0 beq .LCB3787
3568 0010 8CE0 b .L272 @long jump
3569 .LCB3787:
1389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 157
3570 .loc 1 1389 0
3571 0012 0268 ldr r2, [r0]
3572 0014 9069 ldr r0, [r2, #24]
3573 .LVL307:
3574 0016 0004 lsls r0, r0, #16
3575 0018 00D5 bpl .LCB3794
3576 001a 89E0 b .L273 @long jump
3577 .LCB3794:
1395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3578 .loc 1 1395 0
3579 001c 4020 movs r0, #64
3580 001e 205C ldrb r0, [r4, r0]
3581 0020 0128 cmp r0, #1
3582 0022 00D1 bne .LCB3798
3583 0024 86E0 b .L274 @long jump
3584 .LCB3798:
1395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3585 .loc 1 1395 0 is_stmt 0 discriminator 2
3586 0026 4020 movs r0, #64
3587 0028 0126 movs r6, #1
3588 002a 2654 strb r6, [r4, r0]
1397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3589 .loc 1 1397 0 is_stmt 1 discriminator 2
3590 002c 0130 adds r0, r0, #1
3591 002e 2036 adds r6, r6, #32
3592 0030 2654 strb r6, [r4, r0]
1398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3593 .loc 1 1398 0 discriminator 2
3594 0032 0130 adds r0, r0, #1
3595 0034 113E subs r6, r6, #17
3596 0036 2654 strb r6, [r4, r0]
1399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3597 .loc 1 1399 0 discriminator 2
3598 0038 0020 movs r0, #0
3599 003a 6064 str r0, [r4, #68]
1402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
3600 .loc 1 1402 0 discriminator 2
3601 003c 6162 str r1, [r4, #36]
1403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3602 .loc 1 1403 0 discriminator 2
3603 003e 6385 strh r3, [r4, #42]
1404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3604 .loc 1 1404 0 discriminator 2
3605 0040 3D4B ldr r3, .L282
3606 .LVL308:
3607 0042 E362 str r3, [r4, #44]
3608 .LVL309:
1405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3609 .loc 1 1405 0 discriminator 2
3610 0044 3D4B ldr r3, .L282+4
3611 0046 6363 str r3, [r4, #52]
1407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3612 .loc 1 1407 0 discriminator 2
3613 0048 638D ldrh r3, [r4, #42]
3614 004a 9BB2 uxth r3, r3
3615 004c FF2B cmp r3, #255
3616 004e 25D9 bls .L267
ARM GAS /tmp/ccpuPECZ.s page 158
1409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3617 .loc 1 1409 0
3618 0050 FF23 movs r3, #255
3619 0052 2385 strh r3, [r4, #40]
3620 .LVL310:
1410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3621 .loc 1 1410 0
3622 0054 8026 movs r6, #128
3623 0056 7604 lsls r6, r6, #17
3624 .LVL311:
3625 .L268:
1418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3626 .loc 1 1418 0
3627 0058 238D ldrh r3, [r4, #40]
3628 005a 002B cmp r3, #0
3629 005c 23D1 bne .L279
1455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3630 .loc 1 1455 0
3631 005e 3849 ldr r1, .L282+8
3632 .LVL312:
3633 0060 6163 str r1, [r4, #52]
1459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3634 .loc 1 1459 0
3635 0062 DBB2 uxtb r3, r3
3636 .LVL313:
3637 .LBB200:
3638 .LBB201:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
3639 .loc 1 4713 0
3640 0064 5168 ldr r1, [r2, #4]
3641 0066 3748 ldr r0, .L282+12
3642 0068 0140 ands r1, r0
3643 006a AD05 lsls r5, r5, #22
3644 .LVL314:
3645 006c AD0D lsrs r5, r5, #22
3646 006e 1B04 lsls r3, r3, #16
3647 .LVL315:
3648 0070 1D43 orrs r5, r3
3649 0072 354B ldr r3, .L282+16
3650 0074 1D43 orrs r5, r3
3651 0076 0D43 orrs r5, r1
3652 0078 5560 str r5, [r2, #4]
3653 .LVL316:
3654 .LBE201:
3655 .LBE200:
1462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3656 .loc 1 1462 0
3657 007a 4023 movs r3, #64
3658 007c 0022 movs r2, #0
3659 007e E254 strb r2, [r4, r3]
3660 .LVL317:
3661 .LBB202:
3662 .LBB203:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
3663 .loc 1 4728 0
3664 0080 636B ldr r3, [r4, #52]
3665 0082 2E4A ldr r2, .L282+4
ARM GAS /tmp/ccpuPECZ.s page 159
3666 0084 9342 cmp r3, r2
3667 0086 4FD0 beq .L277
3668 0088 304A ldr r2, .L282+20
3669 008a 9342 cmp r3, r2
3670 008c 4AD0 beq .L280
3671 008e F221 movs r1, #242
3672 .L271:
3673 .LVL318:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3674 .loc 1 4785 0
3675 0090 2268 ldr r2, [r4]
3676 0092 1368 ldr r3, [r2]
3677 0094 0B43 orrs r3, r1
3678 0096 1360 str r3, [r2]
3679 .LBE203:
3680 .LBE202:
1473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3681 .loc 1 1473 0
3682 0098 0020 movs r0, #0
3683 009a 48E0 b .L266
3684 .LVL319:
3685 .L267:
1414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3686 .loc 1 1414 0
3687 009c 638D ldrh r3, [r4, #42]
3688 009e 2385 strh r3, [r4, #40]
3689 .LVL320:
1415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3690 .loc 1 1415 0
3691 00a0 8026 movs r6, #128
3692 00a2 B604 lsls r6, r6, #18
3693 00a4 D8E7 b .L268
3694 .LVL321:
3695 .L279:
1421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3696 .loc 1 1421 0
3697 00a6 A36B ldr r3, [r4, #56]
3698 00a8 294A ldr r2, .L282+24
3699 00aa DA62 str r2, [r3, #44]
1424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3700 .loc 1 1424 0
3701 00ac A36B ldr r3, [r4, #56]
3702 00ae 294A ldr r2, .L282+28
3703 00b0 5A63 str r2, [r3, #52]
1427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3704 .loc 1 1427 0
3705 00b2 A36B ldr r3, [r4, #56]
3706 00b4 0027 movs r7, #0
3707 00b6 1F63 str r7, [r3, #48]
1428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3708 .loc 1 1428 0
3709 00b8 A36B ldr r3, [r4, #56]
3710 00ba 9F63 str r7, [r3, #56]
1431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3711 .loc 1 1431 0
3712 00bc 2268 ldr r2, [r4]
3713 00be 2832 adds r2, r2, #40
ARM GAS /tmp/ccpuPECZ.s page 160
3714 00c0 238D ldrh r3, [r4, #40]
3715 00c2 A06B ldr r0, [r4, #56]
3716 00c4 FFF7FEFF bl HAL_DMA_Start_IT
3717 .LVL322:
1435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3718 .loc 1 1435 0
3719 00c8 238D ldrh r3, [r4, #40]
3720 00ca DBB2 uxtb r3, r3
3721 .LVL323:
3722 .LBB205:
3723 .LBB206:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
3724 .loc 1 4713 0
3725 00cc 2168 ldr r1, [r4]
3726 00ce 4868 ldr r0, [r1, #4]
3727 00d0 1C4A ldr r2, .L282+12
3728 00d2 0240 ands r2, r0
3729 00d4 AD05 lsls r5, r5, #22
3730 .LVL324:
3731 00d6 AD0D lsrs r5, r5, #22
3732 00d8 1B04 lsls r3, r3, #16
3733 .LVL325:
3734 00da 1D43 orrs r5, r3
3735 00dc 2E43 orrs r6, r5
3736 .LVL326:
3737 00de 1E4D ldr r5, .L282+32
3738 00e0 2E43 orrs r6, r5
3739 00e2 1643 orrs r6, r2
3740 00e4 4E60 str r6, [r1, #4]
3741 .LVL327:
3742 .LBE206:
3743 .LBE205:
1438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3744 .loc 1 1438 0
3745 00e6 638D ldrh r3, [r4, #42]
3746 00e8 228D ldrh r2, [r4, #40]
3747 00ea 9B1A subs r3, r3, r2
3748 00ec 9BB2 uxth r3, r3
3749 00ee 6385 strh r3, [r4, #42]
1441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3750 .loc 1 1441 0
3751 00f0 4023 movs r3, #64
3752 00f2 E754 strb r7, [r4, r3]
3753 .LVL328:
3754 .LBB207:
3755 .LBB208:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
3756 .loc 1 4728 0
3757 00f4 636B ldr r3, [r4, #52]
3758 00f6 114A ldr r2, .L282+4
3759 00f8 9342 cmp r3, r2
3760 00fa 11D0 beq .L275
3761 00fc 134A ldr r2, .L282+20
3762 00fe 9342 cmp r3, r2
3763 0100 0CD0 beq .L281
3764 0102 F221 movs r1, #242
3765 .L270:
ARM GAS /tmp/ccpuPECZ.s page 161
3766 .LVL329:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3767 .loc 1 4785 0
3768 0104 2268 ldr r2, [r4]
3769 0106 1368 ldr r3, [r2]
3770 0108 0B43 orrs r3, r1
3771 010a 1360 str r3, [r2]
3772 .LVL330:
3773 .LBE208:
3774 .LBE207:
1450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3775 .loc 1 1450 0
3776 010c 2268 ldr r2, [r4]
3777 010e 1168 ldr r1, [r2]
3778 0110 8023 movs r3, #128
3779 0112 DB01 lsls r3, r3, #7
3780 0114 0B43 orrs r3, r1
3781 0116 1360 str r3, [r2]
1473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3782 .loc 1 1473 0
3783 0118 0020 movs r0, #0
3784 011a 08E0 b .L266
3785 .LVL331:
3786 .L281:
3787 .LBB210:
3788 .LBB209:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
3789 .loc 1 4728 0
3790 011c 9021 movs r1, #144
3791 011e F1E7 b .L270
3792 .L275:
3793 0120 9021 movs r1, #144
3794 0122 EFE7 b .L270
3795 .LVL332:
3796 .L280:
3797 .LBE209:
3798 .LBE210:
3799 .LBB211:
3800 .LBB204:
3801 0124 0021 movs r1, #0
3802 0126 B3E7 b .L271
3803 .L277:
3804 0128 0021 movs r1, #0
3805 012a B1E7 b .L271
3806 .LVL333:
3807 .L272:
3808 .LBE204:
3809 .LBE211:
1477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3810 .loc 1 1477 0
3811 012c 0220 movs r0, #2
3812 .LVL334:
3813 .L266:
1479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3814 .loc 1 1479 0
3815 @ sp needed
3816 .LVL335:
ARM GAS /tmp/ccpuPECZ.s page 162
3817 012e F8BD pop {r3, r4, r5, r6, r7, pc}
3818 .LVL336:
3819 .L273:
1391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3820 .loc 1 1391 0
3821 0130 0220 movs r0, #2
3822 0132 FCE7 b .L266
3823 .L274:
1395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3824 .loc 1 1395 0
3825 0134 0220 movs r0, #2
3826 0136 FAE7 b .L266
3827 .L283:
3828 .align 2
3829 .L282:
3830 0138 0000FFFF .word -65536
3831 013c 00000000 .word I2C_Master_ISR_DMA
3832 0140 00000000 .word I2C_Master_ISR_IT
3833 0144 009800FC .word -67069952
3834 0148 00200082 .word -2113921024
3835 014c 00000000 .word I2C_Slave_ISR_DMA
3836 0150 00000000 .word I2C_DMAMasterTransmitCplt
3837 0154 00000000 .word I2C_DMAError
3838 0158 00200080 .word -2147475456
3839 .cfi_endproc
3840 .LFE51:
3842 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits
3843 .align 1
3844 .global HAL_I2C_Master_Receive_DMA
3845 .syntax unified
3846 .code 16
3847 .thumb_func
3848 .fpu softvfp
3850 HAL_I2C_Master_Receive_DMA:
3851 .LFB52:
1492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
3852 .loc 1 1492 0
3853 .cfi_startproc
3854 @ args = 0, pretend = 0, frame = 0
3855 @ frame_needed = 0, uses_anonymous_args = 0
3856 .LVL337:
3857 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
3858 .LCFI27:
3859 .cfi_def_cfa_offset 24
3860 .cfi_offset 3, -24
3861 .cfi_offset 4, -20
3862 .cfi_offset 5, -16
3863 .cfi_offset 6, -12
3864 .cfi_offset 7, -8
3865 .cfi_offset 14, -4
3866 0002 0400 movs r4, r0
3867 0004 0D00 movs r5, r1
3868 .LVL338:
1495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3869 .loc 1 1495 0
3870 0006 4121 movs r1, #65
3871 .LVL339:
ARM GAS /tmp/ccpuPECZ.s page 163
3872 0008 415C ldrb r1, [r0, r1]
3873 000a 2029 cmp r1, #32
3874 000c 00D0 beq .LCB4139
3875 000e 8CE0 b .L291 @long jump
3876 .LCB4139:
1497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3877 .loc 1 1497 0
3878 0010 0168 ldr r1, [r0]
3879 0012 8869 ldr r0, [r1, #24]
3880 .LVL340:
3881 0014 0004 lsls r0, r0, #16
3882 0016 00D5 bpl .LCB4146
3883 0018 89E0 b .L292 @long jump
3884 .LCB4146:
1503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3885 .loc 1 1503 0
3886 001a 4020 movs r0, #64
3887 001c 205C ldrb r0, [r4, r0]
3888 001e 0128 cmp r0, #1
3889 0020 00D1 bne .LCB4150
3890 0022 86E0 b .L293 @long jump
3891 .LCB4150:
1503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3892 .loc 1 1503 0 is_stmt 0 discriminator 2
3893 0024 4020 movs r0, #64
3894 0026 0126 movs r6, #1
3895 0028 2654 strb r6, [r4, r0]
1505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3896 .loc 1 1505 0 is_stmt 1 discriminator 2
3897 002a 0130 adds r0, r0, #1
3898 002c 2136 adds r6, r6, #33
3899 002e 2654 strb r6, [r4, r0]
1506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3900 .loc 1 1506 0 discriminator 2
3901 0030 0130 adds r0, r0, #1
3902 0032 123E subs r6, r6, #18
3903 0034 2654 strb r6, [r4, r0]
1507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3904 .loc 1 1507 0 discriminator 2
3905 0036 0020 movs r0, #0
3906 0038 6064 str r0, [r4, #68]
1510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
3907 .loc 1 1510 0 discriminator 2
3908 003a 6262 str r2, [r4, #36]
1511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3909 .loc 1 1511 0 discriminator 2
3910 003c 6385 strh r3, [r4, #42]
1512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3911 .loc 1 1512 0 discriminator 2
3912 003e 3E4B ldr r3, .L301
3913 .LVL341:
3914 0040 E362 str r3, [r4, #44]
3915 .LVL342:
1513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3916 .loc 1 1513 0 discriminator 2
3917 0042 3E4B ldr r3, .L301+4
3918 0044 6363 str r3, [r4, #52]
ARM GAS /tmp/ccpuPECZ.s page 164
1515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3919 .loc 1 1515 0 discriminator 2
3920 0046 638D ldrh r3, [r4, #42]
3921 0048 9BB2 uxth r3, r3
3922 004a FF2B cmp r3, #255
3923 004c 25D9 bls .L286
1517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3924 .loc 1 1517 0
3925 004e FF23 movs r3, #255
3926 0050 2385 strh r3, [r4, #40]
3927 .LVL343:
1518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3928 .loc 1 1518 0
3929 0052 8026 movs r6, #128
3930 0054 7604 lsls r6, r6, #17
3931 .LVL344:
3932 .L287:
1526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
3933 .loc 1 1526 0
3934 0056 238D ldrh r3, [r4, #40]
3935 0058 002B cmp r3, #0
3936 005a 23D1 bne .L298
1563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3937 .loc 1 1563 0
3938 005c 384A ldr r2, .L301+8
3939 .LVL345:
3940 005e 6263 str r2, [r4, #52]
1567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3941 .loc 1 1567 0
3942 0060 DBB2 uxtb r3, r3
3943 .LVL346:
3944 .LBB212:
3945 .LBB213:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
3946 .loc 1 4713 0
3947 0062 4A68 ldr r2, [r1, #4]
3948 0064 3748 ldr r0, .L301+12
3949 0066 0240 ands r2, r0
3950 0068 AD05 lsls r5, r5, #22
3951 .LVL347:
3952 006a AD0D lsrs r5, r5, #22
3953 006c 1B04 lsls r3, r3, #16
3954 .LVL348:
3955 006e 1D43 orrs r5, r3
3956 0070 354B ldr r3, .L301+16
3957 0072 1D43 orrs r5, r3
3958 0074 1543 orrs r5, r2
3959 0076 4D60 str r5, [r1, #4]
3960 .LVL349:
3961 .LBE213:
3962 .LBE212:
1570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3963 .loc 1 1570 0
3964 0078 4023 movs r3, #64
3965 007a 0022 movs r2, #0
3966 007c E254 strb r2, [r4, r3]
3967 .LVL350:
ARM GAS /tmp/ccpuPECZ.s page 165
3968 .LBB214:
3969 .LBB215:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
3970 .loc 1 4728 0
3971 007e 636B ldr r3, [r4, #52]
3972 0080 2E4A ldr r2, .L301+4
3973 0082 9342 cmp r3, r2
3974 0084 4FD0 beq .L296
3975 0086 314A ldr r2, .L301+20
3976 0088 9342 cmp r3, r2
3977 008a 4AD0 beq .L299
3978 008c F221 movs r1, #242
3979 .L290:
3980 .LVL351:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
3981 .loc 1 4785 0
3982 008e 2268 ldr r2, [r4]
3983 0090 1368 ldr r3, [r2]
3984 0092 0B43 orrs r3, r1
3985 0094 1360 str r3, [r2]
3986 .LBE215:
3987 .LBE214:
1580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3988 .loc 1 1580 0
3989 0096 0020 movs r0, #0
3990 0098 48E0 b .L285
3991 .LVL352:
3992 .L286:
1522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3993 .loc 1 1522 0
3994 009a 638D ldrh r3, [r4, #42]
3995 009c 2385 strh r3, [r4, #40]
3996 .LVL353:
1523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
3997 .loc 1 1523 0
3998 009e 8026 movs r6, #128
3999 00a0 B604 lsls r6, r6, #18
4000 00a2 D8E7 b .L287
4001 .LVL354:
4002 .L298:
1529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4003 .loc 1 1529 0
4004 00a4 E36B ldr r3, [r4, #60]
4005 00a6 2A49 ldr r1, .L301+24
4006 00a8 D962 str r1, [r3, #44]
1532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4007 .loc 1 1532 0
4008 00aa E36B ldr r3, [r4, #60]
4009 00ac 2949 ldr r1, .L301+28
4010 00ae 5963 str r1, [r3, #52]
1535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4011 .loc 1 1535 0
4012 00b0 E36B ldr r3, [r4, #60]
4013 00b2 0027 movs r7, #0
4014 00b4 1F63 str r7, [r3, #48]
1536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4015 .loc 1 1536 0
ARM GAS /tmp/ccpuPECZ.s page 166
4016 00b6 E36B ldr r3, [r4, #60]
4017 00b8 9F63 str r7, [r3, #56]
1539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4018 .loc 1 1539 0
4019 00ba 2168 ldr r1, [r4]
4020 00bc 2431 adds r1, r1, #36
4021 00be 238D ldrh r3, [r4, #40]
4022 00c0 E06B ldr r0, [r4, #60]
4023 00c2 FFF7FEFF bl HAL_DMA_Start_IT
4024 .LVL355:
1543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4025 .loc 1 1543 0
4026 00c6 238D ldrh r3, [r4, #40]
4027 00c8 DBB2 uxtb r3, r3
4028 .LVL356:
4029 .LBB217:
4030 .LBB218:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
4031 .loc 1 4713 0
4032 00ca 2168 ldr r1, [r4]
4033 00cc 4868 ldr r0, [r1, #4]
4034 00ce 1D4A ldr r2, .L301+12
4035 00d0 0240 ands r2, r0
4036 00d2 AD05 lsls r5, r5, #22
4037 .LVL357:
4038 00d4 AD0D lsrs r5, r5, #22
4039 00d6 1B04 lsls r3, r3, #16
4040 .LVL358:
4041 00d8 1D43 orrs r5, r3
4042 00da 2E43 orrs r6, r5
4043 .LVL359:
4044 00dc 1E4D ldr r5, .L301+32
4045 00de 2E43 orrs r6, r5
4046 00e0 1643 orrs r6, r2
4047 00e2 4E60 str r6, [r1, #4]
4048 .LVL360:
4049 .LBE218:
4050 .LBE217:
1546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4051 .loc 1 1546 0
4052 00e4 638D ldrh r3, [r4, #42]
4053 00e6 228D ldrh r2, [r4, #40]
4054 00e8 9B1A subs r3, r3, r2
4055 00ea 9BB2 uxth r3, r3
4056 00ec 6385 strh r3, [r4, #42]
1549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4057 .loc 1 1549 0
4058 00ee 4023 movs r3, #64
4059 00f0 E754 strb r7, [r4, r3]
4060 .LVL361:
4061 .LBB219:
4062 .LBB220:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
4063 .loc 1 4728 0
4064 00f2 636B ldr r3, [r4, #52]
4065 00f4 114A ldr r2, .L301+4
4066 00f6 9342 cmp r3, r2
ARM GAS /tmp/ccpuPECZ.s page 167
4067 00f8 11D0 beq .L294
4068 00fa 144A ldr r2, .L301+20
4069 00fc 9342 cmp r3, r2
4070 00fe 0CD0 beq .L300
4071 0100 F221 movs r1, #242
4072 .L289:
4073 .LVL362:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4074 .loc 1 4785 0
4075 0102 2268 ldr r2, [r4]
4076 0104 1368 ldr r3, [r2]
4077 0106 0B43 orrs r3, r1
4078 0108 1360 str r3, [r2]
4079 .LVL363:
4080 .LBE220:
4081 .LBE219:
1558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4082 .loc 1 1558 0
4083 010a 2268 ldr r2, [r4]
4084 010c 1168 ldr r1, [r2]
4085 010e 8023 movs r3, #128
4086 0110 1B02 lsls r3, r3, #8
4087 0112 0B43 orrs r3, r1
4088 0114 1360 str r3, [r2]
1580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4089 .loc 1 1580 0
4090 0116 0020 movs r0, #0
4091 0118 08E0 b .L285
4092 .LVL364:
4093 .L300:
4094 .LBB222:
4095 .LBB221:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
4096 .loc 1 4728 0
4097 011a 9021 movs r1, #144
4098 011c F1E7 b .L289
4099 .L294:
4100 011e 9021 movs r1, #144
4101 0120 EFE7 b .L289
4102 .LVL365:
4103 .L299:
4104 .LBE221:
4105 .LBE222:
4106 .LBB223:
4107 .LBB216:
4108 0122 0021 movs r1, #0
4109 0124 B3E7 b .L290
4110 .L296:
4111 0126 0021 movs r1, #0
4112 0128 B1E7 b .L290
4113 .LVL366:
4114 .L291:
4115 .LBE216:
4116 .LBE223:
1584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4117 .loc 1 1584 0
4118 012a 0220 movs r0, #2
ARM GAS /tmp/ccpuPECZ.s page 168
4119 .LVL367:
4120 .L285:
1586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4121 .loc 1 1586 0
4122 @ sp needed
4123 .LVL368:
4124 012c F8BD pop {r3, r4, r5, r6, r7, pc}
4125 .LVL369:
4126 .L292:
1499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4127 .loc 1 1499 0
4128 012e 0220 movs r0, #2
4129 0130 FCE7 b .L285
4130 .L293:
1503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4131 .loc 1 1503 0
4132 0132 0220 movs r0, #2
4133 0134 FAE7 b .L285
4134 .L302:
4135 0136 C046 .align 2
4136 .L301:
4137 0138 0000FFFF .word -65536
4138 013c 00000000 .word I2C_Master_ISR_DMA
4139 0140 00000000 .word I2C_Master_ISR_IT
4140 0144 009800FC .word -67069952
4141 0148 00240082 .word -2113920000
4142 014c 00000000 .word I2C_Slave_ISR_DMA
4143 0150 00000000 .word I2C_DMAMasterReceiveCplt
4144 0154 00000000 .word I2C_DMAError
4145 0158 00240080 .word -2147474432
4146 .cfi_endproc
4147 .LFE52:
4149 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits
4150 .align 1
4151 .global HAL_I2C_Slave_Transmit_DMA
4152 .syntax unified
4153 .code 16
4154 .thumb_func
4155 .fpu softvfp
4157 HAL_I2C_Slave_Transmit_DMA:
4158 .LFB53:
1597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
4159 .loc 1 1597 0
4160 .cfi_startproc
4161 @ args = 0, pretend = 0, frame = 0
4162 @ frame_needed = 0, uses_anonymous_args = 0
4163 .LVL370:
4164 0000 70B5 push {r4, r5, r6, lr}
4165 .LCFI28:
4166 .cfi_def_cfa_offset 16
4167 .cfi_offset 4, -16
4168 .cfi_offset 5, -12
4169 .cfi_offset 6, -8
4170 .cfi_offset 14, -4
4171 0002 0400 movs r4, r0
1598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4172 .loc 1 1598 0
ARM GAS /tmp/ccpuPECZ.s page 169
4173 0004 4123 movs r3, #65
4174 0006 C35C ldrb r3, [r0, r3]
4175 0008 202B cmp r3, #32
4176 000a 3DD1 bne .L305
1600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4177 .loc 1 1600 0
4178 000c 0029 cmp r1, #0
4179 000e 3DD0 beq .L306
1600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4180 .loc 1 1600 0 is_stmt 0 discriminator 1
4181 0010 002A cmp r2, #0
4182 0012 3DD0 beq .L307
1605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4183 .loc 1 1605 0 is_stmt 1
4184 0014 2033 adds r3, r3, #32
4185 0016 C35C ldrb r3, [r0, r3]
4186 0018 012B cmp r3, #1
4187 001a 3BD0 beq .L308
1605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4188 .loc 1 1605 0 is_stmt 0 discriminator 2
4189 001c 4026 movs r6, #64
4190 001e 0123 movs r3, #1
4191 0020 8355 strb r3, [r0, r6]
1607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4192 .loc 1 1607 0 is_stmt 1 discriminator 2
4193 0022 4033 adds r3, r3, #64
4194 0024 2120 movs r0, #33
4195 .LVL371:
4196 0026 E054 strb r0, [r4, r3]
1608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4197 .loc 1 1608 0 discriminator 2
4198 0028 0133 adds r3, r3, #1
4199 002a 0138 subs r0, r0, #1
4200 002c E054 strb r0, [r4, r3]
1609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4201 .loc 1 1609 0 discriminator 2
4202 002e 0025 movs r5, #0
4203 0030 6564 str r5, [r4, #68]
1612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
4204 .loc 1 1612 0 discriminator 2
4205 0032 6162 str r1, [r4, #36]
1613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4206 .loc 1 1613 0 discriminator 2
4207 0034 6285 strh r2, [r4, #42]
1614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4208 .loc 1 1614 0 discriminator 2
4209 0036 638D ldrh r3, [r4, #42]
4210 0038 2385 strh r3, [r4, #40]
1615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4211 .loc 1 1615 0 discriminator 2
4212 003a 174B ldr r3, .L309
4213 003c E362 str r3, [r4, #44]
1616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4214 .loc 1 1616 0 discriminator 2
4215 003e 174B ldr r3, .L309+4
4216 0040 6363 str r3, [r4, #52]
1619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 170
4217 .loc 1 1619 0 discriminator 2
4218 0042 A36B ldr r3, [r4, #56]
4219 0044 164A ldr r2, .L309+8
4220 .LVL372:
4221 0046 DA62 str r2, [r3, #44]
1622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4222 .loc 1 1622 0 discriminator 2
4223 0048 A36B ldr r3, [r4, #56]
4224 004a 164A ldr r2, .L309+12
4225 004c 5A63 str r2, [r3, #52]
1625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4226 .loc 1 1625 0 discriminator 2
4227 004e A36B ldr r3, [r4, #56]
4228 0050 1D63 str r5, [r3, #48]
1626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4229 .loc 1 1626 0 discriminator 2
4230 0052 A36B ldr r3, [r4, #56]
4231 0054 9D63 str r5, [r3, #56]
1629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4232 .loc 1 1629 0 discriminator 2
4233 0056 2268 ldr r2, [r4]
4234 0058 2832 adds r2, r2, #40
4235 005a 238D ldrh r3, [r4, #40]
4236 005c A06B ldr r0, [r4, #56]
4237 005e FFF7FEFF bl HAL_DMA_Start_IT
4238 .LVL373:
1632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4239 .loc 1 1632 0 discriminator 2
4240 0062 2268 ldr r2, [r4]
4241 0064 5368 ldr r3, [r2, #4]
4242 0066 1049 ldr r1, .L309+16
4243 0068 0B40 ands r3, r1
4244 006a 5360 str r3, [r2, #4]
1635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4245 .loc 1 1635 0 discriminator 2
4246 006c A555 strb r5, [r4, r6]
4247 .LVL374:
4248 .LBB224:
4249 .LBB225:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4250 .loc 1 4785 0 discriminator 2
4251 006e 2268 ldr r2, [r4]
4252 0070 1368 ldr r3, [r2]
4253 0072 B821 movs r1, #184
4254 0074 0B43 orrs r3, r1
4255 0076 1360 str r3, [r2]
4256 .LVL375:
4257 .LBE225:
4258 .LBE224:
1644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4259 .loc 1 1644 0 discriminator 2
4260 0078 2268 ldr r2, [r4]
4261 007a 1168 ldr r1, [r2]
4262 007c 8023 movs r3, #128
4263 007e DB01 lsls r3, r3, #7
4264 0080 0B43 orrs r3, r1
4265 0082 1360 str r3, [r2]
ARM GAS /tmp/ccpuPECZ.s page 171
1646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4266 .loc 1 1646 0 discriminator 2
4267 0084 0020 movs r0, #0
4268 0086 00E0 b .L304
4269 .LVL376:
4270 .L305:
1650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4271 .loc 1 1650 0
4272 0088 0220 movs r0, #2
4273 .LVL377:
4274 .L304:
1652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4275 .loc 1 1652 0
4276 @ sp needed
4277 .LVL378:
4278 008a 70BD pop {r4, r5, r6, pc}
4279 .LVL379:
4280 .L306:
1602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4281 .loc 1 1602 0
4282 008c 0120 movs r0, #1
4283 .LVL380:
4284 008e FCE7 b .L304
4285 .LVL381:
4286 .L307:
4287 0090 0120 movs r0, #1
4288 .LVL382:
4289 0092 FAE7 b .L304
4290 .LVL383:
4291 .L308:
1605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4292 .loc 1 1605 0
4293 0094 0220 movs r0, #2
4294 .LVL384:
4295 0096 F8E7 b .L304
4296 .L310:
4297 .align 2
4298 .L309:
4299 0098 0000FFFF .word -65536
4300 009c 00000000 .word I2C_Slave_ISR_DMA
4301 00a0 00000000 .word I2C_DMASlaveTransmitCplt
4302 00a4 00000000 .word I2C_DMAError
4303 00a8 FF7FFFFF .word -32769
4304 .cfi_endproc
4305 .LFE53:
4307 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits
4308 .align 1
4309 .global HAL_I2C_Slave_Receive_DMA
4310 .syntax unified
4311 .code 16
4312 .thumb_func
4313 .fpu softvfp
4315 HAL_I2C_Slave_Receive_DMA:
4316 .LFB54:
1663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
4317 .loc 1 1663 0
4318 .cfi_startproc
ARM GAS /tmp/ccpuPECZ.s page 172
4319 @ args = 0, pretend = 0, frame = 0
4320 @ frame_needed = 0, uses_anonymous_args = 0
4321 .LVL385:
4322 0000 70B5 push {r4, r5, r6, lr}
4323 .LCFI29:
4324 .cfi_def_cfa_offset 16
4325 .cfi_offset 4, -16
4326 .cfi_offset 5, -12
4327 .cfi_offset 6, -8
4328 .cfi_offset 14, -4
4329 0002 0400 movs r4, r0
1664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4330 .loc 1 1664 0
4331 0004 4123 movs r3, #65
4332 0006 C35C ldrb r3, [r0, r3]
4333 0008 202B cmp r3, #32
4334 000a 3FD1 bne .L313
1666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4335 .loc 1 1666 0
4336 000c 0029 cmp r1, #0
4337 000e 3FD0 beq .L314
1666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4338 .loc 1 1666 0 is_stmt 0 discriminator 1
4339 0010 002A cmp r2, #0
4340 0012 3FD0 beq .L315
1671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4341 .loc 1 1671 0 is_stmt 1
4342 0014 2033 adds r3, r3, #32
4343 0016 C35C ldrb r3, [r0, r3]
4344 0018 012B cmp r3, #1
4345 001a 3DD0 beq .L316
1671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4346 .loc 1 1671 0 is_stmt 0 discriminator 2
4347 001c 4026 movs r6, #64
4348 001e 0123 movs r3, #1
4349 0020 8355 strb r3, [r0, r6]
1673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4350 .loc 1 1673 0 is_stmt 1 discriminator 2
4351 0022 4033 adds r3, r3, #64
4352 0024 2220 movs r0, #34
4353 .LVL386:
4354 0026 E054 strb r0, [r4, r3]
1674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4355 .loc 1 1674 0 discriminator 2
4356 0028 0133 adds r3, r3, #1
4357 002a 0238 subs r0, r0, #2
4358 002c E054 strb r0, [r4, r3]
1675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4359 .loc 1 1675 0 discriminator 2
4360 002e 0025 movs r5, #0
4361 0030 6564 str r5, [r4, #68]
1678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
4362 .loc 1 1678 0 discriminator 2
4363 0032 6162 str r1, [r4, #36]
1679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4364 .loc 1 1679 0 discriminator 2
4365 0034 6285 strh r2, [r4, #42]
ARM GAS /tmp/ccpuPECZ.s page 173
1680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4366 .loc 1 1680 0 discriminator 2
4367 0036 638D ldrh r3, [r4, #42]
4368 0038 2385 strh r3, [r4, #40]
1681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4369 .loc 1 1681 0 discriminator 2
4370 003a 184B ldr r3, .L317
4371 003c E362 str r3, [r4, #44]
1682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4372 .loc 1 1682 0 discriminator 2
4373 003e 184B ldr r3, .L317+4
4374 0040 6363 str r3, [r4, #52]
1685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4375 .loc 1 1685 0 discriminator 2
4376 0042 E36B ldr r3, [r4, #60]
4377 0044 174A ldr r2, .L317+8
4378 .LVL387:
4379 0046 DA62 str r2, [r3, #44]
1688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4380 .loc 1 1688 0 discriminator 2
4381 0048 E36B ldr r3, [r4, #60]
4382 004a 174A ldr r2, .L317+12
4383 004c 5A63 str r2, [r3, #52]
1691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4384 .loc 1 1691 0 discriminator 2
4385 004e E36B ldr r3, [r4, #60]
4386 0050 1D63 str r5, [r3, #48]
1692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4387 .loc 1 1692 0 discriminator 2
4388 0052 E36B ldr r3, [r4, #60]
4389 0054 9D63 str r5, [r3, #56]
1695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4390 .loc 1 1695 0 discriminator 2
4391 0056 2068 ldr r0, [r4]
4392 0058 2430 adds r0, r0, #36
4393 005a 238D ldrh r3, [r4, #40]
4394 005c 0A00 movs r2, r1
4395 005e 0100 movs r1, r0
4396 .LVL388:
4397 0060 E06B ldr r0, [r4, #60]
4398 0062 FFF7FEFF bl HAL_DMA_Start_IT
4399 .LVL389:
1698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4400 .loc 1 1698 0 discriminator 2
4401 0066 2268 ldr r2, [r4]
4402 0068 5368 ldr r3, [r2, #4]
4403 006a 1049 ldr r1, .L317+16
4404 006c 0B40 ands r3, r1
4405 006e 5360 str r3, [r2, #4]
1701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4406 .loc 1 1701 0 discriminator 2
4407 0070 A555 strb r5, [r4, r6]
4408 .LVL390:
4409 .LBB226:
4410 .LBB227:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4411 .loc 1 4785 0 discriminator 2
ARM GAS /tmp/ccpuPECZ.s page 174
4412 0072 2268 ldr r2, [r4]
4413 0074 1368 ldr r3, [r2]
4414 0076 B821 movs r1, #184
4415 0078 0B43 orrs r3, r1
4416 007a 1360 str r3, [r2]
4417 .LVL391:
4418 .LBE227:
4419 .LBE226:
1710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4420 .loc 1 1710 0 discriminator 2
4421 007c 2268 ldr r2, [r4]
4422 007e 1168 ldr r1, [r2]
4423 0080 8023 movs r3, #128
4424 0082 1B02 lsls r3, r3, #8
4425 0084 0B43 orrs r3, r1
4426 0086 1360 str r3, [r2]
1712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4427 .loc 1 1712 0 discriminator 2
4428 0088 0020 movs r0, #0
4429 008a 00E0 b .L312
4430 .LVL392:
4431 .L313:
1716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4432 .loc 1 1716 0
4433 008c 0220 movs r0, #2
4434 .LVL393:
4435 .L312:
1718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
4436 .loc 1 1718 0
4437 @ sp needed
4438 .LVL394:
4439 008e 70BD pop {r4, r5, r6, pc}
4440 .LVL395:
4441 .L314:
1668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4442 .loc 1 1668 0
4443 0090 0120 movs r0, #1
4444 .LVL396:
4445 0092 FCE7 b .L312
4446 .LVL397:
4447 .L315:
4448 0094 0120 movs r0, #1
4449 .LVL398:
4450 0096 FAE7 b .L312
4451 .LVL399:
4452 .L316:
1671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4453 .loc 1 1671 0
4454 0098 0220 movs r0, #2
4455 .LVL400:
4456 009a F8E7 b .L312
4457 .L318:
4458 .align 2
4459 .L317:
4460 009c 0000FFFF .word -65536
4461 00a0 00000000 .word I2C_Slave_ISR_DMA
4462 00a4 00000000 .word I2C_DMASlaveReceiveCplt
ARM GAS /tmp/ccpuPECZ.s page 175
4463 00a8 00000000 .word I2C_DMAError
4464 00ac FF7FFFFF .word -32769
4465 .cfi_endproc
4466 .LFE54:
4468 .section .text.HAL_I2C_Mem_Write,"ax",%progbits
4469 .align 1
4470 .global HAL_I2C_Mem_Write
4471 .syntax unified
4472 .code 16
4473 .thumb_func
4474 .fpu softvfp
4476 HAL_I2C_Mem_Write:
4477 .LFB55:
1733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
4478 .loc 1 1733 0
4479 .cfi_startproc
4480 @ args = 12, pretend = 0, frame = 16
4481 @ frame_needed = 0, uses_anonymous_args = 0
4482 .LVL401:
4483 0000 F0B5 push {r4, r5, r6, r7, lr}
4484 .LCFI30:
4485 .cfi_def_cfa_offset 20
4486 .cfi_offset 4, -20
4487 .cfi_offset 5, -16
4488 .cfi_offset 6, -12
4489 .cfi_offset 7, -8
4490 .cfi_offset 14, -4
4491 0002 87B0 sub sp, sp, #28
4492 .LCFI31:
4493 .cfi_def_cfa_offset 48
4494 0004 0400 movs r4, r0
4495 0006 0391 str r1, [sp, #12]
4496 0008 0492 str r2, [sp, #16]
4497 000a 0593 str r3, [sp, #20]
4498 000c 0CAB add r3, sp, #48
4499 .LVL402:
4500 000e 20CB ldmia r3!, {r5}
4501 .LVL403:
4502 0010 1F88 ldrh r7, [r3]
4503 .LVL404:
1739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4504 .loc 1 1739 0
4505 0012 4123 movs r3, #65
4506 .LVL405:
4507 0014 C35C ldrb r3, [r0, r3]
4508 0016 202B cmp r3, #32
4509 0018 00D0 beq .LCB4820
4510 001a E1E0 b .L332 @long jump
4511 .LCB4820:
1741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4512 .loc 1 1741 0
4513 001c 002D cmp r5, #0
4514 001e 00D1 bne .LCB4822
4515 0020 E1E0 b .L333 @long jump
4516 .LCB4822:
1741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4517 .loc 1 1741 0 is_stmt 0 discriminator 1
ARM GAS /tmp/ccpuPECZ.s page 176
4518 0022 002F cmp r7, #0
4519 0024 00D1 bne .LCB4824
4520 0026 E0E0 b .L334 @long jump
4521 .LCB4824:
1747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4522 .loc 1 1747 0 is_stmt 1
4523 0028 2033 adds r3, r3, #32
4524 002a C35C ldrb r3, [r0, r3]
4525 002c 012B cmp r3, #1
4526 002e 00D1 bne .LCB4828
4527 0030 DDE0 b .L335 @long jump
4528 .LCB4828:
1747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4529 .loc 1 1747 0 is_stmt 0 discriminator 2
4530 0032 4023 movs r3, #64
4531 0034 0122 movs r2, #1
4532 .LVL406:
4533 0036 C254 strb r2, [r0, r3]
1750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4534 .loc 1 1750 0 is_stmt 1 discriminator 2
4535 0038 FFF7FEFF bl HAL_GetTick
4536 .LVL407:
4537 003c 0600 movs r6, r0
4538 .LVL408:
4539 .L321:
4540 .LBB228:
4541 .LBB229:
4487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4542 .loc 1 4487 0
4543 003e 2368 ldr r3, [r4]
4544 0040 9B69 ldr r3, [r3, #24]
4545 0042 1B04 lsls r3, r3, #16
4546 0044 0ED5 bpl .L339
4492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4547 .loc 1 4492 0
4548 0046 FFF7FEFF bl HAL_GetTick
4549 .LVL409:
4550 004a 801B subs r0, r0, r6
4551 004c 1928 cmp r0, #25
4552 004e F6D9 bls .L321
4494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4553 .loc 1 4494 0
4554 0050 4123 movs r3, #65
4555 0052 2022 movs r2, #32
4556 0054 E254 strb r2, [r4, r3]
4495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4557 .loc 1 4495 0
4558 0056 0023 movs r3, #0
4559 0058 2232 adds r2, r2, #34
4560 005a A354 strb r3, [r4, r2]
4498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
4561 .loc 1 4498 0
4562 005c 023A subs r2, r2, #2
4563 005e A354 strb r3, [r4, r2]
4564 .LVL410:
4565 .LBE229:
4566 .LBE228:
ARM GAS /tmp/ccpuPECZ.s page 177
1754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4567 .loc 1 1754 0
4568 0060 0320 movs r0, #3
4569 0062 BEE0 b .L320
4570 .LVL411:
4571 .L339:
1757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
4572 .loc 1 1757 0
4573 0064 4123 movs r3, #65
4574 0066 2122 movs r2, #33
4575 0068 E254 strb r2, [r4, r3]
1758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4576 .loc 1 1758 0
4577 006a 0133 adds r3, r3, #1
4578 006c 1F32 adds r2, r2, #31
4579 006e E254 strb r2, [r4, r3]
1759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4580 .loc 1 1759 0
4581 0070 0023 movs r3, #0
4582 0072 6364 str r3, [r4, #68]
1762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
4583 .loc 1 1762 0
4584 0074 6562 str r5, [r4, #36]
1763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
4585 .loc 1 1763 0
4586 0076 6785 strh r7, [r4, #42]
1764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4587 .loc 1 1764 0
4588 0078 6363 str r3, [r4, #52]
1767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4589 .loc 1 1767 0
4590 007a 0196 str r6, [sp, #4]
4591 007c 0E9B ldr r3, [sp, #56]
4592 007e 0093 str r3, [sp]
4593 0080 059B ldr r3, [sp, #20]
4594 0082 049A ldr r2, [sp, #16]
4595 0084 0399 ldr r1, [sp, #12]
4596 0086 2000 movs r0, r4
4597 0088 FFF7FEFF bl I2C_RequestMemoryWrite
4598 .LVL412:
4599 008c 0028 cmp r0, #0
4600 008e 0CD0 beq .L323
1769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4601 .loc 1 1769 0
4602 0090 636C ldr r3, [r4, #68]
4603 0092 042B cmp r3, #4
4604 0094 04D1 bne .L324
1772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
4605 .loc 1 1772 0
4606 0096 3C33 adds r3, r3, #60
4607 0098 0022 movs r2, #0
4608 009a E254 strb r2, [r4, r3]
1773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4609 .loc 1 1773 0
4610 009c 0120 movs r0, #1
4611 009e A0E0 b .L320
4612 .L324:
ARM GAS /tmp/ccpuPECZ.s page 178
1778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
4613 .loc 1 1778 0
4614 00a0 4023 movs r3, #64
4615 00a2 0022 movs r2, #0
4616 00a4 E254 strb r2, [r4, r3]
1779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4617 .loc 1 1779 0
4618 00a6 0320 movs r0, #3
4619 00a8 9BE0 b .L320
4620 .L323:
1784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4621 .loc 1 1784 0
4622 00aa 638D ldrh r3, [r4, #42]
4623 00ac 9BB2 uxth r3, r3
4624 00ae FF2B cmp r3, #255
4625 00b0 11D9 bls .L325
1786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
4626 .loc 1 1786 0
4627 00b2 FF23 movs r3, #255
4628 00b4 2385 strh r3, [r4, #40]
4629 .LVL413:
4630 .LBB230:
4631 .LBB231:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
4632 .loc 1 4713 0
4633 00b6 2068 ldr r0, [r4]
4634 00b8 4368 ldr r3, [r0, #4]
4635 00ba 514A ldr r2, .L342
4636 00bc 1340 ands r3, r2
4637 00be 039A ldr r2, [sp, #12]
4638 00c0 9105 lsls r1, r2, #22
4639 00c2 890D lsrs r1, r1, #22
4640 00c4 FF22 movs r2, #255
4641 00c6 1204 lsls r2, r2, #16
4642 00c8 1143 orrs r1, r2
4643 00ca 8022 movs r2, #128
4644 00cc 5204 lsls r2, r2, #17
4645 00ce 0A43 orrs r2, r1
4646 00d0 1343 orrs r3, r2
4647 00d2 4360 str r3, [r0, #4]
4648 00d4 2EE0 b .L330
4649 .LVL414:
4650 .L325:
4651 .LBE231:
4652 .LBE230:
1791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
4653 .loc 1 1791 0
4654 00d6 638D ldrh r3, [r4, #42]
4655 00d8 9BB2 uxth r3, r3
4656 00da 2385 strh r3, [r4, #40]
1792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4657 .loc 1 1792 0
4658 00dc DBB2 uxtb r3, r3
4659 .LVL415:
4660 .LBB232:
4661 .LBB233:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
ARM GAS /tmp/ccpuPECZ.s page 179
4662 .loc 1 4713 0
4663 00de 2068 ldr r0, [r4]
4664 00e0 4268 ldr r2, [r0, #4]
4665 00e2 4749 ldr r1, .L342
4666 00e4 0A40 ands r2, r1
4667 00e6 0399 ldr r1, [sp, #12]
4668 00e8 8905 lsls r1, r1, #22
4669 00ea 890D lsrs r1, r1, #22
4670 00ec 1B04 lsls r3, r3, #16
4671 .LVL416:
4672 00ee 0B43 orrs r3, r1
4673 00f0 8021 movs r1, #128
4674 00f2 8904 lsls r1, r1, #18
4675 00f4 0B43 orrs r3, r1
4676 00f6 1343 orrs r3, r2
4677 00f8 4360 str r3, [r0, #4]
4678 .LVL417:
4679 00fa 1BE0 b .L330
4680 .LVL418:
4681 .L341:
4682 .LBE233:
4683 .LBE232:
1800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4684 .loc 1 1800 0
4685 00fc 636C ldr r3, [r4, #68]
4686 00fe 042B cmp r3, #4
4687 0100 00D0 beq .LCB5020
4688 0102 76E0 b .L336 @long jump
4689 .LCB5020:
1802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4690 .loc 1 1802 0
4691 0104 0120 movs r0, #1
4692 0106 6CE0 b .L320
4693 .L329:
1830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
4694 .loc 1 1830 0
4695 0108 638D ldrh r3, [r4, #42]
4696 010a 9BB2 uxth r3, r3
4697 010c 2385 strh r3, [r4, #40]
1831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4698 .loc 1 1831 0
4699 010e DBB2 uxtb r3, r3
4700 .LVL419:
4701 .LBB234:
4702 .LBB235:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
4703 .loc 1 4713 0
4704 0110 2068 ldr r0, [r4]
4705 0112 4268 ldr r2, [r0, #4]
4706 0114 3A49 ldr r1, .L342
4707 0116 0A40 ands r2, r1
4708 0118 0399 ldr r1, [sp, #12]
4709 011a 8905 lsls r1, r1, #22
4710 011c 890D lsrs r1, r1, #22
4711 011e 1B04 lsls r3, r3, #16
4712 .LVL420:
4713 0120 0B43 orrs r3, r1
ARM GAS /tmp/ccpuPECZ.s page 180
4714 0122 8021 movs r1, #128
4715 0124 8904 lsls r1, r1, #18
4716 0126 0B43 orrs r3, r1
4717 0128 1343 orrs r3, r2
4718 012a 4360 str r3, [r0, #4]
4719 .LVL421:
4720 .L328:
4721 .LBE235:
4722 .LBE234:
1836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4723 .loc 1 1836 0
4724 012c 638D ldrh r3, [r4, #42]
4725 012e 9BB2 uxth r3, r3
4726 0130 002B cmp r3, #0
4727 0132 39D0 beq .L340
4728 .L330:
1798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4729 .loc 1 1798 0
4730 0134 3200 movs r2, r6
4731 0136 0E99 ldr r1, [sp, #56]
4732 0138 2000 movs r0, r4
4733 013a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
4734 .LVL422:
4735 013e 0028 cmp r0, #0
4736 0140 DCD1 bne .L341
1811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
4737 .loc 1 1811 0
4738 0142 636A ldr r3, [r4, #36]
4739 0144 5A1C adds r2, r3, #1
4740 0146 6262 str r2, [r4, #36]
4741 0148 2268 ldr r2, [r4]
4742 014a 1B78 ldrb r3, [r3]
4743 014c 9362 str r3, [r2, #40]
1812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
4744 .loc 1 1812 0
4745 014e 638D ldrh r3, [r4, #42]
4746 0150 013B subs r3, r3, #1
4747 0152 9BB2 uxth r3, r3
4748 0154 6385 strh r3, [r4, #42]
1813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4749 .loc 1 1813 0
4750 0156 238D ldrh r3, [r4, #40]
4751 0158 013B subs r3, r3, #1
4752 015a 9BB2 uxth r3, r3
4753 015c 2385 strh r3, [r4, #40]
1815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4754 .loc 1 1815 0
4755 015e 002B cmp r3, #0
4756 0160 E4D1 bne .L328
1815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4757 .loc 1 1815 0 is_stmt 0 discriminator 1
4758 0162 638D ldrh r3, [r4, #42]
4759 0164 9BB2 uxth r3, r3
4760 0166 002B cmp r3, #0
4761 0168 E0D0 beq .L328
1818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4762 .loc 1 1818 0 is_stmt 1
ARM GAS /tmp/ccpuPECZ.s page 181
4763 016a 0096 str r6, [sp]
4764 016c 0E9B ldr r3, [sp, #56]
4765 016e 0022 movs r2, #0
4766 0170 8021 movs r1, #128
4767 0172 2000 movs r0, r4
4768 0174 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
4769 .LVL423:
4770 0178 0028 cmp r0, #0
4771 017a 3CD1 bne .L337
1823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4772 .loc 1 1823 0
4773 017c 638D ldrh r3, [r4, #42]
4774 017e 9BB2 uxth r3, r3
4775 0180 FF2B cmp r3, #255
4776 0182 C1D9 bls .L329
1825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
4777 .loc 1 1825 0
4778 0184 FF23 movs r3, #255
4779 0186 2385 strh r3, [r4, #40]
4780 .LVL424:
4781 .LBB236:
4782 .LBB237:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
4783 .loc 1 4713 0
4784 0188 2068 ldr r0, [r4]
4785 018a 4368 ldr r3, [r0, #4]
4786 018c 1C4A ldr r2, .L342
4787 018e 1340 ands r3, r2
4788 0190 039A ldr r2, [sp, #12]
4789 0192 9105 lsls r1, r2, #22
4790 0194 890D lsrs r1, r1, #22
4791 0196 FF22 movs r2, #255
4792 0198 1204 lsls r2, r2, #16
4793 019a 1143 orrs r1, r2
4794 019c 8022 movs r2, #128
4795 019e 5204 lsls r2, r2, #17
4796 01a0 0A43 orrs r2, r1
4797 01a2 1343 orrs r3, r2
4798 01a4 4360 str r3, [r0, #4]
4799 01a6 C1E7 b .L328
4800 .LVL425:
4801 .L340:
4802 .LBE237:
4803 .LBE236:
1840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4804 .loc 1 1840 0
4805 01a8 3200 movs r2, r6
4806 01aa 0E99 ldr r1, [sp, #56]
4807 01ac 2000 movs r0, r4
4808 01ae FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
4809 .LVL426:
4810 01b2 0028 cmp r0, #0
4811 01b4 04D0 beq .L331
1842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4812 .loc 1 1842 0
4813 01b6 636C ldr r3, [r4, #68]
4814 01b8 042B cmp r3, #4
ARM GAS /tmp/ccpuPECZ.s page 182
4815 01ba 1ED1 bne .L338
1844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4816 .loc 1 1844 0
4817 01bc 0120 movs r0, #1
4818 01be 10E0 b .L320
4819 .L331:
1853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4820 .loc 1 1853 0
4821 01c0 2368 ldr r3, [r4]
4822 01c2 2022 movs r2, #32
4823 01c4 DA61 str r2, [r3, #28]
1856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4824 .loc 1 1856 0
4825 01c6 2168 ldr r1, [r4]
4826 01c8 4B68 ldr r3, [r1, #4]
4827 01ca 0E4D ldr r5, .L342+4
4828 01cc 2B40 ands r3, r5
4829 01ce 4B60 str r3, [r1, #4]
1858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4830 .loc 1 1858 0
4831 01d0 4123 movs r3, #65
4832 01d2 E254 strb r2, [r4, r3]
1859:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4833 .loc 1 1859 0
4834 01d4 0023 movs r3, #0
4835 01d6 2232 adds r2, r2, #34
4836 01d8 A354 strb r3, [r4, r2]
1862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4837 .loc 1 1862 0
4838 01da 023A subs r2, r2, #2
4839 01dc A354 strb r3, [r4, r2]
1864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4840 .loc 1 1864 0
4841 01de 00E0 b .L320
4842 .LVL427:
4843 .L332:
1868:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4844 .loc 1 1868 0
4845 01e0 0220 movs r0, #2
4846 .LVL428:
4847 .L320:
1870:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4848 .loc 1 1870 0
4849 01e2 07B0 add sp, sp, #28
4850 @ sp needed
4851 .LVL429:
4852 01e4 F0BD pop {r4, r5, r6, r7, pc}
4853 .LVL430:
4854 .L333:
1743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4855 .loc 1 1743 0
4856 01e6 0120 movs r0, #1
4857 .LVL431:
4858 01e8 FBE7 b .L320
4859 .LVL432:
4860 .L334:
4861 01ea 0120 movs r0, #1
ARM GAS /tmp/ccpuPECZ.s page 183
4862 .LVL433:
4863 01ec F9E7 b .L320
4864 .LVL434:
4865 .L335:
1747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4866 .loc 1 1747 0
4867 01ee 0220 movs r0, #2
4868 .LVL435:
4869 01f0 F7E7 b .L320
4870 .LVL436:
4871 .L336:
1806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4872 .loc 1 1806 0
4873 01f2 0320 movs r0, #3
4874 01f4 F5E7 b .L320
4875 .L337:
1820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4876 .loc 1 1820 0
4877 01f6 0320 movs r0, #3
4878 01f8 F3E7 b .L320
4879 .L338:
1848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4880 .loc 1 1848 0
4881 01fa 0320 movs r0, #3
4882 01fc F1E7 b .L320
4883 .L343:
4884 01fe C046 .align 2
4885 .L342:
4886 0200 009C00FC .word -67068928
4887 0204 00E800FE .word -33495040
4888 .cfi_endproc
4889 .LFE55:
4891 .section .text.HAL_I2C_Mem_Read,"ax",%progbits
4892 .align 1
4893 .global HAL_I2C_Mem_Read
4894 .syntax unified
4895 .code 16
4896 .thumb_func
4897 .fpu softvfp
4899 HAL_I2C_Mem_Read:
4900 .LFB56:
1886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
4901 .loc 1 1886 0
4902 .cfi_startproc
4903 @ args = 12, pretend = 0, frame = 16
4904 @ frame_needed = 0, uses_anonymous_args = 0
4905 .LVL437:
4906 0000 F0B5 push {r4, r5, r6, r7, lr}
4907 .LCFI32:
4908 .cfi_def_cfa_offset 20
4909 .cfi_offset 4, -20
4910 .cfi_offset 5, -16
4911 .cfi_offset 6, -12
4912 .cfi_offset 7, -8
4913 .cfi_offset 14, -4
4914 0002 87B0 sub sp, sp, #28
4915 .LCFI33:
ARM GAS /tmp/ccpuPECZ.s page 184
4916 .cfi_def_cfa_offset 48
4917 0004 0400 movs r4, r0
4918 0006 0391 str r1, [sp, #12]
4919 0008 0492 str r2, [sp, #16]
4920 000a 0593 str r3, [sp, #20]
4921 000c 0CAB add r3, sp, #48
4922 .LVL438:
4923 000e 20CB ldmia r3!, {r5}
4924 .LVL439:
4925 0010 1F88 ldrh r7, [r3]
4926 .LVL440:
1892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4927 .loc 1 1892 0
4928 0012 4123 movs r3, #65
4929 .LVL441:
4930 0014 C35C ldrb r3, [r0, r3]
4931 0016 202B cmp r3, #32
4932 0018 00D0 beq .LCB5317
4933 001a F6E0 b .L345 @long jump
4934 .LCB5317:
1894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4935 .loc 1 1894 0
4936 001c 002D cmp r5, #0
4937 001e 22D0 beq .L346
1894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4938 .loc 1 1894 0 is_stmt 0 discriminator 1
4939 0020 002F cmp r7, #0
4940 0022 20D0 beq .L346
1901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4941 .loc 1 1901 0 is_stmt 1
4942 0024 4023 movs r3, #64
4943 0026 C35C ldrb r3, [r0, r3]
4944 0028 012B cmp r3, #1
4945 002a 00D1 bne .LCB5325
4946 002c F2E0 b .L361 @long jump
4947 .LCB5325:
1901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4948 .loc 1 1901 0 is_stmt 0 discriminator 2
4949 002e 4023 movs r3, #64
4950 0030 0122 movs r2, #1
4951 .LVL442:
4952 0032 C254 strb r2, [r0, r3]
1904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4953 .loc 1 1904 0 is_stmt 1 discriminator 2
4954 0034 FFF7FEFF bl HAL_GetTick
4955 .LVL443:
4956 0038 0600 movs r6, r0
4957 .LVL444:
4958 .L349:
4959 .LBB238:
4960 .LBB239:
4487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4961 .loc 1 4487 0
4962 003a 2368 ldr r3, [r4]
4963 003c 9B69 ldr r3, [r3, #24]
4964 003e 1B04 lsls r3, r3, #16
4965 0040 17D5 bpl .L363
ARM GAS /tmp/ccpuPECZ.s page 185
4492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
4966 .loc 1 4492 0
4967 0042 FFF7FEFF bl HAL_GetTick
4968 .LVL445:
4969 0046 801B subs r0, r0, r6
4970 0048 1928 cmp r0, #25
4971 004a F6D9 bls .L349
4494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4972 .loc 1 4494 0
4973 004c 4123 movs r3, #65
4974 004e 2022 movs r2, #32
4975 0050 E254 strb r2, [r4, r3]
4495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
4976 .loc 1 4495 0
4977 0052 0023 movs r3, #0
4978 0054 2232 adds r2, r2, #34
4979 0056 A354 strb r3, [r4, r2]
4498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
4980 .loc 1 4498 0
4981 0058 023A subs r2, r2, #2
4982 005a A354 strb r3, [r4, r2]
4983 .LVL446:
4984 .LBE239:
4985 .LBE238:
1908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
4986 .loc 1 1908 0
4987 005c 6E48 ldr r0, .L369
4988 005e FFF7FEFF bl vcom_Send
4989 .LVL447:
1909:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
4990 .loc 1 1909 0
4991 0062 0320 movs r0, #3
4992 0064 03E0 b .L348
4993 .LVL448:
4994 .L346:
1896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
4995 .loc 1 1896 0
4996 0066 6D48 ldr r0, .L369+4
4997 .LVL449:
4998 0068 FFF7FEFF bl vcom_Send
4999 .LVL450:
1897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5000 .loc 1 1897 0
5001 006c 0120 movs r0, #1
5002 .LVL451:
5003 .L348:
2023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
5004 .loc 1 2023 0
5005 006e 07B0 add sp, sp, #28
5006 @ sp needed
5007 .LVL452:
5008 0070 F0BD pop {r4, r5, r6, r7, pc}
5009 .LVL453:
5010 .L363:
1912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5011 .loc 1 1912 0
5012 0072 4123 movs r3, #65
ARM GAS /tmp/ccpuPECZ.s page 186
5013 0074 2222 movs r2, #34
5014 0076 E254 strb r2, [r4, r3]
1913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5015 .loc 1 1913 0
5016 0078 0133 adds r3, r3, #1
5017 007a 1E32 adds r2, r2, #30
5018 007c E254 strb r2, [r4, r3]
1914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5019 .loc 1 1914 0
5020 007e 0023 movs r3, #0
5021 0080 6364 str r3, [r4, #68]
1917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
5022 .loc 1 1917 0
5023 0082 6562 str r5, [r4, #36]
1918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
5024 .loc 1 1918 0
5025 0084 6785 strh r7, [r4, #42]
1919:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5026 .loc 1 1919 0
5027 0086 6363 str r3, [r4, #52]
1922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5028 .loc 1 1922 0
5029 0088 0196 str r6, [sp, #4]
5030 008a 0E9B ldr r3, [sp, #56]
5031 008c 0093 str r3, [sp]
5032 008e 059B ldr r3, [sp, #20]
5033 0090 049A ldr r2, [sp, #16]
5034 0092 0399 ldr r1, [sp, #12]
5035 0094 2000 movs r0, r4
5036 0096 FFF7FEFF bl I2C_RequestMemoryRead
5037 .LVL454:
5038 009a 0028 cmp r0, #0
5039 009c 14D1 bne .L364
1941:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5040 .loc 1 1941 0
5041 009e 638D ldrh r3, [r4, #42]
5042 00a0 9BB2 uxth r3, r3
5043 00a2 FF2B cmp r3, #255
5044 00a4 21D9 bls .L353
1943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_START_READ
5045 .loc 1 1943 0
5046 00a6 FF23 movs r3, #255
5047 00a8 2385 strh r3, [r4, #40]
5048 .LVL455:
5049 .LBB240:
5050 .LBB241:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
5051 .loc 1 4713 0
5052 00aa 2068 ldr r0, [r4]
5053 00ac 4368 ldr r3, [r0, #4]
5054 00ae 5C4A ldr r2, .L369+8
5055 00b0 1340 ands r3, r2
5056 00b2 039A ldr r2, [sp, #12]
5057 00b4 9105 lsls r1, r2, #22
5058 00b6 890D lsrs r1, r1, #22
5059 00b8 FF22 movs r2, #255
5060 00ba 1204 lsls r2, r2, #16
ARM GAS /tmp/ccpuPECZ.s page 187
5061 00bc 1143 orrs r1, r2
5062 00be 594A ldr r2, .L369+12
5063 00c0 0A43 orrs r2, r1
5064 00c2 1343 orrs r3, r2
5065 00c4 4360 str r3, [r0, #4]
5066 00c6 42E0 b .L359
5067 .LVL456:
5068 .L364:
5069 .LBE241:
5070 .LBE240:
1924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
5071 .loc 1 1924 0
5072 00c8 616C ldr r1, [r4, #68]
5073 00ca 5748 ldr r0, .L369+16
5074 00cc FFF7FEFF bl vcom_Send
5075 .LVL457:
1925:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5076 .loc 1 1925 0
5077 00d0 636C ldr r3, [r4, #68]
5078 00d2 042B cmp r3, #4
5079 00d4 04D1 bne .L352
1928:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
5080 .loc 1 1928 0
5081 00d6 3C33 adds r3, r3, #60
5082 00d8 0022 movs r2, #0
5083 00da E254 strb r2, [r4, r3]
1929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5084 .loc 1 1929 0
5085 00dc 0120 movs r0, #1
5086 00de C6E7 b .L348
5087 .L352:
1934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
5088 .loc 1 1934 0
5089 00e0 4023 movs r3, #64
5090 00e2 0022 movs r2, #0
5091 00e4 E254 strb r2, [r4, r3]
1935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5092 .loc 1 1935 0
5093 00e6 0320 movs r0, #3
5094 00e8 C1E7 b .L348
5095 .L353:
1948:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_REA
5096 .loc 1 1948 0
5097 00ea 638D ldrh r3, [r4, #42]
5098 00ec 9BB2 uxth r3, r3
5099 00ee 2385 strh r3, [r4, #40]
1949:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5100 .loc 1 1949 0
5101 00f0 DBB2 uxtb r3, r3
5102 .LVL458:
5103 .LBB242:
5104 .LBB243:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
5105 .loc 1 4713 0
5106 00f2 2068 ldr r0, [r4]
5107 00f4 4268 ldr r2, [r0, #4]
5108 00f6 4A49 ldr r1, .L369+8
ARM GAS /tmp/ccpuPECZ.s page 188
5109 00f8 0A40 ands r2, r1
5110 00fa 0399 ldr r1, [sp, #12]
5111 00fc 8905 lsls r1, r1, #22
5112 00fe 890D lsrs r1, r1, #22
5113 0100 1B04 lsls r3, r3, #16
5114 .LVL459:
5115 0102 0B43 orrs r3, r1
5116 0104 4949 ldr r1, .L369+20
5117 0106 0B43 orrs r3, r1
5118 0108 1343 orrs r3, r2
5119 010a 4360 str r3, [r0, #4]
5120 .LVL460:
5121 010c 1FE0 b .L359
5122 .LVL461:
5123 .L366:
5124 .LBE243:
5125 .LBE242:
1957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
5126 .loc 1 1957 0
5127 010e 4848 ldr r0, .L369+24
5128 0110 FFF7FEFF bl vcom_Send
5129 .LVL462:
1958:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5130 .loc 1 1958 0
5131 0114 0320 movs r0, #3
5132 0116 AAE7 b .L348
5133 .L367:
1971:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
5134 .loc 1 1971 0
5135 0118 4648 ldr r0, .L369+28
5136 011a FFF7FEFF bl vcom_Send
5137 .LVL463:
1972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5138 .loc 1 1972 0
5139 011e 0320 movs r0, #3
5140 0120 A5E7 b .L348
5141 .L358:
1982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
5142 .loc 1 1982 0
5143 0122 638D ldrh r3, [r4, #42]
5144 0124 9BB2 uxth r3, r3
5145 0126 2385 strh r3, [r4, #40]
1983:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5146 .loc 1 1983 0
5147 0128 DBB2 uxtb r3, r3
5148 .LVL464:
5149 .LBB244:
5150 .LBB245:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
5151 .loc 1 4713 0
5152 012a 2068 ldr r0, [r4]
5153 012c 4268 ldr r2, [r0, #4]
5154 012e 4249 ldr r1, .L369+32
5155 0130 0A40 ands r2, r1
5156 0132 0399 ldr r1, [sp, #12]
5157 0134 8905 lsls r1, r1, #22
5158 0136 890D lsrs r1, r1, #22
ARM GAS /tmp/ccpuPECZ.s page 189
5159 0138 1B04 lsls r3, r3, #16
5160 .LVL465:
5161 013a 0B43 orrs r3, r1
5162 013c 8021 movs r1, #128
5163 013e 8904 lsls r1, r1, #18
5164 0140 0B43 orrs r3, r1
5165 0142 1343 orrs r3, r2
5166 0144 4360 str r3, [r0, #4]
5167 .LVL466:
5168 .L356:
5169 .LBE245:
5170 .LBE244:
1987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5171 .loc 1 1987 0
5172 0146 638D ldrh r3, [r4, #42]
5173 0148 9BB2 uxth r3, r3
5174 014a 002B cmp r3, #0
5175 014c 3BD0 beq .L365
5176 .L359:
1955:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5177 .loc 1 1955 0
5178 014e 0096 str r6, [sp]
5179 0150 0E9B ldr r3, [sp, #56]
5180 0152 0022 movs r2, #0
5181 0154 0421 movs r1, #4
5182 0156 2000 movs r0, r4
5183 0158 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5184 .LVL467:
5185 015c 0028 cmp r0, #0
5186 015e D6D1 bne .L366
1962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
5187 .loc 1 1962 0
5188 0160 2368 ldr r3, [r4]
5189 0162 5A6A ldr r2, [r3, #36]
5190 0164 636A ldr r3, [r4, #36]
5191 0166 591C adds r1, r3, #1
5192 0168 6162 str r1, [r4, #36]
5193 016a 1A70 strb r2, [r3]
1963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
5194 .loc 1 1963 0
5195 016c 238D ldrh r3, [r4, #40]
5196 016e 013B subs r3, r3, #1
5197 0170 9BB2 uxth r3, r3
5198 0172 2385 strh r3, [r4, #40]
1964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5199 .loc 1 1964 0
5200 0174 628D ldrh r2, [r4, #42]
5201 0176 013A subs r2, r2, #1
5202 0178 92B2 uxth r2, r2
5203 017a 6285 strh r2, [r4, #42]
1966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5204 .loc 1 1966 0
5205 017c 002B cmp r3, #0
5206 017e E2D1 bne .L356
1966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5207 .loc 1 1966 0 is_stmt 0 discriminator 1
5208 0180 638D ldrh r3, [r4, #42]
ARM GAS /tmp/ccpuPECZ.s page 190
5209 0182 9BB2 uxth r3, r3
5210 0184 002B cmp r3, #0
5211 0186 DED0 beq .L356
1969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5212 .loc 1 1969 0 is_stmt 1
5213 0188 0096 str r6, [sp]
5214 018a 0E9B ldr r3, [sp, #56]
5215 018c 0022 movs r2, #0
5216 018e 8021 movs r1, #128
5217 0190 2000 movs r0, r4
5218 0192 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5219 .LVL468:
5220 0196 0028 cmp r0, #0
5221 0198 BED1 bne .L367
1975:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5222 .loc 1 1975 0
5223 019a 638D ldrh r3, [r4, #42]
5224 019c 9BB2 uxth r3, r3
5225 019e FF2B cmp r3, #255
5226 01a0 BFD9 bls .L358
1977:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
5227 .loc 1 1977 0
5228 01a2 FF23 movs r3, #255
5229 01a4 2385 strh r3, [r4, #40]
5230 .LVL469:
5231 .LBB246:
5232 .LBB247:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
5233 .loc 1 4713 0
5234 01a6 2068 ldr r0, [r4]
5235 01a8 4368 ldr r3, [r0, #4]
5236 01aa 234A ldr r2, .L369+32
5237 01ac 1340 ands r3, r2
5238 01ae 039A ldr r2, [sp, #12]
5239 01b0 9105 lsls r1, r2, #22
5240 01b2 890D lsrs r1, r1, #22
5241 01b4 FF22 movs r2, #255
5242 01b6 1204 lsls r2, r2, #16
5243 01b8 1143 orrs r1, r2
5244 01ba 8022 movs r2, #128
5245 01bc 5204 lsls r2, r2, #17
5246 01be 0A43 orrs r2, r1
5247 01c0 1343 orrs r3, r2
5248 01c2 4360 str r3, [r0, #4]
5249 01c4 BFE7 b .L356
5250 .LVL470:
5251 .L365:
5252 .LBE247:
5253 .LBE246:
1991:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5254 .loc 1 1991 0
5255 01c6 3200 movs r2, r6
5256 01c8 0E99 ldr r1, [sp, #56]
5257 01ca 2000 movs r0, r4
5258 01cc FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
5259 .LVL471:
5260 01d0 0028 cmp r0, #0
ARM GAS /tmp/ccpuPECZ.s page 191
5261 01d2 0AD0 beq .L360
1993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5262 .loc 1 1993 0
5263 01d4 636C ldr r3, [r4, #68]
5264 01d6 042B cmp r3, #4
5265 01d8 01D0 beq .L368
2000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5266 .loc 1 2000 0
5267 01da 0320 movs r0, #3
5268 01dc 47E7 b .L348
5269 .L368:
1995:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
5270 .loc 1 1995 0
5271 01de 616C ldr r1, [r4, #68]
5272 01e0 1648 ldr r0, .L369+36
5273 01e2 FFF7FEFF bl vcom_Send
5274 .LVL472:
1996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5275 .loc 1 1996 0
5276 01e6 0120 movs r0, #1
5277 01e8 41E7 b .L348
5278 .L360:
2005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5279 .loc 1 2005 0
5280 01ea 2368 ldr r3, [r4]
5281 01ec 2022 movs r2, #32
5282 01ee DA61 str r2, [r3, #28]
2008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5283 .loc 1 2008 0
5284 01f0 2168 ldr r1, [r4]
5285 01f2 4B68 ldr r3, [r1, #4]
5286 01f4 124D ldr r5, .L369+40
5287 01f6 2B40 ands r3, r5
5288 01f8 4B60 str r3, [r1, #4]
2010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5289 .loc 1 2010 0
5290 01fa 4123 movs r3, #65
5291 01fc E254 strb r2, [r4, r3]
2011:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5292 .loc 1 2011 0
5293 01fe 0023 movs r3, #0
5294 0200 2232 adds r2, r2, #34
5295 0202 A354 strb r3, [r4, r2]
2014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5296 .loc 1 2014 0
5297 0204 023A subs r2, r2, #2
5298 0206 A354 strb r3, [r4, r2]
2016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5299 .loc 1 2016 0
5300 0208 31E7 b .L348
5301 .LVL473:
5302 .L345:
2020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY;
5303 .loc 1 2020 0
5304 020a 0E48 ldr r0, .L369+44
5305 .LVL474:
5306 020c FFF7FEFF bl vcom_Send
ARM GAS /tmp/ccpuPECZ.s page 192
5307 .LVL475:
2021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5308 .loc 1 2021 0
5309 0210 0220 movs r0, #2
5310 0212 2CE7 b .L348
5311 .LVL476:
5312 .L361:
1901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5313 .loc 1 1901 0
5314 0214 0220 movs r0, #2
5315 .LVL477:
5316 0216 2AE7 b .L348
5317 .L370:
5318 .align 2
5319 .L369:
5320 0218 18000000 .word .LC40
5321 021c 00000000 .word .LC38
5322 0220 009800FC .word -67069952
5323 0224 00240081 .word -2130697216
5324 0228 24000000 .word .LC42
5325 022c 00240082 .word -2113920000
5326 0230 40000000 .word .LC44
5327 0234 5C000000 .word .LC46
5328 0238 009C00FC .word -67068928
5329 023c 78000000 .word .LC48
5330 0240 00E800FE .word -33495040
5331 0244 94000000 .word .LC50
5332 .cfi_endproc
5333 .LFE56:
5335 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits
5336 .align 1
5337 .global HAL_I2C_Mem_Write_IT
5338 .syntax unified
5339 .code 16
5340 .thumb_func
5341 .fpu softvfp
5343 HAL_I2C_Mem_Write_IT:
5344 .LFB57:
2037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
5345 .loc 1 2037 0
5346 .cfi_startproc
5347 @ args = 8, pretend = 0, frame = 8
5348 @ frame_needed = 0, uses_anonymous_args = 0
5349 .LVL478:
5350 0000 F0B5 push {r4, r5, r6, r7, lr}
5351 .LCFI34:
5352 .cfi_def_cfa_offset 20
5353 .cfi_offset 4, -20
5354 .cfi_offset 5, -16
5355 .cfi_offset 6, -12
5356 .cfi_offset 7, -8
5357 .cfi_offset 14, -4
5358 0002 D646 mov lr, r10
5359 0004 4746 mov r7, r8
5360 0006 80B5 push {r7, lr}
5361 .LCFI35:
5362 .cfi_def_cfa_offset 28
ARM GAS /tmp/ccpuPECZ.s page 193
5363 .cfi_offset 8, -28
5364 .cfi_offset 10, -24
5365 0008 85B0 sub sp, sp, #20
5366 .LCFI36:
5367 .cfi_def_cfa_offset 48
5368 000a 0700 movs r7, r0
5369 000c 0C00 movs r4, r1
5370 000e 0292 str r2, [sp, #8]
5371 0010 0393 str r3, [sp, #12]
5372 0012 0CAB add r3, sp, #48
5373 .LVL479:
5374 0014 40CB ldmia r3!, {r6}
5375 .LVL480:
5376 0016 1D88 ldrh r5, [r3]
5377 .LVL481:
2044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5378 .loc 1 2044 0
5379 0018 4123 movs r3, #65
5380 .LVL482:
5381 001a C35C ldrb r3, [r0, r3]
5382 001c 202B cmp r3, #32
5383 001e 6DD1 bne .L378
2046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5384 .loc 1 2046 0
5385 0020 002E cmp r6, #0
5386 0022 00D1 bne .LCB5833
5387 0024 70E0 b .L379 @long jump
5388 .LCB5833:
2046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5389 .loc 1 2046 0 is_stmt 0 discriminator 1
5390 0026 002D cmp r5, #0
5391 0028 00D1 bne .LCB5835
5392 002a 6FE0 b .L380 @long jump
5393 .LCB5835:
2051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5394 .loc 1 2051 0 is_stmt 1
5395 002c 0368 ldr r3, [r0]
5396 002e 9B69 ldr r3, [r3, #24]
5397 0030 1B04 lsls r3, r3, #16
5398 0032 00D5 bpl .LCB5841
5399 0034 6CE0 b .L381 @long jump
5400 .LCB5841:
2057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5401 .loc 1 2057 0
5402 0036 4023 movs r3, #64
5403 0038 C35C ldrb r3, [r0, r3]
5404 003a 012B cmp r3, #1
5405 003c 6AD0 beq .L382
2057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5406 .loc 1 2057 0 is_stmt 0 discriminator 2
5407 003e 4023 movs r3, #64
5408 0040 9A46 mov r10, r3
5409 0042 3F3B subs r3, r3, #63
5410 0044 5246 mov r2, r10
5411 .LVL483:
5412 0046 8354 strb r3, [r0, r2]
2060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 194
5413 .loc 1 2060 0 is_stmt 1 discriminator 2
5414 0048 FFF7FEFF bl HAL_GetTick
5415 .LVL484:
2062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5416 .loc 1 2062 0 discriminator 2
5417 004c 4123 movs r3, #65
5418 004e 2122 movs r2, #33
5419 0050 FA54 strb r2, [r7, r3]
2063:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5420 .loc 1 2063 0 discriminator 2
5421 0052 0133 adds r3, r3, #1
5422 0054 5246 mov r2, r10
5423 0056 FA54 strb r2, [r7, r3]
2064:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5424 .loc 1 2064 0 discriminator 2
5425 0058 0023 movs r3, #0
5426 005a 7B64 str r3, [r7, #68]
2067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
5427 .loc 1 2067 0 discriminator 2
5428 005c 7E62 str r6, [r7, #36]
2068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5429 .loc 1 2068 0 discriminator 2
5430 005e 7D85 strh r5, [r7, #42]
2069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
5431 .loc 1 2069 0 discriminator 2
5432 0060 2D4B ldr r3, .L386
5433 0062 FB62 str r3, [r7, #44]
2070:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5434 .loc 1 2070 0 discriminator 2
5435 0064 2D4B ldr r3, .L386+4
5436 0066 7B63 str r3, [r7, #52]
2072:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5437 .loc 1 2072 0 discriminator 2
5438 0068 7B8D ldrh r3, [r7, #42]
5439 006a 9BB2 uxth r3, r3
5440 006c FF2B cmp r3, #255
5441 006e 17D9 bls .L373
2074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5442 .loc 1 2074 0
5443 0070 FF23 movs r3, #255
5444 0072 3B85 strh r3, [r7, #40]
5445 .LVL485:
2075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5446 .loc 1 2075 0
5447 0074 8023 movs r3, #128
5448 0076 5B04 lsls r3, r3, #17
5449 0078 9846 mov r8, r3
5450 .LVL486:
5451 .L374:
2084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5452 .loc 1 2084 0
5453 007a 0190 str r0, [sp, #4]
5454 007c 1923 movs r3, #25
5455 007e 0093 str r3, [sp]
5456 0080 039B ldr r3, [sp, #12]
5457 0082 029A ldr r2, [sp, #8]
5458 0084 2100 movs r1, r4
ARM GAS /tmp/ccpuPECZ.s page 195
5459 0086 3800 movs r0, r7
5460 .LVL487:
5461 0088 FFF7FEFF bl I2C_RequestMemoryWrite
5462 .LVL488:
5463 008c 0028 cmp r0, #0
5464 008e 12D0 beq .L375
2086:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5465 .loc 1 2086 0
5466 0090 7B6C ldr r3, [r7, #68]
5467 0092 042B cmp r3, #4
5468 0094 0AD1 bne .L376
2089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
5469 .loc 1 2089 0
5470 0096 3C33 adds r3, r3, #60
5471 0098 0022 movs r2, #0
5472 009a FA54 strb r2, [r7, r3]
2090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5473 .loc 1 2090 0
5474 009c 0120 movs r0, #1
5475 009e 2EE0 b .L372
5476 .LVL489:
5477 .L373:
2079:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5478 .loc 1 2079 0
5479 00a0 7B8D ldrh r3, [r7, #42]
5480 00a2 3B85 strh r3, [r7, #40]
5481 .LVL490:
2080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5482 .loc 1 2080 0
5483 00a4 8023 movs r3, #128
5484 00a6 9B04 lsls r3, r3, #18
5485 00a8 9846 mov r8, r3
5486 00aa E6E7 b .L374
5487 .LVL491:
5488 .L376:
2095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
5489 .loc 1 2095 0
5490 00ac 4023 movs r3, #64
5491 00ae 0022 movs r2, #0
5492 00b0 FA54 strb r2, [r7, r3]
2096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5493 .loc 1 2096 0
5494 00b2 0320 movs r0, #3
5495 00b4 23E0 b .L372
5496 .L375:
2101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5497 .loc 1 2101 0
5498 00b6 3A8D ldrh r2, [r7, #40]
5499 00b8 D2B2 uxtb r2, r2
5500 .LVL492:
5501 .LBB248:
5502 .LBB249:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
5503 .loc 1 4713 0
5504 00ba 3968 ldr r1, [r7]
5505 00bc 4B68 ldr r3, [r1, #4]
5506 00be 184D ldr r5, .L386+8
ARM GAS /tmp/ccpuPECZ.s page 196
5507 00c0 2B40 ands r3, r5
5508 00c2 A405 lsls r4, r4, #22
5509 .LVL493:
5510 00c4 A40D lsrs r4, r4, #22
5511 00c6 1204 lsls r2, r2, #16
5512 .LVL494:
5513 00c8 1443 orrs r4, r2
5514 00ca 4246 mov r2, r8
5515 00cc 2243 orrs r2, r4
5516 00ce 1400 movs r4, r2
5517 00d0 1C43 orrs r4, r3
5518 00d2 4C60 str r4, [r1, #4]
5519 .LVL495:
5520 .LBE249:
5521 .LBE248:
2104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5522 .loc 1 2104 0
5523 00d4 4023 movs r3, #64
5524 00d6 0022 movs r2, #0
5525 00d8 FA54 strb r2, [r7, r3]
5526 .LVL496:
5527 .LBB250:
5528 .LBB251:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
5529 .loc 1 4728 0
5530 00da 7B6B ldr r3, [r7, #52]
5531 00dc 114A ldr r2, .L386+12
5532 00de 9342 cmp r3, r2
5533 00e0 0AD0 beq .L383
5534 00e2 114A ldr r2, .L386+16
5535 00e4 9342 cmp r3, r2
5536 00e6 05D0 beq .L385
5537 00e8 F221 movs r1, #242
5538 .L377:
5539 .LVL497:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5540 .loc 1 4785 0
5541 00ea 3A68 ldr r2, [r7]
5542 00ec 1368 ldr r3, [r2]
5543 00ee 0B43 orrs r3, r1
5544 00f0 1360 str r3, [r2]
5545 .LVL498:
5546 .LBE251:
5547 .LBE250:
2115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5548 .loc 1 2115 0
5549 00f2 04E0 b .L372
5550 .LVL499:
5551 .L385:
5552 .LBB253:
5553 .LBB252:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
5554 .loc 1 4728 0
5555 00f4 0021 movs r1, #0
5556 00f6 F8E7 b .L377
5557 .L383:
5558 00f8 0021 movs r1, #0
ARM GAS /tmp/ccpuPECZ.s page 197
5559 00fa F6E7 b .L377
5560 .LVL500:
5561 .L378:
5562 .LBE252:
5563 .LBE253:
2119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5564 .loc 1 2119 0
5565 00fc 0220 movs r0, #2
5566 .LVL501:
5567 .L372:
2121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5568 .loc 1 2121 0
5569 00fe 05B0 add sp, sp, #20
5570 @ sp needed
5571 .LVL502:
5572 0100 0CBC pop {r2, r3}
5573 0102 9046 mov r8, r2
5574 0104 9A46 mov r10, r3
5575 0106 F0BD pop {r4, r5, r6, r7, pc}
5576 .LVL503:
5577 .L379:
2048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5578 .loc 1 2048 0
5579 0108 0120 movs r0, #1
5580 .LVL504:
5581 010a F8E7 b .L372
5582 .LVL505:
5583 .L380:
5584 010c 0120 movs r0, #1
5585 .LVL506:
5586 010e F6E7 b .L372
5587 .LVL507:
5588 .L381:
2053:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5589 .loc 1 2053 0
5590 0110 0220 movs r0, #2
5591 .LVL508:
5592 0112 F4E7 b .L372
5593 .LVL509:
5594 .L382:
2057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5595 .loc 1 2057 0
5596 0114 0220 movs r0, #2
5597 .LVL510:
5598 0116 F2E7 b .L372
5599 .L387:
5600 .align 2
5601 .L386:
5602 0118 0000FFFF .word -65536
5603 011c 00000000 .word I2C_Master_ISR_IT
5604 0120 009C00FC .word -67068928
5605 0124 00000000 .word I2C_Master_ISR_DMA
5606 0128 00000000 .word I2C_Slave_ISR_DMA
5607 .cfi_endproc
5608 .LFE57:
5610 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits
5611 .align 1
ARM GAS /tmp/ccpuPECZ.s page 198
5612 .global HAL_I2C_Mem_Read_IT
5613 .syntax unified
5614 .code 16
5615 .thumb_func
5616 .fpu softvfp
5618 HAL_I2C_Mem_Read_IT:
5619 .LFB58:
2136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
5620 .loc 1 2136 0
5621 .cfi_startproc
5622 @ args = 8, pretend = 0, frame = 8
5623 @ frame_needed = 0, uses_anonymous_args = 0
5624 .LVL511:
5625 0000 F0B5 push {r4, r5, r6, r7, lr}
5626 .LCFI37:
5627 .cfi_def_cfa_offset 20
5628 .cfi_offset 4, -20
5629 .cfi_offset 5, -16
5630 .cfi_offset 6, -12
5631 .cfi_offset 7, -8
5632 .cfi_offset 14, -4
5633 0002 D646 mov lr, r10
5634 0004 4746 mov r7, r8
5635 0006 80B5 push {r7, lr}
5636 .LCFI38:
5637 .cfi_def_cfa_offset 28
5638 .cfi_offset 8, -28
5639 .cfi_offset 10, -24
5640 0008 85B0 sub sp, sp, #20
5641 .LCFI39:
5642 .cfi_def_cfa_offset 48
5643 000a 0700 movs r7, r0
5644 000c 0C00 movs r4, r1
5645 000e 0292 str r2, [sp, #8]
5646 0010 0393 str r3, [sp, #12]
5647 0012 0CAB add r3, sp, #48
5648 .LVL512:
5649 0014 40CB ldmia r3!, {r6}
5650 .LVL513:
5651 0016 1D88 ldrh r5, [r3]
5652 .LVL514:
2143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5653 .loc 1 2143 0
5654 0018 4123 movs r3, #65
5655 .LVL515:
5656 001a C35C ldrb r3, [r0, r3]
5657 001c 202B cmp r3, #32
5658 001e 70D1 bne .L395
2145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5659 .loc 1 2145 0
5660 0020 002E cmp r6, #0
5661 0022 00D1 bne .LCB6150
5662 0024 73E0 b .L396 @long jump
5663 .LCB6150:
2145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5664 .loc 1 2145 0 is_stmt 0 discriminator 1
5665 0026 002D cmp r5, #0
ARM GAS /tmp/ccpuPECZ.s page 199
5666 0028 00D1 bne .LCB6152
5667 002a 72E0 b .L397 @long jump
5668 .LCB6152:
2150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5669 .loc 1 2150 0 is_stmt 1
5670 002c 0368 ldr r3, [r0]
5671 002e 9B69 ldr r3, [r3, #24]
5672 0030 1B04 lsls r3, r3, #16
5673 0032 00D5 bpl .LCB6158
5674 0034 6FE0 b .L398 @long jump
5675 .LCB6158:
2156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5676 .loc 1 2156 0
5677 0036 4023 movs r3, #64
5678 0038 C35C ldrb r3, [r0, r3]
5679 003a 012B cmp r3, #1
5680 003c 00D1 bne .LCB6162
5681 003e 6CE0 b .L399 @long jump
5682 .LCB6162:
2156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5683 .loc 1 2156 0 is_stmt 0 discriminator 2
5684 0040 4023 movs r3, #64
5685 0042 9A46 mov r10, r3
5686 0044 3F3B subs r3, r3, #63
5687 0046 5246 mov r2, r10
5688 .LVL516:
5689 0048 8354 strb r3, [r0, r2]
2159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5690 .loc 1 2159 0 is_stmt 1 discriminator 2
5691 004a FFF7FEFF bl HAL_GetTick
5692 .LVL517:
2161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5693 .loc 1 2161 0 discriminator 2
5694 004e 4123 movs r3, #65
5695 0050 2222 movs r2, #34
5696 0052 FA54 strb r2, [r7, r3]
2162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5697 .loc 1 2162 0 discriminator 2
5698 0054 0133 adds r3, r3, #1
5699 0056 5246 mov r2, r10
5700 0058 FA54 strb r2, [r7, r3]
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5701 .loc 1 2163 0 discriminator 2
5702 005a 0023 movs r3, #0
5703 005c 7B64 str r3, [r7, #68]
2166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
5704 .loc 1 2166 0 discriminator 2
5705 005e 7E62 str r6, [r7, #36]
2167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5706 .loc 1 2167 0 discriminator 2
5707 0060 7D85 strh r5, [r7, #42]
2168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
5708 .loc 1 2168 0 discriminator 2
5709 0062 2F4B ldr r3, .L403
5710 0064 FB62 str r3, [r7, #44]
2169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5711 .loc 1 2169 0 discriminator 2
ARM GAS /tmp/ccpuPECZ.s page 200
5712 0066 2F4B ldr r3, .L403+4
5713 0068 7B63 str r3, [r7, #52]
2171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5714 .loc 1 2171 0 discriminator 2
5715 006a 7B8D ldrh r3, [r7, #42]
5716 006c 9BB2 uxth r3, r3
5717 006e FF2B cmp r3, #255
5718 0070 17D9 bls .L390
2173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5719 .loc 1 2173 0
5720 0072 FF23 movs r3, #255
5721 0074 3B85 strh r3, [r7, #40]
5722 .LVL518:
2174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5723 .loc 1 2174 0
5724 0076 8023 movs r3, #128
5725 0078 5B04 lsls r3, r3, #17
5726 007a 9846 mov r8, r3
5727 .LVL519:
5728 .L391:
2183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5729 .loc 1 2183 0
5730 007c 0190 str r0, [sp, #4]
5731 007e 1923 movs r3, #25
5732 0080 0093 str r3, [sp]
5733 0082 039B ldr r3, [sp, #12]
5734 0084 029A ldr r2, [sp, #8]
5735 0086 2100 movs r1, r4
5736 0088 3800 movs r0, r7
5737 .LVL520:
5738 008a FFF7FEFF bl I2C_RequestMemoryRead
5739 .LVL521:
5740 008e 0028 cmp r0, #0
5741 0090 12D0 beq .L392
2185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5742 .loc 1 2185 0
5743 0092 7B6C ldr r3, [r7, #68]
5744 0094 042B cmp r3, #4
5745 0096 0AD1 bne .L393
2188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
5746 .loc 1 2188 0
5747 0098 3C33 adds r3, r3, #60
5748 009a 0022 movs r2, #0
5749 009c FA54 strb r2, [r7, r3]
2189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5750 .loc 1 2189 0
5751 009e 0120 movs r0, #1
5752 00a0 30E0 b .L389
5753 .LVL522:
5754 .L390:
2178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5755 .loc 1 2178 0
5756 00a2 7B8D ldrh r3, [r7, #42]
5757 00a4 3B85 strh r3, [r7, #40]
5758 .LVL523:
2179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5759 .loc 1 2179 0
ARM GAS /tmp/ccpuPECZ.s page 201
5760 00a6 8023 movs r3, #128
5761 00a8 9B04 lsls r3, r3, #18
5762 00aa 9846 mov r8, r3
5763 00ac E6E7 b .L391
5764 .LVL524:
5765 .L393:
2194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
5766 .loc 1 2194 0
5767 00ae 4023 movs r3, #64
5768 00b0 0022 movs r2, #0
5769 00b2 FA54 strb r2, [r7, r3]
2195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5770 .loc 1 2195 0
5771 00b4 0320 movs r0, #3
5772 00b6 25E0 b .L389
5773 .L392:
2200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5774 .loc 1 2200 0
5775 00b8 3B8D ldrh r3, [r7, #40]
5776 00ba DBB2 uxtb r3, r3
5777 .LVL525:
5778 .LBB254:
5779 .LBB255:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
5780 .loc 1 4713 0
5781 00bc 3968 ldr r1, [r7]
5782 00be 4D68 ldr r5, [r1, #4]
5783 00c0 194A ldr r2, .L403+8
5784 00c2 2A40 ands r2, r5
5785 00c4 A405 lsls r4, r4, #22
5786 .LVL526:
5787 00c6 A40D lsrs r4, r4, #22
5788 00c8 1B04 lsls r3, r3, #16
5789 .LVL527:
5790 00ca 1C43 orrs r4, r3
5791 00cc 4346 mov r3, r8
5792 00ce 2343 orrs r3, r4
5793 00d0 1C00 movs r4, r3
5794 00d2 164B ldr r3, .L403+12
5795 00d4 1C43 orrs r4, r3
5796 00d6 1443 orrs r4, r2
5797 00d8 4C60 str r4, [r1, #4]
5798 .LVL528:
5799 .LBE255:
5800 .LBE254:
2203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5801 .loc 1 2203 0
5802 00da 4023 movs r3, #64
5803 00dc 0022 movs r2, #0
5804 00de FA54 strb r2, [r7, r3]
5805 .LVL529:
5806 .LBB256:
5807 .LBB257:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
5808 .loc 1 4728 0
5809 00e0 7B6B ldr r3, [r7, #52]
5810 00e2 134A ldr r2, .L403+16
ARM GAS /tmp/ccpuPECZ.s page 202
5811 00e4 9342 cmp r3, r2
5812 00e6 0AD0 beq .L400
5813 00e8 124A ldr r2, .L403+20
5814 00ea 9342 cmp r3, r2
5815 00ec 05D0 beq .L402
5816 00ee F421 movs r1, #244
5817 .L394:
5818 .LVL530:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5819 .loc 1 4785 0
5820 00f0 3A68 ldr r2, [r7]
5821 00f2 1368 ldr r3, [r2]
5822 00f4 0B43 orrs r3, r1
5823 00f6 1360 str r3, [r2]
5824 .LVL531:
5825 .LBE257:
5826 .LBE256:
2214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5827 .loc 1 2214 0
5828 00f8 04E0 b .L389
5829 .LVL532:
5830 .L402:
5831 .LBB259:
5832 .LBB258:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
5833 .loc 1 4728 0
5834 00fa 0021 movs r1, #0
5835 00fc F8E7 b .L394
5836 .L400:
5837 00fe 0021 movs r1, #0
5838 0100 F6E7 b .L394
5839 .LVL533:
5840 .L395:
5841 .LBE258:
5842 .LBE259:
2218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5843 .loc 1 2218 0
5844 0102 0220 movs r0, #2
5845 .LVL534:
5846 .L389:
2220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /**
5847 .loc 1 2220 0
5848 0104 05B0 add sp, sp, #20
5849 @ sp needed
5850 .LVL535:
5851 0106 0CBC pop {r2, r3}
5852 0108 9046 mov r8, r2
5853 010a 9A46 mov r10, r3
5854 010c F0BD pop {r4, r5, r6, r7, pc}
5855 .LVL536:
5856 .L396:
2147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5857 .loc 1 2147 0
5858 010e 0120 movs r0, #1
5859 .LVL537:
5860 0110 F8E7 b .L389
5861 .LVL538:
ARM GAS /tmp/ccpuPECZ.s page 203
5862 .L397:
5863 0112 0120 movs r0, #1
5864 .LVL539:
5865 0114 F6E7 b .L389
5866 .LVL540:
5867 .L398:
2152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5868 .loc 1 2152 0
5869 0116 0220 movs r0, #2
5870 .LVL541:
5871 0118 F4E7 b .L389
5872 .LVL542:
5873 .L399:
2156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5874 .loc 1 2156 0
5875 011a 0220 movs r0, #2
5876 .LVL543:
5877 011c F2E7 b .L389
5878 .L404:
5879 011e C046 .align 2
5880 .L403:
5881 0120 0000FFFF .word -65536
5882 0124 00000000 .word I2C_Master_ISR_IT
5883 0128 009800FC .word -67069952
5884 012c 00240080 .word -2147474432
5885 0130 00000000 .word I2C_Master_ISR_DMA
5886 0134 00000000 .word I2C_Slave_ISR_DMA
5887 .cfi_endproc
5888 .LFE58:
5890 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits
5891 .align 1
5892 .global HAL_I2C_Mem_Write_DMA
5893 .syntax unified
5894 .code 16
5895 .thumb_func
5896 .fpu softvfp
5898 HAL_I2C_Mem_Write_DMA:
5899 .LFB59:
2234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
5900 .loc 1 2234 0
5901 .cfi_startproc
5902 @ args = 8, pretend = 0, frame = 16
5903 @ frame_needed = 0, uses_anonymous_args = 0
5904 .LVL544:
5905 0000 F0B5 push {r4, r5, r6, r7, lr}
5906 .LCFI40:
5907 .cfi_def_cfa_offset 20
5908 .cfi_offset 4, -20
5909 .cfi_offset 5, -16
5910 .cfi_offset 6, -12
5911 .cfi_offset 7, -8
5912 .cfi_offset 14, -4
5913 0002 CE46 mov lr, r9
5914 0004 00B5 push {lr}
5915 .LCFI41:
5916 .cfi_def_cfa_offset 24
5917 .cfi_offset 9, -24
ARM GAS /tmp/ccpuPECZ.s page 204
5918 0006 86B0 sub sp, sp, #24
5919 .LCFI42:
5920 .cfi_def_cfa_offset 48
5921 0008 0400 movs r4, r0
5922 000a 0391 str r1, [sp, #12]
5923 000c 0492 str r2, [sp, #16]
5924 000e 0593 str r3, [sp, #20]
5925 0010 0CAB add r3, sp, #48
5926 .LVL545:
5927 0012 20CB ldmia r3!, {r5}
5928 .LVL546:
5929 0014 1E88 ldrh r6, [r3]
5930 .LVL547:
2241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5931 .loc 1 2241 0
5932 0016 4123 movs r3, #65
5933 .LVL548:
5934 0018 C35C ldrb r3, [r0, r3]
5935 001a 202B cmp r3, #32
5936 001c 00D0 beq .LCB6466
5937 001e 88E0 b .L412 @long jump
5938 .LCB6466:
2243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5939 .loc 1 2243 0
5940 0020 002D cmp r5, #0
5941 0022 00D1 bne .LCB6468
5942 0024 8BE0 b .L413 @long jump
5943 .LCB6468:
2243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5944 .loc 1 2243 0 is_stmt 0 discriminator 1
5945 0026 002E cmp r6, #0
5946 0028 00D1 bne .LCB6470
5947 002a 8AE0 b .L414 @long jump
5948 .LCB6470:
2248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5949 .loc 1 2248 0 is_stmt 1
5950 002c 0368 ldr r3, [r0]
5951 002e 9B69 ldr r3, [r3, #24]
5952 0030 1B04 lsls r3, r3, #16
5953 0032 00D5 bpl .LCB6476
5954 0034 87E0 b .L415 @long jump
5955 .LCB6476:
2254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5956 .loc 1 2254 0
5957 0036 4023 movs r3, #64
5958 0038 C35C ldrb r3, [r0, r3]
5959 003a 012B cmp r3, #1
5960 003c 00D1 bne .LCB6480
5961 003e 84E0 b .L416 @long jump
5962 .LCB6480:
2254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5963 .loc 1 2254 0 is_stmt 0 discriminator 2
5964 0040 4027 movs r7, #64
5965 0042 0123 movs r3, #1
5966 0044 C355 strb r3, [r0, r7]
2257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5967 .loc 1 2257 0 is_stmt 1 discriminator 2
ARM GAS /tmp/ccpuPECZ.s page 205
5968 0046 FFF7FEFF bl HAL_GetTick
5969 .LVL549:
2259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5970 .loc 1 2259 0 discriminator 2
5971 004a 4123 movs r3, #65
5972 004c 2122 movs r2, #33
5973 004e E254 strb r2, [r4, r3]
2260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5974 .loc 1 2260 0 discriminator 2
5975 0050 0133 adds r3, r3, #1
5976 0052 E754 strb r7, [r4, r3]
2261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5977 .loc 1 2261 0 discriminator 2
5978 0054 0023 movs r3, #0
5979 0056 6364 str r3, [r4, #68]
2264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
5980 .loc 1 2264 0 discriminator 2
5981 0058 6562 str r5, [r4, #36]
2265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5982 .loc 1 2265 0 discriminator 2
5983 005a 6685 strh r6, [r4, #42]
2266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
5984 .loc 1 2266 0 discriminator 2
5985 005c 3C4B ldr r3, .L420
5986 005e E362 str r3, [r4, #44]
2267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
5987 .loc 1 2267 0 discriminator 2
5988 0060 3C4B ldr r3, .L420+4
5989 0062 6363 str r3, [r4, #52]
2269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
5990 .loc 1 2269 0 discriminator 2
5991 0064 638D ldrh r3, [r4, #42]
5992 0066 9BB2 uxth r3, r3
5993 0068 FF2B cmp r3, #255
5994 006a 17D9 bls .L407
2271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5995 .loc 1 2271 0
5996 006c FF23 movs r3, #255
5997 006e 2385 strh r3, [r4, #40]
5998 .LVL550:
2272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
5999 .loc 1 2272 0
6000 0070 8023 movs r3, #128
6001 0072 5B04 lsls r3, r3, #17
6002 0074 9946 mov r9, r3
6003 .LVL551:
6004 .L408:
2281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6005 .loc 1 2281 0
6006 0076 0190 str r0, [sp, #4]
6007 0078 1923 movs r3, #25
6008 007a 0093 str r3, [sp]
6009 007c 059B ldr r3, [sp, #20]
6010 007e 049A ldr r2, [sp, #16]
6011 0080 0399 ldr r1, [sp, #12]
6012 0082 2000 movs r0, r4
6013 .LVL552:
ARM GAS /tmp/ccpuPECZ.s page 206
6014 0084 FFF7FEFF bl I2C_RequestMemoryWrite
6015 .LVL553:
6016 0088 061E subs r6, r0, #0
6017 008a 12D0 beq .L409
2283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6018 .loc 1 2283 0
6019 008c 636C ldr r3, [r4, #68]
6020 008e 042B cmp r3, #4
6021 0090 0AD1 bne .L410
2286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
6022 .loc 1 2286 0
6023 0092 3C33 adds r3, r3, #60
6024 0094 0022 movs r2, #0
6025 0096 E254 strb r2, [r4, r3]
2287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6026 .loc 1 2287 0
6027 0098 0126 movs r6, #1
6028 009a 4BE0 b .L406
6029 .LVL554:
6030 .L407:
2276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
6031 .loc 1 2276 0
6032 009c 638D ldrh r3, [r4, #42]
6033 009e 2385 strh r3, [r4, #40]
6034 .LVL555:
2277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6035 .loc 1 2277 0
6036 00a0 8023 movs r3, #128
6037 00a2 9B04 lsls r3, r3, #18
6038 00a4 9946 mov r9, r3
6039 00a6 E6E7 b .L408
6040 .LVL556:
6041 .L410:
2292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
6042 .loc 1 2292 0
6043 00a8 4023 movs r3, #64
6044 00aa 0022 movs r2, #0
6045 00ac E254 strb r2, [r4, r3]
2293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6046 .loc 1 2293 0
6047 00ae 0326 movs r6, #3
6048 00b0 40E0 b .L406
6049 .L409:
2298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6050 .loc 1 2298 0
6051 00b2 A36B ldr r3, [r4, #56]
6052 00b4 284A ldr r2, .L420+8
6053 00b6 DA62 str r2, [r3, #44]
2301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6054 .loc 1 2301 0
6055 00b8 A36B ldr r3, [r4, #56]
6056 00ba 284A ldr r2, .L420+12
6057 00bc 5A63 str r2, [r3, #52]
2304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6058 .loc 1 2304 0
6059 00be A36B ldr r3, [r4, #56]
6060 00c0 0027 movs r7, #0
ARM GAS /tmp/ccpuPECZ.s page 207
6061 00c2 1F63 str r7, [r3, #48]
2305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6062 .loc 1 2305 0
6063 00c4 A36B ldr r3, [r4, #56]
6064 00c6 9F63 str r7, [r3, #56]
2308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6065 .loc 1 2308 0
6066 00c8 2268 ldr r2, [r4]
6067 00ca 2832 adds r2, r2, #40
6068 00cc 238D ldrh r3, [r4, #40]
6069 00ce 2900 movs r1, r5
6070 00d0 A06B ldr r0, [r4, #56]
6071 00d2 FFF7FEFF bl HAL_DMA_Start_IT
6072 .LVL557:
2312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6073 .loc 1 2312 0
6074 00d6 218D ldrh r1, [r4, #40]
6075 00d8 C9B2 uxtb r1, r1
6076 .LVL558:
6077 .LBB260:
6078 .LBB261:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
6079 .loc 1 4713 0
6080 00da 2268 ldr r2, [r4]
6081 00dc 5368 ldr r3, [r2, #4]
6082 00de 2048 ldr r0, .L420+16
6083 00e0 0340 ands r3, r0
6084 00e2 0398 ldr r0, [sp, #12]
6085 00e4 8505 lsls r5, r0, #22
6086 00e6 AD0D lsrs r5, r5, #22
6087 00e8 0904 lsls r1, r1, #16
6088 .LVL559:
6089 00ea 0D43 orrs r5, r1
6090 00ec 4946 mov r1, r9
6091 00ee 2943 orrs r1, r5
6092 00f0 0D00 movs r5, r1
6093 00f2 1D43 orrs r5, r3
6094 00f4 5560 str r5, [r2, #4]
6095 .LVL560:
6096 .LBE261:
6097 .LBE260:
2315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6098 .loc 1 2315 0
6099 00f6 638D ldrh r3, [r4, #42]
6100 00f8 228D ldrh r2, [r4, #40]
6101 00fa 9B1A subs r3, r3, r2
6102 00fc 9BB2 uxth r3, r3
6103 00fe 6385 strh r3, [r4, #42]
2318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6104 .loc 1 2318 0
6105 0100 4023 movs r3, #64
6106 0102 E754 strb r7, [r4, r3]
6107 .LVL561:
6108 .LBB262:
6109 .LBB263:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
6110 .loc 1 4728 0
ARM GAS /tmp/ccpuPECZ.s page 208
6111 0104 636B ldr r3, [r4, #52]
6112 0106 134A ldr r2, .L420+4
6113 0108 9342 cmp r3, r2
6114 010a 10D0 beq .L417
6115 010c 154A ldr r2, .L420+20
6116 010e 9342 cmp r3, r2
6117 0110 0BD0 beq .L419
6118 0112 F221 movs r1, #242
6119 .L411:
6120 .LVL562:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6121 .loc 1 4785 0
6122 0114 2268 ldr r2, [r4]
6123 0116 1368 ldr r3, [r2]
6124 0118 0B43 orrs r3, r1
6125 011a 1360 str r3, [r2]
6126 .LVL563:
6127 .LBE263:
6128 .LBE262:
2327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6129 .loc 1 2327 0
6130 011c 2268 ldr r2, [r4]
6131 011e 1168 ldr r1, [r2]
6132 0120 8023 movs r3, #128
6133 0122 DB01 lsls r3, r3, #7
6134 0124 0B43 orrs r3, r1
6135 0126 1360 str r3, [r2]
2329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6136 .loc 1 2329 0
6137 0128 04E0 b .L406
6138 .LVL564:
6139 .L419:
6140 .LBB265:
6141 .LBB264:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
6142 .loc 1 4728 0
6143 012a 9021 movs r1, #144
6144 012c F2E7 b .L411
6145 .L417:
6146 012e 9021 movs r1, #144
6147 0130 F0E7 b .L411
6148 .LVL565:
6149 .L412:
6150 .LBE264:
6151 .LBE265:
2333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6152 .loc 1 2333 0
6153 0132 0226 movs r6, #2
6154 .LVL566:
6155 .L406:
2335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6156 .loc 1 2335 0
6157 0134 3000 movs r0, r6
6158 0136 06B0 add sp, sp, #24
6159 @ sp needed
6160 .LVL567:
6161 0138 04BC pop {r2}
ARM GAS /tmp/ccpuPECZ.s page 209
6162 013a 9146 mov r9, r2
6163 013c F0BD pop {r4, r5, r6, r7, pc}
6164 .LVL568:
6165 .L413:
2245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6166 .loc 1 2245 0
6167 013e 0126 movs r6, #1
6168 0140 F8E7 b .L406
6169 .L414:
6170 0142 0126 movs r6, #1
6171 0144 F6E7 b .L406
6172 .L415:
2250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6173 .loc 1 2250 0
6174 0146 0226 movs r6, #2
6175 0148 F4E7 b .L406
6176 .L416:
2254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6177 .loc 1 2254 0
6178 014a 0226 movs r6, #2
6179 014c F2E7 b .L406
6180 .L421:
6181 014e C046 .align 2
6182 .L420:
6183 0150 0000FFFF .word -65536
6184 0154 00000000 .word I2C_Master_ISR_DMA
6185 0158 00000000 .word I2C_DMAMasterTransmitCplt
6186 015c 00000000 .word I2C_DMAError
6187 0160 009C00FC .word -67068928
6188 0164 00000000 .word I2C_Slave_ISR_DMA
6189 .cfi_endproc
6190 .LFE59:
6192 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits
6193 .align 1
6194 .global HAL_I2C_Mem_Read_DMA
6195 .syntax unified
6196 .code 16
6197 .thumb_func
6198 .fpu softvfp
6200 HAL_I2C_Mem_Read_DMA:
6201 .LFB60:
2350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
6202 .loc 1 2350 0
6203 .cfi_startproc
6204 @ args = 8, pretend = 0, frame = 16
6205 @ frame_needed = 0, uses_anonymous_args = 0
6206 .LVL569:
6207 0000 F0B5 push {r4, r5, r6, r7, lr}
6208 .LCFI43:
6209 .cfi_def_cfa_offset 20
6210 .cfi_offset 4, -20
6211 .cfi_offset 5, -16
6212 .cfi_offset 6, -12
6213 .cfi_offset 7, -8
6214 .cfi_offset 14, -4
6215 0002 CE46 mov lr, r9
6216 0004 00B5 push {lr}
ARM GAS /tmp/ccpuPECZ.s page 210
6217 .LCFI44:
6218 .cfi_def_cfa_offset 24
6219 .cfi_offset 9, -24
6220 0006 86B0 sub sp, sp, #24
6221 .LCFI45:
6222 .cfi_def_cfa_offset 48
6223 0008 0400 movs r4, r0
6224 000a 0391 str r1, [sp, #12]
6225 000c 0492 str r2, [sp, #16]
6226 000e 0593 str r3, [sp, #20]
6227 0010 0CAB add r3, sp, #48
6228 .LVL570:
6229 0012 20CB ldmia r3!, {r5}
6230 .LVL571:
6231 0014 1E88 ldrh r6, [r3]
6232 .LVL572:
2357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6233 .loc 1 2357 0
6234 0016 4123 movs r3, #65
6235 .LVL573:
6236 0018 C35C ldrb r3, [r0, r3]
6237 001a 202B cmp r3, #32
6238 001c 00D0 beq .LCB6804
6239 001e 8AE0 b .L429 @long jump
6240 .LCB6804:
2359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6241 .loc 1 2359 0
6242 0020 002D cmp r5, #0
6243 0022 00D1 bne .LCB6806
6244 0024 8DE0 b .L430 @long jump
6245 .LCB6806:
2359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6246 .loc 1 2359 0 is_stmt 0 discriminator 1
6247 0026 002E cmp r6, #0
6248 0028 00D1 bne .LCB6808
6249 002a 8CE0 b .L431 @long jump
6250 .LCB6808:
2364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6251 .loc 1 2364 0 is_stmt 1
6252 002c 0368 ldr r3, [r0]
6253 002e 9B69 ldr r3, [r3, #24]
6254 0030 1B04 lsls r3, r3, #16
6255 0032 00D5 bpl .LCB6814
6256 0034 89E0 b .L432 @long jump
6257 .LCB6814:
2370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6258 .loc 1 2370 0
6259 0036 4023 movs r3, #64
6260 0038 C35C ldrb r3, [r0, r3]
6261 003a 012B cmp r3, #1
6262 003c 00D1 bne .LCB6818
6263 003e 86E0 b .L433 @long jump
6264 .LCB6818:
2370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6265 .loc 1 2370 0 is_stmt 0 discriminator 2
6266 0040 4027 movs r7, #64
6267 0042 0123 movs r3, #1
ARM GAS /tmp/ccpuPECZ.s page 211
6268 0044 C355 strb r3, [r0, r7]
2373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6269 .loc 1 2373 0 is_stmt 1 discriminator 2
6270 0046 FFF7FEFF bl HAL_GetTick
6271 .LVL574:
2375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6272 .loc 1 2375 0 discriminator 2
6273 004a 4123 movs r3, #65
6274 004c 2222 movs r2, #34
6275 004e E254 strb r2, [r4, r3]
2376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6276 .loc 1 2376 0 discriminator 2
6277 0050 0133 adds r3, r3, #1
6278 0052 E754 strb r7, [r4, r3]
2377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6279 .loc 1 2377 0 discriminator 2
6280 0054 0023 movs r3, #0
6281 0056 6364 str r3, [r4, #68]
2380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
6282 .loc 1 2380 0 discriminator 2
6283 0058 6562 str r5, [r4, #36]
2381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6284 .loc 1 2381 0 discriminator 2
6285 005a 6685 strh r6, [r4, #42]
2382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
6286 .loc 1 2382 0 discriminator 2
6287 005c 3D4B ldr r3, .L437
6288 005e E362 str r3, [r4, #44]
2383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6289 .loc 1 2383 0 discriminator 2
6290 0060 3D4B ldr r3, .L437+4
6291 0062 6363 str r3, [r4, #52]
2385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6292 .loc 1 2385 0 discriminator 2
6293 0064 638D ldrh r3, [r4, #42]
6294 0066 9BB2 uxth r3, r3
6295 0068 FF2B cmp r3, #255
6296 006a 17D9 bls .L424
2387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
6297 .loc 1 2387 0
6298 006c FF23 movs r3, #255
6299 006e 2385 strh r3, [r4, #40]
6300 .LVL575:
2388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6301 .loc 1 2388 0
6302 0070 8023 movs r3, #128
6303 0072 5B04 lsls r3, r3, #17
6304 0074 9946 mov r9, r3
6305 .LVL576:
6306 .L425:
2397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6307 .loc 1 2397 0
6308 0076 0190 str r0, [sp, #4]
6309 0078 1923 movs r3, #25
6310 007a 0093 str r3, [sp]
6311 007c 059B ldr r3, [sp, #20]
6312 007e 049A ldr r2, [sp, #16]
ARM GAS /tmp/ccpuPECZ.s page 212
6313 0080 0399 ldr r1, [sp, #12]
6314 0082 2000 movs r0, r4
6315 .LVL577:
6316 0084 FFF7FEFF bl I2C_RequestMemoryRead
6317 .LVL578:
6318 0088 061E subs r6, r0, #0
6319 008a 12D0 beq .L426
2399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6320 .loc 1 2399 0
6321 008c 636C ldr r3, [r4, #68]
6322 008e 042B cmp r3, #4
6323 0090 0AD1 bne .L427
2402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR;
6324 .loc 1 2402 0
6325 0092 3C33 adds r3, r3, #60
6326 0094 0022 movs r2, #0
6327 0096 E254 strb r2, [r4, r3]
2403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6328 .loc 1 2403 0
6329 0098 0126 movs r6, #1
6330 009a 4DE0 b .L423
6331 .LVL579:
6332 .L424:
2392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
6333 .loc 1 2392 0
6334 009c 638D ldrh r3, [r4, #42]
6335 009e 2385 strh r3, [r4, #40]
6336 .LVL580:
2393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6337 .loc 1 2393 0
6338 00a0 8023 movs r3, #128
6339 00a2 9B04 lsls r3, r3, #18
6340 00a4 9946 mov r9, r3
6341 00a6 E6E7 b .L425
6342 .LVL581:
6343 .L427:
2408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
6344 .loc 1 2408 0
6345 00a8 4023 movs r3, #64
6346 00aa 0022 movs r2, #0
6347 00ac E254 strb r2, [r4, r3]
2409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6348 .loc 1 2409 0
6349 00ae 0326 movs r6, #3
6350 00b0 42E0 b .L423
6351 .L426:
2414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6352 .loc 1 2414 0
6353 00b2 E36B ldr r3, [r4, #60]
6354 00b4 294A ldr r2, .L437+8
6355 00b6 DA62 str r2, [r3, #44]
2417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6356 .loc 1 2417 0
6357 00b8 E36B ldr r3, [r4, #60]
6358 00ba 294A ldr r2, .L437+12
6359 00bc 5A63 str r2, [r3, #52]
2420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
ARM GAS /tmp/ccpuPECZ.s page 213
6360 .loc 1 2420 0
6361 00be E36B ldr r3, [r4, #60]
6362 00c0 0027 movs r7, #0
6363 00c2 1F63 str r7, [r3, #48]
2421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6364 .loc 1 2421 0
6365 00c4 E36B ldr r3, [r4, #60]
6366 00c6 9F63 str r7, [r3, #56]
2424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6367 .loc 1 2424 0
6368 00c8 2168 ldr r1, [r4]
6369 00ca 2431 adds r1, r1, #36
6370 00cc 238D ldrh r3, [r4, #40]
6371 00ce 2A00 movs r2, r5
6372 00d0 E06B ldr r0, [r4, #60]
6373 00d2 FFF7FEFF bl HAL_DMA_Start_IT
6374 .LVL582:
2427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6375 .loc 1 2427 0
6376 00d6 238D ldrh r3, [r4, #40]
6377 00d8 DBB2 uxtb r3, r3
6378 .LVL583:
6379 .LBB266:
6380 .LBB267:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
6381 .loc 1 4713 0
6382 00da 2268 ldr r2, [r4]
6383 00dc 5068 ldr r0, [r2, #4]
6384 00de 2149 ldr r1, .L437+16
6385 00e0 0140 ands r1, r0
6386 00e2 0398 ldr r0, [sp, #12]
6387 00e4 8505 lsls r5, r0, #22
6388 00e6 AD0D lsrs r5, r5, #22
6389 00e8 1B04 lsls r3, r3, #16
6390 .LVL584:
6391 00ea 1D43 orrs r5, r3
6392 00ec 4B46 mov r3, r9
6393 00ee 2B43 orrs r3, r5
6394 00f0 1D00 movs r5, r3
6395 00f2 1D4B ldr r3, .L437+20
6396 00f4 1D43 orrs r5, r3
6397 00f6 0D43 orrs r5, r1
6398 00f8 5560 str r5, [r2, #4]
6399 .LVL585:
6400 .LBE267:
6401 .LBE266:
2430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6402 .loc 1 2430 0
6403 00fa 638D ldrh r3, [r4, #42]
6404 00fc 228D ldrh r2, [r4, #40]
6405 00fe 9B1A subs r3, r3, r2
6406 0100 9BB2 uxth r3, r3
6407 0102 6385 strh r3, [r4, #42]
2433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6408 .loc 1 2433 0
6409 0104 4023 movs r3, #64
6410 0106 E754 strb r7, [r4, r3]
ARM GAS /tmp/ccpuPECZ.s page 214
2436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6411 .loc 1 2436 0
6412 0108 2268 ldr r2, [r4]
6413 010a 1168 ldr r1, [r2]
6414 010c 8023 movs r3, #128
6415 010e 1B02 lsls r3, r3, #8
6416 0110 0B43 orrs r3, r1
6417 0112 1360 str r3, [r2]
6418 .LVL586:
6419 .LBB268:
6420 .LBB269:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
6421 .loc 1 4728 0
6422 0114 636B ldr r3, [r4, #52]
6423 0116 104A ldr r2, .L437+4
6424 0118 9342 cmp r3, r2
6425 011a 0AD0 beq .L434
6426 011c 134A ldr r2, .L437+24
6427 011e 9342 cmp r3, r2
6428 0120 05D0 beq .L436
6429 0122 F221 movs r1, #242
6430 .L428:
6431 .LVL587:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6432 .loc 1 4785 0
6433 0124 2268 ldr r2, [r4]
6434 0126 1368 ldr r3, [r2]
6435 0128 0B43 orrs r3, r1
6436 012a 1360 str r3, [r2]
6437 .LVL588:
6438 .LBE269:
6439 .LBE268:
2444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6440 .loc 1 2444 0
6441 012c 04E0 b .L423
6442 .LVL589:
6443 .L436:
6444 .LBB271:
6445 .LBB270:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
6446 .loc 1 4728 0
6447 012e 9021 movs r1, #144
6448 0130 F8E7 b .L428
6449 .L434:
6450 0132 9021 movs r1, #144
6451 0134 F6E7 b .L428
6452 .LVL590:
6453 .L429:
6454 .LBE270:
6455 .LBE271:
2448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6456 .loc 1 2448 0
6457 0136 0226 movs r6, #2
6458 .LVL591:
6459 .L423:
2450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6460 .loc 1 2450 0
ARM GAS /tmp/ccpuPECZ.s page 215
6461 0138 3000 movs r0, r6
6462 013a 06B0 add sp, sp, #24
6463 @ sp needed
6464 .LVL592:
6465 013c 04BC pop {r2}
6466 013e 9146 mov r9, r2
6467 0140 F0BD pop {r4, r5, r6, r7, pc}
6468 .LVL593:
6469 .L430:
2361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6470 .loc 1 2361 0
6471 0142 0126 movs r6, #1
6472 0144 F8E7 b .L423
6473 .L431:
6474 0146 0126 movs r6, #1
6475 0148 F6E7 b .L423
6476 .L432:
2366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6477 .loc 1 2366 0
6478 014a 0226 movs r6, #2
6479 014c F4E7 b .L423
6480 .L433:
2370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6481 .loc 1 2370 0
6482 014e 0226 movs r6, #2
6483 0150 F2E7 b .L423
6484 .L438:
6485 0152 C046 .align 2
6486 .L437:
6487 0154 0000FFFF .word -65536
6488 0158 00000000 .word I2C_Master_ISR_DMA
6489 015c 00000000 .word I2C_DMAMasterReceiveCplt
6490 0160 00000000 .word I2C_DMAError
6491 0164 009800FC .word -67069952
6492 0168 00240080 .word -2147474432
6493 016c 00000000 .word I2C_Slave_ISR_DMA
6494 .cfi_endproc
6495 .LFE60:
6497 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits
6498 .align 1
6499 .global HAL_I2C_IsDeviceReady
6500 .syntax unified
6501 .code 16
6502 .thumb_func
6503 .fpu softvfp
6505 HAL_I2C_IsDeviceReady:
6506 .LFB61:
2464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U;
6507 .loc 1 2464 0
6508 .cfi_startproc
6509 @ args = 0, pretend = 0, frame = 8
6510 @ frame_needed = 0, uses_anonymous_args = 0
6511 .LVL594:
6512 0000 F0B5 push {r4, r5, r6, r7, lr}
6513 .LCFI46:
6514 .cfi_def_cfa_offset 20
6515 .cfi_offset 4, -20
ARM GAS /tmp/ccpuPECZ.s page 216
6516 .cfi_offset 5, -16
6517 .cfi_offset 6, -12
6518 .cfi_offset 7, -8
6519 .cfi_offset 14, -4
6520 0002 C646 mov lr, r8
6521 0004 00B5 push {lr}
6522 .LCFI47:
6523 .cfi_def_cfa_offset 24
6524 .cfi_offset 8, -24
6525 0006 84B0 sub sp, sp, #16
6526 .LCFI48:
6527 .cfi_def_cfa_offset 40
6528 0008 0400 movs r4, r0
6529 000a 8846 mov r8, r1
6530 000c 1700 movs r7, r2
6531 000e 1D00 movs r5, r3
6532 .LVL595:
2467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6533 .loc 1 2467 0
6534 0010 0023 movs r3, #0
6535 .LVL596:
6536 0012 0393 str r3, [sp, #12]
2469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6537 .loc 1 2469 0
6538 0014 4133 adds r3, r3, #65
6539 0016 C35C ldrb r3, [r0, r3]
6540 0018 202B cmp r3, #32
6541 001a 00D0 beq .LCB7135
6542 001c 8BE0 b .L451 @long jump
6543 .LCB7135:
2471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6544 .loc 1 2471 0
6545 001e 0368 ldr r3, [r0]
6546 0020 9B69 ldr r3, [r3, #24]
6547 0022 1B04 lsls r3, r3, #16
6548 0024 00D5 bpl .LCB7141
6549 0026 8BE0 b .L452 @long jump
6550 .LCB7141:
2477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6551 .loc 1 2477 0
6552 0028 4023 movs r3, #64
6553 002a C35C ldrb r3, [r0, r3]
6554 002c 012B cmp r3, #1
6555 002e 00D1 bne .LCB7145
6556 0030 88E0 b .L453 @long jump
6557 .LCB7145:
2477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6558 .loc 1 2477 0 is_stmt 0 discriminator 2
6559 0032 4023 movs r3, #64
6560 0034 0122 movs r2, #1
6561 .LVL597:
6562 0036 C254 strb r2, [r0, r3]
2479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6563 .loc 1 2479 0 is_stmt 1 discriminator 2
6564 0038 0133 adds r3, r3, #1
6565 003a 2332 adds r2, r2, #35
6566 003c C254 strb r2, [r0, r3]
ARM GAS /tmp/ccpuPECZ.s page 217
2480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6567 .loc 1 2480 0 discriminator 2
6568 003e 0023 movs r3, #0
6569 0040 4364 str r3, [r0, #68]
6570 0042 20E0 b .L450
6571 .LVL598:
6572 .L460:
2485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6573 .loc 1 2485 0 discriminator 1
6574 0044 4346 mov r3, r8
6575 0046 9A05 lsls r2, r3, #22
6576 0048 920D lsrs r2, r2, #22
6577 004a 424B ldr r3, .L461
6578 004c 1343 orrs r3, r2
6579 004e 23E0 b .L442
6580 .LVL599:
6581 .L446:
2506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6582 .loc 1 2506 0
6583 0050 9369 ldr r3, [r2, #24]
6584 0052 DB06 lsls r3, r3, #27
6585 0054 42D5 bpl .L457
2528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6586 .loc 1 2528 0
6587 0056 0096 str r6, [sp]
6588 0058 2B00 movs r3, r5
6589 005a 0022 movs r2, #0
6590 005c 2021 movs r1, #32
6591 005e 2000 movs r0, r4
6592 0060 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
6593 .LVL600:
6594 0064 0028 cmp r0, #0
6595 0066 00D0 beq .LCB7187
6596 0068 70E0 b .L455 @long jump
6597 .LCB7187:
2534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6598 .loc 1 2534 0
6599 006a 2368 ldr r3, [r4]
6600 006c 1022 movs r2, #16
6601 006e DA61 str r2, [r3, #28]
2537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6602 .loc 1 2537 0
6603 0070 2368 ldr r3, [r4]
6604 0072 1032 adds r2, r2, #16
6605 0074 DA61 str r2, [r3, #28]
2541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6606 .loc 1 2541 0
6607 0076 039B ldr r3, [sp, #12]
6608 0078 5A1C adds r2, r3, #1
6609 007a 0392 str r2, [sp, #12]
6610 007c BB42 cmp r3, r7
6611 007e 3FD0 beq .L458
6612 .L449:
2556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6613 .loc 1 2556 0
6614 0080 039B ldr r3, [sp, #12]
6615 0082 BB42 cmp r3, r7
ARM GAS /tmp/ccpuPECZ.s page 218
6616 0084 4FD2 bcs .L459
6617 .LVL601:
6618 .L450:
2485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6619 .loc 1 2485 0
6620 0086 E368 ldr r3, [r4, #12]
6621 0088 012B cmp r3, #1
6622 008a DBD0 beq .L460
2485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6623 .loc 1 2485 0 is_stmt 0 discriminator 2
6624 008c 4346 mov r3, r8
6625 008e 9A05 lsls r2, r3, #22
6626 0090 920D lsrs r2, r2, #22
6627 0092 A023 movs r3, #160
6628 0094 9B01 lsls r3, r3, #6
6629 0096 1343 orrs r3, r2
6630 .L442:
2485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6631 .loc 1 2485 0 discriminator 4
6632 0098 2268 ldr r2, [r4]
6633 009a 5360 str r3, [r2, #4]
2489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (__HAL_I2C_GET_FLAG(hi2c, I2C_F
6634 .loc 1 2489 0 is_stmt 1 discriminator 4
6635 009c FFF7FEFF bl HAL_GetTick
6636 .LVL602:
6637 00a0 0600 movs r6, r0
6638 .LVL603:
6639 .L444:
2490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6640 .loc 1 2490 0
6641 00a2 2268 ldr r2, [r4]
6642 00a4 9369 ldr r3, [r2, #24]
6643 00a6 9B06 lsls r3, r3, #26
6644 00a8 D2D4 bmi .L446
2490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6645 .loc 1 2490 0 is_stmt 0 discriminator 1
6646 00aa 9369 ldr r3, [r2, #24]
6647 00ac DB06 lsls r3, r3, #27
6648 00ae CFD4 bmi .L446
2490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6649 .loc 1 2490 0 discriminator 2
6650 00b0 4123 movs r3, #65
6651 00b2 E35C ldrb r3, [r4, r3]
6652 00b4 DBB2 uxtb r3, r3
6653 00b6 A02B cmp r3, #160
6654 00b8 CAD0 beq .L446
2492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6655 .loc 1 2492 0 is_stmt 1
6656 00ba 6B1C adds r3, r5, #1
6657 00bc F1D0 beq .L444
2494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6658 .loc 1 2494 0
6659 00be 002D cmp r5, #0
6660 00c0 04D0 beq .L445
2494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6661 .loc 1 2494 0 is_stmt 0 discriminator 1
6662 00c2 FFF7FEFF bl HAL_GetTick
ARM GAS /tmp/ccpuPECZ.s page 219
6663 .LVL604:
6664 00c6 801B subs r0, r0, r6
6665 00c8 A842 cmp r0, r5
6666 00ca EAD9 bls .L444
6667 .L445:
2497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */
6668 .loc 1 2497 0 is_stmt 1
6669 00cc 4123 movs r3, #65
6670 00ce 2022 movs r2, #32
6671 00d0 E254 strb r2, [r4, r3]
2499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT;
6672 .loc 1 2499 0
6673 00d2 013B subs r3, r3, #1
6674 00d4 0022 movs r2, #0
6675 00d6 E254 strb r2, [r4, r3]
2500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6676 .loc 1 2500 0
6677 00d8 0320 movs r0, #3
6678 00da 2DE0 b .L440
6679 .L457:
2509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6680 .loc 1 2509 0
6681 00dc 0096 str r6, [sp]
6682 00de 2B00 movs r3, r5
6683 00e0 0022 movs r2, #0
6684 00e2 2021 movs r1, #32
6685 00e4 2000 movs r0, r4
6686 00e6 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
6687 .LVL605:
6688 00ea 0028 cmp r0, #0
6689 00ec 2CD1 bne .L454
2515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6690 .loc 1 2515 0
6691 00ee 2268 ldr r2, [r4]
6692 00f0 2023 movs r3, #32
6693 00f2 D361 str r3, [r2, #28]
2518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6694 .loc 1 2518 0
6695 00f4 4122 movs r2, #65
6696 00f6 A354 strb r3, [r4, r2]
2521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6697 .loc 1 2521 0
6698 00f8 2033 adds r3, r3, #32
6699 00fa 0022 movs r2, #0
6700 00fc E254 strb r2, [r4, r3]
2523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6701 .loc 1 2523 0
6702 00fe 1BE0 b .L440
6703 .L458:
2544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6704 .loc 1 2544 0
6705 0100 2268 ldr r2, [r4]
6706 0102 5168 ldr r1, [r2, #4]
6707 0104 8023 movs r3, #128
6708 0106 DB01 lsls r3, r3, #7
6709 0108 0B43 orrs r3, r1
6710 010a 5360 str r3, [r2, #4]
ARM GAS /tmp/ccpuPECZ.s page 220
2547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6711 .loc 1 2547 0
6712 010c 0096 str r6, [sp]
6713 010e 2B00 movs r3, r5
6714 0110 0022 movs r2, #0
6715 0112 2021 movs r1, #32
6716 0114 2000 movs r0, r4
6717 0116 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
6718 .LVL606:
6719 011a 0028 cmp r0, #0
6720 011c 18D1 bne .L456
2553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6721 .loc 1 2553 0
6722 011e 2368 ldr r3, [r4]
6723 0120 2022 movs r2, #32
6724 0122 DA61 str r2, [r3, #28]
6725 0124 ACE7 b .L449
6726 .L459:
2558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6727 .loc 1 2558 0
6728 0126 4123 movs r3, #65
6729 0128 2022 movs r2, #32
6730 012a E254 strb r2, [r4, r3]
2561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6731 .loc 1 2561 0
6732 012c 013B subs r3, r3, #1
6733 012e 0022 movs r2, #0
6734 0130 E254 strb r2, [r4, r3]
2563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6735 .loc 1 2563 0
6736 0132 0320 movs r0, #3
6737 0134 00E0 b .L440
6738 .LVL607:
6739 .L451:
2567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6740 .loc 1 2567 0
6741 0136 0220 movs r0, #2
6742 .LVL608:
6743 .L440:
2569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6744 .loc 1 2569 0
6745 0138 04B0 add sp, sp, #16
6746 @ sp needed
6747 .LVL609:
6748 .LVL610:
6749 .LVL611:
6750 013a 04BC pop {r2}
6751 013c 9046 mov r8, r2
6752 013e F0BD pop {r4, r5, r6, r7, pc}
6753 .LVL612:
6754 .L452:
2473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6755 .loc 1 2473 0
6756 0140 0220 movs r0, #2
6757 .LVL613:
6758 0142 F9E7 b .L440
6759 .LVL614:
ARM GAS /tmp/ccpuPECZ.s page 221
6760 .L453:
2477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6761 .loc 1 2477 0
6762 0144 0220 movs r0, #2
6763 .LVL615:
6764 0146 F7E7 b .L440
6765 .LVL616:
6766 .L454:
2511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6767 .loc 1 2511 0
6768 0148 0320 movs r0, #3
6769 014a F5E7 b .L440
6770 .L455:
2530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6771 .loc 1 2530 0
6772 014c 0320 movs r0, #3
6773 014e F3E7 b .L440
6774 .L456:
2549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6775 .loc 1 2549 0
6776 0150 0320 movs r0, #3
6777 0152 F1E7 b .L440
6778 .L462:
6779 .align 2
6780 .L461:
6781 0154 00200002 .word 33562624
6782 .cfi_endproc
6783 .LFE61:
6785 .section .text.HAL_I2C_Master_Sequential_Transmit_IT,"ax",%progbits
6786 .align 1
6787 .global HAL_I2C_Master_Sequential_Transmit_IT
6788 .syntax unified
6789 .code 16
6790 .thumb_func
6791 .fpu softvfp
6793 HAL_I2C_Master_Sequential_Transmit_IT:
6794 .LFB62:
2584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
6795 .loc 1 2584 0
6796 .cfi_startproc
6797 @ args = 4, pretend = 0, frame = 0
6798 @ frame_needed = 0, uses_anonymous_args = 0
6799 .LVL617:
6800 0000 F0B5 push {r4, r5, r6, r7, lr}
6801 .LCFI49:
6802 .cfi_def_cfa_offset 20
6803 .cfi_offset 4, -20
6804 .cfi_offset 5, -16
6805 .cfi_offset 6, -12
6806 .cfi_offset 7, -8
6807 .cfi_offset 14, -4
6808 0002 C646 mov lr, r8
6809 0004 00B5 push {lr}
6810 .LCFI50:
6811 .cfi_def_cfa_offset 24
6812 .cfi_offset 8, -24
6813 .LVL618:
ARM GAS /tmp/ccpuPECZ.s page 222
2591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6814 .loc 1 2591 0
6815 0006 4124 movs r4, #65
6816 0008 045D ldrb r4, [r0, r4]
6817 000a 202C cmp r4, #32
6818 000c 50D1 bne .L469
2594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6819 .loc 1 2594 0
6820 000e 2034 adds r4, r4, #32
6821 0010 045D ldrb r4, [r0, r4]
6822 0012 012C cmp r4, #1
6823 0014 50D0 beq .L470
2594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6824 .loc 1 2594 0 is_stmt 0 discriminator 2
6825 0016 4024 movs r4, #64
6826 0018 0125 movs r5, #1
6827 001a 0555 strb r5, [r0, r4]
2596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
6828 .loc 1 2596 0 is_stmt 1 discriminator 2
6829 001c 0134 adds r4, r4, #1
6830 001e 2035 adds r5, r5, #32
6831 0020 0555 strb r5, [r0, r4]
2597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6832 .loc 1 2597 0 discriminator 2
6833 0022 0134 adds r4, r4, #1
6834 0024 113D subs r5, r5, #17
6835 0026 0555 strb r5, [r0, r4]
2598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6836 .loc 1 2598 0 discriminator 2
6837 0028 0024 movs r4, #0
6838 002a 4464 str r4, [r0, #68]
2601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
6839 .loc 1 2601 0 discriminator 2
6840 002c 4262 str r2, [r0, #36]
2602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
6841 .loc 1 2602 0 discriminator 2
6842 002e 4385 strh r3, [r0, #42]
2603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
6843 .loc 1 2603 0 discriminator 2
6844 0030 069B ldr r3, [sp, #24]
6845 .LVL619:
6846 0032 C362 str r3, [r0, #44]
6847 .LVL620:
2604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6848 .loc 1 2604 0 discriminator 2
6849 0034 214B ldr r3, .L475
6850 0036 4363 str r3, [r0, #52]
2607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6851 .loc 1 2607 0 discriminator 2
6852 0038 438D ldrh r3, [r0, #42]
6853 003a 9BB2 uxth r3, r3
6854 003c FF2B cmp r3, #255
6855 003e 2CD9 bls .L465
2609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
6856 .loc 1 2609 0
6857 0040 FF23 movs r3, #255
6858 0042 0385 strh r3, [r0, #40]
ARM GAS /tmp/ccpuPECZ.s page 223
6859 .LVL621:
2610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6860 .loc 1 2610 0
6861 0044 8023 movs r3, #128
6862 0046 5B04 lsls r3, r3, #17
6863 0048 9846 mov r8, r3
6864 .LVL622:
6865 .L466:
2620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
6866 .loc 1 2620 0
6867 004a 036B ldr r3, [r0, #48]
6868 004c 112B cmp r3, #17
6869 004e 29D0 beq .L471
2586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6870 .loc 1 2586 0
6871 0050 1B4C ldr r4, .L475+4
6872 .L467:
6873 .LVL623:
2626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6874 .loc 1 2626 0
6875 0052 028D ldrh r2, [r0, #40]
6876 .LVL624:
6877 0054 D2B2 uxtb r2, r2
6878 .LVL625:
6879 .LBB272:
6880 .LBB273:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
6881 .loc 1 4713 0
6882 0056 0568 ldr r5, [r0]
6883 0058 6B68 ldr r3, [r5, #4]
6884 005a 670D lsrs r7, r4, #21
6885 005c BC46 mov ip, r7
6886 005e 194F ldr r7, .L475+8
6887 0060 6646 mov r6, ip
6888 0062 3743 orrs r7, r6
6889 0064 BB43 bics r3, r7
6890 0066 8905 lsls r1, r1, #22
6891 .LVL626:
6892 0068 890D lsrs r1, r1, #22
6893 006a 1204 lsls r2, r2, #16
6894 .LVL627:
6895 006c 1143 orrs r1, r2
6896 006e 4246 mov r2, r8
6897 0070 1143 orrs r1, r2
6898 0072 2143 orrs r1, r4
6899 0074 1943 orrs r1, r3
6900 0076 6960 str r1, [r5, #4]
6901 .LVL628:
6902 .LBE273:
6903 .LBE272:
2629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6904 .loc 1 2629 0
6905 0078 4023 movs r3, #64
6906 007a 0022 movs r2, #0
6907 007c C254 strb r2, [r0, r3]
6908 .LVL629:
6909 .LBB274:
ARM GAS /tmp/ccpuPECZ.s page 224
6910 .LBB275:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
6911 .loc 1 4728 0
6912 007e 436B ldr r3, [r0, #52]
6913 0080 114A ldr r2, .L475+12
6914 0082 9342 cmp r3, r2
6915 0084 12D0 beq .L472
6916 0086 114A ldr r2, .L475+16
6917 0088 9342 cmp r3, r2
6918 008a 0DD0 beq .L474
6919 008c F221 movs r1, #242
6920 .L468:
6921 .LVL630:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6922 .loc 1 4785 0
6923 008e 0268 ldr r2, [r0]
6924 0090 1368 ldr r3, [r2]
6925 0092 0B43 orrs r3, r1
6926 0094 1360 str r3, [r2]
6927 .LVL631:
6928 .LBE275:
6929 .LBE274:
2636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6930 .loc 1 2636 0
6931 0096 0020 movs r0, #0
6932 .LVL632:
6933 0098 0BE0 b .L464
6934 .LVL633:
6935 .L465:
2614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
6936 .loc 1 2614 0
6937 009a 438D ldrh r3, [r0, #42]
6938 009c 0385 strh r3, [r0, #40]
2615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6939 .loc 1 2615 0
6940 009e C36A ldr r3, [r0, #44]
6941 .LVL634:
6942 00a0 9846 mov r8, r3
6943 .LVL635:
6944 00a2 D2E7 b .L466
6945 .LVL636:
6946 .L471:
2622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6947 .loc 1 2622 0
6948 00a4 0024 movs r4, #0
6949 00a6 D4E7 b .L467
6950 .LVL637:
6951 .L474:
6952 .LBB277:
6953 .LBB276:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
6954 .loc 1 4728 0
6955 00a8 0021 movs r1, #0
6956 00aa F0E7 b .L468
6957 .L472:
6958 00ac 0021 movs r1, #0
6959 00ae EEE7 b .L468
ARM GAS /tmp/ccpuPECZ.s page 225
6960 .LVL638:
6961 .L469:
6962 .LBE276:
6963 .LBE277:
2640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
6964 .loc 1 2640 0
6965 00b0 0220 movs r0, #2
6966 .LVL639:
6967 .L464:
2642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6968 .loc 1 2642 0
6969 @ sp needed
6970 00b2 04BC pop {r2}
6971 00b4 9046 mov r8, r2
6972 00b6 F0BD pop {r4, r5, r6, r7, pc}
6973 .LVL640:
6974 .L470:
2594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
6975 .loc 1 2594 0
6976 00b8 0220 movs r0, #2
6977 .LVL641:
6978 00ba FAE7 b .L464
6979 .L476:
6980 .align 2
6981 .L475:
6982 00bc 00000000 .word I2C_Master_ISR_IT
6983 00c0 00200080 .word -2147475456
6984 00c4 FF63FF03 .word 67068927
6985 00c8 00000000 .word I2C_Master_ISR_DMA
6986 00cc 00000000 .word I2C_Slave_ISR_DMA
6987 .cfi_endproc
6988 .LFE62:
6990 .section .text.HAL_I2C_Master_Sequential_Receive_IT,"ax",%progbits
6991 .align 1
6992 .global HAL_I2C_Master_Sequential_Receive_IT
6993 .syntax unified
6994 .code 16
6995 .thumb_func
6996 .fpu softvfp
6998 HAL_I2C_Master_Sequential_Receive_IT:
6999 .LFB63:
2657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U;
7000 .loc 1 2657 0
7001 .cfi_startproc
7002 @ args = 4, pretend = 0, frame = 0
7003 @ frame_needed = 0, uses_anonymous_args = 0
7004 .LVL642:
7005 0000 F0B5 push {r4, r5, r6, r7, lr}
7006 .LCFI51:
7007 .cfi_def_cfa_offset 20
7008 .cfi_offset 4, -20
7009 .cfi_offset 5, -16
7010 .cfi_offset 6, -12
7011 .cfi_offset 7, -8
7012 .cfi_offset 14, -4
7013 0002 C646 mov lr, r8
7014 0004 00B5 push {lr}
ARM GAS /tmp/ccpuPECZ.s page 226
7015 .LCFI52:
7016 .cfi_def_cfa_offset 24
7017 .cfi_offset 8, -24
7018 .LVL643:
2664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7019 .loc 1 2664 0
7020 0006 4124 movs r4, #65
7021 0008 045D ldrb r4, [r0, r4]
7022 000a 202C cmp r4, #32
7023 000c 50D1 bne .L483
2667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7024 .loc 1 2667 0
7025 000e 2034 adds r4, r4, #32
7026 0010 045D ldrb r4, [r0, r4]
7027 0012 012C cmp r4, #1
7028 0014 50D0 beq .L484
2667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7029 .loc 1 2667 0 is_stmt 0 discriminator 2
7030 0016 4024 movs r4, #64
7031 0018 0125 movs r5, #1
7032 001a 0555 strb r5, [r0, r4]
2669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7033 .loc 1 2669 0 is_stmt 1 discriminator 2
7034 001c 0134 adds r4, r4, #1
7035 001e 2135 adds r5, r5, #33
7036 0020 0555 strb r5, [r0, r4]
2670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7037 .loc 1 2670 0 discriminator 2
7038 0022 0134 adds r4, r4, #1
7039 0024 123D subs r5, r5, #18
7040 0026 0555 strb r5, [r0, r4]
2671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7041 .loc 1 2671 0 discriminator 2
7042 0028 0024 movs r4, #0
7043 002a 4464 str r4, [r0, #68]
2674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
7044 .loc 1 2674 0 discriminator 2
7045 002c 4262 str r2, [r0, #36]
2675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7046 .loc 1 2675 0 discriminator 2
7047 002e 4385 strh r3, [r0, #42]
2676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7048 .loc 1 2676 0 discriminator 2
7049 0030 069B ldr r3, [sp, #24]
7050 .LVL644:
7051 0032 C362 str r3, [r0, #44]
7052 .LVL645:
2677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7053 .loc 1 2677 0 discriminator 2
7054 0034 214B ldr r3, .L489
7055 0036 4363 str r3, [r0, #52]
2680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7056 .loc 1 2680 0 discriminator 2
7057 0038 438D ldrh r3, [r0, #42]
7058 003a 9BB2 uxth r3, r3
7059 003c FF2B cmp r3, #255
7060 003e 2CD9 bls .L479
ARM GAS /tmp/ccpuPECZ.s page 227
2682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7061 .loc 1 2682 0
7062 0040 FF23 movs r3, #255
7063 0042 0385 strh r3, [r0, #40]
7064 .LVL646:
2683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7065 .loc 1 2683 0
7066 0044 8023 movs r3, #128
7067 0046 5B04 lsls r3, r3, #17
7068 0048 9846 mov r8, r3
7069 .LVL647:
7070 .L480:
2693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7071 .loc 1 2693 0
7072 004a 036B ldr r3, [r0, #48]
7073 004c 122B cmp r3, #18
7074 004e 29D0 beq .L485
2659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7075 .loc 1 2659 0
7076 0050 1B4C ldr r4, .L489+4
7077 .L481:
7078 .LVL648:
2699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7079 .loc 1 2699 0
7080 0052 028D ldrh r2, [r0, #40]
7081 .LVL649:
7082 0054 D2B2 uxtb r2, r2
7083 .LVL650:
7084 .LBB278:
7085 .LBB279:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
7086 .loc 1 4713 0
7087 0056 0568 ldr r5, [r0]
7088 0058 6B68 ldr r3, [r5, #4]
7089 005a 670D lsrs r7, r4, #21
7090 005c BC46 mov ip, r7
7091 005e 194F ldr r7, .L489+8
7092 0060 6646 mov r6, ip
7093 0062 3743 orrs r7, r6
7094 0064 BB43 bics r3, r7
7095 0066 8905 lsls r1, r1, #22
7096 .LVL651:
7097 0068 890D lsrs r1, r1, #22
7098 006a 1204 lsls r2, r2, #16
7099 .LVL652:
7100 006c 1143 orrs r1, r2
7101 006e 4246 mov r2, r8
7102 0070 1143 orrs r1, r2
7103 0072 2143 orrs r1, r4
7104 0074 1943 orrs r1, r3
7105 0076 6960 str r1, [r5, #4]
7106 .LVL653:
7107 .LBE279:
7108 .LBE278:
2702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7109 .loc 1 2702 0
7110 0078 4023 movs r3, #64
ARM GAS /tmp/ccpuPECZ.s page 228
7111 007a 0022 movs r2, #0
7112 007c C254 strb r2, [r0, r3]
7113 .LVL654:
7114 .LBB280:
7115 .LBB281:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
7116 .loc 1 4728 0
7117 007e 436B ldr r3, [r0, #52]
7118 0080 114A ldr r2, .L489+12
7119 0082 9342 cmp r3, r2
7120 0084 12D0 beq .L486
7121 0086 114A ldr r2, .L489+16
7122 0088 9342 cmp r3, r2
7123 008a 0DD0 beq .L488
7124 008c F421 movs r1, #244
7125 .L482:
7126 .LVL655:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7127 .loc 1 4785 0
7128 008e 0268 ldr r2, [r0]
7129 0090 1368 ldr r3, [r2]
7130 0092 0B43 orrs r3, r1
7131 0094 1360 str r3, [r2]
7132 .LVL656:
7133 .LBE281:
7134 .LBE280:
2709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7135 .loc 1 2709 0
7136 0096 0020 movs r0, #0
7137 .LVL657:
7138 0098 0BE0 b .L478
7139 .LVL658:
7140 .L479:
2687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7141 .loc 1 2687 0
7142 009a 438D ldrh r3, [r0, #42]
7143 009c 0385 strh r3, [r0, #40]
2688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7144 .loc 1 2688 0
7145 009e C36A ldr r3, [r0, #44]
7146 .LVL659:
7147 00a0 9846 mov r8, r3
7148 .LVL660:
7149 00a2 D2E7 b .L480
7150 .LVL661:
7151 .L485:
2695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7152 .loc 1 2695 0
7153 00a4 0024 movs r4, #0
7154 00a6 D4E7 b .L481
7155 .LVL662:
7156 .L488:
7157 .LBB283:
7158 .LBB282:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
7159 .loc 1 4728 0
7160 00a8 0021 movs r1, #0
ARM GAS /tmp/ccpuPECZ.s page 229
7161 00aa F0E7 b .L482
7162 .L486:
7163 00ac 0021 movs r1, #0
7164 00ae EEE7 b .L482
7165 .LVL663:
7166 .L483:
7167 .LBE282:
7168 .LBE283:
2713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7169 .loc 1 2713 0
7170 00b0 0220 movs r0, #2
7171 .LVL664:
7172 .L478:
2715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7173 .loc 1 2715 0
7174 @ sp needed
7175 00b2 04BC pop {r2}
7176 00b4 9046 mov r8, r2
7177 00b6 F0BD pop {r4, r5, r6, r7, pc}
7178 .LVL665:
7179 .L484:
2667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7180 .loc 1 2667 0
7181 00b8 0220 movs r0, #2
7182 .LVL666:
7183 00ba FAE7 b .L478
7184 .L490:
7185 .align 2
7186 .L489:
7187 00bc 00000000 .word I2C_Master_ISR_IT
7188 00c0 00240080 .word -2147474432
7189 00c4 FF63FF03 .word 67068927
7190 00c8 00000000 .word I2C_Master_ISR_DMA
7191 00cc 00000000 .word I2C_Slave_ISR_DMA
7192 .cfi_endproc
7193 .LFE63:
7195 .section .text.HAL_I2C_Slave_Sequential_Transmit_IT,"ax",%progbits
7196 .align 1
7197 .global HAL_I2C_Slave_Sequential_Transmit_IT
7198 .syntax unified
7199 .code 16
7200 .thumb_func
7201 .fpu softvfp
7203 HAL_I2C_Slave_Sequential_Transmit_IT:
7204 .LFB64:
2728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
7205 .loc 1 2728 0
7206 .cfi_startproc
7207 @ args = 0, pretend = 0, frame = 0
7208 @ frame_needed = 0, uses_anonymous_args = 0
7209 .LVL667:
7210 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
7211 .LCFI53:
7212 .cfi_def_cfa_offset 24
7213 .cfi_offset 3, -24
7214 .cfi_offset 4, -20
7215 .cfi_offset 5, -16
ARM GAS /tmp/ccpuPECZ.s page 230
7216 .cfi_offset 6, -12
7217 .cfi_offset 7, -8
7218 .cfi_offset 14, -4
7219 0002 0700 movs r7, r0
7220 0004 0C00 movs r4, r1
7221 0006 1500 movs r5, r2
7222 0008 1E00 movs r6, r3
2732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7223 .loc 1 2732 0
7224 000a 4123 movs r3, #65
7225 .LVL668:
7226 000c C35C ldrb r3, [r0, r3]
7227 000e 2822 movs r2, #40
7228 .LVL669:
7229 0010 1340 ands r3, r2
7230 0012 282B cmp r3, #40
7231 0014 01D0 beq .L502
2787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7232 .loc 1 2787 0
7233 0016 0120 movs r0, #1
7234 .LVL670:
7235 .L492:
2789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7236 .loc 1 2789 0
7237 @ sp needed
7238 .LVL671:
7239 .LVL672:
7240 .LVL673:
7241 0018 F8BD pop {r3, r4, r5, r6, r7, pc}
7242 .LVL674:
7243 .L502:
2734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7244 .loc 1 2734 0
7245 001a 0029 cmp r1, #0
7246 001c 45D0 beq .L497
2734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7247 .loc 1 2734 0 is_stmt 0 discriminator 1
7248 001e 002D cmp r5, #0
7249 0020 01D1 bne .L503
2736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7250 .loc 1 2736 0 is_stmt 1
7251 0022 0120 movs r0, #1
7252 .LVL675:
7253 0024 F8E7 b .L492
7254 .LVL676:
7255 .L503:
2740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7256 .loc 1 2740 0
7257 0026 0521 movs r1, #5
7258 .LVL677:
7259 0028 FFF7FEFF bl I2C_Disable_IRQ
7260 .LVL678:
2743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7261 .loc 1 2743 0
7262 002c 4023 movs r3, #64
7263 002e FB5C ldrb r3, [r7, r3]
7264 0030 012B cmp r3, #1
ARM GAS /tmp/ccpuPECZ.s page 231
7265 0032 3CD0 beq .L499
2743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7266 .loc 1 2743 0 is_stmt 0 discriminator 2
7267 0034 4023 movs r3, #64
7268 0036 0122 movs r2, #1
7269 0038 FA54 strb r2, [r7, r3]
2747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7270 .loc 1 2747 0 is_stmt 1 discriminator 2
7271 003a 0133 adds r3, r3, #1
7272 003c FB5C ldrb r3, [r7, r3]
7273 003e 2A2B cmp r3, #42
7274 0040 2AD0 beq .L504
7275 .L493:
2753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
7276 .loc 1 2753 0
7277 0042 4123 movs r3, #65
7278 0044 2922 movs r2, #41
7279 0046 FA54 strb r2, [r7, r3]
2754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7280 .loc 1 2754 0
7281 0048 0133 adds r3, r3, #1
7282 004a 093A subs r2, r2, #9
7283 004c FA54 strb r2, [r7, r3]
2755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7284 .loc 1 2755 0
7285 004e 0023 movs r3, #0
7286 0050 7B64 str r3, [r7, #68]
2758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7287 .loc 1 2758 0
7288 0052 3A68 ldr r2, [r7]
7289 0054 5368 ldr r3, [r2, #4]
7290 0056 1749 ldr r1, .L506
7291 0058 0B40 ands r3, r1
7292 005a 5360 str r3, [r2, #4]
2761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
7293 .loc 1 2761 0
7294 005c 7C62 str r4, [r7, #36]
2762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
7295 .loc 1 2762 0
7296 005e 7D85 strh r5, [r7, #42]
2763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7297 .loc 1 2763 0
7298 0060 7B8D ldrh r3, [r7, #42]
7299 0062 3B85 strh r3, [r7, #40]
2764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
7300 .loc 1 2764 0
7301 0064 FE62 str r6, [r7, #44]
2765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7302 .loc 1 2765 0
7303 0066 144B ldr r3, .L506+4
7304 0068 7B63 str r3, [r7, #52]
2767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7305 .loc 1 2767 0
7306 006a 3B68 ldr r3, [r7]
7307 006c 9A69 ldr r2, [r3, #24]
7308 006e D203 lsls r2, r2, #15
7309 0070 01D5 bpl .L494
ARM GAS /tmp/ccpuPECZ.s page 232
2771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7310 .loc 1 2771 0
7311 0072 0822 movs r2, #8
7312 0074 DA61 str r2, [r3, #28]
7313 .L494:
2775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7314 .loc 1 2775 0
7315 0076 4023 movs r3, #64
7316 0078 0022 movs r2, #0
7317 007a FA54 strb r2, [r7, r3]
7318 .LVL679:
7319 .LBB284:
7320 .LBB285:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
7321 .loc 1 4728 0
7322 007c 7B6B ldr r3, [r7, #52]
7323 007e 0F4A ldr r2, .L506+8
7324 0080 9342 cmp r3, r2
7325 0082 10D0 beq .L500
7326 0084 0E4A ldr r2, .L506+12
7327 0086 9342 cmp r3, r2
7328 0088 0BD0 beq .L505
7329 008a FA21 movs r1, #250
7330 .L495:
7331 .LVL680:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7332 .loc 1 4785 0
7333 008c 3A68 ldr r2, [r7]
7334 008e 1368 ldr r3, [r2]
7335 0090 0B43 orrs r3, r1
7336 0092 1360 str r3, [r2]
7337 .LVL681:
7338 .LBE285:
7339 .LBE284:
2783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7340 .loc 1 2783 0
7341 0094 0020 movs r0, #0
7342 0096 BFE7 b .L492
7343 .L504:
2750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7344 .loc 1 2750 0
7345 0098 0221 movs r1, #2
7346 009a 3800 movs r0, r7
7347 009c FFF7FEFF bl I2C_Disable_IRQ
7348 .LVL682:
7349 00a0 CFE7 b .L493
7350 .LVL683:
7351 .L505:
7352 .LBB287:
7353 .LBB286:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
7354 .loc 1 4728 0
7355 00a2 B821 movs r1, #184
7356 00a4 F2E7 b .L495
7357 .L500:
7358 00a6 B821 movs r1, #184
7359 00a8 F0E7 b .L495
ARM GAS /tmp/ccpuPECZ.s page 233
7360 .LVL684:
7361 .L497:
7362 .LBE286:
7363 .LBE287:
2736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7364 .loc 1 2736 0
7365 00aa 0120 movs r0, #1
7366 .LVL685:
7367 00ac B4E7 b .L492
7368 .LVL686:
7369 .L499:
2743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7370 .loc 1 2743 0
7371 00ae 0220 movs r0, #2
7372 00b0 B2E7 b .L492
7373 .L507:
7374 00b2 C046 .align 2
7375 .L506:
7376 00b4 FF7FFFFF .word -32769
7377 00b8 00000000 .word I2C_Slave_ISR_IT
7378 00bc 00000000 .word I2C_Master_ISR_DMA
7379 00c0 00000000 .word I2C_Slave_ISR_DMA
7380 .cfi_endproc
7381 .LFE64:
7383 .section .text.HAL_I2C_Slave_Sequential_Receive_IT,"ax",%progbits
7384 .align 1
7385 .global HAL_I2C_Slave_Sequential_Receive_IT
7386 .syntax unified
7387 .code 16
7388 .thumb_func
7389 .fpu softvfp
7391 HAL_I2C_Slave_Sequential_Receive_IT:
7392 .LFB65:
2802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */
7393 .loc 1 2802 0
7394 .cfi_startproc
7395 @ args = 0, pretend = 0, frame = 0
7396 @ frame_needed = 0, uses_anonymous_args = 0
7397 .LVL687:
7398 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
7399 .LCFI54:
7400 .cfi_def_cfa_offset 24
7401 .cfi_offset 3, -24
7402 .cfi_offset 4, -20
7403 .cfi_offset 5, -16
7404 .cfi_offset 6, -12
7405 .cfi_offset 7, -8
7406 .cfi_offset 14, -4
7407 0002 0700 movs r7, r0
7408 0004 0C00 movs r4, r1
7409 0006 1500 movs r5, r2
7410 0008 1E00 movs r6, r3
2806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7411 .loc 1 2806 0
7412 000a 4123 movs r3, #65
7413 .LVL688:
7414 000c C35C ldrb r3, [r0, r3]
ARM GAS /tmp/ccpuPECZ.s page 234
7415 000e 2822 movs r2, #40
7416 .LVL689:
7417 0010 1340 ands r3, r2
7418 0012 282B cmp r3, #40
7419 0014 01D0 beq .L519
2861:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7420 .loc 1 2861 0
7421 0016 0120 movs r0, #1
7422 .LVL690:
7423 .L509:
2863:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7424 .loc 1 2863 0
7425 @ sp needed
7426 .LVL691:
7427 .LVL692:
7428 .LVL693:
7429 0018 F8BD pop {r3, r4, r5, r6, r7, pc}
7430 .LVL694:
7431 .L519:
2808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7432 .loc 1 2808 0
7433 001a 0029 cmp r1, #0
7434 001c 45D0 beq .L514
2808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7435 .loc 1 2808 0 is_stmt 0 discriminator 1
7436 001e 002D cmp r5, #0
7437 0020 01D1 bne .L520
2810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7438 .loc 1 2810 0 is_stmt 1
7439 0022 0120 movs r0, #1
7440 .LVL695:
7441 0024 F8E7 b .L509
7442 .LVL696:
7443 .L520:
2814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7444 .loc 1 2814 0
7445 0026 0621 movs r1, #6
7446 .LVL697:
7447 0028 FFF7FEFF bl I2C_Disable_IRQ
7448 .LVL698:
2817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7449 .loc 1 2817 0
7450 002c 4023 movs r3, #64
7451 002e FB5C ldrb r3, [r7, r3]
7452 0030 012B cmp r3, #1
7453 0032 3CD0 beq .L516
2817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7454 .loc 1 2817 0 is_stmt 0 discriminator 2
7455 0034 4023 movs r3, #64
7456 0036 0122 movs r2, #1
7457 0038 FA54 strb r2, [r7, r3]
2821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7458 .loc 1 2821 0 is_stmt 1 discriminator 2
7459 003a 0133 adds r3, r3, #1
7460 003c FB5C ldrb r3, [r7, r3]
7461 003e 292B cmp r3, #41
7462 0040 2AD0 beq .L521
ARM GAS /tmp/ccpuPECZ.s page 235
7463 .L510:
2827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
7464 .loc 1 2827 0
7465 0042 4123 movs r3, #65
7466 0044 2A22 movs r2, #42
7467 0046 FA54 strb r2, [r7, r3]
2828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7468 .loc 1 2828 0
7469 0048 0133 adds r3, r3, #1
7470 004a 0A3A subs r2, r2, #10
7471 004c FA54 strb r2, [r7, r3]
2829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7472 .loc 1 2829 0
7473 004e 0023 movs r3, #0
7474 0050 7B64 str r3, [r7, #68]
2832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7475 .loc 1 2832 0
7476 0052 3A68 ldr r2, [r7]
7477 0054 5368 ldr r3, [r2, #4]
7478 0056 1749 ldr r1, .L523
7479 0058 0B40 ands r3, r1
7480 005a 5360 str r3, [r2, #4]
2835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size;
7481 .loc 1 2835 0
7482 005c 7C62 str r4, [r7, #36]
2836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
7483 .loc 1 2836 0
7484 005e 7D85 strh r5, [r7, #42]
2837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7485 .loc 1 2837 0
7486 0060 7B8D ldrh r3, [r7, #42]
7487 0062 3B85 strh r3, [r7, #40]
2838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
7488 .loc 1 2838 0
7489 0064 FE62 str r6, [r7, #44]
2839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7490 .loc 1 2839 0
7491 0066 144B ldr r3, .L523+4
7492 0068 7B63 str r3, [r7, #52]
2841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7493 .loc 1 2841 0
7494 006a 3B68 ldr r3, [r7]
7495 006c 9A69 ldr r2, [r3, #24]
7496 006e D203 lsls r2, r2, #15
7497 0070 01D4 bmi .L511
2845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7498 .loc 1 2845 0
7499 0072 0822 movs r2, #8
7500 0074 DA61 str r2, [r3, #28]
7501 .L511:
2849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7502 .loc 1 2849 0
7503 0076 4023 movs r3, #64
7504 0078 0022 movs r2, #0
7505 007a FA54 strb r2, [r7, r3]
7506 .LVL699:
7507 .LBB288:
ARM GAS /tmp/ccpuPECZ.s page 236
7508 .LBB289:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
7509 .loc 1 4728 0
7510 007c 7B6B ldr r3, [r7, #52]
7511 007e 0F4A ldr r2, .L523+8
7512 0080 9342 cmp r3, r2
7513 0082 10D0 beq .L517
7514 0084 0E4A ldr r2, .L523+12
7515 0086 9342 cmp r3, r2
7516 0088 0BD0 beq .L522
7517 008a FC21 movs r1, #252
7518 .L512:
7519 .LVL700:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7520 .loc 1 4785 0
7521 008c 3A68 ldr r2, [r7]
7522 008e 1368 ldr r3, [r2]
7523 0090 0B43 orrs r3, r1
7524 0092 1360 str r3, [r2]
7525 .LVL701:
7526 .LBE289:
7527 .LBE288:
2857:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7528 .loc 1 2857 0
7529 0094 0020 movs r0, #0
7530 0096 BFE7 b .L509
7531 .L521:
2824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7532 .loc 1 2824 0
7533 0098 0121 movs r1, #1
7534 009a 3800 movs r0, r7
7535 009c FFF7FEFF bl I2C_Disable_IRQ
7536 .LVL702:
7537 00a0 CFE7 b .L510
7538 .LVL703:
7539 .L522:
7540 .LBB291:
7541 .LBB290:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
7542 .loc 1 4728 0
7543 00a2 B821 movs r1, #184
7544 00a4 F2E7 b .L512
7545 .L517:
7546 00a6 B821 movs r1, #184
7547 00a8 F0E7 b .L512
7548 .LVL704:
7549 .L514:
7550 .LBE290:
7551 .LBE291:
2810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7552 .loc 1 2810 0
7553 00aa 0120 movs r0, #1
7554 .LVL705:
7555 00ac B4E7 b .L509
7556 .LVL706:
7557 .L516:
2817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 237
7558 .loc 1 2817 0
7559 00ae 0220 movs r0, #2
7560 00b0 B2E7 b .L509
7561 .L524:
7562 00b2 C046 .align 2
7563 .L523:
7564 00b4 FF7FFFFF .word -32769
7565 00b8 00000000 .word I2C_Slave_ISR_IT
7566 00bc 00000000 .word I2C_Master_ISR_DMA
7567 00c0 00000000 .word I2C_Slave_ISR_DMA
7568 .cfi_endproc
7569 .LFE65:
7571 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits
7572 .align 1
7573 .global HAL_I2C_EnableListen_IT
7574 .syntax unified
7575 .code 16
7576 .thumb_func
7577 .fpu softvfp
7579 HAL_I2C_EnableListen_IT:
7580 .LFB66:
2872:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
7581 .loc 1 2872 0
7582 .cfi_startproc
7583 @ args = 0, pretend = 0, frame = 0
7584 @ frame_needed = 0, uses_anonymous_args = 0
7585 @ link register save eliminated.
7586 .LVL707:
2873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7587 .loc 1 2873 0
7588 0000 4123 movs r3, #65
7589 0002 C35C ldrb r3, [r0, r3]
7590 0004 202B cmp r3, #32
7591 0006 0BD1 bne .L527
2875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
7592 .loc 1 2875 0
7593 0008 2133 adds r3, r3, #33
7594 000a 2822 movs r2, #40
7595 000c C254 strb r2, [r0, r3]
2876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7596 .loc 1 2876 0
7597 000e 054B ldr r3, .L528
7598 0010 4363 str r3, [r0, #52]
7599 .LVL708:
7600 .LBB292:
7601 .LBB293:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7602 .loc 1 4785 0
7603 0012 0268 ldr r2, [r0]
7604 0014 1368 ldr r3, [r2]
7605 0016 B821 movs r1, #184
7606 0018 0B43 orrs r3, r1
7607 001a 1360 str r3, [r2]
7608 .LVL709:
7609 .LBE293:
7610 .LBE292:
2881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpuPECZ.s page 238
7611 .loc 1 2881 0
7612 001c 0020 movs r0, #0
7613 .LVL710:
7614 .L526:
2887:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7615 .loc 1 2887 0
7616 @ sp needed
7617 001e 7047 bx lr
7618 .LVL711:
7619 .L527:
2885:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7620 .loc 1 2885 0
7621 0020 0220 movs r0, #2
7622 .LVL712:
7623 0022 FCE7 b .L526
7624 .L529:
7625 .align 2
7626 .L528:
7627 0024 00000000 .word I2C_Slave_ISR_IT
7628 .cfi_endproc
7629 .LFE66:
7631 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits
7632 .align 1
7633 .global HAL_I2C_DisableListen_IT
7634 .syntax unified
7635 .code 16
7636 .thumb_func
7637 .fpu softvfp
7639 HAL_I2C_DisableListen_IT:
7640 .LFB67:
2896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
7641 .loc 1 2896 0
7642 .cfi_startproc
7643 @ args = 0, pretend = 0, frame = 0
7644 @ frame_needed = 0, uses_anonymous_args = 0
7645 .LVL713:
7646 0000 70B5 push {r4, r5, r6, lr}
7647 .LCFI55:
7648 .cfi_def_cfa_offset 16
7649 .cfi_offset 4, -16
7650 .cfi_offset 5, -12
7651 .cfi_offset 6, -8
7652 .cfi_offset 14, -4
2901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7653 .loc 1 2901 0
7654 0002 4123 movs r3, #65
7655 0004 C35C ldrb r3, [r0, r3]
7656 0006 282B cmp r3, #40
7657 0008 01D0 beq .L533
2916:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7658 .loc 1 2916 0
7659 000a 0220 movs r0, #2
7660 .LVL714:
7661 .L531:
2918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7662 .loc 1 2918 0
7663 @ sp needed
ARM GAS /tmp/ccpuPECZ.s page 239
7664 000c 70BD pop {r4, r5, r6, pc}
7665 .LVL715:
7666 .L533:
2903:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
7667 .loc 1 2903 0
7668 000e 4124 movs r4, #65
7669 0010 025D ldrb r2, [r0, r4]
7670 .LVL716:
2904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7671 .loc 1 2904 0
7672 0012 4221 movs r1, #66
7673 0014 435C ldrb r3, [r0, r1]
7674 0016 0325 movs r5, #3
7675 0018 2A40 ands r2, r5
7676 .LVL717:
7677 001a 1343 orrs r3, r2
7678 001c 0363 str r3, [r0, #48]
2905:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7679 .loc 1 2905 0
7680 001e 2023 movs r3, #32
7681 0020 0355 strb r3, [r0, r4]
2906:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
7682 .loc 1 2906 0
7683 0022 0023 movs r3, #0
7684 0024 4354 strb r3, [r0, r1]
2907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7685 .loc 1 2907 0
7686 0026 4363 str r3, [r0, #52]
2910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7687 .loc 1 2910 0
7688 0028 3E39 subs r1, r1, #62
7689 002a FFF7FEFF bl I2C_Disable_IRQ
7690 .LVL718:
2912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7691 .loc 1 2912 0
7692 002e 0020 movs r0, #0
7693 0030 ECE7 b .L531
7694 .cfi_endproc
7695 .LFE67:
7697 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits
7698 .align 1
7699 .global HAL_I2C_Master_Abort_IT
7700 .syntax unified
7701 .code 16
7702 .thumb_func
7703 .fpu softvfp
7705 HAL_I2C_Master_Abort_IT:
7706 .LFB68:
2929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER)
7707 .loc 1 2929 0
7708 .cfi_startproc
7709 @ args = 0, pretend = 0, frame = 0
7710 @ frame_needed = 0, uses_anonymous_args = 0
7711 .LVL719:
7712 0000 70B5 push {r4, r5, r6, lr}
7713 .LCFI56:
7714 .cfi_def_cfa_offset 16
ARM GAS /tmp/ccpuPECZ.s page 240
7715 .cfi_offset 4, -16
7716 .cfi_offset 5, -12
7717 .cfi_offset 6, -8
7718 .cfi_offset 14, -4
7719 0002 0400 movs r4, r0
7720 0004 0D00 movs r5, r1
2930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7721 .loc 1 2930 0
7722 0006 4223 movs r3, #66
7723 0008 C35C ldrb r3, [r0, r3]
7724 000a 102B cmp r3, #16
7725 000c 01D0 beq .L541
2960:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7726 .loc 1 2960 0
7727 000e 0120 movs r0, #1
7728 .LVL720:
7729 .L535:
2962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7730 .loc 1 2962 0
7731 @ sp needed
7732 .LVL721:
7733 0010 70BD pop {r4, r5, r6, pc}
7734 .LVL722:
7735 .L541:
2933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7736 .loc 1 2933 0
7737 0012 3033 adds r3, r3, #48
7738 0014 C35C ldrb r3, [r0, r3]
7739 0016 012B cmp r3, #1
7740 0018 2AD0 beq .L538
2933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7741 .loc 1 2933 0 is_stmt 0 discriminator 2
7742 001a 4026 movs r6, #64
7743 001c 0123 movs r3, #1
7744 001e 8355 strb r3, [r0, r6]
2936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
7745 .loc 1 2936 0 is_stmt 1 discriminator 2
7746 0020 0221 movs r1, #2
7747 .LVL723:
7748 0022 FFF7FEFF bl I2C_Disable_IRQ
7749 .LVL724:
2937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7750 .loc 1 2937 0 discriminator 2
7751 0026 0121 movs r1, #1
7752 0028 2000 movs r0, r4
7753 002a FFF7FEFF bl I2C_Disable_IRQ
7754 .LVL725:
2940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7755 .loc 1 2940 0 discriminator 2
7756 002e 4123 movs r3, #65
7757 0030 6022 movs r2, #96
7758 0032 E254 strb r2, [r4, r3]
7759 .LVL726:
7760 .LBB294:
7761 .LBB295:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
7762 .loc 1 4713 0 discriminator 2
ARM GAS /tmp/ccpuPECZ.s page 241
7763 0034 2168 ldr r1, [r4]
7764 0036 4B68 ldr r3, [r1, #4]
7765 0038 0E4A ldr r2, .L543
7766 003a 1340 ands r3, r2
7767 003c AD05 lsls r5, r5, #22
7768 .LVL727:
7769 003e AD0D lsrs r5, r5, #22
7770 0040 0D4A ldr r2, .L543+4
7771 0042 1543 orrs r5, r2
7772 0044 1D43 orrs r5, r3
7773 0046 4D60 str r5, [r1, #4]
7774 .LVL728:
7775 .LBE295:
7776 .LBE294:
2947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7777 .loc 1 2947 0 discriminator 2
7778 0048 0023 movs r3, #0
7779 004a A355 strb r3, [r4, r6]
7780 .LVL729:
7781 .LBB296:
7782 .LBB297:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
7783 .loc 1 4728 0 discriminator 2
7784 004c 636B ldr r3, [r4, #52]
7785 004e 0B4A ldr r2, .L543+8
7786 0050 9342 cmp r3, r2
7787 0052 0BD0 beq .L539
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
7788 .loc 1 4728 0 is_stmt 0
7789 0054 0A4A ldr r2, .L543+12
7790 0056 9342 cmp r3, r2
7791 0058 06D0 beq .L542
4778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7792 .loc 1 4778 0 is_stmt 1
7793 005a F421 movs r1, #244
7794 .L536:
7795 .LVL730:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7796 .loc 1 4785 0
7797 005c 2268 ldr r2, [r4]
7798 005e 1368 ldr r3, [r2]
7799 0060 0B43 orrs r3, r1
7800 0062 1360 str r3, [r2]
7801 .LVL731:
7802 .LBE297:
7803 .LBE296:
2954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7804 .loc 1 2954 0
7805 0064 0020 movs r0, #0
7806 0066 D3E7 b .L535
7807 .LVL732:
7808 .L542:
7809 .LBB299:
7810 .LBB298:
4752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7811 .loc 1 4752 0
7812 0068 6021 movs r1, #96
ARM GAS /tmp/ccpuPECZ.s page 242
7813 006a F7E7 b .L536
7814 .L539:
7815 006c 6021 movs r1, #96
7816 006e F5E7 b .L536
7817 .LVL733:
7818 .L538:
7819 .LBE298:
7820 .LBE299:
2933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7821 .loc 1 2933 0
7822 0070 0220 movs r0, #2
7823 .LVL734:
7824 0072 CDE7 b .L535
7825 .L544:
7826 .align 2
7827 .L543:
7828 0074 009800FC .word -67069952
7829 0078 00400182 .word -2113847296
7830 007c 00000000 .word I2C_Master_ISR_DMA
7831 0080 00000000 .word I2C_Slave_ISR_DMA
7832 .cfi_endproc
7833 .LFE68:
7835 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits
7836 .align 1
7837 .global HAL_I2C_EV_IRQHandler
7838 .syntax unified
7839 .code 16
7840 .thumb_func
7841 .fpu softvfp
7843 HAL_I2C_EV_IRQHandler:
7844 .LFB69:
2979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
7845 .loc 1 2979 0
7846 .cfi_startproc
7847 @ args = 0, pretend = 0, frame = 0
7848 @ frame_needed = 0, uses_anonymous_args = 0
7849 .LVL735:
7850 0000 10B5 push {r4, lr}
7851 .LCFI57:
7852 .cfi_def_cfa_offset 8
7853 .cfi_offset 4, -8
7854 .cfi_offset 14, -4
2981:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
7855 .loc 1 2981 0
7856 0002 0368 ldr r3, [r0]
7857 0004 9969 ldr r1, [r3, #24]
7858 .LVL736:
2982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7859 .loc 1 2982 0
7860 0006 1A68 ldr r2, [r3]
7861 .LVL737:
2985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7862 .loc 1 2985 0
7863 0008 436B ldr r3, [r0, #52]
7864 000a 002B cmp r3, #0
7865 000c 00D0 beq .L545
2987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpuPECZ.s page 243
7866 .loc 1 2987 0
7867 000e 9847 blx r3
7868 .LVL738:
7869 .L545:
2989:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7870 .loc 1 2989 0
7871 @ sp needed
7872 0010 10BD pop {r4, pc}
7873 .cfi_endproc
7874 .LFE69:
7876 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits
7877 .align 1
7878 .weak HAL_I2C_MasterTxCpltCallback
7879 .syntax unified
7880 .code 16
7881 .thumb_func
7882 .fpu softvfp
7884 HAL_I2C_MasterTxCpltCallback:
7885 .LFB71:
3043:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
7886 .loc 1 3043 0
7887 .cfi_startproc
7888 @ args = 0, pretend = 0, frame = 0
7889 @ frame_needed = 0, uses_anonymous_args = 0
7890 @ link register save eliminated.
7891 .LVL739:
3050:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7892 .loc 1 3050 0
7893 @ sp needed
7894 0000 7047 bx lr
7895 .cfi_endproc
7896 .LFE71:
7898 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits
7899 .align 1
7900 .weak HAL_I2C_MasterRxCpltCallback
7901 .syntax unified
7902 .code 16
7903 .thumb_func
7904 .fpu softvfp
7906 HAL_I2C_MasterRxCpltCallback:
7907 .LFB72:
3059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
7908 .loc 1 3059 0
7909 .cfi_startproc
7910 @ args = 0, pretend = 0, frame = 0
7911 @ frame_needed = 0, uses_anonymous_args = 0
7912 @ link register save eliminated.
7913 .LVL740:
3066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7914 .loc 1 3066 0
7915 @ sp needed
7916 0000 7047 bx lr
7917 .cfi_endproc
7918 .LFE72:
7920 .section .text.I2C_ITMasterSequentialCplt,"ax",%progbits
7921 .align 1
7922 .syntax unified
ARM GAS /tmp/ccpuPECZ.s page 244
7923 .code 16
7924 .thumb_func
7925 .fpu softvfp
7927 I2C_ITMasterSequentialCplt:
7928 .LFB91:
3865:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset I2C handle mode */
7929 .loc 1 3865 0
7930 .cfi_startproc
7931 @ args = 0, pretend = 0, frame = 0
7932 @ frame_needed = 0, uses_anonymous_args = 0
7933 .LVL741:
7934 0000 70B5 push {r4, r5, r6, lr}
7935 .LCFI58:
7936 .cfi_def_cfa_offset 16
7937 .cfi_offset 4, -16
7938 .cfi_offset 5, -12
7939 .cfi_offset 6, -8
7940 .cfi_offset 14, -4
7941 0002 0400 movs r4, r0
3867:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7942 .loc 1 3867 0
7943 0004 4223 movs r3, #66
7944 0006 0022 movs r2, #0
7945 0008 C254 strb r2, [r0, r3]
3871:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
7946 .loc 1 3871 0
7947 000a 013B subs r3, r3, #1
7948 000c C35C ldrb r3, [r0, r3]
7949 000e 212B cmp r3, #33
7950 0010 0FD0 beq .L552
3889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
7951 .loc 1 3889 0
7952 0012 4123 movs r3, #65
7953 0014 2022 movs r2, #32
7954 0016 C254 strb r2, [r0, r3]
3890:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
7955 .loc 1 3890 0
7956 0018 2F3B subs r3, r3, #47
7957 001a 0363 str r3, [r0, #48]
3891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7958 .loc 1 3891 0
7959 001c 0025 movs r5, #0
7960 001e 4563 str r5, [r0, #52]
3894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7961 .loc 1 3894 0
7962 0020 0221 movs r1, #2
7963 0022 FFF7FEFF bl I2C_Disable_IRQ
7964 .LVL742:
3897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7965 .loc 1 3897 0
7966 0026 4023 movs r3, #64
7967 0028 E554 strb r5, [r4, r3]
3900:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7968 .loc 1 3900 0
7969 002a 2000 movs r0, r4
7970 002c FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
7971 .LVL743:
ARM GAS /tmp/ccpuPECZ.s page 245
7972 .L549:
3902:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7973 .loc 1 3902 0
7974 @ sp needed
7975 .LVL744:
7976 0030 70BD pop {r4, r5, r6, pc}
7977 .LVL745:
7978 .L552:
3873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
7979 .loc 1 3873 0
7980 0032 2033 adds r3, r3, #32
7981 0034 2032 adds r2, r2, #32
7982 0036 C254 strb r2, [r0, r3]
3874:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
7983 .loc 1 3874 0
7984 0038 303B subs r3, r3, #48
7985 003a 0363 str r3, [r0, #48]
3875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7986 .loc 1 3875 0
7987 003c 0025 movs r5, #0
7988 003e 4563 str r5, [r0, #52]
3878:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7989 .loc 1 3878 0
7990 0040 0121 movs r1, #1
7991 0042 FFF7FEFF bl I2C_Disable_IRQ
7992 .LVL746:
3881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
7993 .loc 1 3881 0
7994 0046 4023 movs r3, #64
7995 0048 E554 strb r5, [r4, r3]
3884:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
7996 .loc 1 3884 0
7997 004a 2000 movs r0, r4
7998 004c FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
7999 .LVL747:
8000 0050 EEE7 b .L549
8001 .cfi_endproc
8002 .LFE91:
8004 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits
8005 .align 1
8006 .weak HAL_I2C_SlaveTxCpltCallback
8007 .syntax unified
8008 .code 16
8009 .thumb_func
8010 .fpu softvfp
8012 HAL_I2C_SlaveTxCpltCallback:
8013 .LFB73:
3074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8014 .loc 1 3074 0
8015 .cfi_startproc
8016 @ args = 0, pretend = 0, frame = 0
8017 @ frame_needed = 0, uses_anonymous_args = 0
8018 @ link register save eliminated.
8019 .LVL748:
3081:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8020 .loc 1 3081 0
8021 @ sp needed
ARM GAS /tmp/ccpuPECZ.s page 246
8022 0000 7047 bx lr
8023 .cfi_endproc
8024 .LFE73:
8026 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits
8027 .align 1
8028 .weak HAL_I2C_SlaveRxCpltCallback
8029 .syntax unified
8030 .code 16
8031 .thumb_func
8032 .fpu softvfp
8034 HAL_I2C_SlaveRxCpltCallback:
8035 .LFB74:
3090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8036 .loc 1 3090 0
8037 .cfi_startproc
8038 @ args = 0, pretend = 0, frame = 0
8039 @ frame_needed = 0, uses_anonymous_args = 0
8040 @ link register save eliminated.
8041 .LVL749:
3097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8042 .loc 1 3097 0
8043 @ sp needed
8044 0000 7047 bx lr
8045 .cfi_endproc
8046 .LFE74:
8048 .section .text.I2C_ITSlaveSequentialCplt,"ax",%progbits
8049 .align 1
8050 .syntax unified
8051 .code 16
8052 .thumb_func
8053 .fpu softvfp
8055 I2C_ITSlaveSequentialCplt:
8056 .LFB92:
3910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset I2C handle mode */
8057 .loc 1 3910 0
8058 .cfi_startproc
8059 @ args = 0, pretend = 0, frame = 0
8060 @ frame_needed = 0, uses_anonymous_args = 0
8061 .LVL750:
8062 0000 10B5 push {r4, lr}
8063 .LCFI59:
8064 .cfi_def_cfa_offset 8
8065 .cfi_offset 4, -8
8066 .cfi_offset 14, -4
8067 0002 0400 movs r4, r0
3912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8068 .loc 1 3912 0
8069 0004 4223 movs r3, #66
8070 0006 0022 movs r2, #0
8071 0008 C254 strb r2, [r0, r3]
3914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8072 .loc 1 3914 0
8073 000a 013B subs r3, r3, #1
8074 000c C35C ldrb r3, [r0, r3]
8075 000e 292B cmp r3, #41
8076 0010 04D0 beq .L558
3930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 247
8077 .loc 1 3930 0
8078 0012 4123 movs r3, #65
8079 0014 C35C ldrb r3, [r0, r3]
8080 0016 2A2B cmp r3, #42
8081 0018 0FD0 beq .L559
8082 .LVL751:
8083 .L555:
3945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8084 .loc 1 3945 0
8085 @ sp needed
8086 .LVL752:
8087 001a 10BD pop {r4, pc}
8088 .LVL753:
8089 .L558:
3917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
8090 .loc 1 3917 0
8091 001c 1833 adds r3, r3, #24
8092 001e 2832 adds r2, r2, #40
8093 0020 C254 strb r2, [r0, r3]
3918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8094 .loc 1 3918 0
8095 0022 203B subs r3, r3, #32
8096 0024 0363 str r3, [r0, #48]
3921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8097 .loc 1 3921 0
8098 0026 0121 movs r1, #1
8099 0028 FFF7FEFF bl I2C_Disable_IRQ
8100 .LVL754:
3924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8101 .loc 1 3924 0
8102 002c 4023 movs r3, #64
8103 002e 0022 movs r2, #0
8104 0030 E254 strb r2, [r4, r3]
3927:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8105 .loc 1 3927 0
8106 0032 2000 movs r0, r4
8107 0034 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
8108 .LVL755:
8109 0038 EFE7 b .L555
8110 .LVL756:
8111 .L559:
3933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
8112 .loc 1 3933 0
8113 003a 1733 adds r3, r3, #23
8114 003c 2822 movs r2, #40
8115 003e C254 strb r2, [r0, r3]
3934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8116 .loc 1 3934 0
8117 0040 1F3B subs r3, r3, #31
8118 0042 0363 str r3, [r0, #48]
3937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8119 .loc 1 3937 0
8120 0044 0221 movs r1, #2
8121 0046 FFF7FEFF bl I2C_Disable_IRQ
8122 .LVL757:
3940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8123 .loc 1 3940 0
ARM GAS /tmp/ccpuPECZ.s page 248
8124 004a 4023 movs r3, #64
8125 004c 0022 movs r2, #0
8126 004e E254 strb r2, [r4, r3]
3943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8127 .loc 1 3943 0
8128 0050 2000 movs r0, r4
8129 0052 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
8130 .LVL758:
3945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8131 .loc 1 3945 0
8132 0056 E0E7 b .L555
8133 .cfi_endproc
8134 .LFE92:
8136 .section .text.HAL_I2C_AddrCallback,"ax",%progbits
8137 .align 1
8138 .weak HAL_I2C_AddrCallback
8139 .syntax unified
8140 .code 16
8141 .thumb_func
8142 .fpu softvfp
8144 HAL_I2C_AddrCallback:
8145 .LFB75:
3108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8146 .loc 1 3108 0
8147 .cfi_startproc
8148 @ args = 0, pretend = 0, frame = 0
8149 @ frame_needed = 0, uses_anonymous_args = 0
8150 @ link register save eliminated.
8151 .LVL759:
3117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8152 .loc 1 3117 0
8153 @ sp needed
8154 0000 7047 bx lr
8155 .cfi_endproc
8156 .LFE75:
8158 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits
8159 .align 1
8160 .weak HAL_I2C_ListenCpltCallback
8161 .syntax unified
8162 .code 16
8163 .thumb_func
8164 .fpu softvfp
8166 HAL_I2C_ListenCpltCallback:
8167 .LFB76:
3126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8168 .loc 1 3126 0
8169 .cfi_startproc
8170 @ args = 0, pretend = 0, frame = 0
8171 @ frame_needed = 0, uses_anonymous_args = 0
8172 @ link register save eliminated.
8173 .LVL760:
3133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8174 .loc 1 3133 0
8175 @ sp needed
8176 0000 7047 bx lr
8177 .cfi_endproc
8178 .LFE76:
ARM GAS /tmp/ccpuPECZ.s page 249
8180 .section .text.I2C_ITListenCplt,"ax",%progbits
8181 .align 1
8182 .syntax unified
8183 .code 16
8184 .thumb_func
8185 .fpu softvfp
8187 I2C_ITListenCplt:
8188 .LFB95:
4152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset handle parameters */
8189 .loc 1 4152 0
8190 .cfi_startproc
8191 @ args = 0, pretend = 0, frame = 0
8192 @ frame_needed = 0, uses_anonymous_args = 0
8193 .LVL761:
8194 0000 10B5 push {r4, lr}
8195 .LCFI60:
8196 .cfi_def_cfa_offset 8
8197 .cfi_offset 4, -8
8198 .cfi_offset 14, -4
8199 0002 0400 movs r4, r0
4154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
8200 .loc 1 4154 0
8201 0004 164B ldr r3, .L564
8202 0006 C362 str r3, [r0, #44]
4155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
8203 .loc 1 4155 0
8204 0008 0023 movs r3, #0
8205 000a 0363 str r3, [r0, #48]
4156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8206 .loc 1 4156 0
8207 000c 4122 movs r2, #65
8208 000e 2020 movs r0, #32
8209 .LVL762:
8210 0010 A054 strb r0, [r4, r2]
4157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
8211 .loc 1 4157 0
8212 0012 0132 adds r2, r2, #1
8213 0014 A354 strb r3, [r4, r2]
4158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8214 .loc 1 4158 0
8215 0016 6363 str r3, [r4, #52]
4161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8216 .loc 1 4161 0
8217 0018 4B07 lsls r3, r1, #29
8218 001a 12D5 bpl .L563
4164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8219 .loc 1 4164 0
8220 001c 2368 ldr r3, [r4]
8221 001e 5A6A ldr r2, [r3, #36]
8222 0020 636A ldr r3, [r4, #36]
8223 0022 591C adds r1, r3, #1
8224 .LVL763:
8225 0024 6162 str r1, [r4, #36]
8226 0026 1A70 strb r2, [r3]
4166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8227 .loc 1 4166 0
8228 0028 238D ldrh r3, [r4, #40]
ARM GAS /tmp/ccpuPECZ.s page 250
8229 002a 002B cmp r3, #0
8230 002c 09D0 beq .L563
4168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
8231 .loc 1 4168 0
8232 002e 013B subs r3, r3, #1
8233 0030 2385 strh r3, [r4, #40]
4169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8234 .loc 1 4169 0
8235 0032 638D ldrh r3, [r4, #42]
8236 0034 013B subs r3, r3, #1
8237 0036 9BB2 uxth r3, r3
8238 0038 6385 strh r3, [r4, #42]
4172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8239 .loc 1 4172 0
8240 003a 636C ldr r3, [r4, #68]
8241 003c 0422 movs r2, #4
8242 003e 1343 orrs r3, r2
8243 0040 6364 str r3, [r4, #68]
8244 .L563:
4177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8245 .loc 1 4177 0
8246 0042 0721 movs r1, #7
8247 0044 2000 movs r0, r4
8248 0046 FFF7FEFF bl I2C_Disable_IRQ
8249 .LVL764:
4180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8250 .loc 1 4180 0
8251 004a 2368 ldr r3, [r4]
8252 004c 1022 movs r2, #16
8253 004e DA61 str r2, [r3, #28]
4183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8254 .loc 1 4183 0
8255 0050 4023 movs r3, #64
8256 0052 0022 movs r2, #0
8257 0054 E254 strb r2, [r4, r3]
4186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8258 .loc 1 4186 0
8259 0056 2000 movs r0, r4
8260 0058 FFF7FEFF bl HAL_I2C_ListenCpltCallback
8261 .LVL765:
4187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8262 .loc 1 4187 0
8263 @ sp needed
8264 .LVL766:
8265 005c 10BD pop {r4, pc}
8266 .L565:
8267 005e C046 .align 2
8268 .L564:
8269 0060 0000FFFF .word -65536
8270 .cfi_endproc
8271 .LFE95:
8273 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits
8274 .align 1
8275 .weak HAL_I2C_MemTxCpltCallback
8276 .syntax unified
8277 .code 16
8278 .thumb_func
ARM GAS /tmp/ccpuPECZ.s page 251
8279 .fpu softvfp
8281 HAL_I2C_MemTxCpltCallback:
8282 .LFB77:
3142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8283 .loc 1 3142 0
8284 .cfi_startproc
8285 @ args = 0, pretend = 0, frame = 0
8286 @ frame_needed = 0, uses_anonymous_args = 0
8287 @ link register save eliminated.
8288 .LVL767:
3149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8289 .loc 1 3149 0
8290 @ sp needed
8291 0000 7047 bx lr
8292 .cfi_endproc
8293 .LFE77:
8295 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits
8296 .align 1
8297 .weak HAL_I2C_MemRxCpltCallback
8298 .syntax unified
8299 .code 16
8300 .thumb_func
8301 .fpu softvfp
8303 HAL_I2C_MemRxCpltCallback:
8304 .LFB78:
3158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8305 .loc 1 3158 0
8306 .cfi_startproc
8307 @ args = 0, pretend = 0, frame = 0
8308 @ frame_needed = 0, uses_anonymous_args = 0
8309 @ link register save eliminated.
8310 .LVL768:
3165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8311 .loc 1 3165 0
8312 @ sp needed
8313 0000 7047 bx lr
8314 .cfi_endproc
8315 .LFE78:
8317 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits
8318 .align 1
8319 .weak HAL_I2C_ErrorCallback
8320 .syntax unified
8321 .code 16
8322 .thumb_func
8323 .fpu softvfp
8325 HAL_I2C_ErrorCallback:
8326 .LFB79:
3174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8327 .loc 1 3174 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 .LVL769:
3181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8333 .loc 1 3181 0
8334 @ sp needed
ARM GAS /tmp/ccpuPECZ.s page 252
8335 0000 7047 bx lr
8336 .cfi_endproc
8337 .LFE79:
8339 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits
8340 .align 1
8341 .weak HAL_I2C_AbortCpltCallback
8342 .syntax unified
8343 .code 16
8344 .thumb_func
8345 .fpu softvfp
8347 HAL_I2C_AbortCpltCallback:
8348 .LFB80:
3190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
8349 .loc 1 3190 0
8350 .cfi_startproc
8351 @ args = 0, pretend = 0, frame = 0
8352 @ frame_needed = 0, uses_anonymous_args = 0
8353 @ link register save eliminated.
8354 .LVL770:
3197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8355 .loc 1 3197 0
8356 @ sp needed
8357 0000 7047 bx lr
8358 .cfi_endproc
8359 .LFE80:
8361 .section .text.I2C_ITError,"ax",%progbits
8362 .align 1
8363 .syntax unified
8364 .code 16
8365 .thumb_func
8366 .fpu softvfp
8368 I2C_ITError:
8369 .LFB96:
4196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset handle parameters */
8370 .loc 1 4196 0
8371 .cfi_startproc
8372 @ args = 0, pretend = 0, frame = 0
8373 @ frame_needed = 0, uses_anonymous_args = 0
8374 .LVL771:
8375 0000 10B5 push {r4, lr}
8376 .LCFI61:
8377 .cfi_def_cfa_offset 8
8378 .cfi_offset 4, -8
8379 .cfi_offset 14, -4
8380 0002 0400 movs r4, r0
4198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
8381 .loc 1 4198 0
8382 0004 0023 movs r3, #0
8383 0006 4222 movs r2, #66
8384 0008 8354 strb r3, [r0, r2]
4199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = 0U;
8385 .loc 1 4199 0
8386 000a 364A ldr r2, .L582
8387 000c C262 str r2, [r0, #44]
4200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8388 .loc 1 4200 0
8389 000e 4385 strh r3, [r0, #42]
ARM GAS /tmp/ccpuPECZ.s page 253
4203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8390 .loc 1 4203 0
8391 0010 436C ldr r3, [r0, #68]
8392 0012 1943 orrs r1, r3
8393 .LVL772:
8394 0014 4164 str r1, [r0, #68]
4206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
8395 .loc 1 4206 0
8396 0016 4123 movs r3, #65
8397 0018 C35C ldrb r3, [r0, r3]
8398 001a 282B cmp r3, #40
8399 001c 07D0 beq .L571
4207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN))
8400 .loc 1 4207 0 discriminator 1
8401 001e 4123 movs r3, #65
8402 0020 C35C ldrb r3, [r0, r3]
4206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
8403 .loc 1 4206 0 discriminator 1
8404 0022 292B cmp r3, #41
8405 0024 03D0 beq .L571
4208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8406 .loc 1 4208 0
8407 0026 4123 movs r3, #65
8408 0028 C35C ldrb r3, [r0, r3]
4207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN))
8409 .loc 1 4207 0
8410 002a 2A2B cmp r3, #42
8411 002c 1CD1 bne .L572
8412 .L571:
4211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8413 .loc 1 4211 0
8414 002e 0321 movs r1, #3
8415 0030 2000 movs r0, r4
8416 .LVL773:
8417 0032 FFF7FEFF bl I2C_Disable_IRQ
8418 .LVL774:
4214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
8419 .loc 1 4214 0
8420 0036 4123 movs r3, #65
8421 0038 2822 movs r2, #40
8422 003a E254 strb r2, [r4, r3]
4215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
8423 .loc 1 4215 0
8424 003c 0023 movs r3, #0
8425 003e 2363 str r3, [r4, #48]
4216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8426 .loc 1 4216 0
8427 0040 294B ldr r3, .L582+4
8428 0042 6363 str r3, [r4, #52]
8429 .L573:
4235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8430 .loc 1 4235 0
8431 0044 2368 ldr r3, [r4]
8432 0046 1A68 ldr r2, [r3]
8433 0048 5204 lsls r2, r2, #17
8434 004a 1BD4 bmi .L579
4254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 254
8435 .loc 1 4254 0
8436 004c 1A68 ldr r2, [r3]
8437 004e 1204 lsls r2, r2, #16
8438 0050 2BD4 bmi .L580
4272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8439 .loc 1 4272 0
8440 0052 4123 movs r3, #65
8441 0054 E35C ldrb r3, [r4, r3]
8442 0056 602B cmp r3, #96
8443 0058 3AD0 beq .L581
4285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8444 .loc 1 4285 0
8445 005a 4023 movs r3, #64
8446 005c 0022 movs r2, #0
8447 005e E254 strb r2, [r4, r3]
4288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8448 .loc 1 4288 0
8449 0060 2000 movs r0, r4
8450 0062 FFF7FEFF bl HAL_I2C_ErrorCallback
8451 .LVL775:
8452 .L570:
4290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8453 .loc 1 4290 0
8454 @ sp needed
8455 .LVL776:
8456 0066 10BD pop {r4, pc}
8457 .LVL777:
8458 .L572:
4221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8459 .loc 1 4221 0
8460 0068 0721 movs r1, #7
8461 006a FFF7FEFF bl I2C_Disable_IRQ
8462 .LVL778:
4225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8463 .loc 1 4225 0
8464 006e 4123 movs r3, #65
8465 0070 E35C ldrb r3, [r4, r3]
8466 0072 602B cmp r3, #96
8467 0074 02D0 beq .L574
4228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8468 .loc 1 4228 0
8469 0076 4123 movs r3, #65
8470 0078 2022 movs r2, #32
8471 007a E254 strb r2, [r4, r3]
8472 .L574:
4230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
8473 .loc 1 4230 0
8474 007c 0023 movs r3, #0
8475 007e 2363 str r3, [r4, #48]
4231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8476 .loc 1 4231 0
8477 0080 6363 str r3, [r4, #52]
8478 0082 DFE7 b .L573
8479 .L579:
4237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8480 .loc 1 4237 0
8481 0084 1A68 ldr r2, [r3]
ARM GAS /tmp/ccpuPECZ.s page 255
8482 0086 1949 ldr r1, .L582+8
8483 0088 0A40 ands r2, r1
8484 008a 1A60 str r2, [r3]
4241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8485 .loc 1 4241 0
8486 008c A36B ldr r3, [r4, #56]
8487 008e 184A ldr r2, .L582+12
8488 0090 9A63 str r2, [r3, #56]
4244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8489 .loc 1 4244 0
8490 0092 4023 movs r3, #64
8491 0094 0022 movs r2, #0
8492 0096 E254 strb r2, [r4, r3]
4247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8493 .loc 1 4247 0
8494 0098 A06B ldr r0, [r4, #56]
8495 009a FFF7FEFF bl HAL_DMA_Abort_IT
8496 .LVL779:
8497 009e 0028 cmp r0, #0
8498 00a0 E1D0 beq .L570
4250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8499 .loc 1 4250 0
8500 00a2 A06B ldr r0, [r4, #56]
8501 00a4 836B ldr r3, [r0, #56]
8502 00a6 9847 blx r3
8503 .LVL780:
8504 00a8 DDE7 b .L570
8505 .L580:
4256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8506 .loc 1 4256 0
8507 00aa 1A68 ldr r2, [r3]
8508 00ac 1149 ldr r1, .L582+16
8509 00ae 0A40 ands r2, r1
8510 00b0 1A60 str r2, [r3]
4260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8511 .loc 1 4260 0
8512 00b2 E36B ldr r3, [r4, #60]
8513 00b4 0E4A ldr r2, .L582+12
8514 00b6 9A63 str r2, [r3, #56]
4263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8515 .loc 1 4263 0
8516 00b8 4023 movs r3, #64
8517 00ba 0022 movs r2, #0
8518 00bc E254 strb r2, [r4, r3]
4266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8519 .loc 1 4266 0
8520 00be E06B ldr r0, [r4, #60]
8521 00c0 FFF7FEFF bl HAL_DMA_Abort_IT
8522 .LVL781:
8523 00c4 0028 cmp r0, #0
8524 00c6 CED0 beq .L570
4269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8525 .loc 1 4269 0
8526 00c8 E06B ldr r0, [r4, #60]
8527 00ca 836B ldr r3, [r0, #56]
8528 00cc 9847 blx r3
8529 .LVL782:
ARM GAS /tmp/ccpuPECZ.s page 256
8530 00ce CAE7 b .L570
8531 .L581:
4274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8532 .loc 1 4274 0
8533 00d0 1F3B subs r3, r3, #31
8534 00d2 2022 movs r2, #32
8535 00d4 E254 strb r2, [r4, r3]
4277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8536 .loc 1 4277 0
8537 00d6 013B subs r3, r3, #1
8538 00d8 0022 movs r2, #0
8539 00da E254 strb r2, [r4, r3]
4280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8540 .loc 1 4280 0
8541 00dc 2000 movs r0, r4
8542 00de FFF7FEFF bl HAL_I2C_AbortCpltCallback
8543 .LVL783:
8544 00e2 C0E7 b .L570
8545 .L583:
8546 .align 2
8547 .L582:
8548 00e4 0000FFFF .word -65536
8549 00e8 00000000 .word I2C_Slave_ISR_IT
8550 00ec FFBFFFFF .word -16385
8551 00f0 00000000 .word I2C_DMAAbort
8552 00f4 FF7FFFFF .word -32769
8553 .cfi_endproc
8554 .LFE96:
8556 .section .text.I2C_ITSlaveCplt,"ax",%progbits
8557 .align 1
8558 .syntax unified
8559 .code 16
8560 .thumb_func
8561 .fpu softvfp
8563 I2C_ITSlaveCplt:
8564 .LFB94:
4046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */
8565 .loc 1 4046 0
8566 .cfi_startproc
8567 @ args = 0, pretend = 0, frame = 0
8568 @ frame_needed = 0, uses_anonymous_args = 0
8569 .LVL784:
8570 0000 70B5 push {r4, r5, r6, lr}
8571 .LCFI62:
8572 .cfi_def_cfa_offset 16
8573 .cfi_offset 4, -16
8574 .cfi_offset 5, -12
8575 .cfi_offset 6, -8
8576 .cfi_offset 14, -4
8577 0002 0400 movs r4, r0
8578 0004 0D00 movs r5, r1
4048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8579 .loc 1 4048 0
8580 0006 0368 ldr r3, [r0]
8581 0008 2022 movs r2, #32
8582 000a DA61 str r2, [r3, #28]
4051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
ARM GAS /tmp/ccpuPECZ.s page 257
8583 .loc 1 4051 0
8584 000c 0368 ldr r3, [r0]
8585 000e 183A subs r2, r2, #24
8586 0010 DA61 str r2, [r3, #28]
4054:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8587 .loc 1 4054 0
8588 0012 0721 movs r1, #7
8589 .LVL785:
8590 0014 FFF7FEFF bl I2C_Disable_IRQ
8591 .LVL786:
4057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8592 .loc 1 4057 0
8593 0018 2268 ldr r2, [r4]
8594 001a 5168 ldr r1, [r2, #4]
8595 001c 8023 movs r3, #128
8596 001e 1B02 lsls r3, r3, #8
8597 0020 0B43 orrs r3, r1
8598 0022 5360 str r3, [r2, #4]
4060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8599 .loc 1 4060 0
8600 0024 2268 ldr r2, [r4]
8601 0026 5368 ldr r3, [r2, #4]
8602 0028 3E49 ldr r1, .L601
8603 002a 0B40 ands r3, r1
8604 002c 5360 str r3, [r2, #4]
8605 .LVL787:
8606 .LBB300:
8607 .LBB301:
4301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8608 .loc 1 4301 0
8609 002e 2368 ldr r3, [r4]
8610 0030 9A69 ldr r2, [r3, #24]
8611 0032 9207 lsls r2, r2, #30
8612 0034 01D5 bpl .L585
4303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8613 .loc 1 4303 0
8614 0036 0022 movs r2, #0
8615 0038 9A62 str r2, [r3, #40]
8616 .L585:
4307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8617 .loc 1 4307 0
8618 003a 2368 ldr r3, [r4]
8619 003c 9A69 ldr r2, [r3, #24]
8620 003e D207 lsls r2, r2, #31
8621 0040 03D4 bmi .L586
4309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8622 .loc 1 4309 0
8623 0042 9A69 ldr r2, [r3, #24]
8624 0044 0121 movs r1, #1
8625 0046 0A43 orrs r2, r1
8626 0048 9A61 str r2, [r3, #24]
8627 .L586:
8628 .LVL788:
8629 .LBE301:
8630 .LBE300:
4066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN))
8631 .loc 1 4066 0
ARM GAS /tmp/ccpuPECZ.s page 258
8632 004a 2268 ldr r2, [r4]
8633 004c 1368 ldr r3, [r2]
8634 004e 5B04 lsls r3, r3, #17
8635 0050 02D4 bmi .L587
4067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8636 .loc 1 4067 0 discriminator 1
8637 0052 1368 ldr r3, [r2]
4066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN))
8638 .loc 1 4066 0 discriminator 1
8639 0054 1B04 lsls r3, r3, #16
8640 0056 08D5 bpl .L588
8641 .L587:
4069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8642 .loc 1 4069 0
8643 0058 4123 movs r3, #65
8644 005a E35C ldrb r3, [r4, r3]
8645 005c 212B cmp r3, #33
8646 005e 3AD0 beq .L597
4069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8647 .loc 1 4069 0 is_stmt 0 discriminator 2
8648 0060 E36B ldr r3, [r4, #60]
8649 0062 1B68 ldr r3, [r3]
8650 0064 5B68 ldr r3, [r3, #4]
8651 0066 9BB2 uxth r3, r3
8652 .L590:
4069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8653 .loc 1 4069 0 discriminator 4
8654 0068 6385 strh r3, [r4, #42]
8655 .L588:
4073:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8656 .loc 1 4073 0 is_stmt 1
8657 006a 638D ldrh r3, [r4, #42]
8658 006c 9BB2 uxth r3, r3
8659 006e 002B cmp r3, #0
8660 0070 03D0 beq .L591
4076:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8661 .loc 1 4076 0
8662 0072 636C ldr r3, [r4, #68]
8663 0074 0421 movs r1, #4
8664 0076 0B43 orrs r3, r1
8665 0078 6364 str r3, [r4, #68]
8666 .L591:
4080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8667 .loc 1 4080 0
8668 007a 6B07 lsls r3, r5, #29
8669 007c 11D5 bpl .L592
4083:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8670 .loc 1 4083 0
8671 007e 526A ldr r2, [r2, #36]
8672 0080 636A ldr r3, [r4, #36]
8673 0082 591C adds r1, r3, #1
8674 0084 6162 str r1, [r4, #36]
8675 0086 1A70 strb r2, [r3]
4085:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8676 .loc 1 4085 0
8677 0088 238D ldrh r3, [r4, #40]
8678 008a 002B cmp r3, #0
ARM GAS /tmp/ccpuPECZ.s page 259
8679 008c 09D0 beq .L592
4087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
8680 .loc 1 4087 0
8681 008e 013B subs r3, r3, #1
8682 0090 2385 strh r3, [r4, #40]
4088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8683 .loc 1 4088 0
8684 0092 638D ldrh r3, [r4, #42]
8685 0094 013B subs r3, r3, #1
8686 0096 9BB2 uxth r3, r3
8687 0098 6385 strh r3, [r4, #42]
4091:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8688 .loc 1 4091 0
8689 009a 636C ldr r3, [r4, #68]
8690 009c 0422 movs r2, #4
8691 009e 1343 orrs r3, r2
8692 00a0 6364 str r3, [r4, #68]
8693 .L592:
4095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8694 .loc 1 4095 0
8695 00a2 0023 movs r3, #0
8696 00a4 2363 str r3, [r4, #48]
4096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
8697 .loc 1 4096 0
8698 00a6 4222 movs r2, #66
8699 00a8 A354 strb r3, [r4, r2]
4097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8700 .loc 1 4097 0
8701 00aa 6363 str r3, [r4, #52]
4099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8702 .loc 1 4099 0
8703 00ac 636C ldr r3, [r4, #68]
8704 00ae 002B cmp r3, #0
8705 00b0 16D1 bne .L598
4111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8706 .loc 1 4111 0
8707 00b2 E26A ldr r2, [r4, #44]
8708 00b4 1C4B ldr r3, .L601+4
8709 00b6 9A42 cmp r2, r3
8710 00b8 1FD1 bne .L599
4123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8711 .loc 1 4123 0
8712 00ba 4123 movs r3, #65
8713 00bc E35C ldrb r3, [r4, r3]
8714 00be 222B cmp r3, #34
8715 00c0 26D0 beq .L600
4135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8716 .loc 1 4135 0
8717 00c2 4123 movs r3, #65
8718 00c4 2022 movs r2, #32
8719 00c6 E254 strb r2, [r4, r3]
4138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8720 .loc 1 4138 0
8721 00c8 013B subs r3, r3, #1
8722 00ca 0022 movs r2, #0
8723 00cc E254 strb r2, [r4, r3]
4141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
ARM GAS /tmp/ccpuPECZ.s page 260
8724 .loc 1 4141 0
8725 00ce 2000 movs r0, r4
8726 00d0 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
8727 .LVL789:
4143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8728 .loc 1 4143 0
8729 00d4 1BE0 b .L584
8730 .L597:
4069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8731 .loc 1 4069 0 discriminator 1
8732 00d6 A36B ldr r3, [r4, #56]
8733 00d8 1B68 ldr r3, [r3]
8734 00da 5B68 ldr r3, [r3, #4]
8735 00dc 9BB2 uxth r3, r3
8736 00de C3E7 b .L590
8737 .L598:
4102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8738 .loc 1 4102 0
8739 00e0 616C ldr r1, [r4, #68]
8740 00e2 2000 movs r0, r4
8741 00e4 FFF7FEFF bl I2C_ITError
8742 .LVL790:
4105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8743 .loc 1 4105 0
8744 00e8 4123 movs r3, #65
8745 00ea E35C ldrb r3, [r4, r3]
8746 00ec 282B cmp r3, #40
8747 00ee 0ED1 bne .L584
4108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8748 .loc 1 4108 0
8749 00f0 2900 movs r1, r5
8750 00f2 2000 movs r0, r4
8751 00f4 FFF7FEFF bl I2C_ITListenCplt
8752 .LVL791:
8753 00f8 09E0 b .L584
8754 .L599:
4113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
8755 .loc 1 4113 0
8756 00fa E362 str r3, [r4, #44]
4114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8757 .loc 1 4114 0
8758 00fc 4123 movs r3, #65
8759 00fe 2022 movs r2, #32
8760 0100 E254 strb r2, [r4, r3]
4117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8761 .loc 1 4117 0
8762 0102 013B subs r3, r3, #1
8763 0104 0022 movs r2, #0
8764 0106 E254 strb r2, [r4, r3]
4120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8765 .loc 1 4120 0
8766 0108 2000 movs r0, r4
8767 010a FFF7FEFF bl HAL_I2C_ListenCpltCallback
8768 .LVL792:
8769 .L584:
4143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8770 .loc 1 4143 0
ARM GAS /tmp/ccpuPECZ.s page 261
8771 @ sp needed
8772 .LVL793:
8773 .LVL794:
8774 010e 70BD pop {r4, r5, r6, pc}
8775 .LVL795:
8776 .L600:
4125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8777 .loc 1 4125 0
8778 0110 1F33 adds r3, r3, #31
8779 0112 2022 movs r2, #32
8780 0114 E254 strb r2, [r4, r3]
4128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8781 .loc 1 4128 0
8782 0116 013B subs r3, r3, #1
8783 0118 0022 movs r2, #0
8784 011a E254 strb r2, [r4, r3]
4131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8785 .loc 1 4131 0
8786 011c 2000 movs r0, r4
8787 011e FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
8788 .LVL796:
8789 0122 F4E7 b .L584
8790 .L602:
8791 .align 2
8792 .L601:
8793 0124 00E800FE .word -33495040
8794 0128 0000FFFF .word -65536
8795 .cfi_endproc
8796 .LFE94:
8798 .section .text.I2C_Slave_ISR_IT,"ax",%progbits
8799 .align 1
8800 .syntax unified
8801 .code 16
8802 .thumb_func
8803 .fpu softvfp
8805 I2C_Slave_ISR_IT:
8806 .LFB85:
3394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process locked */
8807 .loc 1 3394 0
8808 .cfi_startproc
8809 @ args = 0, pretend = 0, frame = 0
8810 @ frame_needed = 0, uses_anonymous_args = 0
8811 .LVL797:
8812 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
8813 .LCFI63:
8814 .cfi_def_cfa_offset 24
8815 .cfi_offset 3, -24
8816 .cfi_offset 4, -20
8817 .cfi_offset 5, -16
8818 .cfi_offset 6, -12
8819 .cfi_offset 7, -8
8820 .cfi_offset 14, -4
8821 0002 CE46 mov lr, r9
8822 0004 4746 mov r7, r8
8823 0006 80B5 push {r7, lr}
8824 .LCFI64:
8825 .cfi_def_cfa_offset 32
ARM GAS /tmp/ccpuPECZ.s page 262
8826 .cfi_offset 8, -32
8827 .cfi_offset 9, -28
8828 0008 0400 movs r4, r0
8829 000a 0D00 movs r5, r1
8830 000c 1600 movs r6, r2
3396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8831 .loc 1 3396 0
8832 000e 4023 movs r3, #64
8833 0010 C35C ldrb r3, [r0, r3]
8834 0012 012B cmp r3, #1
8835 0014 00D1 bne .LCB9391
8836 0016 EEE0 b .L622 @long jump
8837 .LCB9391:
3396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8838 .loc 1 3396 0 is_stmt 0 discriminator 2
8839 0018 4023 movs r3, #64
8840 001a 0122 movs r2, #1
8841 .LVL798:
8842 001c C254 strb r2, [r0, r3]
3398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8843 .loc 1 3398 0 is_stmt 1 discriminator 2
8844 001e CB06 lsls r3, r1, #27
8845 0020 4BD5 bpl .L605
3398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8846 .loc 1 3398 0 is_stmt 0 discriminator 1
8847 0022 F306 lsls r3, r6, #27
8848 0024 49D5 bpl .L605
3404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8849 .loc 1 3404 0 is_stmt 1
8850 0026 438D ldrh r3, [r0, #42]
8851 0028 9BB2 uxth r3, r3
8852 002a 002B cmp r3, #0
8853 002c 31D1 bne .L606
3406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_LISTEN))
8854 .loc 1 3406 0
8855 002e C26A ldr r2, [r0, #44]
8856 0030 8023 movs r3, #128
8857 0032 9B04 lsls r3, r3, #18
8858 0034 9A42 cmp r2, r3
8859 0036 02D0 beq .L607
3406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_LISTEN))
8860 .loc 1 3406 0 is_stmt 0 discriminator 2
8861 0038 C26A ldr r2, [r0, #44]
8862 003a 9A42 cmp r2, r3
8863 003c 03D1 bne .L608
8864 .L607:
3407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8865 .loc 1 3407 0 is_stmt 1 discriminator 3
8866 003e 4123 movs r3, #65
8867 0040 E35C ldrb r3, [r4, r3]
3406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_LISTEN))
8868 .loc 1 3406 0 discriminator 3
8869 0042 282B cmp r3, #40
8870 0044 0BD0 beq .L623
8871 .L608:
3412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8872 .loc 1 3412 0
ARM GAS /tmp/ccpuPECZ.s page 263
8873 0046 E26A ldr r2, [r4, #44]
8874 0048 6C4B ldr r3, .L628
8875 004a 9A42 cmp r2, r3
8876 004c 03D0 beq .L610
3412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8877 .loc 1 3412 0 is_stmt 0 discriminator 1
8878 004e 4123 movs r3, #65
8879 0050 E35C ldrb r3, [r4, r3]
8880 0052 292B cmp r3, #41
8881 0054 08D0 beq .L624
8882 .L610:
3427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8883 .loc 1 3427 0 is_stmt 1
8884 0056 2368 ldr r3, [r4]
8885 0058 1022 movs r2, #16
8886 005a DA61 str r2, [r3, #28]
8887 005c 20E0 b .L609
8888 .L623:
3410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8889 .loc 1 3410 0
8890 005e 2900 movs r1, r5
8891 .LVL799:
8892 0060 2000 movs r0, r4
8893 .LVL800:
8894 0062 FFF7FEFF bl I2C_ITListenCplt
8895 .LVL801:
8896 0066 1BE0 b .L609
8897 .LVL802:
8898 .L624:
3415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8899 .loc 1 3415 0
8900 0068 2368 ldr r3, [r4]
8901 006a 1022 movs r2, #16
8902 006c DA61 str r2, [r3, #28]
8903 .LVL803:
8904 .LBB306:
8905 .LBB307:
4301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8906 .loc 1 4301 0
8907 006e 2368 ldr r3, [r4]
8908 0070 9A69 ldr r2, [r3, #24]
8909 0072 9207 lsls r2, r2, #30
8910 0074 01D5 bpl .L611
4303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8911 .loc 1 4303 0
8912 0076 0022 movs r2, #0
8913 0078 9A62 str r2, [r3, #40]
8914 .L611:
4307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8915 .loc 1 4307 0
8916 007a 2368 ldr r3, [r4]
8917 007c 9A69 ldr r2, [r3, #24]
8918 007e D207 lsls r2, r2, #31
8919 0080 03D4 bmi .L612
4309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8920 .loc 1 4309 0
8921 0082 9A69 ldr r2, [r3, #24]
ARM GAS /tmp/ccpuPECZ.s page 264
8922 0084 0121 movs r1, #1
8923 .LVL804:
8924 0086 0A43 orrs r2, r1
8925 0088 9A61 str r2, [r3, #24]
8926 .L612:
8927 .LVL805:
8928 .LBE307:
8929 .LBE306:
3422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8930 .loc 1 3422 0
8931 008a 2000 movs r0, r4
8932 .LVL806:
8933 008c FFF7FEFF bl I2C_ITSlaveSequentialCplt
8934 .LVL807:
8935 0090 06E0 b .L609
8936 .LVL808:
8937 .L606:
3434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8938 .loc 1 3434 0
8939 0092 0368 ldr r3, [r0]
8940 0094 1022 movs r2, #16
8941 0096 DA61 str r2, [r3, #28]
3437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8942 .loc 1 3437 0
8943 0098 436C ldr r3, [r0, #68]
8944 009a 0C3A subs r2, r2, #12
8945 009c 1343 orrs r3, r2
8946 009e 4364 str r3, [r0, #68]
8947 .LVL809:
8948 .L609:
3486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8949 .loc 1 3486 0
8950 00a0 AB06 lsls r3, r5, #26
8951 00a2 02D5 bpl .L621
3486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8952 .loc 1 3486 0 is_stmt 0 discriminator 1
8953 00a4 B306 lsls r3, r6, #26
8954 00a6 00D5 bpl .LCB9514
8955 00a8 A0E0 b .L625 @long jump
8956 .LCB9514:
8957 .L621:
3493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8958 .loc 1 3493 0 is_stmt 1
8959 00aa 4023 movs r3, #64
8960 00ac 0022 movs r2, #0
8961 00ae E254 strb r2, [r4, r3]
3495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8962 .loc 1 3495 0
8963 00b0 0020 movs r0, #0
8964 .L604:
3496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
8965 .loc 1 3496 0
8966 @ sp needed
8967 .LVL810:
8968 .LVL811:
8969 .LVL812:
8970 00b2 0CBC pop {r2, r3}
ARM GAS /tmp/ccpuPECZ.s page 265
8971 00b4 9046 mov r8, r2
8972 00b6 9946 mov r9, r3
8973 00b8 F8BD pop {r3, r4, r5, r6, r7, pc}
8974 .LVL813:
8975 .L605:
3440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8976 .loc 1 3440 0
8977 00ba 6B07 lsls r3, r5, #29
8978 00bc 1ED5 bpl .L613
3440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8979 .loc 1 3440 0 is_stmt 0 discriminator 1
8980 00be 7307 lsls r3, r6, #29
8981 00c0 1CD5 bpl .L613
3442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
8982 .loc 1 3442 0 is_stmt 1
8983 00c2 638D ldrh r3, [r4, #42]
8984 00c4 9BB2 uxth r3, r3
8985 00c6 002B cmp r3, #0
8986 00c8 0CD0 beq .L614
3445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
8987 .loc 1 3445 0
8988 00ca 2368 ldr r3, [r4]
8989 00cc 5A6A ldr r2, [r3, #36]
8990 00ce 636A ldr r3, [r4, #36]
8991 00d0 591C adds r1, r3, #1
8992 .LVL814:
8993 00d2 6162 str r1, [r4, #36]
8994 00d4 1A70 strb r2, [r3]
3446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
8995 .loc 1 3446 0
8996 00d6 238D ldrh r3, [r4, #40]
8997 00d8 013B subs r3, r3, #1
8998 00da 2385 strh r3, [r4, #40]
3447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
8999 .loc 1 3447 0
9000 00dc 638D ldrh r3, [r4, #42]
9001 00de 013B subs r3, r3, #1
9002 00e0 9BB2 uxth r3, r3
9003 00e2 6385 strh r3, [r4, #42]
9004 .L614:
3450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferOptions != I2C_NO_OPTION_FRAME))
9005 .loc 1 3450 0
9006 00e4 638D ldrh r3, [r4, #42]
9007 00e6 9BB2 uxth r3, r3
9008 00e8 002B cmp r3, #0
9009 00ea D9D1 bne .L609
3451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9010 .loc 1 3451 0 discriminator 1
9011 00ec E26A ldr r2, [r4, #44]
3450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferOptions != I2C_NO_OPTION_FRAME))
9012 .loc 1 3450 0 discriminator 1
9013 00ee 434B ldr r3, .L628
9014 00f0 9A42 cmp r2, r3
9015 00f2 D5D0 beq .L609
3454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9016 .loc 1 3454 0
9017 00f4 2000 movs r0, r4
ARM GAS /tmp/ccpuPECZ.s page 266
9018 .LVL815:
9019 00f6 FFF7FEFF bl I2C_ITSlaveSequentialCplt
9020 .LVL816:
9021 00fa D1E7 b .L609
9022 .LVL817:
9023 .L613:
3457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9024 .loc 1 3457 0
9025 00fc 2B07 lsls r3, r5, #28
9026 00fe 01D5 bpl .L615
3457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9027 .loc 1 3457 0 is_stmt 0 discriminator 1
9028 0100 3307 lsls r3, r6, #28
9029 0102 15D4 bmi .L626
9030 .L615:
3461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9031 .loc 1 3461 0 is_stmt 1
9032 0104 AB07 lsls r3, r5, #30
9033 0106 CBD5 bpl .L609
3461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9034 .loc 1 3461 0 is_stmt 0 discriminator 1
9035 0108 B307 lsls r3, r6, #30
9036 010a C9D5 bpl .L609
3467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9037 .loc 1 3467 0 is_stmt 1
9038 010c 638D ldrh r3, [r4, #42]
9039 010e 9BB2 uxth r3, r3
9040 0110 002B cmp r3, #0
9041 0112 5ED0 beq .L619
3470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
9042 .loc 1 3470 0
9043 0114 636A ldr r3, [r4, #36]
9044 0116 5A1C adds r2, r3, #1
9045 0118 6262 str r2, [r4, #36]
9046 011a 2268 ldr r2, [r4]
9047 011c 1B78 ldrb r3, [r3]
9048 011e 9362 str r3, [r2, #40]
3471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
9049 .loc 1 3471 0
9050 0120 638D ldrh r3, [r4, #42]
9051 0122 013B subs r3, r3, #1
9052 0124 9BB2 uxth r3, r3
9053 0126 6385 strh r3, [r4, #42]
3472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9054 .loc 1 3472 0
9055 0128 238D ldrh r3, [r4, #40]
9056 012a 013B subs r3, r3, #1
9057 012c 2385 strh r3, [r4, #40]
9058 012e B7E7 b .L609
9059 .L626:
9060 .LVL818:
9061 .LBB308:
9062 .LBB309:
3792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9063 .loc 1 3792 0
9064 0130 4123 movs r3, #65
9065 0132 E35C ldrb r3, [r4, r3]
ARM GAS /tmp/ccpuPECZ.s page 267
9066 0134 2822 movs r2, #40
9067 0136 1340 ands r3, r2
9068 0138 282B cmp r3, #40
9069 013a 06D0 beq .L627
3852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9070 .loc 1 3852 0
9071 013c 2368 ldr r3, [r4]
9072 013e 0822 movs r2, #8
9073 0140 DA61 str r2, [r3, #28]
3855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9074 .loc 1 3855 0
9075 0142 4023 movs r3, #64
9076 0144 0022 movs r2, #0
9077 0146 E254 strb r2, [r4, r3]
9078 0148 AAE7 b .L609
9079 .L627:
3794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
9080 .loc 1 3794 0
9081 014a 2368 ldr r3, [r4]
9082 014c 9A69 ldr r2, [r3, #24]
9083 014e 120C lsrs r2, r2, #16
9084 0150 0121 movs r1, #1
9085 .LVL819:
9086 0152 0A40 ands r2, r1
9087 0154 9046 mov r8, r2
9088 .LVL820:
3795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
9089 .loc 1 3795 0
9090 0156 9F69 ldr r7, [r3, #24]
9091 0158 3F0C lsrs r7, r7, #16
9092 015a FD31 adds r1, r1, #253
9093 015c 0F40 ands r7, r1
9094 .LVL821:
3796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
9095 .loc 1 3796 0
9096 015e 9A68 ldr r2, [r3, #8]
9097 0160 9205 lsls r2, r2, #22
9098 0162 920D lsrs r2, r2, #22
9099 .LVL822:
3797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9100 .loc 1 3797 0
9101 0164 D868 ldr r0, [r3, #12]
9102 .LVL823:
9103 0166 0840 ands r0, r1
9104 0168 8146 mov r9, r0
9105 .LVL824:
3800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9106 .loc 1 3800 0
9107 016a E168 ldr r1, [r4, #12]
9108 016c 0229 cmp r1, #2
9109 016e 23D1 bne .L617
3802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9110 .loc 1 3802 0
9111 0170 D109 lsrs r1, r2, #7
9112 0172 4F40 eors r7, r1
9113 .LVL825:
9114 0174 0621 movs r1, #6
ARM GAS /tmp/ccpuPECZ.s page 268
9115 0176 3942 tst r1, r7
9116 0178 11D1 bne .L618
9117 .LVL826:
3805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
9118 .loc 1 3805 0
9119 017a A16C ldr r1, [r4, #72]
9120 017c 0131 adds r1, r1, #1
9121 017e A164 str r1, [r4, #72]
3806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9122 .loc 1 3806 0
9123 0180 A16C ldr r1, [r4, #72]
9124 0182 0229 cmp r1, #2
9125 0184 00D0 beq .LCB9707
9126 0186 8BE7 b .L609 @long jump
9127 .LCB9707:
3809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9128 .loc 1 3809 0
9129 0188 0021 movs r1, #0
9130 018a A164 str r1, [r4, #72]
3812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9131 .loc 1 3812 0
9132 018c 0820 movs r0, #8
9133 018e D861 str r0, [r3, #28]
3815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9134 .loc 1 3815 0
9135 0190 4023 movs r3, #64
9136 0192 E154 strb r1, [r4, r3]
3818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9137 .loc 1 3818 0
9138 0194 4146 mov r1, r8
9139 0196 2000 movs r0, r4
9140 0198 FFF7FEFF bl HAL_I2C_AddrCallback
9141 .LVL827:
9142 019c 80E7 b .L609
9143 .LVL828:
9144 .L618:
3826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9145 .loc 1 3826 0
9146 019e 0421 movs r1, #4
9147 01a0 2000 movs r0, r4
9148 01a2 FFF7FEFF bl I2C_Disable_IRQ
9149 .LVL829:
3829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9150 .loc 1 3829 0
9151 01a6 4023 movs r3, #64
9152 01a8 0022 movs r2, #0
9153 01aa E254 strb r2, [r4, r3]
3832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9154 .loc 1 3832 0
9155 01ac 4A46 mov r2, r9
9156 01ae 4146 mov r1, r8
9157 01b0 2000 movs r0, r4
9158 01b2 FFF7FEFF bl HAL_I2C_AddrCallback
9159 .LVL830:
9160 01b6 73E7 b .L609
9161 .LVL831:
9162 .L617:
ARM GAS /tmp/ccpuPECZ.s page 269
3839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9163 .loc 1 3839 0
9164 01b8 0421 movs r1, #4
9165 01ba 2000 movs r0, r4
9166 01bc FFF7FEFF bl I2C_Disable_IRQ
9167 .LVL832:
3842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9168 .loc 1 3842 0
9169 01c0 4023 movs r3, #64
9170 01c2 0022 movs r2, #0
9171 01c4 E254 strb r2, [r4, r3]
3845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9172 .loc 1 3845 0
9173 01c6 3A00 movs r2, r7
9174 01c8 4146 mov r1, r8
9175 01ca 2000 movs r0, r4
9176 01cc FFF7FEFF bl HAL_I2C_AddrCallback
9177 .LVL833:
9178 01d0 66E7 b .L609
9179 .LVL834:
9180 .L619:
9181 .LBE309:
9182 .LBE308:
3476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9183 .loc 1 3476 0
9184 01d2 E26A ldr r2, [r4, #44]
9185 01d4 8023 movs r3, #128
9186 01d6 5B04 lsls r3, r3, #17
9187 01d8 9A42 cmp r2, r3
9188 01da 03D0 beq .L620
3476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9189 .loc 1 3476 0 is_stmt 0 discriminator 1
9190 01dc E36A ldr r3, [r4, #44]
9191 01de 002B cmp r3, #0
9192 01e0 00D0 beq .LCB9783
9193 01e2 5DE7 b .L609 @long jump
9194 .LCB9783:
9195 .L620:
3480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9196 .loc 1 3480 0 is_stmt 1
9197 01e4 2000 movs r0, r4
9198 .LVL835:
9199 01e6 FFF7FEFF bl I2C_ITSlaveSequentialCplt
9200 .LVL836:
9201 01ea 59E7 b .L609
9202 .L625:
3489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9203 .loc 1 3489 0
9204 01ec 2900 movs r1, r5
9205 01ee 2000 movs r0, r4
9206 01f0 FFF7FEFF bl I2C_ITSlaveCplt
9207 .LVL837:
9208 01f4 59E7 b .L621
9209 .LVL838:
9210 .L622:
3396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9211 .loc 1 3396 0
ARM GAS /tmp/ccpuPECZ.s page 270
9212 01f6 0220 movs r0, #2
9213 .LVL839:
9214 01f8 5BE7 b .L604
9215 .L629:
9216 01fa C046 .align 2
9217 .L628:
9218 01fc 0000FFFF .word -65536
9219 .cfi_endproc
9220 .LFE85:
9222 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits
9223 .align 1
9224 .syntax unified
9225 .code 16
9226 .thumb_func
9227 .fpu softvfp
9229 I2C_Slave_ISR_DMA:
9230 .LFB87:
3596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process locked */
9231 .loc 1 3596 0
9232 .cfi_startproc
9233 @ args = 0, pretend = 0, frame = 0
9234 @ frame_needed = 0, uses_anonymous_args = 0
9235 .LVL840:
9236 0000 10B5 push {r4, lr}
9237 .LCFI65:
9238 .cfi_def_cfa_offset 8
9239 .cfi_offset 4, -8
9240 .cfi_offset 14, -4
9241 0002 0400 movs r4, r0
3598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9242 .loc 1 3598 0
9243 0004 4023 movs r3, #64
9244 0006 C35C ldrb r3, [r0, r3]
9245 0008 012B cmp r3, #1
9246 000a 3AD0 beq .L638
3598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9247 .loc 1 3598 0 is_stmt 0 discriminator 2
9248 000c 4023 movs r3, #64
9249 000e 0120 movs r0, #1
9250 .LVL841:
9251 0010 E054 strb r0, [r4, r3]
3600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9252 .loc 1 3600 0 is_stmt 1 discriminator 2
9253 0012 CB06 lsls r3, r1, #27
9254 0014 20D5 bpl .L632
3600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9255 .loc 1 3600 0 is_stmt 0 discriminator 1
9256 0016 D306 lsls r3, r2, #27
9257 0018 1ED5 bpl .L632
3606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9258 .loc 1 3606 0 is_stmt 1
9259 001a 4123 movs r3, #65
9260 001c E35C ldrb r3, [r4, r3]
9261 001e 212B cmp r3, #33
9262 0020 0BD0 beq .L639
3606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9263 .loc 1 3606 0 is_stmt 0 discriminator 2
ARM GAS /tmp/ccpuPECZ.s page 271
9264 0022 E36B ldr r3, [r4, #60]
9265 0024 1B68 ldr r3, [r3]
9266 0026 5B68 ldr r3, [r3, #4]
9267 0028 5A42 rsbs r2, r3, #0
9268 002a 5341 adcs r3, r3, r2
9269 .LVL842:
9270 002c DBB2 uxtb r3, r3
9271 .L634:
3606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9272 .loc 1 3606 0 discriminator 4
9273 002e 002B cmp r3, #0
9274 0030 0AD0 beq .L635
3609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9275 .loc 1 3609 0 is_stmt 1
9276 0032 2368 ldr r3, [r4]
9277 0034 1022 movs r2, #16
9278 0036 DA61 str r2, [r3, #28]
9279 0038 1AE0 b .L636
9280 .LVL843:
9281 .L639:
3606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9282 .loc 1 3606 0 discriminator 1
9283 003a A36B ldr r3, [r4, #56]
9284 003c 1B68 ldr r3, [r3]
9285 003e 5B68 ldr r3, [r3, #4]
9286 0040 5A42 rsbs r2, r3, #0
9287 0042 5341 adcs r3, r3, r2
9288 .LVL844:
9289 0044 DBB2 uxtb r3, r3
9290 0046 F2E7 b .L634
9291 .L635:
3615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9292 .loc 1 3615 0
9293 0048 2368 ldr r3, [r4]
9294 004a 1022 movs r2, #16
9295 004c DA61 str r2, [r3, #28]
3618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9296 .loc 1 3618 0
9297 004e 636C ldr r3, [r4, #68]
9298 0050 0C3A subs r2, r2, #12
9299 0052 1343 orrs r3, r2
9300 0054 6364 str r3, [r4, #68]
9301 0056 0BE0 b .L636
9302 .LVL845:
9303 .L632:
3621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9304 .loc 1 3621 0
9305 0058 0B07 lsls r3, r1, #28
9306 005a 05D5 bpl .L637
3621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9307 .loc 1 3621 0 is_stmt 0 discriminator 1
9308 005c 1307 lsls r3, r2, #28
9309 005e 03D5 bpl .L637
3624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9310 .loc 1 3624 0 is_stmt 1
9311 0060 2368 ldr r3, [r4]
9312 0062 0822 movs r2, #8
ARM GAS /tmp/ccpuPECZ.s page 272
9313 .LVL846:
9314 0064 DA61 str r2, [r3, #28]
9315 0066 03E0 b .L636
9316 .LVL847:
9317 .L637:
3626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9318 .loc 1 3626 0
9319 0068 8B06 lsls r3, r1, #26
9320 006a 01D5 bpl .L636
3626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9321 .loc 1 3626 0 is_stmt 0 discriminator 1
9322 006c 9306 lsls r3, r2, #26
9323 006e 04D4 bmi .L640
9324 .LVL848:
9325 .L636:
3633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9326 .loc 1 3633 0 is_stmt 1
9327 0070 4023 movs r3, #64
9328 0072 0022 movs r2, #0
9329 0074 E254 strb r2, [r4, r3]
3635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9330 .loc 1 3635 0
9331 0076 0020 movs r0, #0
9332 .L631:
3636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9333 .loc 1 3636 0
9334 @ sp needed
9335 .LVL849:
9336 0078 10BD pop {r4, pc}
9337 .LVL850:
9338 .L640:
3629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9339 .loc 1 3629 0
9340 007a 2000 movs r0, r4
9341 007c FFF7FEFF bl I2C_ITSlaveCplt
9342 .LVL851:
9343 0080 F6E7 b .L636
9344 .LVL852:
9345 .L638:
3598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9346 .loc 1 3598 0
9347 0082 0220 movs r0, #2
9348 .LVL853:
9349 0084 F8E7 b .L631
9350 .cfi_endproc
9351 .LFE87:
9353 .section .text.I2C_ITMasterCplt,"ax",%progbits
9354 .align 1
9355 .syntax unified
9356 .code 16
9357 .thumb_func
9358 .fpu softvfp
9360 I2C_ITMasterCplt:
9361 .LFB93:
3954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */
9362 .loc 1 3954 0
9363 .cfi_startproc
ARM GAS /tmp/ccpuPECZ.s page 273
9364 @ args = 0, pretend = 0, frame = 0
9365 @ frame_needed = 0, uses_anonymous_args = 0
9366 .LVL854:
9367 0000 10B5 push {r4, lr}
9368 .LCFI66:
9369 .cfi_def_cfa_offset 8
9370 .cfi_offset 4, -8
9371 .cfi_offset 14, -4
9372 0002 0400 movs r4, r0
3956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9373 .loc 1 3956 0
9374 0004 0368 ldr r3, [r0]
9375 0006 2022 movs r2, #32
9376 0008 DA61 str r2, [r3, #28]
3959:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9377 .loc 1 3959 0
9378 000a 0268 ldr r2, [r0]
9379 000c 5368 ldr r3, [r2, #4]
9380 000e 3448 ldr r0, .L654
9381 .LVL855:
9382 0010 0340 ands r3, r0
9383 0012 5360 str r3, [r2, #4]
3962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL;
9384 .loc 1 3962 0
9385 0014 0023 movs r3, #0
9386 0016 2363 str r3, [r4, #48]
3963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
9387 .loc 1 3963 0
9388 0018 6363 str r3, [r4, #52]
3964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9389 .loc 1 3964 0
9390 001a 324B ldr r3, .L654+4
9391 001c E362 str r3, [r4, #44]
3966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9392 .loc 1 3966 0
9393 001e CB06 lsls r3, r1, #27
9394 0020 06D5 bpl .L642
3969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9395 .loc 1 3969 0
9396 0022 2368 ldr r3, [r4]
9397 0024 1022 movs r2, #16
9398 0026 DA61 str r2, [r3, #28]
3972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9399 .loc 1 3972 0
9400 0028 636C ldr r3, [r4, #68]
9401 002a 0C3A subs r2, r2, #12
9402 002c 1343 orrs r3, r2
9403 002e 6364 str r3, [r4, #68]
9404 .L642:
9405 .LVL856:
9406 .LBB310:
9407 .LBB311:
4301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9408 .loc 1 4301 0
9409 0030 2368 ldr r3, [r4]
9410 0032 9A69 ldr r2, [r3, #24]
9411 0034 9207 lsls r2, r2, #30
ARM GAS /tmp/ccpuPECZ.s page 274
9412 0036 01D5 bpl .L643
4303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9413 .loc 1 4303 0
9414 0038 0022 movs r2, #0
9415 003a 9A62 str r2, [r3, #40]
9416 .L643:
4307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9417 .loc 1 4307 0
9418 003c 2368 ldr r3, [r4]
9419 003e 9A69 ldr r2, [r3, #24]
9420 0040 D207 lsls r2, r2, #31
9421 0042 03D4 bmi .L644
4309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9422 .loc 1 4309 0
9423 0044 9A69 ldr r2, [r3, #24]
9424 0046 0121 movs r1, #1
9425 .LVL857:
9426 0048 0A43 orrs r2, r1
9427 004a 9A61 str r2, [r3, #24]
9428 .L644:
9429 .LVL858:
9430 .LBE311:
9431 .LBE310:
3979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9432 .loc 1 3979 0
9433 004c 0321 movs r1, #3
9434 004e 2000 movs r0, r4
9435 0050 FFF7FEFF bl I2C_Disable_IRQ
9436 .LVL859:
3982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9437 .loc 1 3982 0
9438 0054 636C ldr r3, [r4, #68]
9439 0056 002B cmp r3, #0
9440 0058 1BD1 bne .L645
3982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9441 .loc 1 3982 0 is_stmt 0 discriminator 1
9442 005a 4133 adds r3, r3, #65
9443 005c E35C ldrb r3, [r4, r3]
9444 005e 602B cmp r3, #96
9445 0060 17D0 beq .L645
3988:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9446 .loc 1 3988 0 is_stmt 1
9447 0062 4123 movs r3, #65
9448 0064 E35C ldrb r3, [r4, r3]
9449 0066 212B cmp r3, #33
9450 0068 18D0 beq .L651
4014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9451 .loc 1 4014 0
9452 006a 4123 movs r3, #65
9453 006c E35C ldrb r3, [r4, r3]
9454 006e 222B cmp r3, #34
9455 0070 13D1 bne .L641
4016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9456 .loc 1 4016 0
9457 0072 1F33 adds r3, r3, #31
9458 0074 2022 movs r2, #32
9459 0076 E254 strb r2, [r4, r3]
ARM GAS /tmp/ccpuPECZ.s page 275
4018:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9460 .loc 1 4018 0
9461 0078 0133 adds r3, r3, #1
9462 007a E35C ldrb r3, [r4, r3]
9463 007c 402B cmp r3, #64
9464 007e 26D0 beq .L652
4029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9465 .loc 1 4029 0
9466 0080 0023 movs r3, #0
9467 0082 4222 movs r2, #66
9468 0084 A354 strb r3, [r4, r2]
4032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9469 .loc 1 4032 0
9470 0086 023A subs r2, r2, #2
9471 0088 A354 strb r3, [r4, r2]
4034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9472 .loc 1 4034 0
9473 008a 2000 movs r0, r4
9474 008c FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
9475 .LVL860:
4037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9476 .loc 1 4037 0
9477 0090 03E0 b .L641
9478 .L645:
3985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9479 .loc 1 3985 0
9480 0092 616C ldr r1, [r4, #68]
9481 0094 2000 movs r0, r4
9482 0096 FFF7FEFF bl I2C_ITError
9483 .LVL861:
9484 .L641:
4037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9485 .loc 1 4037 0
9486 @ sp needed
9487 .LVL862:
9488 009a 10BD pop {r4, pc}
9489 .LVL863:
9490 .L651:
3990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9491 .loc 1 3990 0
9492 009c 2033 adds r3, r3, #32
9493 009e 2022 movs r2, #32
9494 00a0 E254 strb r2, [r4, r3]
3992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9495 .loc 1 3992 0
9496 00a2 0133 adds r3, r3, #1
9497 00a4 E35C ldrb r3, [r4, r3]
9498 00a6 402B cmp r3, #64
9499 00a8 08D0 beq .L653
4004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9500 .loc 1 4004 0
9501 00aa 0023 movs r3, #0
9502 00ac 4222 movs r2, #66
9503 00ae A354 strb r3, [r4, r2]
4007:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9504 .loc 1 4007 0
9505 00b0 023A subs r2, r2, #2
ARM GAS /tmp/ccpuPECZ.s page 276
9506 00b2 A354 strb r3, [r4, r2]
4010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9507 .loc 1 4010 0
9508 00b4 2000 movs r0, r4
9509 00b6 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
9510 .LVL864:
9511 00ba EEE7 b .L641
9512 .L653:
3994:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9513 .loc 1 3994 0
9514 00bc 0023 movs r3, #0
9515 00be 2232 adds r2, r2, #34
9516 00c0 A354 strb r3, [r4, r2]
3997:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9517 .loc 1 3997 0
9518 00c2 023A subs r2, r2, #2
9519 00c4 A354 strb r3, [r4, r2]
4000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9520 .loc 1 4000 0
9521 00c6 2000 movs r0, r4
9522 00c8 FFF7FEFF bl HAL_I2C_MemTxCpltCallback
9523 .LVL865:
9524 00cc E5E7 b .L641
9525 .L652:
4020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9526 .loc 1 4020 0
9527 00ce 0023 movs r3, #0
9528 00d0 2232 adds r2, r2, #34
9529 00d2 A354 strb r3, [r4, r2]
4023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9530 .loc 1 4023 0
9531 00d4 023A subs r2, r2, #2
9532 00d6 A354 strb r3, [r4, r2]
4025:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9533 .loc 1 4025 0
9534 00d8 2000 movs r0, r4
9535 00da FFF7FEFF bl HAL_I2C_MemRxCpltCallback
9536 .LVL866:
9537 00de DCE7 b .L641
9538 .L655:
9539 .align 2
9540 .L654:
9541 00e0 00E800FE .word -33495040
9542 00e4 0000FFFF .word -65536
9543 .cfi_endproc
9544 .LFE93:
9546 .section .text.I2C_Master_ISR_IT,"ax",%progbits
9547 .align 1
9548 .syntax unified
9549 .code 16
9550 .thumb_func
9551 .fpu softvfp
9553 I2C_Master_ISR_IT:
9554 .LFB84:
3273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint16_t devaddress = 0U;
9555 .loc 1 3273 0
9556 .cfi_startproc
ARM GAS /tmp/ccpuPECZ.s page 277
9557 @ args = 0, pretend = 0, frame = 0
9558 @ frame_needed = 0, uses_anonymous_args = 0
9559 .LVL867:
9560 0000 F0B5 push {r4, r5, r6, r7, lr}
9561 .LCFI67:
9562 .cfi_def_cfa_offset 20
9563 .cfi_offset 4, -20
9564 .cfi_offset 5, -16
9565 .cfi_offset 6, -12
9566 .cfi_offset 7, -8
9567 .cfi_offset 14, -4
9568 0002 C646 mov lr, r8
9569 0004 00B5 push {lr}
9570 .LCFI68:
9571 .cfi_def_cfa_offset 24
9572 .cfi_offset 8, -24
9573 0006 0400 movs r4, r0
9574 0008 0D00 movs r5, r1
9575 000a 1600 movs r6, r2
9576 .LVL868:
3277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9577 .loc 1 3277 0
9578 000c 4023 movs r3, #64
9579 000e C35C ldrb r3, [r0, r3]
9580 0010 012B cmp r3, #1
9581 0012 00D1 bne .LCB10164
9582 0014 C1E0 b .L671 @long jump
9583 .LCB10164:
3277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9584 .loc 1 3277 0 is_stmt 0 discriminator 2
9585 0016 4023 movs r3, #64
9586 0018 0122 movs r2, #1
9587 .LVL869:
9588 001a C254 strb r2, [r0, r3]
3279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9589 .loc 1 3279 0 is_stmt 1 discriminator 2
9590 001c CB06 lsls r3, r1, #27
9591 001e 17D5 bpl .L658
3279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9592 .loc 1 3279 0 is_stmt 0 discriminator 1
9593 0020 F306 lsls r3, r6, #27
9594 0022 15D5 bpl .L658
3282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9595 .loc 1 3282 0 is_stmt 1
9596 0024 0368 ldr r3, [r0]
9597 0026 0F32 adds r2, r2, #15
9598 0028 DA61 str r2, [r3, #28]
3287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9599 .loc 1 3287 0
9600 002a 436C ldr r3, [r0, #68]
9601 002c 0C3A subs r2, r2, #12
9602 002e 1343 orrs r3, r2
9603 0030 4364 str r3, [r0, #68]
9604 .LVL870:
9605 .LBB312:
9606 .LBB313:
4301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
ARM GAS /tmp/ccpuPECZ.s page 278
9607 .loc 1 4301 0
9608 0032 0368 ldr r3, [r0]
9609 0034 9A69 ldr r2, [r3, #24]
9610 0036 9207 lsls r2, r2, #30
9611 0038 01D5 bpl .L659
4303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9612 .loc 1 4303 0
9613 003a 0022 movs r2, #0
9614 003c 9A62 str r2, [r3, #40]
9615 .L659:
4307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9616 .loc 1 4307 0
9617 003e 2368 ldr r3, [r4]
9618 0040 9A69 ldr r2, [r3, #24]
9619 0042 D207 lsls r2, r2, #31
9620 0044 15D4 bmi .L660
4309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9621 .loc 1 4309 0
9622 0046 9A69 ldr r2, [r3, #24]
9623 0048 0121 movs r1, #1
9624 .LVL871:
9625 004a 0A43 orrs r2, r1
9626 004c 9A61 str r2, [r3, #24]
9627 004e 10E0 b .L660
9628 .LVL872:
9629 .L658:
9630 .LBE313:
9631 .LBE312:
3292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9632 .loc 1 3292 0
9633 0050 6B07 lsls r3, r5, #29
9634 0052 1AD5 bpl .L661
3292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9635 .loc 1 3292 0 is_stmt 0 discriminator 1
9636 0054 7307 lsls r3, r6, #29
9637 0056 18D5 bpl .L661
3295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
9638 .loc 1 3295 0 is_stmt 1
9639 0058 2368 ldr r3, [r4]
9640 005a 5A6A ldr r2, [r3, #36]
9641 005c 636A ldr r3, [r4, #36]
9642 005e 591C adds r1, r3, #1
9643 .LVL873:
9644 0060 6162 str r1, [r4, #36]
9645 0062 1A70 strb r2, [r3]
3296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
9646 .loc 1 3296 0
9647 0064 238D ldrh r3, [r4, #40]
9648 0066 013B subs r3, r3, #1
9649 0068 2385 strh r3, [r4, #40]
3297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9650 .loc 1 3297 0
9651 006a 638D ldrh r3, [r4, #42]
9652 006c 013B subs r3, r3, #1
9653 006e 9BB2 uxth r3, r3
9654 0070 6385 strh r3, [r4, #42]
9655 .LVL874:
ARM GAS /tmp/ccpuPECZ.s page 279
9656 .L660:
3373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9657 .loc 1 3373 0
9658 0072 AB06 lsls r3, r5, #26
9659 0074 02D5 bpl .L670
3373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9660 .loc 1 3373 0 is_stmt 0 discriminator 1
9661 0076 B306 lsls r3, r6, #26
9662 0078 00D5 bpl .LCB10251
9663 007a 89E0 b .L672 @long jump
9664 .LCB10251:
9665 .L670:
3380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9666 .loc 1 3380 0 is_stmt 1
9667 007c 4023 movs r3, #64
9668 007e 0022 movs r2, #0
9669 0080 E254 strb r2, [r4, r3]
3382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9670 .loc 1 3382 0
9671 0082 0020 movs r0, #0
9672 .L657:
3383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9673 .loc 1 3383 0
9674 @ sp needed
9675 .LVL875:
9676 .LVL876:
9677 .LVL877:
9678 0084 04BC pop {r2}
9679 0086 9046 mov r8, r2
9680 0088 F0BD pop {r4, r5, r6, r7, pc}
9681 .LVL878:
9682 .L661:
3299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9683 .loc 1 3299 0
9684 008a AB07 lsls r3, r5, #30
9685 008c 0FD5 bpl .L662
3299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9686 .loc 1 3299 0 is_stmt 0 discriminator 1
9687 008e B307 lsls r3, r6, #30
9688 0090 0DD5 bpl .L662
3302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--;
9689 .loc 1 3302 0 is_stmt 1
9690 0092 636A ldr r3, [r4, #36]
9691 0094 5A1C adds r2, r3, #1
9692 0096 6262 str r2, [r4, #36]
9693 0098 2268 ldr r2, [r4]
9694 009a 1B78 ldrb r3, [r3]
9695 009c 9362 str r3, [r2, #40]
3303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--;
9696 .loc 1 3303 0
9697 009e 238D ldrh r3, [r4, #40]
9698 00a0 013B subs r3, r3, #1
9699 00a2 2385 strh r3, [r4, #40]
3304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9700 .loc 1 3304 0
9701 00a4 638D ldrh r3, [r4, #42]
9702 00a6 013B subs r3, r3, #1
ARM GAS /tmp/ccpuPECZ.s page 280
9703 00a8 9BB2 uxth r3, r3
9704 00aa 6385 strh r3, [r4, #42]
9705 00ac E1E7 b .L660
9706 .L662:
3306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9707 .loc 1 3306 0
9708 00ae 2B06 lsls r3, r5, #24
9709 00b0 4CD5 bpl .L663
3306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9710 .loc 1 3306 0 is_stmt 0 discriminator 1
9711 00b2 7306 lsls r3, r6, #25
9712 00b4 4AD5 bpl .L663
3308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9713 .loc 1 3308 0 is_stmt 1
9714 00b6 238D ldrh r3, [r4, #40]
9715 00b8 002B cmp r3, #0
9716 00ba 3AD1 bne .L664
3308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9717 .loc 1 3308 0 is_stmt 0 discriminator 1
9718 00bc 638D ldrh r3, [r4, #42]
9719 00be 9BB2 uxth r3, r3
9720 00c0 002B cmp r3, #0
9721 00c2 36D0 beq .L664
3310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9722 .loc 1 3310 0 is_stmt 1
9723 00c4 2068 ldr r0, [r4]
9724 .LVL879:
9725 00c6 4368 ldr r3, [r0, #4]
9726 00c8 9B05 lsls r3, r3, #22
9727 00ca 9F0D lsrs r7, r3, #22
9728 .LVL880:
3312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9729 .loc 1 3312 0
9730 00cc 618D ldrh r1, [r4, #42]
9731 .LVL881:
9732 00ce 89B2 uxth r1, r1
9733 00d0 FF29 cmp r1, #255
9734 00d2 0DD9 bls .L665
3314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
9735 .loc 1 3314 0
9736 00d4 FF23 movs r3, #255
9737 00d6 2385 strh r3, [r4, #40]
9738 .LVL882:
9739 .LBB314:
9740 .LBB315:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
9741 .loc 1 4713 0
9742 00d8 4368 ldr r3, [r0, #4]
9743 00da 3149 ldr r1, .L673
9744 00dc 1940 ands r1, r3
9745 00de FF23 movs r3, #255
9746 00e0 1B04 lsls r3, r3, #16
9747 00e2 1F43 orrs r7, r3
9748 .LVL883:
9749 00e4 8023 movs r3, #128
9750 00e6 5B04 lsls r3, r3, #17
9751 00e8 3B43 orrs r3, r7
ARM GAS /tmp/ccpuPECZ.s page 281
9752 00ea 0B43 orrs r3, r1
9753 00ec 4360 str r3, [r0, #4]
9754 00ee C0E7 b .L660
9755 .LVL884:
9756 .L665:
9757 .LBE315:
9758 .LBE314:
3319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
9759 .loc 1 3319 0
9760 00f0 638D ldrh r3, [r4, #42]
9761 00f2 9BB2 uxth r3, r3
9762 00f4 2385 strh r3, [r4, #40]
3320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9763 .loc 1 3320 0
9764 00f6 E16A ldr r1, [r4, #44]
9765 00f8 2A4A ldr r2, .L673+4
9766 00fa 9142 cmp r1, r2
9767 00fc 0CD0 beq .L666
3322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9768 .loc 1 3322 0
9769 00fe DBB2 uxtb r3, r3
9770 0100 9846 mov r8, r3
9771 0102 E16A ldr r1, [r4, #44]
9772 .LVL885:
9773 .LBB316:
9774 .LBB317:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
9775 .loc 1 4713 0
9776 0104 4268 ldr r2, [r0, #4]
9777 0106 264B ldr r3, .L673
9778 0108 1A40 ands r2, r3
9779 010a 4346 mov r3, r8
9780 010c 1B04 lsls r3, r3, #16
9781 010e 3B43 orrs r3, r7
9782 0110 0B43 orrs r3, r1
9783 0112 1343 orrs r3, r2
9784 0114 4360 str r3, [r0, #4]
9785 0116 ACE7 b .L660
9786 .LVL886:
9787 .L666:
9788 .LBE317:
9789 .LBE316:
3326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9790 .loc 1 3326 0
9791 0118 DAB2 uxtb r2, r3
9792 .LVL887:
9793 .LBB318:
9794 .LBB319:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
9795 .loc 1 4713 0
9796 011a 4368 ldr r3, [r0, #4]
9797 011c 2049 ldr r1, .L673
9798 011e 1940 ands r1, r3
9799 0120 1204 lsls r2, r2, #16
9800 .LVL888:
9801 0122 3B00 movs r3, r7
9802 0124 1343 orrs r3, r2
ARM GAS /tmp/ccpuPECZ.s page 282
9803 0126 8027 movs r7, #128
9804 .LVL889:
9805 0128 BF04 lsls r7, r7, #18
9806 012a 3B43 orrs r3, r7
9807 012c 0B43 orrs r3, r1
9808 012e 4360 str r3, [r0, #4]
9809 0130 9FE7 b .L660
9810 .LVL890:
9811 .L664:
9812 .LBE319:
9813 .LBE318:
3333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9814 .loc 1 3333 0
9815 0132 2368 ldr r3, [r4]
9816 0134 5B68 ldr r3, [r3, #4]
9817 0136 9B01 lsls r3, r3, #6
9818 0138 03D4 bmi .L667
3336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9819 .loc 1 3336 0
9820 013a 2000 movs r0, r4
9821 .LVL891:
9822 013c FFF7FEFF bl I2C_ITMasterSequentialCplt
9823 .LVL892:
9824 0140 97E7 b .L660
9825 .LVL893:
9826 .L667:
3342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9827 .loc 1 3342 0
9828 0142 4021 movs r1, #64
9829 .LVL894:
9830 0144 2000 movs r0, r4
9831 .LVL895:
9832 0146 FFF7FEFF bl I2C_ITError
9833 .LVL896:
9834 014a 92E7 b .L660
9835 .LVL897:
9836 .L663:
3346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9837 .loc 1 3346 0
9838 014c 6B06 lsls r3, r5, #25
9839 014e 00D4 bmi .LCB10478
9840 0150 8FE7 b .L660 @long jump
9841 .LCB10478:
3346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9842 .loc 1 3346 0 is_stmt 0 discriminator 1
9843 0152 7306 lsls r3, r6, #25
9844 0154 00D4 bmi .LCB10482
9845 0156 8CE7 b .L660 @long jump
9846 .LCB10482:
3348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9847 .loc 1 3348 0 is_stmt 1
9848 0158 638D ldrh r3, [r4, #42]
9849 015a 9BB2 uxth r3, r3
9850 015c 002B cmp r3, #0
9851 015e 12D1 bne .L668
3350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9852 .loc 1 3350 0
ARM GAS /tmp/ccpuPECZ.s page 283
9853 0160 2368 ldr r3, [r4]
9854 0162 5A68 ldr r2, [r3, #4]
9855 0164 9201 lsls r2, r2, #6
9856 0166 00D5 bpl .LCB10492
9857 0168 83E7 b .L660 @long jump
9858 .LCB10492:
3353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9859 .loc 1 3353 0
9860 016a E16A ldr r1, [r4, #44]
9861 .LVL898:
9862 016c 0D4A ldr r2, .L673+4
9863 016e 9142 cmp r1, r2
9864 0170 05D1 bne .L669
3356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9865 .loc 1 3356 0
9866 0172 5968 ldr r1, [r3, #4]
9867 0174 8022 movs r2, #128
9868 0176 D201 lsls r2, r2, #7
9869 0178 0A43 orrs r2, r1
9870 017a 5A60 str r2, [r3, #4]
9871 017c 79E7 b .L660
9872 .L669:
3361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9873 .loc 1 3361 0
9874 017e 2000 movs r0, r4
9875 .LVL899:
9876 0180 FFF7FEFF bl I2C_ITMasterSequentialCplt
9877 .LVL900:
9878 0184 75E7 b .L660
9879 .LVL901:
9880 .L668:
3369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9881 .loc 1 3369 0
9882 0186 4021 movs r1, #64
9883 .LVL902:
9884 0188 2000 movs r0, r4
9885 .LVL903:
9886 018a FFF7FEFF bl I2C_ITError
9887 .LVL904:
9888 018e 70E7 b .L660
9889 .LVL905:
9890 .L672:
3376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9891 .loc 1 3376 0
9892 0190 2900 movs r1, r5
9893 0192 2000 movs r0, r4
9894 0194 FFF7FEFF bl I2C_ITMasterCplt
9895 .LVL906:
9896 0198 70E7 b .L670
9897 .LVL907:
9898 .L671:
3277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9899 .loc 1 3277 0
9900 019a 0220 movs r0, #2
9901 .LVL908:
9902 019c 72E7 b .L657
9903 .L674:
ARM GAS /tmp/ccpuPECZ.s page 284
9904 019e C046 .align 2
9905 .L673:
9906 01a0 009C00FC .word -67068928
9907 01a4 0000FFFF .word -65536
9908 .cfi_endproc
9909 .LFE84:
9911 .section .text.I2C_Master_ISR_DMA,"ax",%progbits
9912 .align 1
9913 .syntax unified
9914 .code 16
9915 .thumb_func
9916 .fpu softvfp
9918 I2C_Master_ISR_DMA:
9919 .LFB86:
3507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint16_t devaddress = 0U;
9920 .loc 1 3507 0
9921 .cfi_startproc
9922 @ args = 0, pretend = 0, frame = 0
9923 @ frame_needed = 0, uses_anonymous_args = 0
9924 .LVL909:
9925 0000 70B5 push {r4, r5, r6, lr}
9926 .LCFI69:
9927 .cfi_def_cfa_offset 16
9928 .cfi_offset 4, -16
9929 .cfi_offset 5, -12
9930 .cfi_offset 6, -8
9931 .cfi_offset 14, -4
9932 0002 0400 movs r4, r0
9933 .LVL910:
3512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9934 .loc 1 3512 0
9935 0004 4023 movs r3, #64
9936 0006 C35C ldrb r3, [r0, r3]
9937 0008 012B cmp r3, #1
9938 000a 00D1 bne .LCB10573
9939 000c 7DE0 b .L686 @long jump
9940 .LCB10573:
3512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9941 .loc 1 3512 0 is_stmt 0 discriminator 2
9942 000e 4023 movs r3, #64
9943 0010 0120 movs r0, #1
9944 .LVL911:
9945 0012 E054 strb r0, [r4, r3]
3514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9946 .loc 1 3514 0 is_stmt 1 discriminator 2
9947 0014 CB06 lsls r3, r1, #27
9948 0016 27D5 bpl .L677
3514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9949 .loc 1 3514 0 is_stmt 0 discriminator 1
9950 0018 D306 lsls r3, r2, #27
9951 001a 25D5 bpl .L677
3517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9952 .loc 1 3517 0 is_stmt 1
9953 001c 2368 ldr r3, [r4]
9954 001e 1022 movs r2, #16
9955 .LVL912:
9956 0020 DA61 str r2, [r3, #28]
ARM GAS /tmp/ccpuPECZ.s page 285
3520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9957 .loc 1 3520 0
9958 0022 636C ldr r3, [r4, #68]
9959 0024 0C3A subs r2, r2, #12
9960 0026 1343 orrs r3, r2
9961 0028 6364 str r3, [r4, #68]
9962 .LVL913:
9963 .LBB320:
9964 .LBB321:
4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
9965 .loc 1 4728 0
9966 002a 636B ldr r3, [r4, #52]
9967 002c 384A ldr r2, .L692
9968 002e 9342 cmp r3, r2
9969 0030 18D0 beq .L687
9970 0032 384A ldr r2, .L692+4
9971 0034 9342 cmp r3, r2
9972 0036 13D0 beq .L689
4778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9973 .loc 1 4778 0
9974 0038 F421 movs r1, #244
9975 .LVL914:
9976 .L678:
4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
9977 .loc 1 4785 0
9978 003a 2268 ldr r2, [r4]
9979 003c 1368 ldr r3, [r2]
9980 003e 0B43 orrs r3, r1
9981 0040 1360 str r3, [r2]
9982 .LVL915:
9983 .LBE321:
9984 .LBE320:
9985 .LBB323:
9986 .LBB324:
4301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9987 .loc 1 4301 0
9988 0042 2368 ldr r3, [r4]
9989 0044 9A69 ldr r2, [r3, #24]
9990 0046 9207 lsls r2, r2, #30
9991 0048 01D5 bpl .L679
4303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
9992 .loc 1 4303 0
9993 004a 0022 movs r2, #0
9994 004c 9A62 str r2, [r3, #40]
9995 .L679:
4307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
9996 .loc 1 4307 0
9997 004e 2368 ldr r3, [r4]
9998 0050 9A69 ldr r2, [r3, #24]
9999 0052 D207 lsls r2, r2, #31
10000 0054 50D4 bmi .L680
4309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10001 .loc 1 4309 0
10002 0056 9A69 ldr r2, [r3, #24]
10003 0058 0121 movs r1, #1
10004 005a 0A43 orrs r2, r1
10005 005c 9A61 str r2, [r3, #24]
ARM GAS /tmp/ccpuPECZ.s page 286
10006 005e 4BE0 b .L680
10007 .LVL916:
10008 .L689:
10009 .LBE324:
10010 .LBE323:
10011 .LBB325:
10012 .LBB322:
4752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10013 .loc 1 4752 0
10014 0060 6021 movs r1, #96
10015 .LVL917:
10016 0062 EAE7 b .L678
10017 .LVL918:
10018 .L687:
10019 0064 6021 movs r1, #96
10020 .LVL919:
10021 0066 E8E7 b .L678
10022 .LVL920:
10023 .L677:
10024 .LBE322:
10025 .LBE325:
3530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10026 .loc 1 3530 0
10027 0068 0B06 lsls r3, r1, #24
10028 006a 41D5 bpl .L681
3530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10029 .loc 1 3530 0 is_stmt 0 discriminator 1
10030 006c 5306 lsls r3, r2, #25
10031 006e 3FD5 bpl .L681
3533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10032 .loc 1 3533 0 is_stmt 1
10033 0070 2268 ldr r2, [r4]
10034 .LVL921:
10035 0072 1368 ldr r3, [r2]
10036 0074 4021 movs r1, #64
10037 .LVL922:
10038 0076 8B43 bics r3, r1
10039 0078 1360 str r3, [r2]
3535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10040 .loc 1 3535 0
10041 007a 638D ldrh r3, [r4, #42]
10042 007c 9BB2 uxth r3, r3
10043 007e 002B cmp r3, #0
10044 0080 31D0 beq .L682
3538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10045 .loc 1 3538 0
10046 0082 2668 ldr r6, [r4]
10047 0084 7268 ldr r2, [r6, #4]
10048 0086 9205 lsls r2, r2, #22
10049 0088 950D lsrs r5, r2, #22
10050 .LVL923:
3541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10051 .loc 1 3541 0
10052 008a 638D ldrh r3, [r4, #42]
10053 008c 9BB2 uxth r3, r3
10054 008e FF2B cmp r3, #255
10055 0090 1DD9 bls .L683
ARM GAS /tmp/ccpuPECZ.s page 287
3543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
10056 .loc 1 3543 0
10057 0092 FF23 movs r3, #255
10058 0094 2385 strh r3, [r4, #40]
10059 .LVL924:
3544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10060 .loc 1 3544 0
10061 0096 8020 movs r0, #128
10062 0098 4004 lsls r0, r0, #17
10063 .LVL925:
10064 .L684:
3553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10065 .loc 1 3553 0
10066 009a 228D ldrh r2, [r4, #40]
10067 009c D2B2 uxtb r2, r2
10068 .LVL926:
10069 .LBB326:
10070 .LBB327:
4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
10071 .loc 1 4713 0
10072 009e 7368 ldr r3, [r6, #4]
10073 00a0 1D49 ldr r1, .L692+8
10074 00a2 0B40 ands r3, r1
10075 00a4 1204 lsls r2, r2, #16
10076 .LVL927:
10077 00a6 2A43 orrs r2, r5
10078 00a8 0243 orrs r2, r0
10079 00aa 1343 orrs r3, r2
10080 00ac 7360 str r3, [r6, #4]
10081 .LVL928:
10082 .LBE327:
10083 .LBE326:
3556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10084 .loc 1 3556 0
10085 00ae 638D ldrh r3, [r4, #42]
10086 00b0 228D ldrh r2, [r4, #40]
10087 00b2 9B1A subs r3, r3, r2
10088 00b4 9BB2 uxth r3, r3
10089 00b6 6385 strh r3, [r4, #42]
3559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10090 .loc 1 3559 0
10091 00b8 4123 movs r3, #65
10092 00ba E35C ldrb r3, [r4, r3]
10093 00bc 222B cmp r3, #34
10094 00be 0BD0 beq .L690
3565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10095 .loc 1 3565 0
10096 00c0 2268 ldr r2, [r4]
10097 00c2 1168 ldr r1, [r2]
10098 00c4 8023 movs r3, #128
10099 00c6 DB01 lsls r3, r3, #7
10100 00c8 0B43 orrs r3, r1
10101 00ca 1360 str r3, [r2]
10102 00cc 14E0 b .L680
10103 .LVL929:
10104 .L683:
3548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
ARM GAS /tmp/ccpuPECZ.s page 288
10105 .loc 1 3548 0
10106 00ce 638D ldrh r3, [r4, #42]
10107 00d0 2385 strh r3, [r4, #40]
10108 .LVL930:
3549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10109 .loc 1 3549 0
10110 00d2 8020 movs r0, #128
10111 00d4 8004 lsls r0, r0, #18
10112 00d6 E0E7 b .L684
10113 .LVL931:
10114 .L690:
3561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10115 .loc 1 3561 0
10116 00d8 2268 ldr r2, [r4]
10117 00da 1168 ldr r1, [r2]
10118 00dc 8023 movs r3, #128
10119 00de 1B02 lsls r3, r3, #8
10120 00e0 0B43 orrs r3, r1
10121 00e2 1360 str r3, [r2]
10122 00e4 08E0 b .L680
10123 .LVL932:
10124 .L682:
3572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10125 .loc 1 3572 0
10126 00e6 4021 movs r1, #64
10127 00e8 2000 movs r0, r4
10128 00ea FFF7FEFF bl I2C_ITError
10129 .LVL933:
10130 00ee 03E0 b .L680
10131 .LVL934:
10132 .L681:
3575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10133 .loc 1 3575 0
10134 00f0 8B06 lsls r3, r1, #26
10135 00f2 01D5 bpl .L680
3575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10136 .loc 1 3575 0 is_stmt 0 discriminator 1
10137 00f4 9306 lsls r3, r2, #26
10138 00f6 04D4 bmi .L691
10139 .LVL935:
10140 .L680:
3582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10141 .loc 1 3582 0 is_stmt 1
10142 00f8 4023 movs r3, #64
10143 00fa 0022 movs r2, #0
10144 00fc E254 strb r2, [r4, r3]
3584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10145 .loc 1 3584 0
10146 00fe 0020 movs r0, #0
10147 .L676:
3585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10148 .loc 1 3585 0
10149 @ sp needed
10150 .LVL936:
10151 0100 70BD pop {r4, r5, r6, pc}
10152 .LVL937:
10153 .L691:
ARM GAS /tmp/ccpuPECZ.s page 289
3578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10154 .loc 1 3578 0
10155 0102 2000 movs r0, r4
10156 0104 FFF7FEFF bl I2C_ITMasterCplt
10157 .LVL938:
10158 0108 F6E7 b .L680
10159 .LVL939:
10160 .L686:
3512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10161 .loc 1 3512 0
10162 010a 0220 movs r0, #2
10163 .LVL940:
10164 010c F8E7 b .L676
10165 .L693:
10166 010e C046 .align 2
10167 .L692:
10168 0110 00000000 .word I2C_Master_ISR_DMA
10169 0114 00000000 .word I2C_Slave_ISR_DMA
10170 0118 009C00FC .word -67068928
10171 .cfi_endproc
10172 .LFE86:
10174 .section .text.I2C_DMAError,"ax",%progbits
10175 .align 1
10176 .syntax unified
10177 .code 16
10178 .thumb_func
10179 .fpu softvfp
10181 I2C_DMAError:
10182 .LFB102:
4433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
10183 .loc 1 4433 0
10184 .cfi_startproc
10185 @ args = 0, pretend = 0, frame = 0
10186 @ frame_needed = 0, uses_anonymous_args = 0
10187 .LVL941:
10188 0000 10B5 push {r4, lr}
10189 .LCFI70:
10190 .cfi_def_cfa_offset 8
10191 .cfi_offset 4, -8
10192 .cfi_offset 14, -4
4434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10193 .loc 1 4434 0
10194 0002 806A ldr r0, [r0, #40]
10195 .LVL942:
4437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10196 .loc 1 4437 0
10197 0004 0268 ldr r2, [r0]
10198 0006 5168 ldr r1, [r2, #4]
10199 0008 8023 movs r3, #128
10200 000a 1B02 lsls r3, r3, #8
10201 000c 0B43 orrs r3, r1
10202 000e 5360 str r3, [r2, #4]
4440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10203 .loc 1 4440 0
10204 0010 1021 movs r1, #16
10205 0012 FFF7FEFF bl I2C_ITError
10206 .LVL943:
ARM GAS /tmp/ccpuPECZ.s page 290
4441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10207 .loc 1 4441 0
10208 @ sp needed
10209 0016 10BD pop {r4, pc}
10210 .cfi_endproc
10211 .LFE102:
10213 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits
10214 .align 1
10215 .global HAL_I2C_ER_IRQHandler
10216 .syntax unified
10217 .code 16
10218 .thumb_func
10219 .fpu softvfp
10221 HAL_I2C_ER_IRQHandler:
10222 .LFB70:
2998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
10223 .loc 1 2998 0
10224 .cfi_startproc
10225 @ args = 0, pretend = 0, frame = 0
10226 @ frame_needed = 0, uses_anonymous_args = 0
10227 .LVL944:
10228 0000 70B5 push {r4, r5, r6, lr}
10229 .LCFI71:
10230 .cfi_def_cfa_offset 16
10231 .cfi_offset 4, -16
10232 .cfi_offset 5, -12
10233 .cfi_offset 6, -8
10234 .cfi_offset 14, -4
2999:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
10235 .loc 1 2999 0
10236 0002 0268 ldr r2, [r0]
10237 0004 9369 ldr r3, [r2, #24]
10238 .LVL945:
3000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10239 .loc 1 3000 0
10240 0006 1168 ldr r1, [r2]
10241 .LVL946:
3003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10242 .loc 1 3003 0
10243 0008 DC05 lsls r4, r3, #23
10244 000a 08D5 bpl .L696
3003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10245 .loc 1 3003 0 is_stmt 0 discriminator 1
10246 000c 0C06 lsls r4, r1, #24
10247 000e 06D5 bpl .L696
3005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10248 .loc 1 3005 0 is_stmt 1
10249 0010 446C ldr r4, [r0, #68]
10250 0012 0125 movs r5, #1
10251 0014 2C43 orrs r4, r5
10252 0016 4464 str r4, [r0, #68]
3008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10253 .loc 1 3008 0
10254 0018 8024 movs r4, #128
10255 001a 6400 lsls r4, r4, #1
10256 001c D461 str r4, [r2, #28]
10257 .L696:
ARM GAS /tmp/ccpuPECZ.s page 291
3012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10258 .loc 1 3012 0
10259 001e 5A05 lsls r2, r3, #21
10260 0020 09D5 bpl .L697
3012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10261 .loc 1 3012 0 is_stmt 0 discriminator 1
10262 0022 0A06 lsls r2, r1, #24
10263 0024 07D5 bpl .L697
3014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10264 .loc 1 3014 0 is_stmt 1
10265 0026 426C ldr r2, [r0, #68]
10266 0028 0824 movs r4, #8
10267 002a 2243 orrs r2, r4
10268 002c 4264 str r2, [r0, #68]
3017:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10269 .loc 1 3017 0
10270 002e 0268 ldr r2, [r0]
10271 0030 8024 movs r4, #128
10272 0032 E400 lsls r4, r4, #3
10273 0034 D461 str r4, [r2, #28]
10274 .L697:
3021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10275 .loc 1 3021 0
10276 0036 9B05 lsls r3, r3, #22
10277 0038 09D5 bpl .L698
10278 .LVL947:
3021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10279 .loc 1 3021 0 is_stmt 0 discriminator 1
10280 003a 0B06 lsls r3, r1, #24
10281 003c 07D5 bpl .L698
3023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10282 .loc 1 3023 0 is_stmt 1
10283 003e 436C ldr r3, [r0, #68]
10284 0040 0222 movs r2, #2
10285 0042 1343 orrs r3, r2
10286 0044 4364 str r3, [r0, #68]
3026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10287 .loc 1 3026 0
10288 0046 0368 ldr r3, [r0]
10289 0048 FF32 adds r2, r2, #255
10290 004a FF32 adds r2, r2, #255
10291 004c DA61 str r2, [r3, #28]
10292 .L698:
3030:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10293 .loc 1 3030 0
10294 004e 436C ldr r3, [r0, #68]
10295 0050 0B22 movs r2, #11
10296 0052 1A42 tst r2, r3
10297 0054 00D1 bne .L700
10298 .LVL948:
10299 .L695:
3034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10300 .loc 1 3034 0
10301 @ sp needed
10302 0056 70BD pop {r4, r5, r6, pc}
10303 .LVL949:
10304 .L700:
ARM GAS /tmp/ccpuPECZ.s page 292
3032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10305 .loc 1 3032 0
10306 0058 416C ldr r1, [r0, #68]
10307 .LVL950:
10308 005a FFF7FEFF bl I2C_ITError
10309 .LVL951:
3034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10310 .loc 1 3034 0
10311 005e FAE7 b .L695
10312 .cfi_endproc
10313 .LFE70:
10315 .section .text.I2C_DMAAbort,"ax",%progbits
10316 .align 1
10317 .syntax unified
10318 .code 16
10319 .thumb_func
10320 .fpu softvfp
10322 I2C_DMAAbort:
10323 .LFB103:
4450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
10324 .loc 1 4450 0
10325 .cfi_startproc
10326 @ args = 0, pretend = 0, frame = 0
10327 @ frame_needed = 0, uses_anonymous_args = 0
10328 .LVL952:
10329 0000 10B5 push {r4, lr}
10330 .LCFI72:
10331 .cfi_def_cfa_offset 8
10332 .cfi_offset 4, -8
10333 .cfi_offset 14, -4
4451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10334 .loc 1 4451 0
10335 0002 806A ldr r0, [r0, #40]
10336 .LVL953:
4454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10337 .loc 1 4454 0
10338 0004 0268 ldr r2, [r0]
10339 0006 5168 ldr r1, [r2, #4]
10340 0008 8023 movs r3, #128
10341 000a 1B02 lsls r3, r3, #8
10342 000c 0B43 orrs r3, r1
10343 000e 5360 str r3, [r2, #4]
4457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
10344 .loc 1 4457 0
10345 0010 826B ldr r2, [r0, #56]
10346 0012 0023 movs r3, #0
10347 0014 9363 str r3, [r2, #56]
4458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10348 .loc 1 4458 0
10349 0016 C26B ldr r2, [r0, #60]
10350 0018 9363 str r3, [r2, #56]
4461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** {
10351 .loc 1 4461 0
10352 001a 4133 adds r3, r3, #65
10353 001c C35C ldrb r3, [r0, r3]
10354 001e 602B cmp r3, #96
10355 0020 02D0 beq .L704
ARM GAS /tmp/ccpuPECZ.s page 293
4471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10356 .loc 1 4471 0
10357 0022 FFF7FEFF bl HAL_I2C_ErrorCallback
10358 .LVL954:
10359 .L701:
4473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10360 .loc 1 4473 0
10361 @ sp needed
10362 0026 10BD pop {r4, pc}
10363 .LVL955:
10364 .L704:
4463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10365 .loc 1 4463 0
10366 0028 1F3B subs r3, r3, #31
10367 002a 2022 movs r2, #32
10368 002c C254 strb r2, [r0, r3]
4466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10369 .loc 1 4466 0
10370 002e FFF7FEFF bl HAL_I2C_AbortCpltCallback
10371 .LVL956:
10372 0032 F8E7 b .L701
10373 .cfi_endproc
10374 .LFE103:
10376 .section .text.HAL_I2C_GetState,"ax",%progbits
10377 .align 1
10378 .global HAL_I2C_GetState
10379 .syntax unified
10380 .code 16
10381 .thumb_func
10382 .fpu softvfp
10384 HAL_I2C_GetState:
10385 .LFB81:
3225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Return I2C handle state */
10386 .loc 1 3225 0
10387 .cfi_startproc
10388 @ args = 0, pretend = 0, frame = 0
10389 @ frame_needed = 0, uses_anonymous_args = 0
10390 @ link register save eliminated.
10391 .LVL957:
3227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10392 .loc 1 3227 0
10393 0000 4123 movs r3, #65
10394 0002 C05C ldrb r0, [r0, r3]
10395 .LVL958:
10396 0004 C0B2 uxtb r0, r0
3228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10397 .loc 1 3228 0
10398 @ sp needed
10399 0006 7047 bx lr
10400 .cfi_endproc
10401 .LFE81:
10403 .section .text.HAL_I2C_GetMode,"ax",%progbits
10404 .align 1
10405 .global HAL_I2C_GetMode
10406 .syntax unified
10407 .code 16
10408 .thumb_func
ARM GAS /tmp/ccpuPECZ.s page 294
10409 .fpu softvfp
10411 HAL_I2C_GetMode:
10412 .LFB82:
3237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return hi2c->Mode;
10413 .loc 1 3237 0
10414 .cfi_startproc
10415 @ args = 0, pretend = 0, frame = 0
10416 @ frame_needed = 0, uses_anonymous_args = 0
10417 @ link register save eliminated.
10418 .LVL959:
3238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10419 .loc 1 3238 0
10420 0000 4223 movs r3, #66
10421 0002 C05C ldrb r0, [r0, r3]
10422 .LVL960:
10423 0004 C0B2 uxtb r0, r0
3239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10424 .loc 1 3239 0
10425 @ sp needed
10426 0006 7047 bx lr
10427 .cfi_endproc
10428 .LFE82:
10430 .section .text.HAL_I2C_GetError,"ax",%progbits
10431 .align 1
10432 .global HAL_I2C_GetError
10433 .syntax unified
10434 .code 16
10435 .thumb_func
10436 .fpu softvfp
10438 HAL_I2C_GetError:
10439 .LFB83:
3248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return hi2c->ErrorCode;
10440 .loc 1 3248 0
10441 .cfi_startproc
10442 @ args = 0, pretend = 0, frame = 0
10443 @ frame_needed = 0, uses_anonymous_args = 0
10444 @ link register save eliminated.
10445 .LVL961:
3249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** }
10446 .loc 1 3249 0
10447 0000 406C ldr r0, [r0, #68]
10448 .LVL962:
3250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c ****
10449 .loc 1 3250 0
10450 @ sp needed
10451 0002 7047 bx lr
10452 .cfi_endproc
10453 .LFE83:
10455 .section .rodata.HAL_I2C_Mem_Read.str1.4,"aMS",%progbits,1
10456 .align 2
10457 .LC38:
10458 0000 42616420 .ascii "Bad pData or Size=0\015\012\000"
10458 70446174
10458 61206F72
10458 2053697A
10458 653D300D
10459 0016 0000 .space 2
ARM GAS /tmp/ccpuPECZ.s page 295
10460 .LC40:
10461 0018 54696D65 .ascii "Timeout\015\012\000"
10461 6F75740D
10461 0A00
10462 0022 0000 .space 2
10463 .LC42:
10464 0024 4572726F .ascii "Error in memory read - %d\015\012\000"
10464 7220696E
10464 206D656D
10464 6F727920
10464 72656164
10465 .LC44:
10466 0040 77616974 .ascii "waiting for flag timeout1\015\012\000"
10466 696E6720
10466 666F7220
10466 666C6167
10466 2074696D
10467 .LC46:
10468 005c 77616974 .ascii "waiting for flag timeout2\015\012\000"
10468 696E6720
10468 666F7220
10468 666C6167
10468 2074696D
10469 .LC48:
10470 0078 77616974 .ascii "waiting for stop error %d\015\012\000"
10470 696E6720
10470 666F7220
10470 73746F70
10470 20657272
10471 .LC50:
10472 0094 62757379 .ascii "busy!!\015\012\000"
10472 21210D0A
10472 00
10473 .section .rodata.I2C_RequestMemoryRead.str1.4,"aMS",%progbits,1
10474 .align 2
10475 .LC4:
10476 0000 4932435F .ascii "I2C_RequestMemoryRead error %d\015\012\000"
10476 52657175
10476 6573744D
10476 656D6F72
10476 79526561
10477 0021 000000 .space 3
10478 .LC6:
10479 0024 4932435F .ascii "I2C_RequestMemoryRead error2 %d\015\012\000"
10479 52657175
10479 6573744D
10479 656D6F72
10479 79526561
10480 0046 0000 .space 2
10481 .LC8:
10482 0048 4932435F .ascii "I2C_RequestMemoryRead TIMEOUT\015\012\000"
10482 52657175
10482 6573744D
10482 656D6F72
10482 79526561
10483 .section .rodata.I2C_WaitOnTXISFlagUntilTimeout.str1.4,"aMS",%progbits,1
10484 .align 2
ARM GAS /tmp/ccpuPECZ.s page 296
10485 .LC0:
10486 0000 4932435F .ascii "I2C_WaitOnTXISFlagUntilTimeout ->I2C_IsAcknowledgeF"
10486 57616974
10486 4F6E5458
10486 4953466C
10486 6167556E
10487 0033 61696C65 .ascii "ailed error\015\012\000"
10487 64206572
10487 726F720D
10487 0A00
10488 0041 000000 .space 3
10489 .LC2:
10490 0044 4932435F .ascii "I2C_WaitOnTXISFlagUntilTimeout timeout\015\012\000"
10490 57616974
10490 4F6E5458
10490 4953466C
10490 6167556E
10491 .text
10492 .Letext0:
10493 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h"
10494 .file 3 "/usr/arm-none-eabi/include/sys/_stdint.h"
10495 .file 4 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h"
10496 .file 5 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l073xx.h"
10497 .file 6 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l0xx.h"
10498 .file 7 "/usr/arm-none-eabi/include/sys/lock.h"
10499 .file 8 "/usr/arm-none-eabi/include/sys/_types.h"
10500 .file 9 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h"
10501 .file 10 "/usr/arm-none-eabi/include/sys/reent.h"
10502 .file 11 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_def.h"
10503 .file 12 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_dma.h"
10504 .file 13 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_i2c.h"
10505 .file 14 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal.h"
10506 .file 15 "Inc/vcom.h"
ARM GAS /tmp/ccpuPECZ.s page 297
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32l0xx_hal_i2c.c
/tmp/ccpuPECZ.s:16 .text.I2C_DMASlaveTransmitCplt:0000000000000000 $t
/tmp/ccpuPECZ.s:22 .text.I2C_DMASlaveTransmitCplt:0000000000000000 I2C_DMASlaveTransmitCplt
/tmp/ccpuPECZ.s:38 .text.I2C_DMASlaveReceiveCplt:0000000000000000 $t
/tmp/ccpuPECZ.s:44 .text.I2C_DMASlaveReceiveCplt:0000000000000000 I2C_DMASlaveReceiveCplt
/tmp/ccpuPECZ.s:59 .text.I2C_Disable_IRQ:0000000000000000 $t
/tmp/ccpuPECZ.s:65 .text.I2C_Disable_IRQ:0000000000000000 I2C_Disable_IRQ
/tmp/ccpuPECZ.s:186 .text.I2C_IsAcknowledgeFailed:0000000000000000 $t
/tmp/ccpuPECZ.s:192 .text.I2C_IsAcknowledgeFailed:0000000000000000 I2C_IsAcknowledgeFailed
/tmp/ccpuPECZ.s:321 .text.I2C_IsAcknowledgeFailed:000000000000008c $d
/tmp/ccpuPECZ.s:326 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 $t
/tmp/ccpuPECZ.s:332 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 I2C_WaitOnFlagUntilTimeout
/tmp/ccpuPECZ.s:405 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 $t
/tmp/ccpuPECZ.s:411 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 I2C_WaitOnSTOPFlagUntilTimeout
/tmp/ccpuPECZ.s:490 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 $t
/tmp/ccpuPECZ.s:496 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 I2C_WaitOnRXNEFlagUntilTimeout
/tmp/ccpuPECZ.s:601 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000074 $d
/tmp/ccpuPECZ.s:606 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 $t
/tmp/ccpuPECZ.s:612 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 I2C_WaitOnTXISFlagUntilTimeout
/tmp/ccpuPECZ.s:700 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000060 $d
/tmp/ccpuPECZ.s:706 .text.I2C_RequestMemoryWrite:0000000000000000 $t
/tmp/ccpuPECZ.s:712 .text.I2C_RequestMemoryWrite:0000000000000000 I2C_RequestMemoryWrite
/tmp/ccpuPECZ.s:839 .text.I2C_RequestMemoryWrite:0000000000000090 $d
/tmp/ccpuPECZ.s:845 .text.I2C_RequestMemoryRead:0000000000000000 $t
/tmp/ccpuPECZ.s:851 .text.I2C_RequestMemoryRead:0000000000000000 I2C_RequestMemoryRead
/tmp/ccpuPECZ.s:994 .text.I2C_RequestMemoryRead:00000000000000a8 $d
/tmp/ccpuPECZ.s:1003 .text.I2C_DMAMasterTransmitCplt:0000000000000000 $t
/tmp/ccpuPECZ.s:1009 .text.I2C_DMAMasterTransmitCplt:0000000000000000 I2C_DMAMasterTransmitCplt
/tmp/ccpuPECZ.s:1142 .text.I2C_DMAMasterTransmitCplt:0000000000000084 $d
/tmp/ccpuPECZ.s:9918 .text.I2C_Master_ISR_DMA:0000000000000000 I2C_Master_ISR_DMA
/tmp/ccpuPECZ.s:9229 .text.I2C_Slave_ISR_DMA:0000000000000000 I2C_Slave_ISR_DMA
/tmp/ccpuPECZ.s:1151 .text.I2C_DMAMasterReceiveCplt:0000000000000000 $t
/tmp/ccpuPECZ.s:1157 .text.I2C_DMAMasterReceiveCplt:0000000000000000 I2C_DMAMasterReceiveCplt
/tmp/ccpuPECZ.s:1290 .text.I2C_DMAMasterReceiveCplt:0000000000000084 $d
/tmp/ccpuPECZ.s:1299 .text.HAL_I2C_MspInit:0000000000000000 $t
/tmp/ccpuPECZ.s:1306 .text.HAL_I2C_MspInit:0000000000000000 HAL_I2C_MspInit
/tmp/ccpuPECZ.s:1321 .text.HAL_I2C_Init:0000000000000000 $t
/tmp/ccpuPECZ.s:1328 .text.HAL_I2C_Init:0000000000000000 HAL_I2C_Init
/tmp/ccpuPECZ.s:1476 .text.HAL_I2C_Init:00000000000000c0 $d
/tmp/ccpuPECZ.s:1483 .text.HAL_I2C_MspDeInit:0000000000000000 $t
/tmp/ccpuPECZ.s:1490 .text.HAL_I2C_MspDeInit:0000000000000000 HAL_I2C_MspDeInit
/tmp/ccpuPECZ.s:1505 .text.HAL_I2C_DeInit:0000000000000000 $t
/tmp/ccpuPECZ.s:1512 .text.HAL_I2C_DeInit:0000000000000000 HAL_I2C_DeInit
/tmp/ccpuPECZ.s:1572 .text.HAL_I2C_Master_Transmit:0000000000000000 $t
/tmp/ccpuPECZ.s:1579 .text.HAL_I2C_Master_Transmit:0000000000000000 HAL_I2C_Master_Transmit
/tmp/ccpuPECZ.s:1925 .text.HAL_I2C_Master_Transmit:00000000000001a8 $d
/tmp/ccpuPECZ.s:1934 .text.HAL_I2C_Master_Receive:0000000000000000 $t
/tmp/ccpuPECZ.s:1941 .text.HAL_I2C_Master_Receive:0000000000000000 HAL_I2C_Master_Receive
/tmp/ccpuPECZ.s:2287 .text.HAL_I2C_Master_Receive:00000000000001a8 $d
/tmp/ccpuPECZ.s:2296 .text.HAL_I2C_Slave_Transmit:0000000000000000 $t
/tmp/ccpuPECZ.s:2303 .text.HAL_I2C_Slave_Transmit:0000000000000000 HAL_I2C_Slave_Transmit
/tmp/ccpuPECZ.s:2617 .text.HAL_I2C_Slave_Transmit:000000000000019c $d
/tmp/ccpuPECZ.s:2622 .text.HAL_I2C_Slave_Receive:0000000000000000 $t
/tmp/ccpuPECZ.s:2629 .text.HAL_I2C_Slave_Receive:0000000000000000 HAL_I2C_Slave_Receive
/tmp/ccpuPECZ.s:2928 .text.HAL_I2C_Slave_Receive:0000000000000188 $d
/tmp/ccpuPECZ.s:2933 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 $t
ARM GAS /tmp/ccpuPECZ.s page 298
/tmp/ccpuPECZ.s:2940 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 HAL_I2C_Master_Transmit_IT
/tmp/ccpuPECZ.s:3113 .text.HAL_I2C_Master_Transmit_IT:00000000000000a8 $d
/tmp/ccpuPECZ.s:9553 .text.I2C_Master_ISR_IT:0000000000000000 I2C_Master_ISR_IT
/tmp/ccpuPECZ.s:3123 .text.HAL_I2C_Master_Receive_IT:0000000000000000 $t
/tmp/ccpuPECZ.s:3130 .text.HAL_I2C_Master_Receive_IT:0000000000000000 HAL_I2C_Master_Receive_IT
/tmp/ccpuPECZ.s:3303 .text.HAL_I2C_Master_Receive_IT:00000000000000a8 $d
/tmp/ccpuPECZ.s:3313 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 $t
/tmp/ccpuPECZ.s:3320 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 HAL_I2C_Slave_Transmit_IT
/tmp/ccpuPECZ.s:3417 .text.HAL_I2C_Slave_Transmit_IT:000000000000005c $d
/tmp/ccpuPECZ.s:8805 .text.I2C_Slave_ISR_IT:0000000000000000 I2C_Slave_ISR_IT
/tmp/ccpuPECZ.s:3424 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 $t
/tmp/ccpuPECZ.s:3431 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 HAL_I2C_Slave_Receive_IT
/tmp/ccpuPECZ.s:3528 .text.HAL_I2C_Slave_Receive_IT:000000000000005c $d
/tmp/ccpuPECZ.s:3535 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 $t
/tmp/ccpuPECZ.s:3542 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 HAL_I2C_Master_Transmit_DMA
/tmp/ccpuPECZ.s:3830 .text.HAL_I2C_Master_Transmit_DMA:0000000000000138 $d
/tmp/ccpuPECZ.s:10181 .text.I2C_DMAError:0000000000000000 I2C_DMAError
/tmp/ccpuPECZ.s:3843 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 $t
/tmp/ccpuPECZ.s:3850 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 HAL_I2C_Master_Receive_DMA
/tmp/ccpuPECZ.s:4137 .text.HAL_I2C_Master_Receive_DMA:0000000000000138 $d
/tmp/ccpuPECZ.s:4150 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 $t
/tmp/ccpuPECZ.s:4157 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Transmit_DMA
/tmp/ccpuPECZ.s:4299 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000098 $d
/tmp/ccpuPECZ.s:4308 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 $t
/tmp/ccpuPECZ.s:4315 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 HAL_I2C_Slave_Receive_DMA
/tmp/ccpuPECZ.s:4460 .text.HAL_I2C_Slave_Receive_DMA:000000000000009c $d
/tmp/ccpuPECZ.s:4469 .text.HAL_I2C_Mem_Write:0000000000000000 $t
/tmp/ccpuPECZ.s:4476 .text.HAL_I2C_Mem_Write:0000000000000000 HAL_I2C_Mem_Write
/tmp/ccpuPECZ.s:4886 .text.HAL_I2C_Mem_Write:0000000000000200 $d
/tmp/ccpuPECZ.s:4892 .text.HAL_I2C_Mem_Read:0000000000000000 $t
/tmp/ccpuPECZ.s:4899 .text.HAL_I2C_Mem_Read:0000000000000000 HAL_I2C_Mem_Read
/tmp/ccpuPECZ.s:5320 .text.HAL_I2C_Mem_Read:0000000000000218 $d
/tmp/ccpuPECZ.s:5336 .text.HAL_I2C_Mem_Write_IT:0000000000000000 $t
/tmp/ccpuPECZ.s:5343 .text.HAL_I2C_Mem_Write_IT:0000000000000000 HAL_I2C_Mem_Write_IT
/tmp/ccpuPECZ.s:5602 .text.HAL_I2C_Mem_Write_IT:0000000000000118 $d
/tmp/ccpuPECZ.s:5611 .text.HAL_I2C_Mem_Read_IT:0000000000000000 $t
/tmp/ccpuPECZ.s:5618 .text.HAL_I2C_Mem_Read_IT:0000000000000000 HAL_I2C_Mem_Read_IT
/tmp/ccpuPECZ.s:5881 .text.HAL_I2C_Mem_Read_IT:0000000000000120 $d
/tmp/ccpuPECZ.s:5891 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 $t
/tmp/ccpuPECZ.s:5898 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 HAL_I2C_Mem_Write_DMA
/tmp/ccpuPECZ.s:6183 .text.HAL_I2C_Mem_Write_DMA:0000000000000150 $d
/tmp/ccpuPECZ.s:6193 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 $t
/tmp/ccpuPECZ.s:6200 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 HAL_I2C_Mem_Read_DMA
/tmp/ccpuPECZ.s:6487 .text.HAL_I2C_Mem_Read_DMA:0000000000000154 $d
/tmp/ccpuPECZ.s:6498 .text.HAL_I2C_IsDeviceReady:0000000000000000 $t
/tmp/ccpuPECZ.s:6505 .text.HAL_I2C_IsDeviceReady:0000000000000000 HAL_I2C_IsDeviceReady
/tmp/ccpuPECZ.s:6781 .text.HAL_I2C_IsDeviceReady:0000000000000154 $d
/tmp/ccpuPECZ.s:6786 .text.HAL_I2C_Master_Sequential_Transmit_IT:0000000000000000 $t
/tmp/ccpuPECZ.s:6793 .text.HAL_I2C_Master_Sequential_Transmit_IT:0000000000000000 HAL_I2C_Master_Sequential_Transmit_IT
/tmp/ccpuPECZ.s:6982 .text.HAL_I2C_Master_Sequential_Transmit_IT:00000000000000bc $d
/tmp/ccpuPECZ.s:6991 .text.HAL_I2C_Master_Sequential_Receive_IT:0000000000000000 $t
/tmp/ccpuPECZ.s:6998 .text.HAL_I2C_Master_Sequential_Receive_IT:0000000000000000 HAL_I2C_Master_Sequential_Receive_IT
/tmp/ccpuPECZ.s:7187 .text.HAL_I2C_Master_Sequential_Receive_IT:00000000000000bc $d
/tmp/ccpuPECZ.s:7196 .text.HAL_I2C_Slave_Sequential_Transmit_IT:0000000000000000 $t
/tmp/ccpuPECZ.s:7203 .text.HAL_I2C_Slave_Sequential_Transmit_IT:0000000000000000 HAL_I2C_Slave_Sequential_Transmit_IT
/tmp/ccpuPECZ.s:7376 .text.HAL_I2C_Slave_Sequential_Transmit_IT:00000000000000b4 $d
/tmp/ccpuPECZ.s:7384 .text.HAL_I2C_Slave_Sequential_Receive_IT:0000000000000000 $t
ARM GAS /tmp/ccpuPECZ.s page 299
/tmp/ccpuPECZ.s:7391 .text.HAL_I2C_Slave_Sequential_Receive_IT:0000000000000000 HAL_I2C_Slave_Sequential_Receive_IT
/tmp/ccpuPECZ.s:7564 .text.HAL_I2C_Slave_Sequential_Receive_IT:00000000000000b4 $d
/tmp/ccpuPECZ.s:7572 .text.HAL_I2C_EnableListen_IT:0000000000000000 $t
/tmp/ccpuPECZ.s:7579 .text.HAL_I2C_EnableListen_IT:0000000000000000 HAL_I2C_EnableListen_IT
/tmp/ccpuPECZ.s:7627 .text.HAL_I2C_EnableListen_IT:0000000000000024 $d
/tmp/ccpuPECZ.s:7632 .text.HAL_I2C_DisableListen_IT:0000000000000000 $t
/tmp/ccpuPECZ.s:7639 .text.HAL_I2C_DisableListen_IT:0000000000000000 HAL_I2C_DisableListen_IT
/tmp/ccpuPECZ.s:7698 .text.HAL_I2C_Master_Abort_IT:0000000000000000 $t
/tmp/ccpuPECZ.s:7705 .text.HAL_I2C_Master_Abort_IT:0000000000000000 HAL_I2C_Master_Abort_IT
/tmp/ccpuPECZ.s:7828 .text.HAL_I2C_Master_Abort_IT:0000000000000074 $d
/tmp/ccpuPECZ.s:7836 .text.HAL_I2C_EV_IRQHandler:0000000000000000 $t
/tmp/ccpuPECZ.s:7843 .text.HAL_I2C_EV_IRQHandler:0000000000000000 HAL_I2C_EV_IRQHandler
/tmp/ccpuPECZ.s:7877 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 $t
/tmp/ccpuPECZ.s:7884 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 HAL_I2C_MasterTxCpltCallback
/tmp/ccpuPECZ.s:7899 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 $t
/tmp/ccpuPECZ.s:7906 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 HAL_I2C_MasterRxCpltCallback
/tmp/ccpuPECZ.s:7921 .text.I2C_ITMasterSequentialCplt:0000000000000000 $t
/tmp/ccpuPECZ.s:7927 .text.I2C_ITMasterSequentialCplt:0000000000000000 I2C_ITMasterSequentialCplt
/tmp/ccpuPECZ.s:8005 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 $t
/tmp/ccpuPECZ.s:8012 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 HAL_I2C_SlaveTxCpltCallback
/tmp/ccpuPECZ.s:8027 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 $t
/tmp/ccpuPECZ.s:8034 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 HAL_I2C_SlaveRxCpltCallback
/tmp/ccpuPECZ.s:8049 .text.I2C_ITSlaveSequentialCplt:0000000000000000 $t
/tmp/ccpuPECZ.s:8055 .text.I2C_ITSlaveSequentialCplt:0000000000000000 I2C_ITSlaveSequentialCplt
/tmp/ccpuPECZ.s:8137 .text.HAL_I2C_AddrCallback:0000000000000000 $t
/tmp/ccpuPECZ.s:8144 .text.HAL_I2C_AddrCallback:0000000000000000 HAL_I2C_AddrCallback
/tmp/ccpuPECZ.s:8159 .text.HAL_I2C_ListenCpltCallback:0000000000000000 $t
/tmp/ccpuPECZ.s:8166 .text.HAL_I2C_ListenCpltCallback:0000000000000000 HAL_I2C_ListenCpltCallback
/tmp/ccpuPECZ.s:8181 .text.I2C_ITListenCplt:0000000000000000 $t
/tmp/ccpuPECZ.s:8187 .text.I2C_ITListenCplt:0000000000000000 I2C_ITListenCplt
/tmp/ccpuPECZ.s:8269 .text.I2C_ITListenCplt:0000000000000060 $d
/tmp/ccpuPECZ.s:8274 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 $t
/tmp/ccpuPECZ.s:8281 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 HAL_I2C_MemTxCpltCallback
/tmp/ccpuPECZ.s:8296 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 $t
/tmp/ccpuPECZ.s:8303 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 HAL_I2C_MemRxCpltCallback
/tmp/ccpuPECZ.s:8318 .text.HAL_I2C_ErrorCallback:0000000000000000 $t
/tmp/ccpuPECZ.s:8325 .text.HAL_I2C_ErrorCallback:0000000000000000 HAL_I2C_ErrorCallback
/tmp/ccpuPECZ.s:8340 .text.HAL_I2C_AbortCpltCallback:0000000000000000 $t
/tmp/ccpuPECZ.s:8347 .text.HAL_I2C_AbortCpltCallback:0000000000000000 HAL_I2C_AbortCpltCallback
/tmp/ccpuPECZ.s:8362 .text.I2C_ITError:0000000000000000 $t
/tmp/ccpuPECZ.s:8368 .text.I2C_ITError:0000000000000000 I2C_ITError
/tmp/ccpuPECZ.s:8548 .text.I2C_ITError:00000000000000e4 $d
/tmp/ccpuPECZ.s:10322 .text.I2C_DMAAbort:0000000000000000 I2C_DMAAbort
/tmp/ccpuPECZ.s:8557 .text.I2C_ITSlaveCplt:0000000000000000 $t
/tmp/ccpuPECZ.s:8563 .text.I2C_ITSlaveCplt:0000000000000000 I2C_ITSlaveCplt
/tmp/ccpuPECZ.s:8793 .text.I2C_ITSlaveCplt:0000000000000124 $d
/tmp/ccpuPECZ.s:8799 .text.I2C_Slave_ISR_IT:0000000000000000 $t
/tmp/ccpuPECZ.s:9218 .text.I2C_Slave_ISR_IT:00000000000001fc $d
/tmp/ccpuPECZ.s:9223 .text.I2C_Slave_ISR_DMA:0000000000000000 $t
/tmp/ccpuPECZ.s:9354 .text.I2C_ITMasterCplt:0000000000000000 $t
/tmp/ccpuPECZ.s:9360 .text.I2C_ITMasterCplt:0000000000000000 I2C_ITMasterCplt
/tmp/ccpuPECZ.s:9541 .text.I2C_ITMasterCplt:00000000000000e0 $d
/tmp/ccpuPECZ.s:9547 .text.I2C_Master_ISR_IT:0000000000000000 $t
/tmp/ccpuPECZ.s:9906 .text.I2C_Master_ISR_IT:00000000000001a0 $d
/tmp/ccpuPECZ.s:9912 .text.I2C_Master_ISR_DMA:0000000000000000 $t
/tmp/ccpuPECZ.s:10168 .text.I2C_Master_ISR_DMA:0000000000000110 $d
/tmp/ccpuPECZ.s:10175 .text.I2C_DMAError:0000000000000000 $t
ARM GAS /tmp/ccpuPECZ.s page 300
/tmp/ccpuPECZ.s:10214 .text.HAL_I2C_ER_IRQHandler:0000000000000000 $t
/tmp/ccpuPECZ.s:10221 .text.HAL_I2C_ER_IRQHandler:0000000000000000 HAL_I2C_ER_IRQHandler
/tmp/ccpuPECZ.s:10316 .text.I2C_DMAAbort:0000000000000000 $t
/tmp/ccpuPECZ.s:10377 .text.HAL_I2C_GetState:0000000000000000 $t
/tmp/ccpuPECZ.s:10384 .text.HAL_I2C_GetState:0000000000000000 HAL_I2C_GetState
/tmp/ccpuPECZ.s:10404 .text.HAL_I2C_GetMode:0000000000000000 $t
/tmp/ccpuPECZ.s:10411 .text.HAL_I2C_GetMode:0000000000000000 HAL_I2C_GetMode
/tmp/ccpuPECZ.s:10431 .text.HAL_I2C_GetError:0000000000000000 $t
/tmp/ccpuPECZ.s:10438 .text.HAL_I2C_GetError:0000000000000000 HAL_I2C_GetError
/tmp/ccpuPECZ.s:10456 .rodata.HAL_I2C_Mem_Read.str1.4:0000000000000000 $d
/tmp/ccpuPECZ.s:10474 .rodata.I2C_RequestMemoryRead.str1.4:0000000000000000 $d
/tmp/ccpuPECZ.s:10484 .rodata.I2C_WaitOnTXISFlagUntilTimeout.str1.4:0000000000000000 $d
.debug_frame:0000000000000010 $d
UNDEFINED SYMBOLS
HAL_GetTick
vcom_Send
HAL_DMA_Start_IT
HAL_DMA_Abort_IT