23905 lines
1.3 MiB
23905 lines
1.3 MiB
ARM GAS /tmp/cc5G5cqz.s page 1
|
||
|
||
|
||
1 .cpu cortex-m4
|
||
2 .arch armv7e-m
|
||
3 .fpu fpv4-sp-d16
|
||
4 .eabi_attribute 27, 1
|
||
5 .eabi_attribute 28, 1
|
||
6 .eabi_attribute 20, 1
|
||
7 .eabi_attribute 21, 1
|
||
8 .eabi_attribute 23, 3
|
||
9 .eabi_attribute 24, 1
|
||
10 .eabi_attribute 25, 1
|
||
11 .eabi_attribute 26, 1
|
||
12 .eabi_attribute 30, 6
|
||
13 .eabi_attribute 34, 1
|
||
14 .eabi_attribute 18, 4
|
||
15 .file "stm32f3xx_hal_i2c.c"
|
||
16 .text
|
||
17 .Ltext0:
|
||
18 .cfi_sections .debug_frame
|
||
19 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c"
|
||
20 .section .text.HAL_I2C_Init,"ax",%progbits
|
||
21 .align 1
|
||
22 .global HAL_I2C_Init
|
||
23 .syntax unified
|
||
24 .thumb
|
||
25 .thumb_func
|
||
27 HAL_I2C_Init:
|
||
28 .LFB130:
|
||
1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ******************************************************************************
|
||
3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @file stm32f3xx_hal_i2c.c
|
||
4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @author MCD Application Team
|
||
5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C HAL module driver.
|
||
6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This file provides firmware functions to manage the following
|
||
7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral:
|
||
8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + Initialization and de-initialization functions
|
||
9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + IO operation functions
|
||
10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + Peripheral State and Errors functions
|
||
11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
|
||
12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ******************************************************************************
|
||
13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @attention
|
||
14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
|
||
15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * Copyright (c) 2016 STMicroelectronics.
|
||
16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * All rights reserved.
|
||
17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
|
||
18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This software is licensed under terms that can be found in the LICENSE file
|
||
19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in the root directory of this software component.
|
||
20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
|
||
21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
|
||
22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ******************************************************************************
|
||
23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
|
||
24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================================================================
|
||
25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### How to use this driver #####
|
||
26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================================================================
|
||
27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The I2C HAL driver can be used as follows:
|
||
29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example:
|
||
ARM GAS /tmp/cc5G5cqz.s page 2
|
||
|
||
|
||
31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef hi2c;
|
||
32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API:
|
||
34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) Enable the I2Cx interface clock
|
||
35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) I2C pins configuration
|
||
36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs
|
||
37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain
|
||
38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process
|
||
39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority
|
||
40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel
|
||
41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process
|
||
42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for
|
||
43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the transmit or receive channel
|
||
44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using
|
||
45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the DMA handle parameters
|
||
46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx channel
|
||
47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle
|
||
48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on
|
||
49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the DMA Tx or Rx channel
|
||
50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres
|
||
52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure
|
||
53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level H
|
||
55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API.
|
||
56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceRead
|
||
58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver :
|
||
60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Polling mode IO operation ***
|
||
62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =================================
|
||
63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using HAL_I2C_Master_Transmit(
|
||
65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using HAL_I2C_Master_Receive()
|
||
66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Transmit()
|
||
67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Receive()
|
||
68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Polling mode IO MEM operation ***
|
||
70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =====================================
|
||
71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using HAL_I2C_Mem_W
|
||
73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using HAL_I2C_Mem_
|
||
74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode IO operation ***
|
||
77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===================================
|
||
78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Trans
|
||
80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can
|
||
81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback()
|
||
82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Receiv
|
||
83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can
|
||
84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
|
||
85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Transmi
|
||
86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can
|
||
87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
|
||
ARM GAS /tmp/cc5G5cqz.s page 3
|
||
|
||
|
||
88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Receive_
|
||
89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can
|
||
90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
|
||
91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
|
||
92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
|
||
93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT()
|
||
94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
|
||
95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
|
||
96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
|
||
97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
|
||
98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation ***
|
||
101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==========================================================
|
||
102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition
|
||
104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** when a direction change during transfer
|
||
105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer
|
||
107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Option field values are defined through I2C_XFEROPTIONS and are listed below:
|
||
108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfac
|
||
109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** no sequential mode
|
||
110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con
|
||
111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and data to transfer without a final stop condition
|
||
112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a
|
||
113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** start condition, address and data to transfer without a final stop cond
|
||
114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** an then permit a call the same master sequential interface several time
|
||
115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (like HAL_I2C_Master_Seq_Transmit_IT() then HAL_I2C_Master_Seq_Transmit
|
||
116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA() then HAL_I2C_Master_Seq_Transmit_D
|
||
117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart
|
||
118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
|
||
119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfer
|
||
120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases
|
||
121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart
|
||
122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
|
||
123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfer
|
||
124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases
|
||
125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a re
|
||
126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** after several call of the same master sequential interface several time
|
||
127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (link with option I2C_FIRST_AND_NEXT_FRAME).
|
||
128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Usage can, transfer several bytes one by one using
|
||
129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT
|
||
130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT
|
||
131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA
|
||
132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA
|
||
133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** with option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME.
|
||
134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit
|
||
135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Receive sequence permit to call the opposite interface Receive or Tra
|
||
136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio
|
||
137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c
|
||
138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** each call of the same master sequential
|
||
139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** interface.
|
||
140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave
|
||
141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** each bytes using
|
||
142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT
|
||
143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT
|
||
144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA
|
||
ARM GAS /tmp/cc5G5cqz.s page 4
|
||
|
||
|
||
145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA
|
||
146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** with option I2C_FIRST_FRAME then I2C_OTHER_FRAME.
|
||
147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to
|
||
148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** generation of STOP condition.
|
||
149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Different sequential I2C interfaces are listed below:
|
||
151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using
|
||
152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT() or using HAL_I2C_Master_Seq_Transmit_DMA()
|
||
153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is execut
|
||
154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_MasterTxCpltC
|
||
155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using
|
||
156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Receive_IT() or using HAL_I2C_Master_Seq_Receive_DMA()
|
||
157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed
|
||
158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
|
||
159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Abort a master IT or DMA I2C process communication with Interrupt using HAL_I2C_Master_A
|
||
160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
|
||
161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
|
||
162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT()
|
||
163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_DisableListen_IT()
|
||
164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and users can
|
||
165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code to check the Address Match Code and the transmission direction reques
|
||
166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (Write/Read).
|
||
167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and users can
|
||
168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ListenCpltCallback()
|
||
169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using
|
||
170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Transmit_IT() or using HAL_I2C_Slave_Seq_Transmit_DMA()
|
||
171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is execute
|
||
172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCa
|
||
173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using
|
||
174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Receive_IT() or using HAL_I2C_Slave_Seq_Receive_DMA()
|
||
175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed a
|
||
176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
|
||
177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
|
||
178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
|
||
179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
|
||
180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
|
||
181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode IO MEM operation ***
|
||
183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =======================================
|
||
184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address
|
||
186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Write_IT()
|
||
187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can
|
||
188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback()
|
||
189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address
|
||
190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Read_IT()
|
||
191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can
|
||
192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback()
|
||
193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
|
||
194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
|
||
195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** DMA mode IO operation ***
|
||
197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================
|
||
198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using
|
||
200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Transmit_DMA()
|
||
201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can
|
||
ARM GAS /tmp/cc5G5cqz.s page 5
|
||
|
||
|
||
202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback()
|
||
203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using
|
||
204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Receive_DMA()
|
||
205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can
|
||
206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
|
||
207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using
|
||
208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Transmit_DMA()
|
||
209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can
|
||
210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
|
||
211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using
|
||
212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Receive_DMA()
|
||
213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can
|
||
214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
|
||
215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
|
||
216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
|
||
217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT()
|
||
218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
|
||
219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
|
||
220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
|
||
221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
|
||
222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** DMA mode IO MEM operation ***
|
||
224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =================================
|
||
225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using
|
||
227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Write_DMA()
|
||
228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can
|
||
229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback()
|
||
230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using
|
||
231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Read_DMA()
|
||
232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can
|
||
233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback()
|
||
234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
|
||
235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
|
||
236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** I2C HAL driver macros list ***
|
||
239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==================================
|
||
240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver.
|
||
242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE: Enable the I2C peripheral
|
||
244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE: Disable the I2C peripheral
|
||
245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode
|
||
246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not
|
||
247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag
|
||
248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt
|
||
249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt
|
||
250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Callback registration ***
|
||
252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================
|
||
253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1
|
||
255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks.
|
||
256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Use Functions HAL_I2C_RegisterCallback() or HAL_I2C_RegisterAddrCallback()
|
||
257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to register an interrupt callback.
|
||
258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
ARM GAS /tmp/cc5G5cqz.s page 6
|
||
|
||
|
||
259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Function HAL_I2C_RegisterCallback() allows to register following callbacks:
|
||
260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
|
||
261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
|
||
262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
|
||
263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
|
||
264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
|
||
265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
|
||
266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
|
||
267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
|
||
268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
|
||
269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
|
||
270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
|
||
271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID
|
||
272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and a pointer to the user callback function.
|
||
273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : HAL_I2C_RegisterAddrCall
|
||
275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Use function HAL_I2C_UnRegisterCallback to reset a callback to the default
|
||
277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** weak function.
|
||
278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle,
|
||
279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and the Callback ID.
|
||
280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This function allows to reset following callbacks:
|
||
281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
|
||
282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
|
||
283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
|
||
284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
|
||
285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
|
||
286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
|
||
287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
|
||
288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
|
||
289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
|
||
290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
|
||
291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
|
||
292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : HAL_I2C_UnRegisterAddrCallback().
|
||
294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** By default, after the HAL_I2C_Init() and when the state is HAL_I2C_STATE_RESET
|
||
296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions:
|
||
297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** examples HAL_I2C_MasterTxCpltCallback(), HAL_I2C_MasterRxCpltCallback().
|
||
298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are
|
||
299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** reset to the legacy weak functions in the HAL_I2C_Init()/ HAL_I2C_DeInit() only when
|
||
300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** these callbacks are null (not registered beforehand).
|
||
301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the HAL_I2C_Init()/ HAL_I2C_DeInit()
|
||
302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state.
|
||
303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Callbacks can be registered/unregistered in HAL_I2C_STATE_READY state only.
|
||
305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered
|
||
306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** in HAL_I2C_STATE_READY or HAL_I2C_STATE_RESET state,
|
||
307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
|
||
308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks
|
||
309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** using HAL_I2C_RegisterCallback() before calling HAL_I2C_DeInit()
|
||
310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Init() function.
|
||
311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or
|
||
313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks
|
||
314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** are set to the corresponding weak functions.
|
||
315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 7
|
||
|
||
|
||
316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros
|
||
318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
|
||
320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/
|
||
323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #include "stm32f3xx_hal.h"
|
||
324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup STM32F3xx_HAL_Driver
|
||
326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
|
||
327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C I2C
|
||
330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C HAL module driver
|
||
331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
|
||
332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED
|
||
335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/
|
||
337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/
|
||
338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define
|
||
340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
|
||
341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */
|
||
343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */
|
||
344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */
|
||
345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */
|
||
346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */
|
||
347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */
|
||
348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */
|
||
349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */
|
||
350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */
|
||
351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */
|
||
352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U
|
||
354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define SLAVE_ADDR_SHIFT 7U
|
||
355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define SLAVE_ADDR_MSK 0x06U
|
||
356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */
|
||
358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | \
|
||
359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_STATE_BUSY_RX) & \
|
||
360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY))))
|
||
361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Mask State define, keep only RX and TX bits */
|
||
362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE))
|
||
363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Default Value */
|
||
364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \
|
||
365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER))
|
||
366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Master Busy TX, combinaison of State LSB and Mode enum */
|
||
367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \
|
||
368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER))
|
||
369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Master Busy RX, combinaison of State LSB and Mode enum */
|
||
370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \
|
||
371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE))
|
||
372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Slave Busy TX, combinaison of State LSB and Mode enum */
|
||
ARM GAS /tmp/cc5G5cqz.s page 8
|
||
|
||
|
||
373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \
|
||
374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE))
|
||
375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Slave Busy RX, combinaison of State LSB and Mode enum */
|
||
376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \
|
||
377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM))
|
||
378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Memory Busy TX, combinaison of State LSB and Mode enum */
|
||
379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \
|
||
380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM))
|
||
381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Memory Busy RX, combinaison of State LSB and Mode enum */
|
||
382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */
|
||
385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with
|
||
386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */
|
||
387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with
|
||
388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */
|
||
389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /*!< Bit field can be combinated with @ref I2
|
||
390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and @ref I2C_XFER_RX_IT */
|
||
391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /*!< Bit definition to manage addition of glo
|
||
393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and NACK treatment */
|
||
394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /*!< Bit definition to manage only STOP evene
|
||
395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /*!< Bit definition to manage only Reload of
|
||
396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */
|
||
398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U)
|
||
399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
|
||
401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private macros ------------------------------------------------------------*/
|
||
404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup I2C_Private_Macro
|
||
405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
|
||
406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Macro to get remaining data to transfer on DMA side */
|
||
408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) __HAL_DMA_GET_COUNTER(__HANDLE__)
|
||
409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
|
||
411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/
|
||
414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/
|
||
415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions
|
||
417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
|
||
418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle DMA transfer */
|
||
420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma);
|
||
421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma);
|
||
422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma);
|
||
423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma);
|
||
424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma);
|
||
425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma);
|
||
426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle IT transfer */
|
||
429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
|
||
ARM GAS /tmp/cc5G5cqz.s page 9
|
||
|
||
|
||
430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c);
|
||
431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c);
|
||
432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
|
||
433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
|
||
434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
|
||
435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode);
|
||
436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle IT transfer */
|
||
438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
|
||
439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t
|
||
440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
|
||
441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
|
||
442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T
|
||
443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
|
||
444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */
|
||
446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
|
||
447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
|
||
448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
|
||
449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
|
||
450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
|
||
451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
|
||
452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
|
||
453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
|
||
454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
|
||
455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
|
||
456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
|
||
457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
|
||
458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */
|
||
460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
|
||
461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart);
|
||
462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
|
||
463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
|
||
464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
|
||
465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
|
||
466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
|
||
467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
|
||
468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
|
||
469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
|
||
470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */
|
||
472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
|
||
473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
|
||
474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to treat different error callback */
|
||
476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c);
|
||
477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to flush TXDR register */
|
||
479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c);
|
||
480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */
|
||
482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
|
||
483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Request);
|
||
484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to Convert Specific options */
|
||
486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c);
|
||
ARM GAS /tmp/cc5G5cqz.s page 10
|
||
|
||
|
||
487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
|
||
489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/
|
||
492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions
|
||
494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
|
||
495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions
|
||
498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initialization and Configuration functions
|
||
499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
|
||
500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
|
||
501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
|
||
502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### Initialization and de-initialization functions #####
|
||
503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
|
||
504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and
|
||
505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** deinitialize the I2Cx peripheral:
|
||
506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures
|
||
508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ).
|
||
509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with
|
||
511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the selected configuration:
|
||
512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Clock Timing
|
||
513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 1
|
||
514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Addressing mode (Master, Slave)
|
||
515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Dual Addressing mode
|
||
516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 2
|
||
517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 2 Mask
|
||
518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) General call mode
|
||
519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Nostretch mode
|
||
520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration
|
||
522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** of the selected I2Cx peripheral.
|
||
523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
|
||
525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
|
||
526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters
|
||
530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle.
|
||
531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
|
||
536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
29 .loc 1 536 1
|
||
30 .cfi_startproc
|
||
31 @ args = 0, pretend = 0, frame = 8
|
||
32 @ frame_needed = 1, uses_anonymous_args = 0
|
||
33 0000 80B5 push {r7, lr}
|
||
34 .cfi_def_cfa_offset 8
|
||
35 .cfi_offset 7, -8
|
||
ARM GAS /tmp/cc5G5cqz.s page 11
|
||
|
||
|
||
36 .cfi_offset 14, -4
|
||
37 0002 82B0 sub sp, sp, #8
|
||
38 .cfi_def_cfa_offset 16
|
||
39 0004 00AF add r7, sp, #0
|
||
40 .cfi_def_cfa_register 7
|
||
41 0006 7860 str r0, [r7, #4]
|
||
537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
|
||
538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c == NULL)
|
||
42 .loc 1 538 6
|
||
43 0008 7B68 ldr r3, [r7, #4]
|
||
44 000a 002B cmp r3, #0
|
||
45 000c 01D1 bne .L2
|
||
539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
46 .loc 1 540 12
|
||
47 000e 0123 movs r3, #1
|
||
48 0010 81E0 b .L3
|
||
49 .L2:
|
||
541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
|
||
545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
|
||
546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode));
|
||
547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode));
|
||
548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2));
|
||
549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks));
|
||
550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode));
|
||
551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode));
|
||
552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET)
|
||
50 .loc 1 553 11
|
||
51 0012 7B68 ldr r3, [r7, #4]
|
||
52 0014 93F84130 ldrb r3, [r3, #65]
|
||
53 0018 DBB2 uxtb r3, r3
|
||
54 .loc 1 553 6
|
||
55 001a 002B cmp r3, #0
|
||
56 001c 06D1 bne .L4
|
||
554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Allocate lock resource and initialize it */
|
||
556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED;
|
||
57 .loc 1 556 16
|
||
58 001e 7B68 ldr r3, [r7, #4]
|
||
59 0020 0022 movs r2, #0
|
||
60 0022 83F84020 strb r2, [r3, #64]
|
||
557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the I2C Callback settings */
|
||
560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback
|
||
561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback
|
||
562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback
|
||
563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback
|
||
564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback
|
||
565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
|
||
566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
|
||
567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
|
||
568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
|
||
ARM GAS /tmp/cc5G5cqz.s page 12
|
||
|
||
|
||
569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback
|
||
570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL)
|
||
572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */
|
||
574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
|
||
577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c);
|
||
578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
|
||
580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c);
|
||
61 .loc 1 580 5
|
||
62 0026 7868 ldr r0, [r7, #4]
|
||
63 0028 FFF7FEFF bl HAL_I2C_MspInit
|
||
64 .L4:
|
||
581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
|
||
65 .loc 1 584 15
|
||
66 002c 7B68 ldr r3, [r7, #4]
|
||
67 002e 2422 movs r2, #36
|
||
68 0030 83F84120 strb r2, [r3, #65]
|
||
585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the selected I2C peripheral */
|
||
587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
|
||
69 .loc 1 587 3
|
||
70 0034 7B68 ldr r3, [r7, #4]
|
||
71 0036 1B68 ldr r3, [r3]
|
||
72 0038 1A68 ldr r2, [r3]
|
||
73 003a 7B68 ldr r3, [r7, #4]
|
||
74 003c 1B68 ldr r3, [r3]
|
||
75 003e 22F00102 bic r2, r2, #1
|
||
76 0042 1A60 str r2, [r3]
|
||
588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/
|
||
590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */
|
||
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK;
|
||
77 .loc 1 591 39
|
||
78 0044 7B68 ldr r3, [r7, #4]
|
||
79 0046 5A68 ldr r2, [r3, #4]
|
||
80 .loc 1 591 7
|
||
81 0048 7B68 ldr r3, [r7, #4]
|
||
82 004a 1B68 ldr r3, [r3]
|
||
83 .loc 1 591 47
|
||
84 004c 22F07062 bic r2, r2, #251658240
|
||
85 .loc 1 591 27
|
||
86 0050 1A61 str r2, [r3, #16]
|
||
592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/
|
||
594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */
|
||
595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN;
|
||
87 .loc 1 595 7
|
||
88 0052 7B68 ldr r3, [r7, #4]
|
||
89 0054 1B68 ldr r3, [r3]
|
||
90 .loc 1 595 17
|
||
ARM GAS /tmp/cc5G5cqz.s page 13
|
||
|
||
|
||
91 0056 9A68 ldr r2, [r3, #8]
|
||
92 .loc 1 595 7
|
||
93 0058 7B68 ldr r3, [r7, #4]
|
||
94 005a 1B68 ldr r3, [r3]
|
||
95 .loc 1 595 24
|
||
96 005c 22F40042 bic r2, r2, #32768
|
||
97 0060 9A60 str r2, [r3, #8]
|
||
596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */
|
||
598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT)
|
||
98 .loc 1 598 17
|
||
99 0062 7B68 ldr r3, [r7, #4]
|
||
100 0064 DB68 ldr r3, [r3, #12]
|
||
101 .loc 1 598 6
|
||
102 0066 012B cmp r3, #1
|
||
103 0068 07D1 bne .L5
|
||
599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1);
|
||
104 .loc 1 600 56
|
||
105 006a 7B68 ldr r3, [r7, #4]
|
||
106 006c 9A68 ldr r2, [r3, #8]
|
||
107 .loc 1 600 9
|
||
108 006e 7B68 ldr r3, [r7, #4]
|
||
109 0070 1B68 ldr r3, [r3]
|
||
110 .loc 1 600 44
|
||
111 0072 42F40042 orr r2, r2, #32768
|
||
112 .loc 1 600 26
|
||
113 0076 9A60 str r2, [r3, #8]
|
||
114 0078 06E0 b .L6
|
||
115 .L5:
|
||
601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */
|
||
603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1);
|
||
116 .loc 1 604 75
|
||
117 007a 7B68 ldr r3, [r7, #4]
|
||
118 007c 9A68 ldr r2, [r3, #8]
|
||
119 .loc 1 604 9
|
||
120 007e 7B68 ldr r3, [r7, #4]
|
||
121 0080 1B68 ldr r3, [r3]
|
||
122 .loc 1 604 63
|
||
123 0082 42F40442 orr r2, r2, #33792
|
||
124 .loc 1 604 26
|
||
125 0086 9A60 str r2, [r3, #8]
|
||
126 .L6:
|
||
605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/
|
||
608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */
|
||
609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
|
||
127 .loc 1 609 17
|
||
128 0088 7B68 ldr r3, [r7, #4]
|
||
129 008a DB68 ldr r3, [r3, #12]
|
||
130 .loc 1 609 6
|
||
131 008c 022B cmp r3, #2
|
||
132 008e 04D1 bne .L7
|
||
610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
ARM GAS /tmp/cc5G5cqz.s page 14
|
||
|
||
|
||
611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 = (I2C_CR2_ADD10);
|
||
133 .loc 1 611 9
|
||
134 0090 7B68 ldr r3, [r7, #4]
|
||
135 0092 1B68 ldr r3, [r3]
|
||
136 .loc 1 611 25
|
||
137 0094 4FF40062 mov r2, #2048
|
||
138 0098 5A60 str r2, [r3, #4]
|
||
139 .L7:
|
||
612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */
|
||
614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK);
|
||
140 .loc 1 614 7
|
||
141 009a 7B68 ldr r3, [r7, #4]
|
||
142 009c 1B68 ldr r3, [r3]
|
||
143 .loc 1 614 17
|
||
144 009e 5B68 ldr r3, [r3, #4]
|
||
145 .loc 1 614 7
|
||
146 00a0 7A68 ldr r2, [r7, #4]
|
||
147 00a2 1268 ldr r2, [r2]
|
||
148 .loc 1 614 23
|
||
149 00a4 43F00073 orr r3, r3, #33554432
|
||
150 00a8 43F40043 orr r3, r3, #32768
|
||
151 00ac 5360 str r3, [r2, #4]
|
||
615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/
|
||
617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */
|
||
618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE;
|
||
152 .loc 1 618 7
|
||
153 00ae 7B68 ldr r3, [r7, #4]
|
||
154 00b0 1B68 ldr r3, [r3]
|
||
155 .loc 1 618 17
|
||
156 00b2 DA68 ldr r2, [r3, #12]
|
||
157 .loc 1 618 7
|
||
158 00b4 7B68 ldr r3, [r7, #4]
|
||
159 00b6 1B68 ldr r3, [r3]
|
||
160 .loc 1 618 24
|
||
161 00b8 22F40042 bic r2, r2, #32768
|
||
162 00bc DA60 str r2, [r3, #12]
|
||
619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */
|
||
621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \
|
||
163 .loc 1 621 37
|
||
164 00be 7B68 ldr r3, [r7, #4]
|
||
165 00c0 1A69 ldr r2, [r3, #16]
|
||
166 .loc 1 621 66
|
||
167 00c2 7B68 ldr r3, [r7, #4]
|
||
168 00c4 5B69 ldr r3, [r3, #20]
|
||
169 .loc 1 621 54
|
||
170 00c6 42EA0301 orr r1, r2, r3
|
||
622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
|
||
171 .loc 1 622 38
|
||
172 00ca 7B68 ldr r3, [r7, #4]
|
||
173 00cc 9B69 ldr r3, [r3, #24]
|
||
174 .loc 1 622 56
|
||
175 00ce 1A02 lsls r2, r3, #8
|
||
621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
|
||
176 .loc 1 621 7
|
||
ARM GAS /tmp/cc5G5cqz.s page 15
|
||
|
||
|
||
177 00d0 7B68 ldr r3, [r7, #4]
|
||
178 00d2 1B68 ldr r3, [r3]
|
||
621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
|
||
179 .loc 1 621 79
|
||
180 00d4 0A43 orrs r2, r2, r1
|
||
621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
|
||
181 .loc 1 621 24
|
||
182 00d6 DA60 str r2, [r3, #12]
|
||
623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/
|
||
625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */
|
||
626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode);
|
||
183 .loc 1 626 36
|
||
184 00d8 7B68 ldr r3, [r7, #4]
|
||
185 00da D969 ldr r1, [r3, #28]
|
||
186 .loc 1 626 65
|
||
187 00dc 7B68 ldr r3, [r7, #4]
|
||
188 00de 1A6A ldr r2, [r3, #32]
|
||
189 .loc 1 626 7
|
||
190 00e0 7B68 ldr r3, [r7, #4]
|
||
191 00e2 1B68 ldr r3, [r3]
|
||
192 .loc 1 626 53
|
||
193 00e4 0A43 orrs r2, r2, r1
|
||
194 .loc 1 626 23
|
||
195 00e6 1A60 str r2, [r3]
|
||
627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the selected I2C peripheral */
|
||
629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c);
|
||
196 .loc 1 629 3
|
||
197 00e8 7B68 ldr r3, [r7, #4]
|
||
198 00ea 1B68 ldr r3, [r3]
|
||
199 00ec 1A68 ldr r2, [r3]
|
||
200 00ee 7B68 ldr r3, [r7, #4]
|
||
201 00f0 1B68 ldr r3, [r3]
|
||
202 00f2 42F00102 orr r2, r2, #1
|
||
203 00f6 1A60 str r2, [r3]
|
||
630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
204 .loc 1 631 19
|
||
205 00f8 7B68 ldr r3, [r7, #4]
|
||
206 00fa 0022 movs r2, #0
|
||
207 00fc 5A64 str r2, [r3, #68]
|
||
632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
208 .loc 1 632 15
|
||
209 00fe 7B68 ldr r3, [r7, #4]
|
||
210 0100 2022 movs r2, #32
|
||
211 0102 83F84120 strb r2, [r3, #65]
|
||
633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
212 .loc 1 633 23
|
||
213 0106 7B68 ldr r3, [r7, #4]
|
||
214 0108 0022 movs r2, #0
|
||
215 010a 1A63 str r2, [r3, #48]
|
||
634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
216 .loc 1 634 14
|
||
217 010c 7B68 ldr r3, [r7, #4]
|
||
218 010e 0022 movs r2, #0
|
||
219 0110 83F84220 strb r2, [r3, #66]
|
||
ARM GAS /tmp/cc5G5cqz.s page 16
|
||
|
||
|
||
635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
220 .loc 1 636 10
|
||
221 0114 0023 movs r3, #0
|
||
222 .L3:
|
||
637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
223 .loc 1 637 1
|
||
224 0116 1846 mov r0, r3
|
||
225 0118 0837 adds r7, r7, #8
|
||
226 .cfi_def_cfa_offset 8
|
||
227 011a BD46 mov sp, r7
|
||
228 .cfi_def_cfa_register 13
|
||
229 @ sp needed
|
||
230 011c 80BD pop {r7, pc}
|
||
231 .cfi_endproc
|
||
232 .LFE130:
|
||
234 .section .text.HAL_I2C_DeInit,"ax",%progbits
|
||
235 .align 1
|
||
236 .global HAL_I2C_DeInit
|
||
237 .syntax unified
|
||
238 .thumb
|
||
239 .thumb_func
|
||
241 HAL_I2C_DeInit:
|
||
242 .LFB131:
|
||
638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral.
|
||
641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c)
|
||
646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
243 .loc 1 646 1
|
||
244 .cfi_startproc
|
||
245 @ args = 0, pretend = 0, frame = 8
|
||
246 @ frame_needed = 1, uses_anonymous_args = 0
|
||
247 0000 80B5 push {r7, lr}
|
||
248 .cfi_def_cfa_offset 8
|
||
249 .cfi_offset 7, -8
|
||
250 .cfi_offset 14, -4
|
||
251 0002 82B0 sub sp, sp, #8
|
||
252 .cfi_def_cfa_offset 16
|
||
253 0004 00AF add r7, sp, #0
|
||
254 .cfi_def_cfa_register 7
|
||
255 0006 7860 str r0, [r7, #4]
|
||
647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
|
||
648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c == NULL)
|
||
256 .loc 1 648 6
|
||
257 0008 7B68 ldr r3, [r7, #4]
|
||
258 000a 002B cmp r3, #0
|
||
259 000c 01D1 bne .L9
|
||
649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
260 .loc 1 650 12
|
||
261 000e 0123 movs r3, #1
|
||
262 0010 21E0 b .L10
|
||
ARM GAS /tmp/cc5G5cqz.s page 17
|
||
|
||
|
||
263 .L9:
|
||
651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
|
||
655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
|
||
264 .loc 1 656 15
|
||
265 0012 7B68 ldr r3, [r7, #4]
|
||
266 0014 2422 movs r2, #36
|
||
267 0016 83F84120 strb r2, [r3, #65]
|
||
657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */
|
||
659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
|
||
268 .loc 1 659 3
|
||
269 001a 7B68 ldr r3, [r7, #4]
|
||
270 001c 1B68 ldr r3, [r3]
|
||
271 001e 1A68 ldr r2, [r3]
|
||
272 0020 7B68 ldr r3, [r7, #4]
|
||
273 0022 1B68 ldr r3, [r3]
|
||
274 0024 22F00102 bic r2, r2, #1
|
||
275 0028 1A60 str r2, [r3]
|
||
660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL)
|
||
663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */
|
||
665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
|
||
668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c);
|
||
669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
|
||
671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c);
|
||
276 .loc 1 671 3
|
||
277 002a 7868 ldr r0, [r7, #4]
|
||
278 002c FFF7FEFF bl HAL_I2C_MspDeInit
|
||
672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
279 .loc 1 674 19
|
||
280 0030 7B68 ldr r3, [r7, #4]
|
||
281 0032 0022 movs r2, #0
|
||
282 0034 5A64 str r2, [r3, #68]
|
||
675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
|
||
283 .loc 1 675 15
|
||
284 0036 7B68 ldr r3, [r7, #4]
|
||
285 0038 0022 movs r2, #0
|
||
286 003a 83F84120 strb r2, [r3, #65]
|
||
676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
287 .loc 1 676 23
|
||
288 003e 7B68 ldr r3, [r7, #4]
|
||
289 0040 0022 movs r2, #0
|
||
290 0042 1A63 str r2, [r3, #48]
|
||
677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
291 .loc 1 677 14
|
||
292 0044 7B68 ldr r3, [r7, #4]
|
||
ARM GAS /tmp/cc5G5cqz.s page 18
|
||
|
||
|
||
293 0046 0022 movs r2, #0
|
||
294 0048 83F84220 strb r2, [r3, #66]
|
||
678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */
|
||
680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
295 .loc 1 680 3
|
||
296 004c 7B68 ldr r3, [r7, #4]
|
||
297 004e 0022 movs r2, #0
|
||
298 0050 83F84020 strb r2, [r3, #64]
|
||
681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
299 .loc 1 682 10
|
||
300 0054 0023 movs r3, #0
|
||
301 .L10:
|
||
683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
302 .loc 1 683 1
|
||
303 0056 1846 mov r0, r3
|
||
304 0058 0837 adds r7, r7, #8
|
||
305 .cfi_def_cfa_offset 8
|
||
306 005a BD46 mov sp, r7
|
||
307 .cfi_def_cfa_register 13
|
||
308 @ sp needed
|
||
309 005c 80BD pop {r7, pc}
|
||
310 .cfi_endproc
|
||
311 .LFE131:
|
||
313 .section .text.HAL_I2C_MspInit,"ax",%progbits
|
||
314 .align 1
|
||
315 .weak HAL_I2C_MspInit
|
||
316 .syntax unified
|
||
317 .thumb
|
||
318 .thumb_func
|
||
320 HAL_I2C_MspInit:
|
||
321 .LFB132:
|
||
684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initialize the I2C MSP.
|
||
687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
|
||
692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
322 .loc 1 692 1
|
||
323 .cfi_startproc
|
||
324 @ args = 0, pretend = 0, frame = 8
|
||
325 @ frame_needed = 1, uses_anonymous_args = 0
|
||
326 @ link register save eliminated.
|
||
327 0000 80B4 push {r7}
|
||
328 .cfi_def_cfa_offset 4
|
||
329 .cfi_offset 7, -4
|
||
330 0002 83B0 sub sp, sp, #12
|
||
331 .cfi_def_cfa_offset 16
|
||
332 0004 00AF add r7, sp, #0
|
||
333 .cfi_def_cfa_register 7
|
||
334 0006 7860 str r0, [r7, #4]
|
||
693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
|
||
694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
|
||
ARM GAS /tmp/cc5G5cqz.s page 19
|
||
|
||
|
||
695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
|
||
697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file
|
||
698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
335 .loc 1 699 1
|
||
336 0008 00BF nop
|
||
337 000a 0C37 adds r7, r7, #12
|
||
338 .cfi_def_cfa_offset 4
|
||
339 000c BD46 mov sp, r7
|
||
340 .cfi_def_cfa_register 13
|
||
341 @ sp needed
|
||
342 000e 5DF8047B ldr r7, [sp], #4
|
||
343 .cfi_restore 7
|
||
344 .cfi_def_cfa_offset 0
|
||
345 0012 7047 bx lr
|
||
346 .cfi_endproc
|
||
347 .LFE132:
|
||
349 .section .text.HAL_I2C_MspDeInit,"ax",%progbits
|
||
350 .align 1
|
||
351 .weak HAL_I2C_MspDeInit
|
||
352 .syntax unified
|
||
353 .thumb
|
||
354 .thumb_func
|
||
356 HAL_I2C_MspDeInit:
|
||
357 .LFB133:
|
||
700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP.
|
||
703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
|
||
708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
358 .loc 1 708 1
|
||
359 .cfi_startproc
|
||
360 @ args = 0, pretend = 0, frame = 8
|
||
361 @ frame_needed = 1, uses_anonymous_args = 0
|
||
362 @ link register save eliminated.
|
||
363 0000 80B4 push {r7}
|
||
364 .cfi_def_cfa_offset 4
|
||
365 .cfi_offset 7, -4
|
||
366 0002 83B0 sub sp, sp, #12
|
||
367 .cfi_def_cfa_offset 16
|
||
368 0004 00AF add r7, sp, #0
|
||
369 .cfi_def_cfa_register 7
|
||
370 0006 7860 str r0, [r7, #4]
|
||
709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
|
||
710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
|
||
711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
|
||
713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file
|
||
714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
371 .loc 1 715 1
|
||
372 0008 00BF nop
|
||
ARM GAS /tmp/cc5G5cqz.s page 20
|
||
|
||
|
||
373 000a 0C37 adds r7, r7, #12
|
||
374 .cfi_def_cfa_offset 4
|
||
375 000c BD46 mov sp, r7
|
||
376 .cfi_def_cfa_register 13
|
||
377 @ sp needed
|
||
378 000e 5DF8047B ldr r7, [sp], #4
|
||
379 .cfi_restore 7
|
||
380 .cfi_def_cfa_offset 0
|
||
381 0012 7047 bx lr
|
||
382 .cfi_endproc
|
||
383 .LFE133:
|
||
385 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits
|
||
386 .align 1
|
||
387 .global HAL_I2C_Master_Transmit
|
||
388 .syntax unified
|
||
389 .thumb
|
||
390 .thumb_func
|
||
392 HAL_I2C_Master_Transmit:
|
||
393 .LFB134:
|
||
716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Register a User I2C Callback
|
||
720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * To be used instead of the weak predefined callback
|
||
721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note The HAL_I2C_RegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_RES
|
||
722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * to register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID.
|
||
723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered
|
||
726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
|
||
727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID
|
||
728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID
|
||
729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID
|
||
730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID
|
||
731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
|
||
732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
|
||
733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID
|
||
734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
|
||
735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
|
||
736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
|
||
737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
|
||
738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pCallback pointer to the Callback function
|
||
739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb
|
||
742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback)
|
||
743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
|
||
745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (pCallback == NULL)
|
||
747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
|
||
749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
|
||
750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 21
|
||
|
||
|
||
754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
|
||
755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
|
||
757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
|
||
759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback;
|
||
760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
|
||
763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback;
|
||
764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
|
||
767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback;
|
||
768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
|
||
771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback;
|
||
772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
|
||
775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback;
|
||
776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
|
||
779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback;
|
||
780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
|
||
783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback;
|
||
784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
|
||
787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback;
|
||
788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
|
||
791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback;
|
||
792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
|
||
795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
|
||
796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
|
||
799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
|
||
800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
|
||
803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
|
||
804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
|
||
805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
|
||
807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
|
||
808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 22
|
||
|
||
|
||
811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
|
||
812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
|
||
814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
|
||
816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
|
||
817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
|
||
820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
|
||
821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
|
||
824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
|
||
825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
|
||
826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
|
||
828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
|
||
829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
|
||
835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
|
||
836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
|
||
838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
|
||
839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
|
||
842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Unregister an I2C Callback
|
||
846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback
|
||
847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note The HAL_I2C_UnRegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_R
|
||
848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * to un-register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID.
|
||
849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered
|
||
852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
|
||
853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
|
||
854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID
|
||
855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID
|
||
856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID
|
||
857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID
|
||
858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
|
||
859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
|
||
860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID
|
||
861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
|
||
862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
|
||
863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
|
||
864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
|
||
865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal
|
||
ARM GAS /tmp/cc5G5cqz.s page 23
|
||
|
||
|
||
868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
|
||
870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
|
||
872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
|
||
874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
|
||
876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb
|
||
877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
|
||
880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb
|
||
881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
|
||
884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba
|
||
885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
|
||
888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba
|
||
889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
|
||
892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac
|
||
893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
|
||
896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
|
||
897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
|
||
900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
|
||
901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
|
||
904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
|
||
905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
|
||
908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
|
||
909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
|
||
912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
|
||
913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
|
||
916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
|
||
917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
|
||
920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
|
||
921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
|
||
922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
|
||
924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
|
||
ARM GAS /tmp/cc5G5cqz.s page 24
|
||
|
||
|
||
925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
|
||
929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
|
||
931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
|
||
933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
|
||
934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
|
||
937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
|
||
938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
|
||
941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
|
||
942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
|
||
943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
|
||
945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
|
||
946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
|
||
952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
|
||
953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
|
||
955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
|
||
956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
|
||
959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback
|
||
963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback
|
||
964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function
|
||
967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC
|
||
970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
|
||
972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (pCallback == NULL)
|
||
974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
|
||
976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
|
||
977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
|
||
ARM GAS /tmp/cc5G5cqz.s page 25
|
||
|
||
|
||
982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = pCallback;
|
||
984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
|
||
988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
|
||
989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
|
||
991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
|
||
992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
|
||
995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback
|
||
999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal
|
||
1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
1001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
1002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
1003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c)
|
||
1005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
|
||
1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
|
||
1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */
|
||
1011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
|
||
1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
|
||
1016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
|
||
1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
|
||
1019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
|
||
1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
1025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
|
||
1028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
1029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions
|
||
1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Data transfers functions
|
||
1032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
|
||
1033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
|
||
1034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
|
||
1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### IO operation functions #####
|
||
1036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
|
||
1037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
1038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data
|
||
ARM GAS /tmp/cc5G5cqz.s page 26
|
||
|
||
|
||
1039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfers.
|
||
1040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) There are two modes of transfer:
|
||
1042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode.
|
||
1043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The status of all data processing is returned by the same function
|
||
1044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** after finishing transfer.
|
||
1045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts
|
||
1046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup.
|
||
1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The end of the data processing will be indicated through the
|
||
1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when
|
||
1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** using DMA mode.
|
||
1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Blocking mode functions are :
|
||
1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit()
|
||
1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive()
|
||
1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit()
|
||
1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive()
|
||
1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write()
|
||
1057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read()
|
||
1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady()
|
||
1059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are :
|
||
1061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT()
|
||
1062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT()
|
||
1063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT()
|
||
1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT()
|
||
1065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT()
|
||
1066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT()
|
||
1067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT()
|
||
1068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT()
|
||
1069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT()
|
||
1070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT()
|
||
1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT()
|
||
1072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT()
|
||
1073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT()
|
||
1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are :
|
||
1076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA()
|
||
1077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA()
|
||
1078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA()
|
||
1079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA()
|
||
1080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA()
|
||
1081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA()
|
||
1082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA()
|
||
1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA()
|
||
1084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA()
|
||
1085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA()
|
||
1086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode:
|
||
1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback()
|
||
1089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback()
|
||
1090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback()
|
||
1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback()
|
||
1092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback()
|
||
1093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback()
|
||
1094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback()
|
||
1095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback()
|
||
ARM GAS /tmp/cc5G5cqz.s page 27
|
||
|
||
|
||
1096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback()
|
||
1097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback()
|
||
1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
|
||
1100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
|
||
1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
1102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode.
|
||
1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
1110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
|
||
1112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
1113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD
|
||
1115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout)
|
||
1116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
394 .loc 1 1116 1
|
||
395 .cfi_startproc
|
||
396 @ args = 4, pretend = 0, frame = 24
|
||
397 @ frame_needed = 1, uses_anonymous_args = 0
|
||
398 0000 80B5 push {r7, lr}
|
||
399 .cfi_def_cfa_offset 8
|
||
400 .cfi_offset 7, -8
|
||
401 .cfi_offset 14, -4
|
||
402 0002 88B0 sub sp, sp, #32
|
||
403 .cfi_def_cfa_offset 40
|
||
404 0004 02AF add r7, sp, #8
|
||
405 .cfi_def_cfa 7, 32
|
||
406 0006 F860 str r0, [r7, #12]
|
||
407 0008 7A60 str r2, [r7, #4]
|
||
408 000a 1A46 mov r2, r3
|
||
409 000c 0B46 mov r3, r1 @ movhi
|
||
410 000e 7B81 strh r3, [r7, #10] @ movhi
|
||
411 0010 1346 mov r3, r2 @ movhi
|
||
412 0012 3B81 strh r3, [r7, #8] @ movhi
|
||
1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
|
||
1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
413 .loc 1 1119 11
|
||
414 0014 FB68 ldr r3, [r7, #12]
|
||
415 0016 93F84130 ldrb r3, [r3, #65]
|
||
416 001a DBB2 uxtb r3, r3
|
||
417 .loc 1 1119 6
|
||
418 001c 202B cmp r3, #32
|
||
419 001e 40F0DA80 bne .L14
|
||
1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
420 .loc 1 1122 5
|
||
421 0022 FB68 ldr r3, [r7, #12]
|
||
422 0024 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
423 0028 012B cmp r3, #1
|
||
ARM GAS /tmp/cc5G5cqz.s page 28
|
||
|
||
|
||
424 002a 01D1 bne .L15
|
||
425 .loc 1 1122 5 is_stmt 0 discriminator 1
|
||
426 002c 0223 movs r3, #2
|
||
427 .loc 1 1122 5
|
||
428 002e D3E0 b .L16
|
||
429 .L15:
|
||
430 .loc 1 1122 5 discriminator 2
|
||
431 0030 FB68 ldr r3, [r7, #12]
|
||
432 0032 0122 movs r2, #1
|
||
433 0034 83F84020 strb r2, [r3, #64]
|
||
1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
|
||
1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
|
||
434 .loc 1 1125 17 is_stmt 1
|
||
435 0038 FFF7FEFF bl HAL_GetTick
|
||
436 003c 7861 str r0, [r7, #20]
|
||
1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
|
||
437 .loc 1 1127 9
|
||
438 003e 7B69 ldr r3, [r7, #20]
|
||
439 0040 0093 str r3, [sp]
|
||
440 0042 1923 movs r3, #25
|
||
441 0044 0122 movs r2, #1
|
||
442 0046 4FF40041 mov r1, #32768
|
||
443 004a F868 ldr r0, [r7, #12]
|
||
444 004c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
445 0050 0346 mov r3, r0
|
||
446 .loc 1 1127 8 discriminator 1
|
||
447 0052 002B cmp r3, #0
|
||
448 0054 01D0 beq .L17
|
||
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
449 .loc 1 1129 14
|
||
450 0056 0123 movs r3, #1
|
||
451 0058 BEE0 b .L16
|
||
452 .L17:
|
||
1130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
|
||
453 .loc 1 1132 21
|
||
454 005a FB68 ldr r3, [r7, #12]
|
||
455 005c 2122 movs r2, #33
|
||
456 005e 83F84120 strb r2, [r3, #65]
|
||
1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
|
||
457 .loc 1 1133 21
|
||
458 0062 FB68 ldr r3, [r7, #12]
|
||
459 0064 1022 movs r2, #16
|
||
460 0066 83F84220 strb r2, [r3, #66]
|
||
1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
461 .loc 1 1134 21
|
||
462 006a FB68 ldr r3, [r7, #12]
|
||
463 006c 0022 movs r2, #0
|
||
464 006e 5A64 str r2, [r3, #68]
|
||
1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
1137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
465 .loc 1 1137 21
|
||
ARM GAS /tmp/cc5G5cqz.s page 29
|
||
|
||
|
||
466 0070 FB68 ldr r3, [r7, #12]
|
||
467 0072 7A68 ldr r2, [r7, #4]
|
||
468 0074 5A62 str r2, [r3, #36]
|
||
1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
469 .loc 1 1138 21
|
||
470 0076 FB68 ldr r3, [r7, #12]
|
||
471 0078 3A89 ldrh r2, [r7, #8] @ movhi
|
||
472 007a 5A85 strh r2, [r3, #42] @ movhi
|
||
1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
|
||
473 .loc 1 1139 21
|
||
474 007c FB68 ldr r3, [r7, #12]
|
||
475 007e 0022 movs r2, #0
|
||
476 0080 5A63 str r2, [r3, #52]
|
||
1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
|
||
1142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
|
||
1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
477 .loc 1 1143 13
|
||
478 0082 FB68 ldr r3, [r7, #12]
|
||
479 0084 5B8D ldrh r3, [r3, #42] @ movhi
|
||
480 0086 9BB2 uxth r3, r3
|
||
481 .loc 1 1143 8
|
||
482 0088 FF2B cmp r3, #255
|
||
483 008a 0ED9 bls .L18
|
||
1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
484 .loc 1 1145 22
|
||
485 008c FB68 ldr r3, [r7, #12]
|
||
486 008e FF22 movs r2, #255
|
||
487 0090 1A85 strh r2, [r3, #40] @ movhi
|
||
1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
|
||
488 .loc 1 1146 57
|
||
489 0092 FB68 ldr r3, [r7, #12]
|
||
490 0094 1B8D ldrh r3, [r3, #40]
|
||
491 .loc 1 1146 7
|
||
492 0096 DAB2 uxtb r2, r3
|
||
493 0098 7989 ldrh r1, [r7, #10]
|
||
494 009a 514B ldr r3, .L27
|
||
495 009c 0093 str r3, [sp]
|
||
496 009e 4FF08073 mov r3, #16777216
|
||
497 00a2 F868 ldr r0, [r7, #12]
|
||
498 00a4 FFF7FEFF bl I2C_TransferConfig
|
||
499 00a8 6CE0 b .L20
|
||
500 .L18:
|
||
1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
|
||
1148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
501 .loc 1 1151 28
|
||
502 00aa FB68 ldr r3, [r7, #12]
|
||
503 00ac 5B8D ldrh r3, [r3, #42] @ movhi
|
||
504 00ae 9AB2 uxth r2, r3
|
||
505 .loc 1 1151 22
|
||
506 00b0 FB68 ldr r3, [r7, #12]
|
||
507 00b2 1A85 strh r2, [r3, #40] @ movhi
|
||
1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
|
||
ARM GAS /tmp/cc5G5cqz.s page 30
|
||
|
||
|
||
508 .loc 1 1152 57
|
||
509 00b4 FB68 ldr r3, [r7, #12]
|
||
510 00b6 1B8D ldrh r3, [r3, #40]
|
||
511 .loc 1 1152 7
|
||
512 00b8 DAB2 uxtb r2, r3
|
||
513 00ba 7989 ldrh r1, [r7, #10]
|
||
514 00bc 484B ldr r3, .L27
|
||
515 00be 0093 str r3, [sp]
|
||
516 00c0 4FF00073 mov r3, #33554432
|
||
517 00c4 F868 ldr r0, [r7, #12]
|
||
518 00c6 FFF7FEFF bl I2C_TransferConfig
|
||
1153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
|
||
1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
|
||
519 .loc 1 1156 11
|
||
520 00ca 5BE0 b .L20
|
||
521 .L25:
|
||
1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
|
||
1159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
|
||
522 .loc 1 1159 11
|
||
523 00cc 7A69 ldr r2, [r7, #20]
|
||
524 00ce 396A ldr r1, [r7, #32]
|
||
525 00d0 F868 ldr r0, [r7, #12]
|
||
526 00d2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
|
||
527 00d6 0346 mov r3, r0
|
||
528 .loc 1 1159 10 discriminator 1
|
||
529 00d8 002B cmp r3, #0
|
||
530 00da 01D0 beq .L21
|
||
1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
531 .loc 1 1161 16
|
||
532 00dc 0123 movs r3, #1
|
||
533 00de 7BE0 b .L16
|
||
534 .L21:
|
||
1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
|
||
1164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
|
||
535 .loc 1 1164 35
|
||
536 00e0 FB68 ldr r3, [r7, #12]
|
||
537 00e2 5B6A ldr r3, [r3, #36]
|
||
538 .loc 1 1164 30
|
||
539 00e4 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
540 .loc 1 1164 11
|
||
541 00e6 FB68 ldr r3, [r7, #12]
|
||
542 00e8 1B68 ldr r3, [r3]
|
||
543 .loc 1 1164 28
|
||
544 00ea 9A62 str r2, [r3, #40]
|
||
1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
545 .loc 1 1167 11
|
||
546 00ec FB68 ldr r3, [r7, #12]
|
||
547 00ee 5B6A ldr r3, [r3, #36]
|
||
548 .loc 1 1167 21
|
||
549 00f0 5A1C adds r2, r3, #1
|
||
ARM GAS /tmp/cc5G5cqz.s page 31
|
||
|
||
|
||
550 00f2 FB68 ldr r3, [r7, #12]
|
||
551 00f4 5A62 str r2, [r3, #36]
|
||
1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
552 .loc 1 1169 11
|
||
553 00f6 FB68 ldr r3, [r7, #12]
|
||
554 00f8 5B8D ldrh r3, [r3, #42] @ movhi
|
||
555 00fa 9BB2 uxth r3, r3
|
||
556 .loc 1 1169 22
|
||
557 00fc 013B subs r3, r3, #1
|
||
558 00fe 9AB2 uxth r2, r3
|
||
559 0100 FB68 ldr r3, [r7, #12]
|
||
560 0102 5A85 strh r2, [r3, #42] @ movhi
|
||
1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
561 .loc 1 1170 11
|
||
562 0104 FB68 ldr r3, [r7, #12]
|
||
563 0106 1B8D ldrh r3, [r3, #40]
|
||
564 .loc 1 1170 21
|
||
565 0108 013B subs r3, r3, #1
|
||
566 010a 9AB2 uxth r2, r3
|
||
567 010c FB68 ldr r3, [r7, #12]
|
||
568 010e 1A85 strh r2, [r3, #40] @ movhi
|
||
1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
|
||
569 .loc 1 1172 16
|
||
570 0110 FB68 ldr r3, [r7, #12]
|
||
571 0112 5B8D ldrh r3, [r3, #42] @ movhi
|
||
572 0114 9BB2 uxth r3, r3
|
||
573 .loc 1 1172 10
|
||
574 0116 002B cmp r3, #0
|
||
575 0118 34D0 beq .L20
|
||
576 .loc 1 1172 43 discriminator 1
|
||
577 011a FB68 ldr r3, [r7, #12]
|
||
578 011c 1B8D ldrh r3, [r3, #40]
|
||
579 .loc 1 1172 35 discriminator 1
|
||
580 011e 002B cmp r3, #0
|
||
581 0120 30D1 bne .L20
|
||
1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
|
||
1175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
|
||
582 .loc 1 1175 13
|
||
583 0122 7B69 ldr r3, [r7, #20]
|
||
584 0124 0093 str r3, [sp]
|
||
585 0126 3B6A ldr r3, [r7, #32]
|
||
586 0128 0022 movs r2, #0
|
||
587 012a 8021 movs r1, #128
|
||
588 012c F868 ldr r0, [r7, #12]
|
||
589 012e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
590 0132 0346 mov r3, r0
|
||
591 .loc 1 1175 12 discriminator 1
|
||
592 0134 002B cmp r3, #0
|
||
593 0136 01D0 beq .L23
|
||
1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
594 .loc 1 1177 18
|
||
595 0138 0123 movs r3, #1
|
||
596 013a 4DE0 b .L16
|
||
ARM GAS /tmp/cc5G5cqz.s page 32
|
||
|
||
|
||
597 .L23:
|
||
1178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
598 .loc 1 1180 17
|
||
599 013c FB68 ldr r3, [r7, #12]
|
||
600 013e 5B8D ldrh r3, [r3, #42] @ movhi
|
||
601 0140 9BB2 uxth r3, r3
|
||
602 .loc 1 1180 12
|
||
603 0142 FF2B cmp r3, #255
|
||
604 0144 0ED9 bls .L24
|
||
1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
605 .loc 1 1182 26
|
||
606 0146 FB68 ldr r3, [r7, #12]
|
||
607 0148 FF22 movs r2, #255
|
||
608 014a 1A85 strh r2, [r3, #40] @ movhi
|
||
1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
|
||
609 .loc 1 1183 61
|
||
610 014c FB68 ldr r3, [r7, #12]
|
||
611 014e 1B8D ldrh r3, [r3, #40]
|
||
612 .loc 1 1183 11
|
||
613 0150 DAB2 uxtb r2, r3
|
||
614 0152 7989 ldrh r1, [r7, #10]
|
||
615 0154 0023 movs r3, #0
|
||
616 0156 0093 str r3, [sp]
|
||
617 0158 4FF08073 mov r3, #16777216
|
||
618 015c F868 ldr r0, [r7, #12]
|
||
619 015e FFF7FEFF bl I2C_TransferConfig
|
||
620 0162 0FE0 b .L20
|
||
621 .L24:
|
||
1184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
|
||
1185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
622 .loc 1 1188 32
|
||
623 0164 FB68 ldr r3, [r7, #12]
|
||
624 0166 5B8D ldrh r3, [r3, #42] @ movhi
|
||
625 0168 9AB2 uxth r2, r3
|
||
626 .loc 1 1188 26
|
||
627 016a FB68 ldr r3, [r7, #12]
|
||
628 016c 1A85 strh r2, [r3, #40] @ movhi
|
||
1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
|
||
629 .loc 1 1189 61
|
||
630 016e FB68 ldr r3, [r7, #12]
|
||
631 0170 1B8D ldrh r3, [r3, #40]
|
||
632 .loc 1 1189 11
|
||
633 0172 DAB2 uxtb r2, r3
|
||
634 0174 7989 ldrh r1, [r7, #10]
|
||
635 0176 0023 movs r3, #0
|
||
636 0178 0093 str r3, [sp]
|
||
637 017a 4FF00073 mov r3, #33554432
|
||
638 017e F868 ldr r0, [r7, #12]
|
||
639 0180 FFF7FEFF bl I2C_TransferConfig
|
||
640 .L20:
|
||
1156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
ARM GAS /tmp/cc5G5cqz.s page 33
|
||
|
||
|
||
641 .loc 1 1156 16
|
||
642 0184 FB68 ldr r3, [r7, #12]
|
||
643 0186 5B8D ldrh r3, [r3, #42] @ movhi
|
||
644 0188 9BB2 uxth r3, r3
|
||
1156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
645 .loc 1 1156 28
|
||
646 018a 002B cmp r3, #0
|
||
647 018c 9ED1 bne .L25
|
||
1190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
|
||
1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
|
||
1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set */
|
||
1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
|
||
648 .loc 1 1197 9
|
||
649 018e 7A69 ldr r2, [r7, #20]
|
||
650 0190 396A ldr r1, [r7, #32]
|
||
651 0192 F868 ldr r0, [r7, #12]
|
||
652 0194 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
|
||
653 0198 0346 mov r3, r0
|
||
654 .loc 1 1197 8 discriminator 1
|
||
655 019a 002B cmp r3, #0
|
||
656 019c 01D0 beq .L26
|
||
1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
657 .loc 1 1199 14
|
||
658 019e 0123 movs r3, #1
|
||
659 01a0 1AE0 b .L16
|
||
660 .L26:
|
||
1200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
|
||
1203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
661 .loc 1 1203 5
|
||
662 01a2 FB68 ldr r3, [r7, #12]
|
||
663 01a4 1B68 ldr r3, [r3]
|
||
664 01a6 2022 movs r2, #32
|
||
665 01a8 DA61 str r2, [r3, #28]
|
||
1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
|
||
1206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
|
||
666 .loc 1 1206 5
|
||
667 01aa FB68 ldr r3, [r7, #12]
|
||
668 01ac 1B68 ldr r3, [r3]
|
||
669 01ae 5968 ldr r1, [r3, #4]
|
||
670 01b0 FB68 ldr r3, [r7, #12]
|
||
671 01b2 1A68 ldr r2, [r3]
|
||
672 01b4 0B4B ldr r3, .L27+4
|
||
673 01b6 0B40 ands r3, r3, r1
|
||
674 01b8 5360 str r3, [r2, #4]
|
||
1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
675 .loc 1 1208 17
|
||
676 01ba FB68 ldr r3, [r7, #12]
|
||
677 01bc 2022 movs r2, #32
|
||
ARM GAS /tmp/cc5G5cqz.s page 34
|
||
|
||
|
||
678 01be 83F84120 strb r2, [r3, #65]
|
||
1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
679 .loc 1 1209 17
|
||
680 01c2 FB68 ldr r3, [r7, #12]
|
||
681 01c4 0022 movs r2, #0
|
||
682 01c6 83F84220 strb r2, [r3, #66]
|
||
1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
1212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
683 .loc 1 1212 5
|
||
684 01ca FB68 ldr r3, [r7, #12]
|
||
685 01cc 0022 movs r2, #0
|
||
686 01ce 83F84020 strb r2, [r3, #64]
|
||
1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
687 .loc 1 1214 12
|
||
688 01d2 0023 movs r3, #0
|
||
689 01d4 00E0 b .L16
|
||
690 .L14:
|
||
1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
691 .loc 1 1218 12
|
||
692 01d6 0223 movs r3, #2
|
||
693 .L16:
|
||
1219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
694 .loc 1 1220 1
|
||
695 01d8 1846 mov r0, r3
|
||
696 01da 1837 adds r7, r7, #24
|
||
697 .cfi_def_cfa_offset 8
|
||
698 01dc BD46 mov sp, r7
|
||
699 .cfi_def_cfa_register 13
|
||
700 @ sp needed
|
||
701 01de 80BD pop {r7, pc}
|
||
702 .L28:
|
||
703 .align 2
|
||
704 .L27:
|
||
705 01e0 00200080 .word -2147475456
|
||
706 01e4 00E800FE .word -33495040
|
||
707 .cfi_endproc
|
||
708 .LFE134:
|
||
710 .section .text.HAL_I2C_Master_Receive,"ax",%progbits
|
||
711 .align 1
|
||
712 .global HAL_I2C_Master_Receive
|
||
713 .syntax unified
|
||
714 .thumb
|
||
715 .thumb_func
|
||
717 HAL_I2C_Master_Receive:
|
||
718 .LFB135:
|
||
1221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
1223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode.
|
||
1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
1225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
1226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
ARM GAS /tmp/cc5G5cqz.s page 35
|
||
|
||
|
||
1227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
1228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
1229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
1230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
|
||
1231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa
|
||
1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout)
|
||
1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
719 .loc 1 1235 1
|
||
720 .cfi_startproc
|
||
721 @ args = 4, pretend = 0, frame = 24
|
||
722 @ frame_needed = 1, uses_anonymous_args = 0
|
||
723 0000 80B5 push {r7, lr}
|
||
724 .cfi_def_cfa_offset 8
|
||
725 .cfi_offset 7, -8
|
||
726 .cfi_offset 14, -4
|
||
727 0002 88B0 sub sp, sp, #32
|
||
728 .cfi_def_cfa_offset 40
|
||
729 0004 02AF add r7, sp, #8
|
||
730 .cfi_def_cfa 7, 32
|
||
731 0006 F860 str r0, [r7, #12]
|
||
732 0008 7A60 str r2, [r7, #4]
|
||
733 000a 1A46 mov r2, r3
|
||
734 000c 0B46 mov r3, r1 @ movhi
|
||
735 000e 7B81 strh r3, [r7, #10] @ movhi
|
||
736 0010 1346 mov r3, r2 @ movhi
|
||
737 0012 3B81 strh r3, [r7, #8] @ movhi
|
||
1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
|
||
1237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
738 .loc 1 1238 11
|
||
739 0014 FB68 ldr r3, [r7, #12]
|
||
740 0016 93F84130 ldrb r3, [r3, #65]
|
||
741 001a DBB2 uxtb r3, r3
|
||
742 .loc 1 1238 6
|
||
743 001c 202B cmp r3, #32
|
||
744 001e 40F0DB80 bne .L30
|
||
1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
745 .loc 1 1241 5
|
||
746 0022 FB68 ldr r3, [r7, #12]
|
||
747 0024 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
748 0028 012B cmp r3, #1
|
||
749 002a 01D1 bne .L31
|
||
750 .loc 1 1241 5 is_stmt 0 discriminator 1
|
||
751 002c 0223 movs r3, #2
|
||
752 .loc 1 1241 5
|
||
753 002e D4E0 b .L32
|
||
754 .L31:
|
||
755 .loc 1 1241 5 discriminator 2
|
||
756 0030 FB68 ldr r3, [r7, #12]
|
||
757 0032 0122 movs r2, #1
|
||
758 0034 83F84020 strb r2, [r3, #64]
|
||
1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
|
||
ARM GAS /tmp/cc5G5cqz.s page 36
|
||
|
||
|
||
1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
|
||
759 .loc 1 1244 17 is_stmt 1
|
||
760 0038 FFF7FEFF bl HAL_GetTick
|
||
761 003c 7861 str r0, [r7, #20]
|
||
1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
|
||
762 .loc 1 1246 9
|
||
763 003e 7B69 ldr r3, [r7, #20]
|
||
764 0040 0093 str r3, [sp]
|
||
765 0042 1923 movs r3, #25
|
||
766 0044 0122 movs r2, #1
|
||
767 0046 4FF40041 mov r1, #32768
|
||
768 004a F868 ldr r0, [r7, #12]
|
||
769 004c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
770 0050 0346 mov r3, r0
|
||
771 .loc 1 1246 8 discriminator 1
|
||
772 0052 002B cmp r3, #0
|
||
773 0054 01D0 beq .L33
|
||
1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
774 .loc 1 1248 14
|
||
775 0056 0123 movs r3, #1
|
||
776 0058 BFE0 b .L32
|
||
777 .L33:
|
||
1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
|
||
778 .loc 1 1251 21
|
||
779 005a FB68 ldr r3, [r7, #12]
|
||
780 005c 2222 movs r2, #34
|
||
781 005e 83F84120 strb r2, [r3, #65]
|
||
1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
|
||
782 .loc 1 1252 21
|
||
783 0062 FB68 ldr r3, [r7, #12]
|
||
784 0064 1022 movs r2, #16
|
||
785 0066 83F84220 strb r2, [r3, #66]
|
||
1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
786 .loc 1 1253 21
|
||
787 006a FB68 ldr r3, [r7, #12]
|
||
788 006c 0022 movs r2, #0
|
||
789 006e 5A64 str r2, [r3, #68]
|
||
1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
1256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
790 .loc 1 1256 21
|
||
791 0070 FB68 ldr r3, [r7, #12]
|
||
792 0072 7A68 ldr r2, [r7, #4]
|
||
793 0074 5A62 str r2, [r3, #36]
|
||
1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
794 .loc 1 1257 21
|
||
795 0076 FB68 ldr r3, [r7, #12]
|
||
796 0078 3A89 ldrh r2, [r7, #8] @ movhi
|
||
797 007a 5A85 strh r2, [r3, #42] @ movhi
|
||
1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
|
||
798 .loc 1 1258 21
|
||
799 007c FB68 ldr r3, [r7, #12]
|
||
800 007e 0022 movs r2, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 37
|
||
|
||
|
||
801 0080 5A63 str r2, [r3, #52]
|
||
1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
|
||
1261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
|
||
1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
802 .loc 1 1262 13
|
||
803 0082 FB68 ldr r3, [r7, #12]
|
||
804 0084 5B8D ldrh r3, [r3, #42] @ movhi
|
||
805 0086 9BB2 uxth r3, r3
|
||
806 .loc 1 1262 8
|
||
807 0088 FF2B cmp r3, #255
|
||
808 008a 0ED9 bls .L34
|
||
1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
809 .loc 1 1264 22
|
||
810 008c FB68 ldr r3, [r7, #12]
|
||
811 008e FF22 movs r2, #255
|
||
812 0090 1A85 strh r2, [r3, #40] @ movhi
|
||
1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
|
||
813 .loc 1 1265 57
|
||
814 0092 FB68 ldr r3, [r7, #12]
|
||
815 0094 1B8D ldrh r3, [r3, #40]
|
||
816 .loc 1 1265 7
|
||
817 0096 DAB2 uxtb r2, r3
|
||
818 0098 7989 ldrh r1, [r7, #10]
|
||
819 009a 524B ldr r3, .L43
|
||
820 009c 0093 str r3, [sp]
|
||
821 009e 4FF08073 mov r3, #16777216
|
||
822 00a2 F868 ldr r0, [r7, #12]
|
||
823 00a4 FFF7FEFF bl I2C_TransferConfig
|
||
824 00a8 6DE0 b .L36
|
||
825 .L34:
|
||
1266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
|
||
1267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
826 .loc 1 1270 28
|
||
827 00aa FB68 ldr r3, [r7, #12]
|
||
828 00ac 5B8D ldrh r3, [r3, #42] @ movhi
|
||
829 00ae 9AB2 uxth r2, r3
|
||
830 .loc 1 1270 22
|
||
831 00b0 FB68 ldr r3, [r7, #12]
|
||
832 00b2 1A85 strh r2, [r3, #40] @ movhi
|
||
1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
|
||
833 .loc 1 1271 57
|
||
834 00b4 FB68 ldr r3, [r7, #12]
|
||
835 00b6 1B8D ldrh r3, [r3, #40]
|
||
836 .loc 1 1271 7
|
||
837 00b8 DAB2 uxtb r2, r3
|
||
838 00ba 7989 ldrh r1, [r7, #10]
|
||
839 00bc 494B ldr r3, .L43
|
||
840 00be 0093 str r3, [sp]
|
||
841 00c0 4FF00073 mov r3, #33554432
|
||
842 00c4 F868 ldr r0, [r7, #12]
|
||
843 00c6 FFF7FEFF bl I2C_TransferConfig
|
||
1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
|
||
ARM GAS /tmp/cc5G5cqz.s page 38
|
||
|
||
|
||
1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
|
||
844 .loc 1 1275 11
|
||
845 00ca 5CE0 b .L36
|
||
846 .L41:
|
||
1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
|
||
1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
|
||
847 .loc 1 1278 11
|
||
848 00cc 7A69 ldr r2, [r7, #20]
|
||
849 00ce 396A ldr r1, [r7, #32]
|
||
850 00d0 F868 ldr r0, [r7, #12]
|
||
851 00d2 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
|
||
852 00d6 0346 mov r3, r0
|
||
853 .loc 1 1278 10 discriminator 1
|
||
854 00d8 002B cmp r3, #0
|
||
855 00da 01D0 beq .L37
|
||
1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
856 .loc 1 1280 16
|
||
857 00dc 0123 movs r3, #1
|
||
858 00de 7CE0 b .L32
|
||
859 .L37:
|
||
1281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
|
||
1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
|
||
860 .loc 1 1284 38
|
||
861 00e0 FB68 ldr r3, [r7, #12]
|
||
862 00e2 1B68 ldr r3, [r3]
|
||
863 .loc 1 1284 48
|
||
864 00e4 5A6A ldr r2, [r3, #36]
|
||
865 .loc 1 1284 12
|
||
866 00e6 FB68 ldr r3, [r7, #12]
|
||
867 00e8 5B6A ldr r3, [r3, #36]
|
||
868 .loc 1 1284 25
|
||
869 00ea D2B2 uxtb r2, r2
|
||
870 .loc 1 1284 23
|
||
871 00ec 1A70 strb r2, [r3]
|
||
1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
872 .loc 1 1287 11
|
||
873 00ee FB68 ldr r3, [r7, #12]
|
||
874 00f0 5B6A ldr r3, [r3, #36]
|
||
875 .loc 1 1287 21
|
||
876 00f2 5A1C adds r2, r3, #1
|
||
877 00f4 FB68 ldr r3, [r7, #12]
|
||
878 00f6 5A62 str r2, [r3, #36]
|
||
1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
879 .loc 1 1289 11
|
||
880 00f8 FB68 ldr r3, [r7, #12]
|
||
881 00fa 1B8D ldrh r3, [r3, #40]
|
||
882 .loc 1 1289 21
|
||
883 00fc 013B subs r3, r3, #1
|
||
ARM GAS /tmp/cc5G5cqz.s page 39
|
||
|
||
|
||
884 00fe 9AB2 uxth r2, r3
|
||
885 0100 FB68 ldr r3, [r7, #12]
|
||
886 0102 1A85 strh r2, [r3, #40] @ movhi
|
||
1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
887 .loc 1 1290 11
|
||
888 0104 FB68 ldr r3, [r7, #12]
|
||
889 0106 5B8D ldrh r3, [r3, #42] @ movhi
|
||
890 0108 9BB2 uxth r3, r3
|
||
891 .loc 1 1290 22
|
||
892 010a 013B subs r3, r3, #1
|
||
893 010c 9AB2 uxth r2, r3
|
||
894 010e FB68 ldr r3, [r7, #12]
|
||
895 0110 5A85 strh r2, [r3, #42] @ movhi
|
||
1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
|
||
896 .loc 1 1292 16
|
||
897 0112 FB68 ldr r3, [r7, #12]
|
||
898 0114 5B8D ldrh r3, [r3, #42] @ movhi
|
||
899 0116 9BB2 uxth r3, r3
|
||
900 .loc 1 1292 10
|
||
901 0118 002B cmp r3, #0
|
||
902 011a 34D0 beq .L36
|
||
903 .loc 1 1292 43 discriminator 1
|
||
904 011c FB68 ldr r3, [r7, #12]
|
||
905 011e 1B8D ldrh r3, [r3, #40]
|
||
906 .loc 1 1292 35 discriminator 1
|
||
907 0120 002B cmp r3, #0
|
||
908 0122 30D1 bne .L36
|
||
1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
|
||
1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
|
||
909 .loc 1 1295 13
|
||
910 0124 7B69 ldr r3, [r7, #20]
|
||
911 0126 0093 str r3, [sp]
|
||
912 0128 3B6A ldr r3, [r7, #32]
|
||
913 012a 0022 movs r2, #0
|
||
914 012c 8021 movs r1, #128
|
||
915 012e F868 ldr r0, [r7, #12]
|
||
916 0130 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
917 0134 0346 mov r3, r0
|
||
918 .loc 1 1295 12 discriminator 1
|
||
919 0136 002B cmp r3, #0
|
||
920 0138 01D0 beq .L39
|
||
1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
921 .loc 1 1297 18
|
||
922 013a 0123 movs r3, #1
|
||
923 013c 4DE0 b .L32
|
||
924 .L39:
|
||
1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
925 .loc 1 1300 17
|
||
926 013e FB68 ldr r3, [r7, #12]
|
||
927 0140 5B8D ldrh r3, [r3, #42] @ movhi
|
||
928 0142 9BB2 uxth r3, r3
|
||
929 .loc 1 1300 12
|
||
ARM GAS /tmp/cc5G5cqz.s page 40
|
||
|
||
|
||
930 0144 FF2B cmp r3, #255
|
||
931 0146 0ED9 bls .L40
|
||
1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
932 .loc 1 1302 26
|
||
933 0148 FB68 ldr r3, [r7, #12]
|
||
934 014a FF22 movs r2, #255
|
||
935 014c 1A85 strh r2, [r3, #40] @ movhi
|
||
1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
|
||
936 .loc 1 1303 61
|
||
937 014e FB68 ldr r3, [r7, #12]
|
||
938 0150 1B8D ldrh r3, [r3, #40]
|
||
939 .loc 1 1303 11
|
||
940 0152 DAB2 uxtb r2, r3
|
||
941 0154 7989 ldrh r1, [r7, #10]
|
||
942 0156 0023 movs r3, #0
|
||
943 0158 0093 str r3, [sp]
|
||
944 015a 4FF08073 mov r3, #16777216
|
||
945 015e F868 ldr r0, [r7, #12]
|
||
946 0160 FFF7FEFF bl I2C_TransferConfig
|
||
947 0164 0FE0 b .L36
|
||
948 .L40:
|
||
1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
|
||
1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
949 .loc 1 1308 32
|
||
950 0166 FB68 ldr r3, [r7, #12]
|
||
951 0168 5B8D ldrh r3, [r3, #42] @ movhi
|
||
952 016a 9AB2 uxth r2, r3
|
||
953 .loc 1 1308 26
|
||
954 016c FB68 ldr r3, [r7, #12]
|
||
955 016e 1A85 strh r2, [r3, #40] @ movhi
|
||
1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
|
||
956 .loc 1 1309 61
|
||
957 0170 FB68 ldr r3, [r7, #12]
|
||
958 0172 1B8D ldrh r3, [r3, #40]
|
||
959 .loc 1 1309 11
|
||
960 0174 DAB2 uxtb r2, r3
|
||
961 0176 7989 ldrh r1, [r7, #10]
|
||
962 0178 0023 movs r3, #0
|
||
963 017a 0093 str r3, [sp]
|
||
964 017c 4FF00073 mov r3, #33554432
|
||
965 0180 F868 ldr r0, [r7, #12]
|
||
966 0182 FFF7FEFF bl I2C_TransferConfig
|
||
967 .L36:
|
||
1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
968 .loc 1 1275 16
|
||
969 0186 FB68 ldr r3, [r7, #12]
|
||
970 0188 5B8D ldrh r3, [r3, #42] @ movhi
|
||
971 018a 9BB2 uxth r3, r3
|
||
1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
972 .loc 1 1275 28
|
||
973 018c 002B cmp r3, #0
|
||
974 018e 9DD1 bne .L41
|
||
1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
|
||
ARM GAS /tmp/cc5G5cqz.s page 41
|
||
|
||
|
||
1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
|
||
1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set */
|
||
1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
|
||
975 .loc 1 1317 9
|
||
976 0190 7A69 ldr r2, [r7, #20]
|
||
977 0192 396A ldr r1, [r7, #32]
|
||
978 0194 F868 ldr r0, [r7, #12]
|
||
979 0196 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
|
||
980 019a 0346 mov r3, r0
|
||
981 .loc 1 1317 8 discriminator 1
|
||
982 019c 002B cmp r3, #0
|
||
983 019e 01D0 beq .L42
|
||
1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
984 .loc 1 1319 14
|
||
985 01a0 0123 movs r3, #1
|
||
986 01a2 1AE0 b .L32
|
||
987 .L42:
|
||
1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
|
||
1323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
988 .loc 1 1323 5
|
||
989 01a4 FB68 ldr r3, [r7, #12]
|
||
990 01a6 1B68 ldr r3, [r3]
|
||
991 01a8 2022 movs r2, #32
|
||
992 01aa DA61 str r2, [r3, #28]
|
||
1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
|
||
1326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
|
||
993 .loc 1 1326 5
|
||
994 01ac FB68 ldr r3, [r7, #12]
|
||
995 01ae 1B68 ldr r3, [r3]
|
||
996 01b0 5968 ldr r1, [r3, #4]
|
||
997 01b2 FB68 ldr r3, [r7, #12]
|
||
998 01b4 1A68 ldr r2, [r3]
|
||
999 01b6 0C4B ldr r3, .L43+4
|
||
1000 01b8 0B40 ands r3, r3, r1
|
||
1001 01ba 5360 str r3, [r2, #4]
|
||
1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
1002 .loc 1 1328 17
|
||
1003 01bc FB68 ldr r3, [r7, #12]
|
||
1004 01be 2022 movs r2, #32
|
||
1005 01c0 83F84120 strb r2, [r3, #65]
|
||
1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
1006 .loc 1 1329 17
|
||
1007 01c4 FB68 ldr r3, [r7, #12]
|
||
1008 01c6 0022 movs r2, #0
|
||
1009 01c8 83F84220 strb r2, [r3, #66]
|
||
1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
1332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
ARM GAS /tmp/cc5G5cqz.s page 42
|
||
|
||
|
||
1010 .loc 1 1332 5
|
||
1011 01cc FB68 ldr r3, [r7, #12]
|
||
1012 01ce 0022 movs r2, #0
|
||
1013 01d0 83F84020 strb r2, [r3, #64]
|
||
1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
1014 .loc 1 1334 12
|
||
1015 01d4 0023 movs r3, #0
|
||
1016 01d6 00E0 b .L32
|
||
1017 .L30:
|
||
1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
1018 .loc 1 1338 12
|
||
1019 01d8 0223 movs r3, #2
|
||
1020 .L32:
|
||
1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1021 .loc 1 1340 1
|
||
1022 01da 1846 mov r0, r3
|
||
1023 01dc 1837 adds r7, r7, #24
|
||
1024 .cfi_def_cfa_offset 8
|
||
1025 01de BD46 mov sp, r7
|
||
1026 .cfi_def_cfa_register 13
|
||
1027 @ sp needed
|
||
1028 01e0 80BD pop {r7, pc}
|
||
1029 .L44:
|
||
1030 01e2 00BF .align 2
|
||
1031 .L43:
|
||
1032 01e4 00240080 .word -2147474432
|
||
1033 01e8 00E800FE .word -33495040
|
||
1034 .cfi_endproc
|
||
1035 .LFE135:
|
||
1037 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits
|
||
1038 .align 1
|
||
1039 .global HAL_I2C_Slave_Transmit
|
||
1040 .syntax unified
|
||
1041 .thumb
|
||
1042 .thumb_func
|
||
1044 HAL_I2C_Slave_Transmit:
|
||
1045 .LFB136:
|
||
1341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
1343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode.
|
||
1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
1345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
|
||
1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
1350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
|
||
1352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
|
||
1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1046 .loc 1 1353 1
|
||
1047 .cfi_startproc
|
||
ARM GAS /tmp/cc5G5cqz.s page 43
|
||
|
||
|
||
1048 @ args = 0, pretend = 0, frame = 24
|
||
1049 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1050 0000 80B5 push {r7, lr}
|
||
1051 .cfi_def_cfa_offset 8
|
||
1052 .cfi_offset 7, -8
|
||
1053 .cfi_offset 14, -4
|
||
1054 0002 88B0 sub sp, sp, #32
|
||
1055 .cfi_def_cfa_offset 40
|
||
1056 0004 02AF add r7, sp, #8
|
||
1057 .cfi_def_cfa 7, 32
|
||
1058 0006 F860 str r0, [r7, #12]
|
||
1059 0008 B960 str r1, [r7, #8]
|
||
1060 000a 3B60 str r3, [r7]
|
||
1061 000c 1346 mov r3, r2 @ movhi
|
||
1062 000e FB80 strh r3, [r7, #6] @ movhi
|
||
1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
|
||
1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
1063 .loc 1 1356 11
|
||
1064 0010 FB68 ldr r3, [r7, #12]
|
||
1065 0012 93F84130 ldrb r3, [r3, #65]
|
||
1066 0016 DBB2 uxtb r3, r3
|
||
1067 .loc 1 1356 6
|
||
1068 0018 202B cmp r3, #32
|
||
1069 001a 40F02081 bne .L46
|
||
1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
|
||
1070 .loc 1 1358 8
|
||
1071 001e BB68 ldr r3, [r7, #8]
|
||
1072 0020 002B cmp r3, #0
|
||
1073 0022 02D0 beq .L47
|
||
1074 .loc 1 1358 25 discriminator 1
|
||
1075 0024 FB88 ldrh r3, [r7, #6]
|
||
1076 0026 002B cmp r3, #0
|
||
1077 0028 05D1 bne .L48
|
||
1078 .L47:
|
||
1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
|
||
1079 .loc 1 1360 23
|
||
1080 002a FB68 ldr r3, [r7, #12]
|
||
1081 002c 4FF40072 mov r2, #512
|
||
1082 0030 5A64 str r2, [r3, #68]
|
||
1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1083 .loc 1 1361 15
|
||
1084 0032 0123 movs r3, #1
|
||
1085 0034 14E1 b .L49
|
||
1086 .L48:
|
||
1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
1087 .loc 1 1364 5
|
||
1088 0036 FB68 ldr r3, [r7, #12]
|
||
1089 0038 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
1090 003c 012B cmp r3, #1
|
||
1091 003e 01D1 bne .L50
|
||
1092 .loc 1 1364 5 is_stmt 0 discriminator 1
|
||
1093 0040 0223 movs r3, #2
|
||
ARM GAS /tmp/cc5G5cqz.s page 44
|
||
|
||
|
||
1094 .loc 1 1364 5
|
||
1095 0042 0DE1 b .L49
|
||
1096 .L50:
|
||
1097 .loc 1 1364 5 discriminator 2
|
||
1098 0044 FB68 ldr r3, [r7, #12]
|
||
1099 0046 0122 movs r2, #1
|
||
1100 0048 83F84020 strb r2, [r3, #64]
|
||
1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
|
||
1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
|
||
1101 .loc 1 1367 17 is_stmt 1
|
||
1102 004c FFF7FEFF bl HAL_GetTick
|
||
1103 0050 7861 str r0, [r7, #20]
|
||
1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
|
||
1104 .loc 1 1369 21
|
||
1105 0052 FB68 ldr r3, [r7, #12]
|
||
1106 0054 2122 movs r2, #33
|
||
1107 0056 83F84120 strb r2, [r3, #65]
|
||
1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
|
||
1108 .loc 1 1370 21
|
||
1109 005a FB68 ldr r3, [r7, #12]
|
||
1110 005c 2022 movs r2, #32
|
||
1111 005e 83F84220 strb r2, [r3, #66]
|
||
1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
1112 .loc 1 1371 21
|
||
1113 0062 FB68 ldr r3, [r7, #12]
|
||
1114 0064 0022 movs r2, #0
|
||
1115 0066 5A64 str r2, [r3, #68]
|
||
1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
1374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
1116 .loc 1 1374 21
|
||
1117 0068 FB68 ldr r3, [r7, #12]
|
||
1118 006a BA68 ldr r2, [r7, #8]
|
||
1119 006c 5A62 str r2, [r3, #36]
|
||
1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
1120 .loc 1 1375 21
|
||
1121 006e FB68 ldr r3, [r7, #12]
|
||
1122 0070 FA88 ldrh r2, [r7, #6] @ movhi
|
||
1123 0072 5A85 strh r2, [r3, #42] @ movhi
|
||
1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
|
||
1124 .loc 1 1376 21
|
||
1125 0074 FB68 ldr r3, [r7, #12]
|
||
1126 0076 0022 movs r2, #0
|
||
1127 0078 5A63 str r2, [r3, #52]
|
||
1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
|
||
1379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
|
||
1128 .loc 1 1379 9
|
||
1129 007a FB68 ldr r3, [r7, #12]
|
||
1130 007c 1B68 ldr r3, [r3]
|
||
1131 .loc 1 1379 19
|
||
1132 007e 5A68 ldr r2, [r3, #4]
|
||
1133 .loc 1 1379 9
|
||
1134 0080 FB68 ldr r3, [r7, #12]
|
||
1135 0082 1B68 ldr r3, [r3]
|
||
ARM GAS /tmp/cc5G5cqz.s page 45
|
||
|
||
|
||
1136 .loc 1 1379 25
|
||
1137 0084 22F40042 bic r2, r2, #32768
|
||
1138 0088 5A60 str r2, [r3, #4]
|
||
1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
|
||
1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
|
||
1139 .loc 1 1382 9
|
||
1140 008a 7B69 ldr r3, [r7, #20]
|
||
1141 008c 0093 str r3, [sp]
|
||
1142 008e 3B68 ldr r3, [r7]
|
||
1143 0090 0022 movs r2, #0
|
||
1144 0092 0821 movs r1, #8
|
||
1145 0094 F868 ldr r0, [r7, #12]
|
||
1146 0096 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
1147 009a 0346 mov r3, r0
|
||
1148 .loc 1 1382 8 discriminator 1
|
||
1149 009c 002B cmp r3, #0
|
||
1150 009e 09D0 beq .L51
|
||
1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
1151 .loc 1 1385 11
|
||
1152 00a0 FB68 ldr r3, [r7, #12]
|
||
1153 00a2 1B68 ldr r3, [r3]
|
||
1154 .loc 1 1385 21
|
||
1155 00a4 5A68 ldr r2, [r3, #4]
|
||
1156 .loc 1 1385 11
|
||
1157 00a6 FB68 ldr r3, [r7, #12]
|
||
1158 00a8 1B68 ldr r3, [r3]
|
||
1159 .loc 1 1385 27
|
||
1160 00aa 42F40042 orr r2, r2, #32768
|
||
1161 00ae 5A60 str r2, [r3, #4]
|
||
1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1162 .loc 1 1386 14
|
||
1163 00b0 0123 movs r3, #1
|
||
1164 00b2 D5E0 b .L49
|
||
1165 .L51:
|
||
1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
|
||
1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
|
||
1166 .loc 1 1390 19
|
||
1167 00b4 FB68 ldr r3, [r7, #12]
|
||
1168 00b6 1B6A ldr r3, [r3, #32]
|
||
1169 .loc 1 1390 8
|
||
1170 00b8 B3F5003F cmp r3, #131072
|
||
1171 00bc 11D1 bne .L52
|
||
1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
|
||
1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
|
||
1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
|
||
1172 .loc 1 1394 35
|
||
1173 00be FB68 ldr r3, [r7, #12]
|
||
1174 00c0 5B6A ldr r3, [r3, #36]
|
||
1175 .loc 1 1394 30
|
||
1176 00c2 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
1177 .loc 1 1394 11
|
||
ARM GAS /tmp/cc5G5cqz.s page 46
|
||
|
||
|
||
1178 00c4 FB68 ldr r3, [r7, #12]
|
||
1179 00c6 1B68 ldr r3, [r3]
|
||
1180 .loc 1 1394 28
|
||
1181 00c8 9A62 str r2, [r3, #40]
|
||
1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
1182 .loc 1 1397 11
|
||
1183 00ca FB68 ldr r3, [r7, #12]
|
||
1184 00cc 5B6A ldr r3, [r3, #36]
|
||
1185 .loc 1 1397 21
|
||
1186 00ce 5A1C adds r2, r3, #1
|
||
1187 00d0 FB68 ldr r3, [r7, #12]
|
||
1188 00d2 5A62 str r2, [r3, #36]
|
||
1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
1189 .loc 1 1399 11
|
||
1190 00d4 FB68 ldr r3, [r7, #12]
|
||
1191 00d6 5B8D ldrh r3, [r3, #42] @ movhi
|
||
1192 00d8 9BB2 uxth r3, r3
|
||
1193 .loc 1 1399 22
|
||
1194 00da 013B subs r3, r3, #1
|
||
1195 00dc 9AB2 uxth r2, r3
|
||
1196 00de FB68 ldr r3, [r7, #12]
|
||
1197 00e0 5A85 strh r2, [r3, #42] @ movhi
|
||
1198 .L52:
|
||
1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
|
||
1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
|
||
1199 .loc 1 1403 5
|
||
1200 00e2 FB68 ldr r3, [r7, #12]
|
||
1201 00e4 1B68 ldr r3, [r3]
|
||
1202 00e6 0822 movs r2, #8
|
||
1203 00e8 DA61 str r2, [r3, #28]
|
||
1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If 10bit addressing mode is selected */
|
||
1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
|
||
1204 .loc 1 1406 19
|
||
1205 00ea FB68 ldr r3, [r7, #12]
|
||
1206 00ec DB68 ldr r3, [r3, #12]
|
||
1207 .loc 1 1406 8
|
||
1208 00ee 022B cmp r3, #2
|
||
1209 00f0 18D1 bne .L53
|
||
1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
|
||
1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
|
||
1210 .loc 1 1409 11
|
||
1211 00f2 7B69 ldr r3, [r7, #20]
|
||
1212 00f4 0093 str r3, [sp]
|
||
1213 00f6 3B68 ldr r3, [r7]
|
||
1214 00f8 0022 movs r2, #0
|
||
1215 00fa 0821 movs r1, #8
|
||
1216 00fc F868 ldr r0, [r7, #12]
|
||
1217 00fe FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
1218 0102 0346 mov r3, r0
|
||
1219 .loc 1 1409 10 discriminator 1
|
||
ARM GAS /tmp/cc5G5cqz.s page 47
|
||
|
||
|
||
1220 0104 002B cmp r3, #0
|
||
1221 0106 09D0 beq .L54
|
||
1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
1222 .loc 1 1412 13
|
||
1223 0108 FB68 ldr r3, [r7, #12]
|
||
1224 010a 1B68 ldr r3, [r3]
|
||
1225 .loc 1 1412 23
|
||
1226 010c 5A68 ldr r2, [r3, #4]
|
||
1227 .loc 1 1412 13
|
||
1228 010e FB68 ldr r3, [r7, #12]
|
||
1229 0110 1B68 ldr r3, [r3]
|
||
1230 .loc 1 1412 29
|
||
1231 0112 42F40042 orr r2, r2, #32768
|
||
1232 0116 5A60 str r2, [r3, #4]
|
||
1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1233 .loc 1 1413 16
|
||
1234 0118 0123 movs r3, #1
|
||
1235 011a A1E0 b .L49
|
||
1236 .L54:
|
||
1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
|
||
1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
|
||
1237 .loc 1 1417 7
|
||
1238 011c FB68 ldr r3, [r7, #12]
|
||
1239 011e 1B68 ldr r3, [r3]
|
||
1240 0120 0822 movs r2, #8
|
||
1241 0122 DA61 str r2, [r3, #28]
|
||
1242 .L53:
|
||
1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */
|
||
1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK)
|
||
1243 .loc 1 1421 9
|
||
1244 0124 7B69 ldr r3, [r7, #20]
|
||
1245 0126 0093 str r3, [sp]
|
||
1246 0128 3B68 ldr r3, [r7]
|
||
1247 012a 0022 movs r2, #0
|
||
1248 012c 4FF48031 mov r1, #65536
|
||
1249 0130 F868 ldr r0, [r7, #12]
|
||
1250 0132 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
1251 0136 0346 mov r3, r0
|
||
1252 .loc 1 1421 8 discriminator 1
|
||
1253 0138 002B cmp r3, #0
|
||
1254 013a 2DD0 beq .L56
|
||
1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
1255 .loc 1 1424 11
|
||
1256 013c FB68 ldr r3, [r7, #12]
|
||
1257 013e 1B68 ldr r3, [r3]
|
||
1258 .loc 1 1424 21
|
||
1259 0140 5A68 ldr r2, [r3, #4]
|
||
1260 .loc 1 1424 11
|
||
1261 0142 FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 48
|
||
|
||
|
||
1262 0144 1B68 ldr r3, [r3]
|
||
1263 .loc 1 1424 27
|
||
1264 0146 42F40042 orr r2, r2, #32768
|
||
1265 014a 5A60 str r2, [r3, #4]
|
||
1425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1266 .loc 1 1425 14
|
||
1267 014c 0123 movs r3, #1
|
||
1268 014e 87E0 b .L49
|
||
1269 .L58:
|
||
1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
|
||
1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
|
||
1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
|
||
1270 .loc 1 1431 11
|
||
1271 0150 7A69 ldr r2, [r7, #20]
|
||
1272 0152 3968 ldr r1, [r7]
|
||
1273 0154 F868 ldr r0, [r7, #12]
|
||
1274 0156 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
|
||
1275 015a 0346 mov r3, r0
|
||
1276 .loc 1 1431 10 discriminator 1
|
||
1277 015c 002B cmp r3, #0
|
||
1278 015e 09D0 beq .L57
|
||
1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
1279 .loc 1 1434 13
|
||
1280 0160 FB68 ldr r3, [r7, #12]
|
||
1281 0162 1B68 ldr r3, [r3]
|
||
1282 .loc 1 1434 23
|
||
1283 0164 5A68 ldr r2, [r3, #4]
|
||
1284 .loc 1 1434 13
|
||
1285 0166 FB68 ldr r3, [r7, #12]
|
||
1286 0168 1B68 ldr r3, [r3]
|
||
1287 .loc 1 1434 29
|
||
1288 016a 42F40042 orr r2, r2, #32768
|
||
1289 016e 5A60 str r2, [r3, #4]
|
||
1435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1290 .loc 1 1435 16
|
||
1291 0170 0123 movs r3, #1
|
||
1292 0172 75E0 b .L49
|
||
1293 .L57:
|
||
1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
|
||
1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
|
||
1294 .loc 1 1439 35
|
||
1295 0174 FB68 ldr r3, [r7, #12]
|
||
1296 0176 5B6A ldr r3, [r3, #36]
|
||
1297 .loc 1 1439 30
|
||
1298 0178 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
1299 .loc 1 1439 11
|
||
1300 017a FB68 ldr r3, [r7, #12]
|
||
1301 017c 1B68 ldr r3, [r3]
|
||
1302 .loc 1 1439 28
|
||
1303 017e 9A62 str r2, [r3, #40]
|
||
ARM GAS /tmp/cc5G5cqz.s page 49
|
||
|
||
|
||
1440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
1304 .loc 1 1442 11
|
||
1305 0180 FB68 ldr r3, [r7, #12]
|
||
1306 0182 5B6A ldr r3, [r3, #36]
|
||
1307 .loc 1 1442 21
|
||
1308 0184 5A1C adds r2, r3, #1
|
||
1309 0186 FB68 ldr r3, [r7, #12]
|
||
1310 0188 5A62 str r2, [r3, #36]
|
||
1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
1311 .loc 1 1444 11
|
||
1312 018a FB68 ldr r3, [r7, #12]
|
||
1313 018c 5B8D ldrh r3, [r3, #42] @ movhi
|
||
1314 018e 9BB2 uxth r3, r3
|
||
1315 .loc 1 1444 22
|
||
1316 0190 013B subs r3, r3, #1
|
||
1317 0192 9AB2 uxth r2, r3
|
||
1318 0194 FB68 ldr r3, [r7, #12]
|
||
1319 0196 5A85 strh r2, [r3, #42] @ movhi
|
||
1320 .L56:
|
||
1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1321 .loc 1 1428 16
|
||
1322 0198 FB68 ldr r3, [r7, #12]
|
||
1323 019a 5B8D ldrh r3, [r3, #42] @ movhi
|
||
1324 019c 9BB2 uxth r3, r3
|
||
1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1325 .loc 1 1428 28
|
||
1326 019e 002B cmp r3, #0
|
||
1327 01a0 D6D1 bne .L58
|
||
1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until AF flag is set */
|
||
1448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart) != HAL_OK)
|
||
1328 .loc 1 1448 9
|
||
1329 01a2 7B69 ldr r3, [r7, #20]
|
||
1330 01a4 0093 str r3, [sp]
|
||
1331 01a6 3B68 ldr r3, [r7]
|
||
1332 01a8 0022 movs r2, #0
|
||
1333 01aa 1021 movs r1, #16
|
||
1334 01ac F868 ldr r0, [r7, #12]
|
||
1335 01ae FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
1336 01b2 0346 mov r3, r0
|
||
1337 .loc 1 1448 8 discriminator 1
|
||
1338 01b4 002B cmp r3, #0
|
||
1339 01b6 09D0 beq .L59
|
||
1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
1340 .loc 1 1451 11
|
||
1341 01b8 FB68 ldr r3, [r7, #12]
|
||
1342 01ba 1B68 ldr r3, [r3]
|
||
1343 .loc 1 1451 21
|
||
1344 01bc 5A68 ldr r2, [r3, #4]
|
||
1345 .loc 1 1451 11
|
||
1346 01be FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 50
|
||
|
||
|
||
1347 01c0 1B68 ldr r3, [r3]
|
||
1348 .loc 1 1451 27
|
||
1349 01c2 42F40042 orr r2, r2, #32768
|
||
1350 01c6 5A60 str r2, [r3, #4]
|
||
1452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1351 .loc 1 1452 14
|
||
1352 01c8 0123 movs r3, #1
|
||
1353 01ca 49E0 b .L49
|
||
1354 .L59:
|
||
1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
|
||
1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
|
||
1355 .loc 1 1456 5
|
||
1356 01cc F868 ldr r0, [r7, #12]
|
||
1357 01ce FFF7FEFF bl I2C_Flush_TXDR
|
||
1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear AF flag */
|
||
1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
1358 .loc 1 1459 5
|
||
1359 01d2 FB68 ldr r3, [r7, #12]
|
||
1360 01d4 1B68 ldr r3, [r3]
|
||
1361 01d6 1022 movs r2, #16
|
||
1362 01d8 DA61 str r2, [r3, #28]
|
||
1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP flag is set */
|
||
1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
|
||
1363 .loc 1 1462 9
|
||
1364 01da 7A69 ldr r2, [r7, #20]
|
||
1365 01dc 3968 ldr r1, [r7]
|
||
1366 01de F868 ldr r0, [r7, #12]
|
||
1367 01e0 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
|
||
1368 01e4 0346 mov r3, r0
|
||
1369 .loc 1 1462 8 discriminator 1
|
||
1370 01e6 002B cmp r3, #0
|
||
1371 01e8 09D0 beq .L60
|
||
1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
1372 .loc 1 1465 11
|
||
1373 01ea FB68 ldr r3, [r7, #12]
|
||
1374 01ec 1B68 ldr r3, [r3]
|
||
1375 .loc 1 1465 21
|
||
1376 01ee 5A68 ldr r2, [r3, #4]
|
||
1377 .loc 1 1465 11
|
||
1378 01f0 FB68 ldr r3, [r7, #12]
|
||
1379 01f2 1B68 ldr r3, [r3]
|
||
1380 .loc 1 1465 27
|
||
1381 01f4 42F40042 orr r2, r2, #32768
|
||
1382 01f8 5A60 str r2, [r3, #4]
|
||
1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1383 .loc 1 1467 14
|
||
1384 01fa 0123 movs r3, #1
|
||
1385 01fc 30E0 b .L49
|
||
1386 .L60:
|
||
1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 51
|
||
|
||
|
||
1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP flag */
|
||
1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
1387 .loc 1 1471 5
|
||
1388 01fe FB68 ldr r3, [r7, #12]
|
||
1389 0200 1B68 ldr r3, [r3]
|
||
1390 0202 2022 movs r2, #32
|
||
1391 0204 DA61 str r2, [r3, #28]
|
||
1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
|
||
1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
|
||
1392 .loc 1 1474 9
|
||
1393 0206 7B69 ldr r3, [r7, #20]
|
||
1394 0208 0093 str r3, [sp]
|
||
1395 020a 3B68 ldr r3, [r7]
|
||
1396 020c 0122 movs r2, #1
|
||
1397 020e 4FF40041 mov r1, #32768
|
||
1398 0212 F868 ldr r0, [r7, #12]
|
||
1399 0214 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
1400 0218 0346 mov r3, r0
|
||
1401 .loc 1 1474 8 discriminator 1
|
||
1402 021a 002B cmp r3, #0
|
||
1403 021c 09D0 beq .L61
|
||
1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
1404 .loc 1 1477 11
|
||
1405 021e FB68 ldr r3, [r7, #12]
|
||
1406 0220 1B68 ldr r3, [r3]
|
||
1407 .loc 1 1477 21
|
||
1408 0222 5A68 ldr r2, [r3, #4]
|
||
1409 .loc 1 1477 11
|
||
1410 0224 FB68 ldr r3, [r7, #12]
|
||
1411 0226 1B68 ldr r3, [r3]
|
||
1412 .loc 1 1477 27
|
||
1413 0228 42F40042 orr r2, r2, #32768
|
||
1414 022c 5A60 str r2, [r3, #4]
|
||
1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1415 .loc 1 1478 14
|
||
1416 022e 0123 movs r3, #1
|
||
1417 0230 16E0 b .L49
|
||
1418 .L61:
|
||
1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
1419 .loc 1 1482 9
|
||
1420 0232 FB68 ldr r3, [r7, #12]
|
||
1421 0234 1B68 ldr r3, [r3]
|
||
1422 .loc 1 1482 19
|
||
1423 0236 5A68 ldr r2, [r3, #4]
|
||
1424 .loc 1 1482 9
|
||
1425 0238 FB68 ldr r3, [r7, #12]
|
||
1426 023a 1B68 ldr r3, [r3]
|
||
1427 .loc 1 1482 25
|
||
1428 023c 42F40042 orr r2, r2, #32768
|
||
1429 0240 5A60 str r2, [r3, #4]
|
||
ARM GAS /tmp/cc5G5cqz.s page 52
|
||
|
||
|
||
1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
1430 .loc 1 1484 17
|
||
1431 0242 FB68 ldr r3, [r7, #12]
|
||
1432 0244 2022 movs r2, #32
|
||
1433 0246 83F84120 strb r2, [r3, #65]
|
||
1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
1434 .loc 1 1485 17
|
||
1435 024a FB68 ldr r3, [r7, #12]
|
||
1436 024c 0022 movs r2, #0
|
||
1437 024e 83F84220 strb r2, [r3, #66]
|
||
1486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
1488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
1438 .loc 1 1488 5
|
||
1439 0252 FB68 ldr r3, [r7, #12]
|
||
1440 0254 0022 movs r2, #0
|
||
1441 0256 83F84020 strb r2, [r3, #64]
|
||
1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
1442 .loc 1 1490 12
|
||
1443 025a 0023 movs r3, #0
|
||
1444 025c 00E0 b .L49
|
||
1445 .L46:
|
||
1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
1446 .loc 1 1494 12
|
||
1447 025e 0223 movs r3, #2
|
||
1448 .L49:
|
||
1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1449 .loc 1 1496 1
|
||
1450 0260 1846 mov r0, r3
|
||
1451 0262 1837 adds r7, r7, #24
|
||
1452 .cfi_def_cfa_offset 8
|
||
1453 0264 BD46 mov sp, r7
|
||
1454 .cfi_def_cfa_register 13
|
||
1455 @ sp needed
|
||
1456 0266 80BD pop {r7, pc}
|
||
1457 .cfi_endproc
|
||
1458 .LFE136:
|
||
1460 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits
|
||
1461 .align 1
|
||
1462 .global HAL_I2C_Slave_Receive
|
||
1463 .syntax unified
|
||
1464 .thumb
|
||
1465 .thumb_func
|
||
1467 HAL_I2C_Slave_Receive:
|
||
1468 .LFB137:
|
||
1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode
|
||
1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
ARM GAS /tmp/cc5G5cqz.s page 53
|
||
|
||
|
||
1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
1504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
|
||
1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
|
||
1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
|
||
1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1469 .loc 1 1509 1
|
||
1470 .cfi_startproc
|
||
1471 @ args = 0, pretend = 0, frame = 24
|
||
1472 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1473 0000 80B5 push {r7, lr}
|
||
1474 .cfi_def_cfa_offset 8
|
||
1475 .cfi_offset 7, -8
|
||
1476 .cfi_offset 14, -4
|
||
1477 0002 88B0 sub sp, sp, #32
|
||
1478 .cfi_def_cfa_offset 40
|
||
1479 0004 02AF add r7, sp, #8
|
||
1480 .cfi_def_cfa 7, 32
|
||
1481 0006 F860 str r0, [r7, #12]
|
||
1482 0008 B960 str r1, [r7, #8]
|
||
1483 000a 3B60 str r3, [r7]
|
||
1484 000c 1346 mov r3, r2 @ movhi
|
||
1485 000e FB80 strh r3, [r7, #6] @ movhi
|
||
1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
|
||
1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
1486 .loc 1 1512 11
|
||
1487 0010 FB68 ldr r3, [r7, #12]
|
||
1488 0012 93F84130 ldrb r3, [r3, #65]
|
||
1489 0016 DBB2 uxtb r3, r3
|
||
1490 .loc 1 1512 6
|
||
1491 0018 202B cmp r3, #32
|
||
1492 001a 40F0FC80 bne .L63
|
||
1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
|
||
1493 .loc 1 1514 8
|
||
1494 001e BB68 ldr r3, [r7, #8]
|
||
1495 0020 002B cmp r3, #0
|
||
1496 0022 02D0 beq .L64
|
||
1497 .loc 1 1514 25 discriminator 1
|
||
1498 0024 FB88 ldrh r3, [r7, #6]
|
||
1499 0026 002B cmp r3, #0
|
||
1500 0028 05D1 bne .L65
|
||
1501 .L64:
|
||
1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
|
||
1502 .loc 1 1516 23
|
||
1503 002a FB68 ldr r3, [r7, #12]
|
||
1504 002c 4FF40072 mov r2, #512
|
||
1505 0030 5A64 str r2, [r3, #68]
|
||
1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1506 .loc 1 1517 15
|
||
1507 0032 0123 movs r3, #1
|
||
1508 0034 F0E0 b .L66
|
||
1509 .L65:
|
||
1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 54
|
||
|
||
|
||
1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
1510 .loc 1 1520 5
|
||
1511 0036 FB68 ldr r3, [r7, #12]
|
||
1512 0038 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
1513 003c 012B cmp r3, #1
|
||
1514 003e 01D1 bne .L67
|
||
1515 .loc 1 1520 5 is_stmt 0 discriminator 1
|
||
1516 0040 0223 movs r3, #2
|
||
1517 .loc 1 1520 5
|
||
1518 0042 E9E0 b .L66
|
||
1519 .L67:
|
||
1520 .loc 1 1520 5 discriminator 2
|
||
1521 0044 FB68 ldr r3, [r7, #12]
|
||
1522 0046 0122 movs r2, #1
|
||
1523 0048 83F84020 strb r2, [r3, #64]
|
||
1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
|
||
1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
|
||
1524 .loc 1 1523 17 is_stmt 1
|
||
1525 004c FFF7FEFF bl HAL_GetTick
|
||
1526 0050 7861 str r0, [r7, #20]
|
||
1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
|
||
1527 .loc 1 1525 21
|
||
1528 0052 FB68 ldr r3, [r7, #12]
|
||
1529 0054 2222 movs r2, #34
|
||
1530 0056 83F84120 strb r2, [r3, #65]
|
||
1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
|
||
1531 .loc 1 1526 21
|
||
1532 005a FB68 ldr r3, [r7, #12]
|
||
1533 005c 2022 movs r2, #32
|
||
1534 005e 83F84220 strb r2, [r3, #66]
|
||
1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
1535 .loc 1 1527 21
|
||
1536 0062 FB68 ldr r3, [r7, #12]
|
||
1537 0064 0022 movs r2, #0
|
||
1538 0066 5A64 str r2, [r3, #68]
|
||
1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
1539 .loc 1 1530 21
|
||
1540 0068 FB68 ldr r3, [r7, #12]
|
||
1541 006a BA68 ldr r2, [r7, #8]
|
||
1542 006c 5A62 str r2, [r3, #36]
|
||
1531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
1543 .loc 1 1531 21
|
||
1544 006e FB68 ldr r3, [r7, #12]
|
||
1545 0070 FA88 ldrh r2, [r7, #6] @ movhi
|
||
1546 0072 5A85 strh r2, [r3, #42] @ movhi
|
||
1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
1547 .loc 1 1532 26
|
||
1548 0074 FB68 ldr r3, [r7, #12]
|
||
1549 0076 5B8D ldrh r3, [r3, #42] @ movhi
|
||
1550 0078 9AB2 uxth r2, r3
|
||
1551 .loc 1 1532 20
|
||
1552 007a FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 55
|
||
|
||
|
||
1553 007c 1A85 strh r2, [r3, #40] @ movhi
|
||
1533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
|
||
1554 .loc 1 1533 21
|
||
1555 007e FB68 ldr r3, [r7, #12]
|
||
1556 0080 0022 movs r2, #0
|
||
1557 0082 5A63 str r2, [r3, #52]
|
||
1534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
|
||
1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
|
||
1558 .loc 1 1536 9
|
||
1559 0084 FB68 ldr r3, [r7, #12]
|
||
1560 0086 1B68 ldr r3, [r3]
|
||
1561 .loc 1 1536 19
|
||
1562 0088 5A68 ldr r2, [r3, #4]
|
||
1563 .loc 1 1536 9
|
||
1564 008a FB68 ldr r3, [r7, #12]
|
||
1565 008c 1B68 ldr r3, [r3]
|
||
1566 .loc 1 1536 25
|
||
1567 008e 22F40042 bic r2, r2, #32768
|
||
1568 0092 5A60 str r2, [r3, #4]
|
||
1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
|
||
1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
|
||
1569 .loc 1 1539 9
|
||
1570 0094 7B69 ldr r3, [r7, #20]
|
||
1571 0096 0093 str r3, [sp]
|
||
1572 0098 3B68 ldr r3, [r7]
|
||
1573 009a 0022 movs r2, #0
|
||
1574 009c 0821 movs r1, #8
|
||
1575 009e F868 ldr r0, [r7, #12]
|
||
1576 00a0 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
1577 00a4 0346 mov r3, r0
|
||
1578 .loc 1 1539 8 discriminator 1
|
||
1579 00a6 002B cmp r3, #0
|
||
1580 00a8 09D0 beq .L68
|
||
1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
1581 .loc 1 1542 11
|
||
1582 00aa FB68 ldr r3, [r7, #12]
|
||
1583 00ac 1B68 ldr r3, [r3]
|
||
1584 .loc 1 1542 21
|
||
1585 00ae 5A68 ldr r2, [r3, #4]
|
||
1586 .loc 1 1542 11
|
||
1587 00b0 FB68 ldr r3, [r7, #12]
|
||
1588 00b2 1B68 ldr r3, [r3]
|
||
1589 .loc 1 1542 27
|
||
1590 00b4 42F40042 orr r2, r2, #32768
|
||
1591 00b8 5A60 str r2, [r3, #4]
|
||
1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1592 .loc 1 1543 14
|
||
1593 00ba 0123 movs r3, #1
|
||
1594 00bc ACE0 b .L66
|
||
1595 .L68:
|
||
1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
|
||
ARM GAS /tmp/cc5G5cqz.s page 56
|
||
|
||
|
||
1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
|
||
1596 .loc 1 1547 5
|
||
1597 00be FB68 ldr r3, [r7, #12]
|
||
1598 00c0 1B68 ldr r3, [r3]
|
||
1599 00c2 0822 movs r2, #8
|
||
1600 00c4 DA61 str r2, [r3, #28]
|
||
1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */
|
||
1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK)
|
||
1601 .loc 1 1550 9
|
||
1602 00c6 7B69 ldr r3, [r7, #20]
|
||
1603 00c8 0093 str r3, [sp]
|
||
1604 00ca 3B68 ldr r3, [r7]
|
||
1605 00cc 0122 movs r2, #1
|
||
1606 00ce 4FF48031 mov r1, #65536
|
||
1607 00d2 F868 ldr r0, [r7, #12]
|
||
1608 00d4 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
1609 00d8 0346 mov r3, r0
|
||
1610 .loc 1 1550 8 discriminator 1
|
||
1611 00da 002B cmp r3, #0
|
||
1612 00dc 54D0 beq .L70
|
||
1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
1613 .loc 1 1553 11
|
||
1614 00de FB68 ldr r3, [r7, #12]
|
||
1615 00e0 1B68 ldr r3, [r3]
|
||
1616 .loc 1 1553 21
|
||
1617 00e2 5A68 ldr r2, [r3, #4]
|
||
1618 .loc 1 1553 11
|
||
1619 00e4 FB68 ldr r3, [r7, #12]
|
||
1620 00e6 1B68 ldr r3, [r3]
|
||
1621 .loc 1 1553 27
|
||
1622 00e8 42F40042 orr r2, r2, #32768
|
||
1623 00ec 5A60 str r2, [r3, #4]
|
||
1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1624 .loc 1 1554 14
|
||
1625 00ee 0123 movs r3, #1
|
||
1626 00f0 92E0 b .L66
|
||
1627 .L73:
|
||
1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
|
||
1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
|
||
1560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
|
||
1628 .loc 1 1560 11
|
||
1629 00f2 7A69 ldr r2, [r7, #20]
|
||
1630 00f4 3968 ldr r1, [r7]
|
||
1631 00f6 F868 ldr r0, [r7, #12]
|
||
1632 00f8 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
|
||
1633 00fc 0346 mov r3, r0
|
||
1634 .loc 1 1560 10 discriminator 1
|
||
1635 00fe 002B cmp r3, #0
|
||
1636 0100 29D0 beq .L71
|
||
1561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
ARM GAS /tmp/cc5G5cqz.s page 57
|
||
|
||
|
||
1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
1637 .loc 1 1563 13
|
||
1638 0102 FB68 ldr r3, [r7, #12]
|
||
1639 0104 1B68 ldr r3, [r3]
|
||
1640 .loc 1 1563 23
|
||
1641 0106 5A68 ldr r2, [r3, #4]
|
||
1642 .loc 1 1563 13
|
||
1643 0108 FB68 ldr r3, [r7, #12]
|
||
1644 010a 1B68 ldr r3, [r3]
|
||
1645 .loc 1 1563 29
|
||
1646 010c 42F40042 orr r2, r2, #32768
|
||
1647 0110 5A60 str r2, [r3, #4]
|
||
1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
|
||
1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET)
|
||
1648 .loc 1 1566 13
|
||
1649 0112 FB68 ldr r3, [r7, #12]
|
||
1650 0114 1B68 ldr r3, [r3]
|
||
1651 0116 9B69 ldr r3, [r3, #24]
|
||
1652 0118 03F00403 and r3, r3, #4
|
||
1653 .loc 1 1566 12
|
||
1654 011c 042B cmp r3, #4
|
||
1655 011e 18D1 bne .L72
|
||
1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
|
||
1569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
|
||
1656 .loc 1 1569 42
|
||
1657 0120 FB68 ldr r3, [r7, #12]
|
||
1658 0122 1B68 ldr r3, [r3]
|
||
1659 .loc 1 1569 52
|
||
1660 0124 5A6A ldr r2, [r3, #36]
|
||
1661 .loc 1 1569 16
|
||
1662 0126 FB68 ldr r3, [r7, #12]
|
||
1663 0128 5B6A ldr r3, [r3, #36]
|
||
1664 .loc 1 1569 29
|
||
1665 012a D2B2 uxtb r2, r2
|
||
1666 .loc 1 1569 27
|
||
1667 012c 1A70 strb r2, [r3]
|
||
1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
1668 .loc 1 1572 15
|
||
1669 012e FB68 ldr r3, [r7, #12]
|
||
1670 0130 5B6A ldr r3, [r3, #36]
|
||
1671 .loc 1 1572 25
|
||
1672 0132 5A1C adds r2, r3, #1
|
||
1673 0134 FB68 ldr r3, [r7, #12]
|
||
1674 0136 5A62 str r2, [r3, #36]
|
||
1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
1675 .loc 1 1574 15
|
||
1676 0138 FB68 ldr r3, [r7, #12]
|
||
1677 013a 5B8D ldrh r3, [r3, #42] @ movhi
|
||
1678 013c 9BB2 uxth r3, r3
|
||
1679 .loc 1 1574 26
|
||
1680 013e 013B subs r3, r3, #1
|
||
1681 0140 9AB2 uxth r2, r3
|
||
ARM GAS /tmp/cc5G5cqz.s page 58
|
||
|
||
|
||
1682 0142 FB68 ldr r3, [r7, #12]
|
||
1683 0144 5A85 strh r2, [r3, #42] @ movhi
|
||
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
1684 .loc 1 1575 15
|
||
1685 0146 FB68 ldr r3, [r7, #12]
|
||
1686 0148 1B8D ldrh r3, [r3, #40]
|
||
1687 .loc 1 1575 25
|
||
1688 014a 013B subs r3, r3, #1
|
||
1689 014c 9AB2 uxth r2, r3
|
||
1690 014e FB68 ldr r3, [r7, #12]
|
||
1691 0150 1A85 strh r2, [r3, #40] @ movhi
|
||
1692 .L72:
|
||
1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1693 .loc 1 1578 16
|
||
1694 0152 0123 movs r3, #1
|
||
1695 0154 60E0 b .L66
|
||
1696 .L71:
|
||
1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
|
||
1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
|
||
1697 .loc 1 1582 38
|
||
1698 0156 FB68 ldr r3, [r7, #12]
|
||
1699 0158 1B68 ldr r3, [r3]
|
||
1700 .loc 1 1582 48
|
||
1701 015a 5A6A ldr r2, [r3, #36]
|
||
1702 .loc 1 1582 12
|
||
1703 015c FB68 ldr r3, [r7, #12]
|
||
1704 015e 5B6A ldr r3, [r3, #36]
|
||
1705 .loc 1 1582 25
|
||
1706 0160 D2B2 uxtb r2, r2
|
||
1707 .loc 1 1582 23
|
||
1708 0162 1A70 strb r2, [r3]
|
||
1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
1709 .loc 1 1585 11
|
||
1710 0164 FB68 ldr r3, [r7, #12]
|
||
1711 0166 5B6A ldr r3, [r3, #36]
|
||
1712 .loc 1 1585 21
|
||
1713 0168 5A1C adds r2, r3, #1
|
||
1714 016a FB68 ldr r3, [r7, #12]
|
||
1715 016c 5A62 str r2, [r3, #36]
|
||
1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
1716 .loc 1 1587 11
|
||
1717 016e FB68 ldr r3, [r7, #12]
|
||
1718 0170 5B8D ldrh r3, [r3, #42] @ movhi
|
||
1719 0172 9BB2 uxth r3, r3
|
||
1720 .loc 1 1587 22
|
||
1721 0174 013B subs r3, r3, #1
|
||
1722 0176 9AB2 uxth r2, r3
|
||
1723 0178 FB68 ldr r3, [r7, #12]
|
||
1724 017a 5A85 strh r2, [r3, #42] @ movhi
|
||
1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
ARM GAS /tmp/cc5G5cqz.s page 59
|
||
|
||
|
||
1725 .loc 1 1588 11
|
||
1726 017c FB68 ldr r3, [r7, #12]
|
||
1727 017e 1B8D ldrh r3, [r3, #40]
|
||
1728 .loc 1 1588 21
|
||
1729 0180 013B subs r3, r3, #1
|
||
1730 0182 9AB2 uxth r2, r3
|
||
1731 0184 FB68 ldr r3, [r7, #12]
|
||
1732 0186 1A85 strh r2, [r3, #40] @ movhi
|
||
1733 .L70:
|
||
1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1734 .loc 1 1557 16
|
||
1735 0188 FB68 ldr r3, [r7, #12]
|
||
1736 018a 5B8D ldrh r3, [r3, #42] @ movhi
|
||
1737 018c 9BB2 uxth r3, r3
|
||
1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1738 .loc 1 1557 28
|
||
1739 018e 002B cmp r3, #0
|
||
1740 0190 AFD1 bne .L73
|
||
1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP flag is set */
|
||
1592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
|
||
1741 .loc 1 1592 9
|
||
1742 0192 7A69 ldr r2, [r7, #20]
|
||
1743 0194 3968 ldr r1, [r7]
|
||
1744 0196 F868 ldr r0, [r7, #12]
|
||
1745 0198 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
|
||
1746 019c 0346 mov r3, r0
|
||
1747 .loc 1 1592 8 discriminator 1
|
||
1748 019e 002B cmp r3, #0
|
||
1749 01a0 09D0 beq .L74
|
||
1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
1750 .loc 1 1595 11
|
||
1751 01a2 FB68 ldr r3, [r7, #12]
|
||
1752 01a4 1B68 ldr r3, [r3]
|
||
1753 .loc 1 1595 21
|
||
1754 01a6 5A68 ldr r2, [r3, #4]
|
||
1755 .loc 1 1595 11
|
||
1756 01a8 FB68 ldr r3, [r7, #12]
|
||
1757 01aa 1B68 ldr r3, [r3]
|
||
1758 .loc 1 1595 27
|
||
1759 01ac 42F40042 orr r2, r2, #32768
|
||
1760 01b0 5A60 str r2, [r3, #4]
|
||
1596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1761 .loc 1 1596 14
|
||
1762 01b2 0123 movs r3, #1
|
||
1763 01b4 30E0 b .L66
|
||
1764 .L74:
|
||
1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP flag */
|
||
1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
1765 .loc 1 1600 5
|
||
1766 01b6 FB68 ldr r3, [r7, #12]
|
||
1767 01b8 1B68 ldr r3, [r3]
|
||
ARM GAS /tmp/cc5G5cqz.s page 60
|
||
|
||
|
||
1768 01ba 2022 movs r2, #32
|
||
1769 01bc DA61 str r2, [r3, #28]
|
||
1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
|
||
1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
|
||
1770 .loc 1 1603 9
|
||
1771 01be 7B69 ldr r3, [r7, #20]
|
||
1772 01c0 0093 str r3, [sp]
|
||
1773 01c2 3B68 ldr r3, [r7]
|
||
1774 01c4 0122 movs r2, #1
|
||
1775 01c6 4FF40041 mov r1, #32768
|
||
1776 01ca F868 ldr r0, [r7, #12]
|
||
1777 01cc FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
1778 01d0 0346 mov r3, r0
|
||
1779 .loc 1 1603 8 discriminator 1
|
||
1780 01d2 002B cmp r3, #0
|
||
1781 01d4 09D0 beq .L75
|
||
1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
1782 .loc 1 1606 11
|
||
1783 01d6 FB68 ldr r3, [r7, #12]
|
||
1784 01d8 1B68 ldr r3, [r3]
|
||
1785 .loc 1 1606 21
|
||
1786 01da 5A68 ldr r2, [r3, #4]
|
||
1787 .loc 1 1606 11
|
||
1788 01dc FB68 ldr r3, [r7, #12]
|
||
1789 01de 1B68 ldr r3, [r3]
|
||
1790 .loc 1 1606 27
|
||
1791 01e0 42F40042 orr r2, r2, #32768
|
||
1792 01e4 5A60 str r2, [r3, #4]
|
||
1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1793 .loc 1 1607 14
|
||
1794 01e6 0123 movs r3, #1
|
||
1795 01e8 16E0 b .L66
|
||
1796 .L75:
|
||
1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
1797 .loc 1 1611 9
|
||
1798 01ea FB68 ldr r3, [r7, #12]
|
||
1799 01ec 1B68 ldr r3, [r3]
|
||
1800 .loc 1 1611 19
|
||
1801 01ee 5A68 ldr r2, [r3, #4]
|
||
1802 .loc 1 1611 9
|
||
1803 01f0 FB68 ldr r3, [r7, #12]
|
||
1804 01f2 1B68 ldr r3, [r3]
|
||
1805 .loc 1 1611 25
|
||
1806 01f4 42F40042 orr r2, r2, #32768
|
||
1807 01f8 5A60 str r2, [r3, #4]
|
||
1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
1808 .loc 1 1613 17
|
||
1809 01fa FB68 ldr r3, [r7, #12]
|
||
1810 01fc 2022 movs r2, #32
|
||
1811 01fe 83F84120 strb r2, [r3, #65]
|
||
ARM GAS /tmp/cc5G5cqz.s page 61
|
||
|
||
|
||
1614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
1812 .loc 1 1614 17
|
||
1813 0202 FB68 ldr r3, [r7, #12]
|
||
1814 0204 0022 movs r2, #0
|
||
1815 0206 83F84220 strb r2, [r3, #66]
|
||
1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
1816 .loc 1 1617 5
|
||
1817 020a FB68 ldr r3, [r7, #12]
|
||
1818 020c 0022 movs r2, #0
|
||
1819 020e 83F84020 strb r2, [r3, #64]
|
||
1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
1820 .loc 1 1619 12
|
||
1821 0212 0023 movs r3, #0
|
||
1822 0214 00E0 b .L66
|
||
1823 .L63:
|
||
1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
1824 .loc 1 1623 12
|
||
1825 0216 0223 movs r3, #2
|
||
1826 .L66:
|
||
1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1827 .loc 1 1625 1
|
||
1828 0218 1846 mov r0, r3
|
||
1829 021a 1837 adds r7, r7, #24
|
||
1830 .cfi_def_cfa_offset 8
|
||
1831 021c BD46 mov sp, r7
|
||
1832 .cfi_def_cfa_register 13
|
||
1833 @ sp needed
|
||
1834 021e 80BD pop {r7, pc}
|
||
1835 .cfi_endproc
|
||
1836 .LFE137:
|
||
1838 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits
|
||
1839 .align 1
|
||
1840 .global HAL_I2C_Master_Transmit_IT
|
||
1841 .syntax unified
|
||
1842 .thumb
|
||
1843 .thumb_func
|
||
1845 HAL_I2C_Master_Transmit_IT:
|
||
1846 .LFB138:
|
||
1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt
|
||
1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
|
||
ARM GAS /tmp/cc5G5cqz.s page 62
|
||
|
||
|
||
1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
|
||
1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1847 .loc 1 1639 1
|
||
1848 .cfi_startproc
|
||
1849 @ args = 0, pretend = 0, frame = 24
|
||
1850 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1851 0000 80B5 push {r7, lr}
|
||
1852 .cfi_def_cfa_offset 8
|
||
1853 .cfi_offset 7, -8
|
||
1854 .cfi_offset 14, -4
|
||
1855 0002 88B0 sub sp, sp, #32
|
||
1856 .cfi_def_cfa_offset 40
|
||
1857 0004 02AF add r7, sp, #8
|
||
1858 .cfi_def_cfa 7, 32
|
||
1859 0006 F860 str r0, [r7, #12]
|
||
1860 0008 7A60 str r2, [r7, #4]
|
||
1861 000a 1A46 mov r2, r3
|
||
1862 000c 0B46 mov r3, r1 @ movhi
|
||
1863 000e 7B81 strh r3, [r7, #10] @ movhi
|
||
1864 0010 1346 mov r3, r2 @ movhi
|
||
1865 0012 3B81 strh r3, [r7, #8] @ movhi
|
||
1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
|
||
1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
1866 .loc 1 1642 11
|
||
1867 0014 FB68 ldr r3, [r7, #12]
|
||
1868 0016 93F84130 ldrb r3, [r3, #65]
|
||
1869 001a DBB2 uxtb r3, r3
|
||
1870 .loc 1 1642 6
|
||
1871 001c 202B cmp r3, #32
|
||
1872 001e 53D1 bne .L77
|
||
1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
|
||
1873 .loc 1 1644 9
|
||
1874 0020 FB68 ldr r3, [r7, #12]
|
||
1875 0022 1B68 ldr r3, [r3]
|
||
1876 0024 9B69 ldr r3, [r3, #24]
|
||
1877 0026 03F40043 and r3, r3, #32768
|
||
1878 .loc 1 1644 8
|
||
1879 002a B3F5004F cmp r3, #32768
|
||
1880 002e 01D1 bne .L78
|
||
1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
1881 .loc 1 1646 14
|
||
1882 0030 0223 movs r3, #2
|
||
1883 0032 4AE0 b .L79
|
||
1884 .L78:
|
||
1647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
1885 .loc 1 1650 5
|
||
1886 0034 FB68 ldr r3, [r7, #12]
|
||
1887 0036 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
1888 003a 012B cmp r3, #1
|
||
1889 003c 01D1 bne .L80
|
||
1890 .loc 1 1650 5 is_stmt 0 discriminator 1
|
||
ARM GAS /tmp/cc5G5cqz.s page 63
|
||
|
||
|
||
1891 003e 0223 movs r3, #2
|
||
1892 .loc 1 1650 5
|
||
1893 0040 43E0 b .L79
|
||
1894 .L80:
|
||
1895 .loc 1 1650 5 discriminator 2
|
||
1896 0042 FB68 ldr r3, [r7, #12]
|
||
1897 0044 0122 movs r2, #1
|
||
1898 0046 83F84020 strb r2, [r3, #64]
|
||
1651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
|
||
1899 .loc 1 1652 23 is_stmt 1
|
||
1900 004a FB68 ldr r3, [r7, #12]
|
||
1901 004c 2122 movs r2, #33
|
||
1902 004e 83F84120 strb r2, [r3, #65]
|
||
1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
|
||
1903 .loc 1 1653 23
|
||
1904 0052 FB68 ldr r3, [r7, #12]
|
||
1905 0054 1022 movs r2, #16
|
||
1906 0056 83F84220 strb r2, [r3, #66]
|
||
1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
1907 .loc 1 1654 23
|
||
1908 005a FB68 ldr r3, [r7, #12]
|
||
1909 005c 0022 movs r2, #0
|
||
1910 005e 5A64 str r2, [r3, #68]
|
||
1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
1657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
1911 .loc 1 1657 23
|
||
1912 0060 FB68 ldr r3, [r7, #12]
|
||
1913 0062 7A68 ldr r2, [r7, #4]
|
||
1914 0064 5A62 str r2, [r3, #36]
|
||
1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
1915 .loc 1 1658 23
|
||
1916 0066 FB68 ldr r3, [r7, #12]
|
||
1917 0068 3A89 ldrh r2, [r7, #8] @ movhi
|
||
1918 006a 5A85 strh r2, [r3, #42] @ movhi
|
||
1659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
1919 .loc 1 1659 23
|
||
1920 006c FB68 ldr r3, [r7, #12]
|
||
1921 006e 194A ldr r2, .L83
|
||
1922 0070 DA62 str r2, [r3, #44]
|
||
1660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
|
||
1923 .loc 1 1660 23
|
||
1924 0072 FB68 ldr r3, [r7, #12]
|
||
1925 0074 184A ldr r2, .L83+4
|
||
1926 0076 5A63 str r2, [r3, #52]
|
||
1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
1927 .loc 1 1662 13
|
||
1928 0078 FB68 ldr r3, [r7, #12]
|
||
1929 007a 5B8D ldrh r3, [r3, #42] @ movhi
|
||
1930 007c 9BB2 uxth r3, r3
|
||
1931 .loc 1 1662 8
|
||
1932 007e FF2B cmp r3, #255
|
||
1933 0080 06D9 bls .L81
|
||
1663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
ARM GAS /tmp/cc5G5cqz.s page 64
|
||
|
||
|
||
1934 .loc 1 1664 22
|
||
1935 0082 FB68 ldr r3, [r7, #12]
|
||
1936 0084 FF22 movs r2, #255
|
||
1937 0086 1A85 strh r2, [r3, #40] @ movhi
|
||
1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
|
||
1938 .loc 1 1665 16
|
||
1939 0088 4FF08073 mov r3, #16777216
|
||
1940 008c 7B61 str r3, [r7, #20]
|
||
1941 008e 07E0 b .L82
|
||
1942 .L81:
|
||
1666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
1943 .loc 1 1669 28
|
||
1944 0090 FB68 ldr r3, [r7, #12]
|
||
1945 0092 5B8D ldrh r3, [r3, #42] @ movhi
|
||
1946 0094 9AB2 uxth r2, r3
|
||
1947 .loc 1 1669 22
|
||
1948 0096 FB68 ldr r3, [r7, #12]
|
||
1949 0098 1A85 strh r2, [r3, #40] @ movhi
|
||
1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
|
||
1950 .loc 1 1670 16
|
||
1951 009a 4FF00073 mov r3, #33554432
|
||
1952 009e 7B61 str r3, [r7, #20]
|
||
1953 .L82:
|
||
1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
|
||
1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
|
||
1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_WRIT
|
||
1954 .loc 1 1675 55
|
||
1955 00a0 FB68 ldr r3, [r7, #12]
|
||
1956 00a2 1B8D ldrh r3, [r3, #40]
|
||
1957 .loc 1 1675 5
|
||
1958 00a4 DAB2 uxtb r2, r3
|
||
1959 00a6 7989 ldrh r1, [r7, #10]
|
||
1960 00a8 0C4B ldr r3, .L83+8
|
||
1961 00aa 0093 str r3, [sp]
|
||
1962 00ac 7B69 ldr r3, [r7, #20]
|
||
1963 00ae F868 ldr r0, [r7, #12]
|
||
1964 00b0 FFF7FEFF bl I2C_TransferConfig
|
||
1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
1965 .loc 1 1678 5
|
||
1966 00b4 FB68 ldr r3, [r7, #12]
|
||
1967 00b6 0022 movs r2, #0
|
||
1968 00b8 83F84020 strb r2, [r3, #64]
|
||
1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
|
||
1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
|
||
1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
|
||
ARM GAS /tmp/cc5G5cqz.s page 65
|
||
|
||
|
||
1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
|
||
1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
1969 .loc 1 1688 5
|
||
1970 00bc 0121 movs r1, #1
|
||
1971 00be F868 ldr r0, [r7, #12]
|
||
1972 00c0 FFF7FEFF bl I2C_Enable_IRQ
|
||
1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
1973 .loc 1 1690 12
|
||
1974 00c4 0023 movs r3, #0
|
||
1975 00c6 00E0 b .L79
|
||
1976 .L77:
|
||
1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
1977 .loc 1 1694 12
|
||
1978 00c8 0223 movs r3, #2
|
||
1979 .L79:
|
||
1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1980 .loc 1 1696 1
|
||
1981 00ca 1846 mov r0, r3
|
||
1982 00cc 1837 adds r7, r7, #24
|
||
1983 .cfi_def_cfa_offset 8
|
||
1984 00ce BD46 mov sp, r7
|
||
1985 .cfi_def_cfa_register 13
|
||
1986 @ sp needed
|
||
1987 00d0 80BD pop {r7, pc}
|
||
1988 .L84:
|
||
1989 00d2 00BF .align 2
|
||
1990 .L83:
|
||
1991 00d4 0000FFFF .word -65536
|
||
1992 00d8 00000000 .word I2C_Master_ISR_IT
|
||
1993 00dc 00200080 .word -2147475456
|
||
1994 .cfi_endproc
|
||
1995 .LFE138:
|
||
1997 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits
|
||
1998 .align 1
|
||
1999 .global HAL_I2C_Master_Receive_IT
|
||
2000 .syntax unified
|
||
2001 .thumb
|
||
2002 .thumb_func
|
||
2004 HAL_I2C_Master_Receive_IT:
|
||
2005 .LFB139:
|
||
1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt
|
||
1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
1706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *
|
||
ARM GAS /tmp/cc5G5cqz.s page 66
|
||
|
||
|
||
1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
|
||
1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2006 .loc 1 1710 1
|
||
2007 .cfi_startproc
|
||
2008 @ args = 0, pretend = 0, frame = 24
|
||
2009 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2010 0000 80B5 push {r7, lr}
|
||
2011 .cfi_def_cfa_offset 8
|
||
2012 .cfi_offset 7, -8
|
||
2013 .cfi_offset 14, -4
|
||
2014 0002 88B0 sub sp, sp, #32
|
||
2015 .cfi_def_cfa_offset 40
|
||
2016 0004 02AF add r7, sp, #8
|
||
2017 .cfi_def_cfa 7, 32
|
||
2018 0006 F860 str r0, [r7, #12]
|
||
2019 0008 7A60 str r2, [r7, #4]
|
||
2020 000a 1A46 mov r2, r3
|
||
2021 000c 0B46 mov r3, r1 @ movhi
|
||
2022 000e 7B81 strh r3, [r7, #10] @ movhi
|
||
2023 0010 1346 mov r3, r2 @ movhi
|
||
2024 0012 3B81 strh r3, [r7, #8] @ movhi
|
||
1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
|
||
1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
2025 .loc 1 1713 11
|
||
2026 0014 FB68 ldr r3, [r7, #12]
|
||
2027 0016 93F84130 ldrb r3, [r3, #65]
|
||
2028 001a DBB2 uxtb r3, r3
|
||
2029 .loc 1 1713 6
|
||
2030 001c 202B cmp r3, #32
|
||
2031 001e 53D1 bne .L86
|
||
1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
|
||
2032 .loc 1 1715 9
|
||
2033 0020 FB68 ldr r3, [r7, #12]
|
||
2034 0022 1B68 ldr r3, [r3]
|
||
2035 0024 9B69 ldr r3, [r3, #24]
|
||
2036 0026 03F40043 and r3, r3, #32768
|
||
2037 .loc 1 1715 8
|
||
2038 002a B3F5004F cmp r3, #32768
|
||
2039 002e 01D1 bne .L87
|
||
1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
2040 .loc 1 1717 14
|
||
2041 0030 0223 movs r3, #2
|
||
2042 0032 4AE0 b .L88
|
||
2043 .L87:
|
||
1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
2044 .loc 1 1721 5
|
||
2045 0034 FB68 ldr r3, [r7, #12]
|
||
2046 0036 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
2047 003a 012B cmp r3, #1
|
||
2048 003c 01D1 bne .L89
|
||
2049 .loc 1 1721 5 is_stmt 0 discriminator 1
|
||
ARM GAS /tmp/cc5G5cqz.s page 67
|
||
|
||
|
||
2050 003e 0223 movs r3, #2
|
||
2051 .loc 1 1721 5
|
||
2052 0040 43E0 b .L88
|
||
2053 .L89:
|
||
2054 .loc 1 1721 5 discriminator 2
|
||
2055 0042 FB68 ldr r3, [r7, #12]
|
||
2056 0044 0122 movs r2, #1
|
||
2057 0046 83F84020 strb r2, [r3, #64]
|
||
1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
|
||
2058 .loc 1 1723 23 is_stmt 1
|
||
2059 004a FB68 ldr r3, [r7, #12]
|
||
2060 004c 2222 movs r2, #34
|
||
2061 004e 83F84120 strb r2, [r3, #65]
|
||
1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
|
||
2062 .loc 1 1724 23
|
||
2063 0052 FB68 ldr r3, [r7, #12]
|
||
2064 0054 1022 movs r2, #16
|
||
2065 0056 83F84220 strb r2, [r3, #66]
|
||
1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
2066 .loc 1 1725 23
|
||
2067 005a FB68 ldr r3, [r7, #12]
|
||
2068 005c 0022 movs r2, #0
|
||
2069 005e 5A64 str r2, [r3, #68]
|
||
1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
2070 .loc 1 1728 23
|
||
2071 0060 FB68 ldr r3, [r7, #12]
|
||
2072 0062 7A68 ldr r2, [r7, #4]
|
||
2073 0064 5A62 str r2, [r3, #36]
|
||
1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
2074 .loc 1 1729 23
|
||
2075 0066 FB68 ldr r3, [r7, #12]
|
||
2076 0068 3A89 ldrh r2, [r7, #8] @ movhi
|
||
2077 006a 5A85 strh r2, [r3, #42] @ movhi
|
||
1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
2078 .loc 1 1730 23
|
||
2079 006c FB68 ldr r3, [r7, #12]
|
||
2080 006e 194A ldr r2, .L92
|
||
2081 0070 DA62 str r2, [r3, #44]
|
||
1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
|
||
2082 .loc 1 1731 23
|
||
2083 0072 FB68 ldr r3, [r7, #12]
|
||
2084 0074 184A ldr r2, .L92+4
|
||
2085 0076 5A63 str r2, [r3, #52]
|
||
1732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
2086 .loc 1 1733 13
|
||
2087 0078 FB68 ldr r3, [r7, #12]
|
||
2088 007a 5B8D ldrh r3, [r3, #42] @ movhi
|
||
2089 007c 9BB2 uxth r3, r3
|
||
2090 .loc 1 1733 8
|
||
2091 007e FF2B cmp r3, #255
|
||
2092 0080 06D9 bls .L90
|
||
1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
ARM GAS /tmp/cc5G5cqz.s page 68
|
||
|
||
|
||
2093 .loc 1 1735 22
|
||
2094 0082 FB68 ldr r3, [r7, #12]
|
||
2095 0084 FF22 movs r2, #255
|
||
2096 0086 1A85 strh r2, [r3, #40] @ movhi
|
||
1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
|
||
2097 .loc 1 1736 16
|
||
2098 0088 4FF08073 mov r3, #16777216
|
||
2099 008c 7B61 str r3, [r7, #20]
|
||
2100 008e 07E0 b .L91
|
||
2101 .L90:
|
||
1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
2102 .loc 1 1740 28
|
||
2103 0090 FB68 ldr r3, [r7, #12]
|
||
2104 0092 5B8D ldrh r3, [r3, #42] @ movhi
|
||
2105 0094 9AB2 uxth r2, r3
|
||
2106 .loc 1 1740 22
|
||
2107 0096 FB68 ldr r3, [r7, #12]
|
||
2108 0098 1A85 strh r2, [r3, #40] @ movhi
|
||
1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
|
||
2109 .loc 1 1741 16
|
||
2110 009a 4FF00073 mov r3, #33554432
|
||
2111 009e 7B61 str r3, [r7, #20]
|
||
2112 .L91:
|
||
1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
|
||
1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
|
||
1746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ
|
||
2113 .loc 1 1746 55
|
||
2114 00a0 FB68 ldr r3, [r7, #12]
|
||
2115 00a2 1B8D ldrh r3, [r3, #40]
|
||
2116 .loc 1 1746 5
|
||
2117 00a4 DAB2 uxtb r2, r3
|
||
2118 00a6 7989 ldrh r1, [r7, #10]
|
||
2119 00a8 0C4B ldr r3, .L92+8
|
||
2120 00aa 0093 str r3, [sp]
|
||
2121 00ac 7B69 ldr r3, [r7, #20]
|
||
2122 00ae F868 ldr r0, [r7, #12]
|
||
2123 00b0 FFF7FEFF bl I2C_TransferConfig
|
||
1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
1749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
2124 .loc 1 1749 5
|
||
2125 00b4 FB68 ldr r3, [r7, #12]
|
||
2126 00b6 0022 movs r2, #0
|
||
2127 00b8 83F84020 strb r2, [r3, #64]
|
||
1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
1752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
|
||
1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
|
||
1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
|
||
ARM GAS /tmp/cc5G5cqz.s page 69
|
||
|
||
|
||
1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
|
||
1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
|
||
2128 .loc 1 1759 5
|
||
2129 00bc 0221 movs r1, #2
|
||
2130 00be F868 ldr r0, [r7, #12]
|
||
2131 00c0 FFF7FEFF bl I2C_Enable_IRQ
|
||
1760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
2132 .loc 1 1761 12
|
||
2133 00c4 0023 movs r3, #0
|
||
2134 00c6 00E0 b .L88
|
||
2135 .L86:
|
||
1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
2136 .loc 1 1765 12
|
||
2137 00c8 0223 movs r3, #2
|
||
2138 .L88:
|
||
1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2139 .loc 1 1767 1
|
||
2140 00ca 1846 mov r0, r3
|
||
2141 00cc 1837 adds r7, r7, #24
|
||
2142 .cfi_def_cfa_offset 8
|
||
2143 00ce BD46 mov sp, r7
|
||
2144 .cfi_def_cfa_register 13
|
||
2145 @ sp needed
|
||
2146 00d0 80BD pop {r7, pc}
|
||
2147 .L93:
|
||
2148 00d2 00BF .align 2
|
||
2149 .L92:
|
||
2150 00d4 0000FFFF .word -65536
|
||
2151 00d8 00000000 .word I2C_Master_ISR_IT
|
||
2152 00dc 00240080 .word -2147474432
|
||
2153 .cfi_endproc
|
||
2154 .LFE139:
|
||
2156 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits
|
||
2157 .align 1
|
||
2158 .global HAL_I2C_Slave_Transmit_IT
|
||
2159 .syntax unified
|
||
2160 .thumb
|
||
2161 .thumb_func
|
||
2163 HAL_I2C_Slave_Transmit_IT:
|
||
2164 .LFB140:
|
||
1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
1770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt
|
||
1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
1777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
|
||
1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2165 .loc 1 1778 1
|
||
ARM GAS /tmp/cc5G5cqz.s page 70
|
||
|
||
|
||
2166 .cfi_startproc
|
||
2167 @ args = 0, pretend = 0, frame = 16
|
||
2168 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2169 0000 80B5 push {r7, lr}
|
||
2170 .cfi_def_cfa_offset 8
|
||
2171 .cfi_offset 7, -8
|
||
2172 .cfi_offset 14, -4
|
||
2173 0002 84B0 sub sp, sp, #16
|
||
2174 .cfi_def_cfa_offset 24
|
||
2175 0004 00AF add r7, sp, #0
|
||
2176 .cfi_def_cfa_register 7
|
||
2177 0006 F860 str r0, [r7, #12]
|
||
2178 0008 B960 str r1, [r7, #8]
|
||
2179 000a 1346 mov r3, r2
|
||
2180 000c FB80 strh r3, [r7, #6] @ movhi
|
||
1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
2181 .loc 1 1779 11
|
||
2182 000e FB68 ldr r3, [r7, #12]
|
||
2183 0010 93F84130 ldrb r3, [r3, #65]
|
||
2184 0014 DBB2 uxtb r3, r3
|
||
2185 .loc 1 1779 6
|
||
2186 0016 202B cmp r3, #32
|
||
2187 0018 56D1 bne .L95
|
||
1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
2188 .loc 1 1782 5
|
||
2189 001a FB68 ldr r3, [r7, #12]
|
||
2190 001c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
2191 0020 012B cmp r3, #1
|
||
2192 0022 01D1 bne .L96
|
||
2193 .loc 1 1782 5 is_stmt 0 discriminator 1
|
||
2194 0024 0223 movs r3, #2
|
||
2195 .loc 1 1782 5
|
||
2196 0026 50E0 b .L97
|
||
2197 .L96:
|
||
2198 .loc 1 1782 5 discriminator 2
|
||
2199 0028 FB68 ldr r3, [r7, #12]
|
||
2200 002a 0122 movs r2, #1
|
||
2201 002c 83F84020 strb r2, [r3, #64]
|
||
1783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
|
||
2202 .loc 1 1784 23 is_stmt 1
|
||
2203 0030 FB68 ldr r3, [r7, #12]
|
||
2204 0032 2122 movs r2, #33
|
||
2205 0034 83F84120 strb r2, [r3, #65]
|
||
1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
|
||
2206 .loc 1 1785 23
|
||
2207 0038 FB68 ldr r3, [r7, #12]
|
||
2208 003a 2022 movs r2, #32
|
||
2209 003c 83F84220 strb r2, [r3, #66]
|
||
1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
2210 .loc 1 1786 23
|
||
2211 0040 FB68 ldr r3, [r7, #12]
|
||
2212 0042 0022 movs r2, #0
|
||
2213 0044 5A64 str r2, [r3, #68]
|
||
1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 71
|
||
|
||
|
||
1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
|
||
1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
|
||
2214 .loc 1 1789 9
|
||
2215 0046 FB68 ldr r3, [r7, #12]
|
||
2216 0048 1B68 ldr r3, [r3]
|
||
2217 .loc 1 1789 19
|
||
2218 004a 5A68 ldr r2, [r3, #4]
|
||
2219 .loc 1 1789 9
|
||
2220 004c FB68 ldr r3, [r7, #12]
|
||
2221 004e 1B68 ldr r3, [r3]
|
||
2222 .loc 1 1789 25
|
||
2223 0050 22F40042 bic r2, r2, #32768
|
||
2224 0054 5A60 str r2, [r3, #4]
|
||
1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
2225 .loc 1 1792 23
|
||
2226 0056 FB68 ldr r3, [r7, #12]
|
||
2227 0058 BA68 ldr r2, [r7, #8]
|
||
2228 005a 5A62 str r2, [r3, #36]
|
||
1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
2229 .loc 1 1793 23
|
||
2230 005c FB68 ldr r3, [r7, #12]
|
||
2231 005e FA88 ldrh r2, [r7, #6] @ movhi
|
||
2232 0060 5A85 strh r2, [r3, #42] @ movhi
|
||
1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
2233 .loc 1 1794 29
|
||
2234 0062 FB68 ldr r3, [r7, #12]
|
||
2235 0064 5B8D ldrh r3, [r3, #42] @ movhi
|
||
2236 0066 9AB2 uxth r2, r3
|
||
2237 .loc 1 1794 23
|
||
2238 0068 FB68 ldr r3, [r7, #12]
|
||
2239 006a 1A85 strh r2, [r3, #40] @ movhi
|
||
1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
2240 .loc 1 1795 23
|
||
2241 006c FB68 ldr r3, [r7, #12]
|
||
2242 006e 194A ldr r2, .L99
|
||
2243 0070 DA62 str r2, [r3, #44]
|
||
1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
|
||
2244 .loc 1 1796 23
|
||
2245 0072 FB68 ldr r3, [r7, #12]
|
||
2246 0074 184A ldr r2, .L99+4
|
||
2247 0076 5A63 str r2, [r3, #52]
|
||
1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
|
||
1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
|
||
2248 .loc 1 1799 19
|
||
2249 0078 FB68 ldr r3, [r7, #12]
|
||
2250 007a 1B6A ldr r3, [r3, #32]
|
||
2251 .loc 1 1799 8
|
||
2252 007c B3F5003F cmp r3, #131072
|
||
2253 0080 17D1 bne .L98
|
||
1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
|
||
1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
|
||
1803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
|
||
2254 .loc 1 1803 35
|
||
ARM GAS /tmp/cc5G5cqz.s page 72
|
||
|
||
|
||
2255 0082 FB68 ldr r3, [r7, #12]
|
||
2256 0084 5B6A ldr r3, [r3, #36]
|
||
2257 .loc 1 1803 30
|
||
2258 0086 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
2259 .loc 1 1803 11
|
||
2260 0088 FB68 ldr r3, [r7, #12]
|
||
2261 008a 1B68 ldr r3, [r3]
|
||
2262 .loc 1 1803 28
|
||
2263 008c 9A62 str r2, [r3, #40]
|
||
1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
2264 .loc 1 1806 11
|
||
2265 008e FB68 ldr r3, [r7, #12]
|
||
2266 0090 5B6A ldr r3, [r3, #36]
|
||
2267 .loc 1 1806 21
|
||
2268 0092 5A1C adds r2, r3, #1
|
||
2269 0094 FB68 ldr r3, [r7, #12]
|
||
2270 0096 5A62 str r2, [r3, #36]
|
||
1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
2271 .loc 1 1808 11
|
||
2272 0098 FB68 ldr r3, [r7, #12]
|
||
2273 009a 5B8D ldrh r3, [r3, #42] @ movhi
|
||
2274 009c 9BB2 uxth r3, r3
|
||
2275 .loc 1 1808 22
|
||
2276 009e 013B subs r3, r3, #1
|
||
2277 00a0 9AB2 uxth r2, r3
|
||
2278 00a2 FB68 ldr r3, [r7, #12]
|
||
2279 00a4 5A85 strh r2, [r3, #42] @ movhi
|
||
1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
2280 .loc 1 1809 11
|
||
2281 00a6 FB68 ldr r3, [r7, #12]
|
||
2282 00a8 1B8D ldrh r3, [r3, #40]
|
||
2283 .loc 1 1809 21
|
||
2284 00aa 013B subs r3, r3, #1
|
||
2285 00ac 9AB2 uxth r2, r3
|
||
2286 00ae FB68 ldr r3, [r7, #12]
|
||
2287 00b0 1A85 strh r2, [r3, #40] @ movhi
|
||
2288 .L98:
|
||
1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
2289 .loc 1 1813 5
|
||
2290 00b2 FB68 ldr r3, [r7, #12]
|
||
2291 00b4 0022 movs r2, #0
|
||
2292 00b6 83F84020 strb r2, [r3, #64]
|
||
1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
|
||
1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
|
||
1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
|
||
1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
|
||
ARM GAS /tmp/cc5G5cqz.s page 73
|
||
|
||
|
||
1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
|
||
2293 .loc 1 1823 5
|
||
2294 00ba 48F20101 movw r1, #32769
|
||
2295 00be F868 ldr r0, [r7, #12]
|
||
2296 00c0 FFF7FEFF bl I2C_Enable_IRQ
|
||
1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
2297 .loc 1 1825 12
|
||
2298 00c4 0023 movs r3, #0
|
||
2299 00c6 00E0 b .L97
|
||
2300 .L95:
|
||
1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
2301 .loc 1 1829 12
|
||
2302 00c8 0223 movs r3, #2
|
||
2303 .L97:
|
||
1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2304 .loc 1 1831 1
|
||
2305 00ca 1846 mov r0, r3
|
||
2306 00cc 1037 adds r7, r7, #16
|
||
2307 .cfi_def_cfa_offset 8
|
||
2308 00ce BD46 mov sp, r7
|
||
2309 .cfi_def_cfa_register 13
|
||
2310 @ sp needed
|
||
2311 00d0 80BD pop {r7, pc}
|
||
2312 .L100:
|
||
2313 00d2 00BF .align 2
|
||
2314 .L99:
|
||
2315 00d4 0000FFFF .word -65536
|
||
2316 00d8 00000000 .word I2C_Slave_ISR_IT
|
||
2317 .cfi_endproc
|
||
2318 .LFE140:
|
||
2320 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits
|
||
2321 .align 1
|
||
2322 .global HAL_I2C_Slave_Receive_IT
|
||
2323 .syntax unified
|
||
2324 .thumb
|
||
2325 .thumb_func
|
||
2327 HAL_I2C_Slave_Receive_IT:
|
||
2328 .LFB141:
|
||
1832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt
|
||
1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
1840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
|
||
1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2329 .loc 1 1842 1
|
||
2330 .cfi_startproc
|
||
2331 @ args = 0, pretend = 0, frame = 16
|
||
ARM GAS /tmp/cc5G5cqz.s page 74
|
||
|
||
|
||
2332 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2333 0000 80B5 push {r7, lr}
|
||
2334 .cfi_def_cfa_offset 8
|
||
2335 .cfi_offset 7, -8
|
||
2336 .cfi_offset 14, -4
|
||
2337 0002 84B0 sub sp, sp, #16
|
||
2338 .cfi_def_cfa_offset 24
|
||
2339 0004 00AF add r7, sp, #0
|
||
2340 .cfi_def_cfa_register 7
|
||
2341 0006 F860 str r0, [r7, #12]
|
||
2342 0008 B960 str r1, [r7, #8]
|
||
2343 000a 1346 mov r3, r2
|
||
2344 000c FB80 strh r3, [r7, #6] @ movhi
|
||
1843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
2345 .loc 1 1843 11
|
||
2346 000e FB68 ldr r3, [r7, #12]
|
||
2347 0010 93F84130 ldrb r3, [r3, #65]
|
||
2348 0014 DBB2 uxtb r3, r3
|
||
2349 .loc 1 1843 6
|
||
2350 0016 202B cmp r3, #32
|
||
2351 0018 39D1 bne .L102
|
||
1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
2352 .loc 1 1846 5
|
||
2353 001a FB68 ldr r3, [r7, #12]
|
||
2354 001c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
2355 0020 012B cmp r3, #1
|
||
2356 0022 01D1 bne .L103
|
||
2357 .loc 1 1846 5 is_stmt 0 discriminator 1
|
||
2358 0024 0223 movs r3, #2
|
||
2359 .loc 1 1846 5
|
||
2360 0026 33E0 b .L104
|
||
2361 .L103:
|
||
2362 .loc 1 1846 5 discriminator 2
|
||
2363 0028 FB68 ldr r3, [r7, #12]
|
||
2364 002a 0122 movs r2, #1
|
||
2365 002c 83F84020 strb r2, [r3, #64]
|
||
1847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
|
||
2366 .loc 1 1848 23 is_stmt 1
|
||
2367 0030 FB68 ldr r3, [r7, #12]
|
||
2368 0032 2222 movs r2, #34
|
||
2369 0034 83F84120 strb r2, [r3, #65]
|
||
1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
|
||
2370 .loc 1 1849 23
|
||
2371 0038 FB68 ldr r3, [r7, #12]
|
||
2372 003a 2022 movs r2, #32
|
||
2373 003c 83F84220 strb r2, [r3, #66]
|
||
1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
2374 .loc 1 1850 23
|
||
2375 0040 FB68 ldr r3, [r7, #12]
|
||
2376 0042 0022 movs r2, #0
|
||
2377 0044 5A64 str r2, [r3, #68]
|
||
1851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
|
||
1853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
|
||
ARM GAS /tmp/cc5G5cqz.s page 75
|
||
|
||
|
||
2378 .loc 1 1853 9
|
||
2379 0046 FB68 ldr r3, [r7, #12]
|
||
2380 0048 1B68 ldr r3, [r3]
|
||
2381 .loc 1 1853 19
|
||
2382 004a 5A68 ldr r2, [r3, #4]
|
||
2383 .loc 1 1853 9
|
||
2384 004c FB68 ldr r3, [r7, #12]
|
||
2385 004e 1B68 ldr r3, [r3]
|
||
2386 .loc 1 1853 25
|
||
2387 0050 22F40042 bic r2, r2, #32768
|
||
2388 0054 5A60 str r2, [r3, #4]
|
||
1854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
2389 .loc 1 1856 23
|
||
2390 0056 FB68 ldr r3, [r7, #12]
|
||
2391 0058 BA68 ldr r2, [r7, #8]
|
||
2392 005a 5A62 str r2, [r3, #36]
|
||
1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
2393 .loc 1 1857 23
|
||
2394 005c FB68 ldr r3, [r7, #12]
|
||
2395 005e FA88 ldrh r2, [r7, #6] @ movhi
|
||
2396 0060 5A85 strh r2, [r3, #42] @ movhi
|
||
1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
2397 .loc 1 1858 29
|
||
2398 0062 FB68 ldr r3, [r7, #12]
|
||
2399 0064 5B8D ldrh r3, [r3, #42] @ movhi
|
||
2400 0066 9AB2 uxth r2, r3
|
||
2401 .loc 1 1858 23
|
||
2402 0068 FB68 ldr r3, [r7, #12]
|
||
2403 006a 1A85 strh r2, [r3, #40] @ movhi
|
||
1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
2404 .loc 1 1859 23
|
||
2405 006c FB68 ldr r3, [r7, #12]
|
||
2406 006e 0A4A ldr r2, .L105
|
||
2407 0070 DA62 str r2, [r3, #44]
|
||
1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
|
||
2408 .loc 1 1860 23
|
||
2409 0072 FB68 ldr r3, [r7, #12]
|
||
2410 0074 094A ldr r2, .L105+4
|
||
2411 0076 5A63 str r2, [r3, #52]
|
||
1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
2412 .loc 1 1863 5
|
||
2413 0078 FB68 ldr r3, [r7, #12]
|
||
2414 007a 0022 movs r2, #0
|
||
2415 007c 83F84020 strb r2, [r3, #64]
|
||
1864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
1868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
|
||
1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
|
||
1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
|
||
1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
|
||
ARM GAS /tmp/cc5G5cqz.s page 76
|
||
|
||
|
||
1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
|
||
2416 .loc 1 1873 5
|
||
2417 0080 48F20201 movw r1, #32770
|
||
2418 0084 F868 ldr r0, [r7, #12]
|
||
2419 0086 FFF7FEFF bl I2C_Enable_IRQ
|
||
1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
2420 .loc 1 1875 12
|
||
2421 008a 0023 movs r3, #0
|
||
2422 008c 00E0 b .L104
|
||
2423 .L102:
|
||
1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
2424 .loc 1 1879 12
|
||
2425 008e 0223 movs r3, #2
|
||
2426 .L104:
|
||
1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2427 .loc 1 1881 1
|
||
2428 0090 1846 mov r0, r3
|
||
2429 0092 1037 adds r7, r7, #16
|
||
2430 .cfi_def_cfa_offset 8
|
||
2431 0094 BD46 mov sp, r7
|
||
2432 .cfi_def_cfa_register 13
|
||
2433 @ sp needed
|
||
2434 0096 80BD pop {r7, pc}
|
||
2435 .L106:
|
||
2436 .align 2
|
||
2437 .L105:
|
||
2438 0098 0000FFFF .word -65536
|
||
2439 009c 00000000 .word I2C_Slave_ISR_IT
|
||
2440 .cfi_endproc
|
||
2441 .LFE141:
|
||
2443 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits
|
||
2444 .align 1
|
||
2445 .global HAL_I2C_Master_Transmit_DMA
|
||
2446 .syntax unified
|
||
2447 .thumb
|
||
2448 .thumb_func
|
||
2450 HAL_I2C_Master_Transmit_DMA:
|
||
2451 .LFB142:
|
||
1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA
|
||
1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
1889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
|
||
1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
|
||
1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
ARM GAS /tmp/cc5G5cqz.s page 77
|
||
|
||
|
||
2452 .loc 1 1895 1
|
||
2453 .cfi_startproc
|
||
2454 @ args = 0, pretend = 0, frame = 24
|
||
2455 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2456 0000 80B5 push {r7, lr}
|
||
2457 .cfi_def_cfa_offset 8
|
||
2458 .cfi_offset 7, -8
|
||
2459 .cfi_offset 14, -4
|
||
2460 0002 88B0 sub sp, sp, #32
|
||
2461 .cfi_def_cfa_offset 40
|
||
2462 0004 02AF add r7, sp, #8
|
||
2463 .cfi_def_cfa 7, 32
|
||
2464 0006 F860 str r0, [r7, #12]
|
||
2465 0008 7A60 str r2, [r7, #4]
|
||
2466 000a 1A46 mov r2, r3
|
||
2467 000c 0B46 mov r3, r1 @ movhi
|
||
2468 000e 7B81 strh r3, [r7, #10] @ movhi
|
||
2469 0010 1346 mov r3, r2 @ movhi
|
||
2470 0012 3B81 strh r3, [r7, #8] @ movhi
|
||
1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
|
||
1897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
|
||
1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
2471 .loc 1 1899 11
|
||
2472 0014 FB68 ldr r3, [r7, #12]
|
||
2473 0016 93F84130 ldrb r3, [r3, #65]
|
||
2474 001a DBB2 uxtb r3, r3
|
||
2475 .loc 1 1899 6
|
||
2476 001c 202B cmp r3, #32
|
||
2477 001e 40F0CD80 bne .L108
|
||
1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
|
||
2478 .loc 1 1901 9
|
||
2479 0022 FB68 ldr r3, [r7, #12]
|
||
2480 0024 1B68 ldr r3, [r3]
|
||
2481 0026 9B69 ldr r3, [r3, #24]
|
||
2482 0028 03F40043 and r3, r3, #32768
|
||
2483 .loc 1 1901 8
|
||
2484 002c B3F5004F cmp r3, #32768
|
||
2485 0030 01D1 bne .L109
|
||
1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
2486 .loc 1 1903 14
|
||
2487 0032 0223 movs r3, #2
|
||
2488 0034 C3E0 b .L110
|
||
2489 .L109:
|
||
1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
2490 .loc 1 1907 5
|
||
2491 0036 FB68 ldr r3, [r7, #12]
|
||
2492 0038 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
2493 003c 012B cmp r3, #1
|
||
2494 003e 01D1 bne .L111
|
||
2495 .loc 1 1907 5 is_stmt 0 discriminator 1
|
||
2496 0040 0223 movs r3, #2
|
||
ARM GAS /tmp/cc5G5cqz.s page 78
|
||
|
||
|
||
2497 .loc 1 1907 5
|
||
2498 0042 BCE0 b .L110
|
||
2499 .L111:
|
||
2500 .loc 1 1907 5 discriminator 2
|
||
2501 0044 FB68 ldr r3, [r7, #12]
|
||
2502 0046 0122 movs r2, #1
|
||
2503 0048 83F84020 strb r2, [r3, #64]
|
||
1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
|
||
2504 .loc 1 1909 23 is_stmt 1
|
||
2505 004c FB68 ldr r3, [r7, #12]
|
||
2506 004e 2122 movs r2, #33
|
||
2507 0050 83F84120 strb r2, [r3, #65]
|
||
1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
|
||
2508 .loc 1 1910 23
|
||
2509 0054 FB68 ldr r3, [r7, #12]
|
||
2510 0056 1022 movs r2, #16
|
||
2511 0058 83F84220 strb r2, [r3, #66]
|
||
1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
2512 .loc 1 1911 23
|
||
2513 005c FB68 ldr r3, [r7, #12]
|
||
2514 005e 0022 movs r2, #0
|
||
2515 0060 5A64 str r2, [r3, #68]
|
||
1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
2516 .loc 1 1914 23
|
||
2517 0062 FB68 ldr r3, [r7, #12]
|
||
2518 0064 7A68 ldr r2, [r7, #4]
|
||
2519 0066 5A62 str r2, [r3, #36]
|
||
1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
2520 .loc 1 1915 23
|
||
2521 0068 FB68 ldr r3, [r7, #12]
|
||
2522 006a 3A89 ldrh r2, [r7, #8] @ movhi
|
||
2523 006c 5A85 strh r2, [r3, #42] @ movhi
|
||
1916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
2524 .loc 1 1916 23
|
||
2525 006e FB68 ldr r3, [r7, #12]
|
||
2526 0070 554A ldr r2, .L120
|
||
2527 0072 DA62 str r2, [r3, #44]
|
||
1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
|
||
2528 .loc 1 1917 23
|
||
2529 0074 FB68 ldr r3, [r7, #12]
|
||
2530 0076 554A ldr r2, .L120+4
|
||
2531 0078 5A63 str r2, [r3, #52]
|
||
1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
2532 .loc 1 1919 13
|
||
2533 007a FB68 ldr r3, [r7, #12]
|
||
2534 007c 5B8D ldrh r3, [r3, #42] @ movhi
|
||
2535 007e 9BB2 uxth r3, r3
|
||
2536 .loc 1 1919 8
|
||
2537 0080 FF2B cmp r3, #255
|
||
2538 0082 06D9 bls .L112
|
||
1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
2539 .loc 1 1921 22
|
||
ARM GAS /tmp/cc5G5cqz.s page 79
|
||
|
||
|
||
2540 0084 FB68 ldr r3, [r7, #12]
|
||
2541 0086 FF22 movs r2, #255
|
||
2542 0088 1A85 strh r2, [r3, #40] @ movhi
|
||
1922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
|
||
2543 .loc 1 1922 16
|
||
2544 008a 4FF08073 mov r3, #16777216
|
||
2545 008e 7B61 str r3, [r7, #20]
|
||
2546 0090 07E0 b .L113
|
||
2547 .L112:
|
||
1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
2548 .loc 1 1926 28
|
||
2549 0092 FB68 ldr r3, [r7, #12]
|
||
2550 0094 5B8D ldrh r3, [r3, #42] @ movhi
|
||
2551 0096 9AB2 uxth r2, r3
|
||
2552 .loc 1 1926 22
|
||
2553 0098 FB68 ldr r3, [r7, #12]
|
||
2554 009a 1A85 strh r2, [r3, #40] @ movhi
|
||
1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
|
||
2555 .loc 1 1927 16
|
||
2556 009c 4FF00073 mov r3, #33554432
|
||
2557 00a0 7B61 str r3, [r7, #20]
|
||
2558 .L113:
|
||
1928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
|
||
2559 .loc 1 1930 13
|
||
2560 00a2 FB68 ldr r3, [r7, #12]
|
||
2561 00a4 1B8D ldrh r3, [r3, #40]
|
||
2562 .loc 1 1930 8
|
||
2563 00a6 002B cmp r3, #0
|
||
2564 00a8 70D0 beq .L114
|
||
1931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
|
||
2565 .loc 1 1932 15
|
||
2566 00aa FB68 ldr r3, [r7, #12]
|
||
2567 00ac 9B6B ldr r3, [r3, #56]
|
||
2568 .loc 1 1932 10
|
||
2569 00ae 002B cmp r3, #0
|
||
2570 00b0 20D0 beq .L115
|
||
1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
|
||
1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
|
||
2571 .loc 1 1935 13
|
||
2572 00b2 FB68 ldr r3, [r7, #12]
|
||
2573 00b4 9B6B ldr r3, [r3, #56]
|
||
2574 .loc 1 1935 40
|
||
2575 00b6 464A ldr r2, .L120+8
|
||
2576 00b8 9A62 str r2, [r3, #40]
|
||
1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
|
||
1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
|
||
2577 .loc 1 1938 13
|
||
2578 00ba FB68 ldr r3, [r7, #12]
|
||
2579 00bc 9B6B ldr r3, [r3, #56]
|
||
ARM GAS /tmp/cc5G5cqz.s page 80
|
||
|
||
|
||
2580 .loc 1 1938 41
|
||
2581 00be 454A ldr r2, .L120+12
|
||
2582 00c0 1A63 str r2, [r3, #48]
|
||
1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
|
||
1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
|
||
2583 .loc 1 1941 13
|
||
2584 00c2 FB68 ldr r3, [r7, #12]
|
||
2585 00c4 9B6B ldr r3, [r3, #56]
|
||
2586 .loc 1 1941 44
|
||
2587 00c6 0022 movs r2, #0
|
||
2588 00c8 DA62 str r2, [r3, #44]
|
||
1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
|
||
2589 .loc 1 1942 13
|
||
2590 00ca FB68 ldr r3, [r7, #12]
|
||
2591 00cc 9B6B ldr r3, [r3, #56]
|
||
2592 .loc 1 1942 41
|
||
2593 00ce 0022 movs r2, #0
|
||
2594 00d0 5A63 str r2, [r3, #52]
|
||
1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
|
||
1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->
|
||
2595 .loc 1 1945 25
|
||
2596 00d2 FB68 ldr r3, [r7, #12]
|
||
2597 00d4 986B ldr r0, [r3, #56]
|
||
2598 00d6 7968 ldr r1, [r7, #4]
|
||
2599 .loc 1 1945 88
|
||
2600 00d8 FB68 ldr r3, [r7, #12]
|
||
2601 00da 1B68 ldr r3, [r3]
|
||
2602 .loc 1 1945 83
|
||
2603 00dc 2833 adds r3, r3, #40
|
||
2604 .loc 1 1945 25
|
||
2605 00de 1A46 mov r2, r3
|
||
1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
2606 .loc 1 1946 46
|
||
2607 00e0 FB68 ldr r3, [r7, #12]
|
||
2608 00e2 1B8D ldrh r3, [r3, #40]
|
||
1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
2609 .loc 1 1945 25
|
||
2610 00e4 FFF7FEFF bl HAL_DMA_Start_IT
|
||
2611 00e8 0346 mov r3, r0
|
||
2612 00ea FB74 strb r3, [r7, #19]
|
||
1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
|
||
1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
1959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
1961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 81
|
||
|
||
|
||
1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
|
||
2613 .loc 1 1963 10
|
||
2614 00ec FB7C ldrb r3, [r7, #19] @ zero_extendqisi2
|
||
2615 00ee 002B cmp r3, #0
|
||
2616 00f0 38D1 bne .L117
|
||
2617 00f2 13E0 b .L119
|
||
2618 .L115:
|
||
1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
2619 .loc 1 1951 25
|
||
2620 00f4 FB68 ldr r3, [r7, #12]
|
||
2621 00f6 2022 movs r2, #32
|
||
2622 00f8 83F84120 strb r2, [r3, #65]
|
||
1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2623 .loc 1 1952 25
|
||
2624 00fc FB68 ldr r3, [r7, #12]
|
||
2625 00fe 0022 movs r2, #0
|
||
2626 0100 83F84220 strb r2, [r3, #66]
|
||
1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2627 .loc 1 1955 13
|
||
2628 0104 FB68 ldr r3, [r7, #12]
|
||
2629 0106 5B6C ldr r3, [r3, #68]
|
||
1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2630 .loc 1 1955 25
|
||
2631 0108 43F08002 orr r2, r3, #128
|
||
2632 010c FB68 ldr r3, [r7, #12]
|
||
2633 010e 5A64 str r2, [r3, #68]
|
||
1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2634 .loc 1 1958 9
|
||
2635 0110 FB68 ldr r3, [r7, #12]
|
||
2636 0112 0022 movs r2, #0
|
||
2637 0114 83F84020 strb r2, [r3, #64]
|
||
1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2638 .loc 1 1960 16
|
||
2639 0118 0123 movs r3, #1
|
||
2640 011a 50E0 b .L110
|
||
2641 .L119:
|
||
1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
|
||
1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART
|
||
1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_
|
||
2642 .loc 1 1967 59
|
||
2643 011c FB68 ldr r3, [r7, #12]
|
||
2644 011e 1B8D ldrh r3, [r3, #40]
|
||
2645 .loc 1 1967 9
|
||
2646 0120 DAB2 uxtb r2, r3
|
||
2647 0122 7989 ldrh r1, [r7, #10]
|
||
2648 0124 2C4B ldr r3, .L120+16
|
||
2649 0126 0093 str r3, [sp]
|
||
2650 0128 7B69 ldr r3, [r7, #20]
|
||
2651 012a F868 ldr r0, [r7, #12]
|
||
2652 012c FFF7FEFF bl I2C_TransferConfig
|
||
1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
|
||
1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
|
||
2653 .loc 1 1970 13
|
||
2654 0130 FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 82
|
||
|
||
|
||
2655 0132 5B8D ldrh r3, [r3, #42] @ movhi
|
||
2656 0134 9AB2 uxth r2, r3
|
||
2657 .loc 1 1970 32
|
||
2658 0136 FB68 ldr r3, [r7, #12]
|
||
2659 0138 1B8D ldrh r3, [r3, #40]
|
||
2660 .loc 1 1970 25
|
||
2661 013a D31A subs r3, r2, r3
|
||
2662 013c 9AB2 uxth r2, r3
|
||
2663 013e FB68 ldr r3, [r7, #12]
|
||
2664 0140 5A85 strh r2, [r3, #42] @ movhi
|
||
1971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
2665 .loc 1 1973 9
|
||
2666 0142 FB68 ldr r3, [r7, #12]
|
||
2667 0144 0022 movs r2, #0
|
||
2668 0146 83F84020 strb r2, [r3, #64]
|
||
1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
|
||
1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
|
||
2669 .loc 1 1979 9
|
||
2670 014a 1021 movs r1, #16
|
||
2671 014c F868 ldr r0, [r7, #12]
|
||
2672 014e FFF7FEFF bl I2C_Enable_IRQ
|
||
1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
|
||
1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
|
||
2673 .loc 1 1982 13
|
||
2674 0152 FB68 ldr r3, [r7, #12]
|
||
2675 0154 1B68 ldr r3, [r3]
|
||
2676 .loc 1 1982 23
|
||
2677 0156 1A68 ldr r2, [r3]
|
||
2678 .loc 1 1982 13
|
||
2679 0158 FB68 ldr r3, [r7, #12]
|
||
2680 015a 1B68 ldr r3, [r3]
|
||
2681 .loc 1 1982 29
|
||
2682 015c 42F48042 orr r2, r2, #16384
|
||
2683 0160 1A60 str r2, [r3]
|
||
2684 0162 29E0 b .L118
|
||
2685 .L117:
|
||
1983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
2686 .loc 1 1987 25
|
||
2687 0164 FB68 ldr r3, [r7, #12]
|
||
2688 0166 2022 movs r2, #32
|
||
2689 0168 83F84120 strb r2, [r3, #65]
|
||
1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
2690 .loc 1 1988 25
|
||
2691 016c FB68 ldr r3, [r7, #12]
|
||
2692 016e 0022 movs r2, #0
|
||
2693 0170 83F84220 strb r2, [r3, #66]
|
||
ARM GAS /tmp/cc5G5cqz.s page 83
|
||
|
||
|
||
1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
1991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
|
||
2694 .loc 1 1991 13
|
||
2695 0174 FB68 ldr r3, [r7, #12]
|
||
2696 0176 5B6C ldr r3, [r3, #68]
|
||
2697 .loc 1 1991 25
|
||
2698 0178 43F01002 orr r2, r3, #16
|
||
2699 017c FB68 ldr r3, [r7, #12]
|
||
2700 017e 5A64 str r2, [r3, #68]
|
||
1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
2701 .loc 1 1994 9
|
||
2702 0180 FB68 ldr r3, [r7, #12]
|
||
2703 0182 0022 movs r2, #0
|
||
2704 0184 83F84020 strb r2, [r3, #64]
|
||
1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
2705 .loc 1 1996 16
|
||
2706 0188 0123 movs r3, #1
|
||
2707 018a 18E0 b .L110
|
||
2708 .L114:
|
||
1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
|
||
2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
|
||
2709 .loc 1 2002 21
|
||
2710 018c FB68 ldr r3, [r7, #12]
|
||
2711 018e 134A ldr r2, .L120+20
|
||
2712 0190 5A63 str r2, [r3, #52]
|
||
2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
|
||
2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
|
||
2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
|
||
2713 .loc 1 2006 57
|
||
2714 0192 FB68 ldr r3, [r7, #12]
|
||
2715 0194 1B8D ldrh r3, [r3, #40]
|
||
2716 .loc 1 2006 7
|
||
2717 0196 DAB2 uxtb r2, r3
|
||
2718 0198 7989 ldrh r1, [r7, #10]
|
||
2719 019a 0F4B ldr r3, .L120+16
|
||
2720 019c 0093 str r3, [sp]
|
||
2721 019e 4FF00073 mov r3, #33554432
|
||
2722 01a2 F868 ldr r0, [r7, #12]
|
||
2723 01a4 FFF7FEFF bl I2C_TransferConfig
|
||
2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
|
||
2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
2724 .loc 1 2010 7
|
||
2725 01a8 FB68 ldr r3, [r7, #12]
|
||
2726 01aa 0022 movs r2, #0
|
||
2727 01ac 83F84020 strb r2, [r3, #64]
|
||
2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 84
|
||
|
||
|
||
2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
|
||
2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
|
||
2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
|
||
2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
|
||
2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
2728 .loc 1 2019 7
|
||
2729 01b0 0121 movs r1, #1
|
||
2730 01b2 F868 ldr r0, [r7, #12]
|
||
2731 01b4 FFF7FEFF bl I2C_Enable_IRQ
|
||
2732 .L118:
|
||
2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
2733 .loc 1 2022 12
|
||
2734 01b8 0023 movs r3, #0
|
||
2735 01ba 00E0 b .L110
|
||
2736 .L108:
|
||
2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
2737 .loc 1 2026 12
|
||
2738 01bc 0223 movs r3, #2
|
||
2739 .L110:
|
||
2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2740 .loc 1 2028 1
|
||
2741 01be 1846 mov r0, r3
|
||
2742 01c0 1837 adds r7, r7, #24
|
||
2743 .cfi_def_cfa_offset 8
|
||
2744 01c2 BD46 mov sp, r7
|
||
2745 .cfi_def_cfa_register 13
|
||
2746 @ sp needed
|
||
2747 01c4 80BD pop {r7, pc}
|
||
2748 .L121:
|
||
2749 01c6 00BF .align 2
|
||
2750 .L120:
|
||
2751 01c8 0000FFFF .word -65536
|
||
2752 01cc 00000000 .word I2C_Master_ISR_DMA
|
||
2753 01d0 00000000 .word I2C_DMAMasterTransmitCplt
|
||
2754 01d4 00000000 .word I2C_DMAError
|
||
2755 01d8 00200080 .word -2147475456
|
||
2756 01dc 00000000 .word I2C_Master_ISR_IT
|
||
2757 .cfi_endproc
|
||
2758 .LFE142:
|
||
2760 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits
|
||
2761 .align 1
|
||
2762 .global HAL_I2C_Master_Receive_DMA
|
||
2763 .syntax unified
|
||
2764 .thumb
|
||
2765 .thumb_func
|
||
2767 HAL_I2C_Master_Receive_DMA:
|
||
2768 .LFB143:
|
||
2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 85
|
||
|
||
|
||
2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
2031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA
|
||
2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
|
||
2041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
|
||
2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2769 .loc 1 2042 1
|
||
2770 .cfi_startproc
|
||
2771 @ args = 0, pretend = 0, frame = 24
|
||
2772 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2773 0000 80B5 push {r7, lr}
|
||
2774 .cfi_def_cfa_offset 8
|
||
2775 .cfi_offset 7, -8
|
||
2776 .cfi_offset 14, -4
|
||
2777 0002 88B0 sub sp, sp, #32
|
||
2778 .cfi_def_cfa_offset 40
|
||
2779 0004 02AF add r7, sp, #8
|
||
2780 .cfi_def_cfa 7, 32
|
||
2781 0006 F860 str r0, [r7, #12]
|
||
2782 0008 7A60 str r2, [r7, #4]
|
||
2783 000a 1A46 mov r2, r3
|
||
2784 000c 0B46 mov r3, r1 @ movhi
|
||
2785 000e 7B81 strh r3, [r7, #10] @ movhi
|
||
2786 0010 1346 mov r3, r2 @ movhi
|
||
2787 0012 3B81 strh r3, [r7, #8] @ movhi
|
||
2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
|
||
2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
|
||
2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
2788 .loc 1 2046 11
|
||
2789 0014 FB68 ldr r3, [r7, #12]
|
||
2790 0016 93F84130 ldrb r3, [r3, #65]
|
||
2791 001a DBB2 uxtb r3, r3
|
||
2792 .loc 1 2046 6
|
||
2793 001c 202B cmp r3, #32
|
||
2794 001e 40F0CD80 bne .L123
|
||
2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
|
||
2795 .loc 1 2048 9
|
||
2796 0022 FB68 ldr r3, [r7, #12]
|
||
2797 0024 1B68 ldr r3, [r3]
|
||
2798 0026 9B69 ldr r3, [r3, #24]
|
||
2799 0028 03F40043 and r3, r3, #32768
|
||
2800 .loc 1 2048 8
|
||
2801 002c B3F5004F cmp r3, #32768
|
||
2802 0030 01D1 bne .L124
|
||
2049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
2803 .loc 1 2050 14
|
||
2804 0032 0223 movs r3, #2
|
||
ARM GAS /tmp/cc5G5cqz.s page 86
|
||
|
||
|
||
2805 0034 C3E0 b .L125
|
||
2806 .L124:
|
||
2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
2807 .loc 1 2054 5
|
||
2808 0036 FB68 ldr r3, [r7, #12]
|
||
2809 0038 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
2810 003c 012B cmp r3, #1
|
||
2811 003e 01D1 bne .L126
|
||
2812 .loc 1 2054 5 is_stmt 0 discriminator 1
|
||
2813 0040 0223 movs r3, #2
|
||
2814 .loc 1 2054 5
|
||
2815 0042 BCE0 b .L125
|
||
2816 .L126:
|
||
2817 .loc 1 2054 5 discriminator 2
|
||
2818 0044 FB68 ldr r3, [r7, #12]
|
||
2819 0046 0122 movs r2, #1
|
||
2820 0048 83F84020 strb r2, [r3, #64]
|
||
2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
|
||
2821 .loc 1 2056 23 is_stmt 1
|
||
2822 004c FB68 ldr r3, [r7, #12]
|
||
2823 004e 2222 movs r2, #34
|
||
2824 0050 83F84120 strb r2, [r3, #65]
|
||
2057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
|
||
2825 .loc 1 2057 23
|
||
2826 0054 FB68 ldr r3, [r7, #12]
|
||
2827 0056 1022 movs r2, #16
|
||
2828 0058 83F84220 strb r2, [r3, #66]
|
||
2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
2829 .loc 1 2058 23
|
||
2830 005c FB68 ldr r3, [r7, #12]
|
||
2831 005e 0022 movs r2, #0
|
||
2832 0060 5A64 str r2, [r3, #68]
|
||
2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
2061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
2833 .loc 1 2061 23
|
||
2834 0062 FB68 ldr r3, [r7, #12]
|
||
2835 0064 7A68 ldr r2, [r7, #4]
|
||
2836 0066 5A62 str r2, [r3, #36]
|
||
2062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
2837 .loc 1 2062 23
|
||
2838 0068 FB68 ldr r3, [r7, #12]
|
||
2839 006a 3A89 ldrh r2, [r7, #8] @ movhi
|
||
2840 006c 5A85 strh r2, [r3, #42] @ movhi
|
||
2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
2841 .loc 1 2063 23
|
||
2842 006e FB68 ldr r3, [r7, #12]
|
||
2843 0070 554A ldr r2, .L135
|
||
2844 0072 DA62 str r2, [r3, #44]
|
||
2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
|
||
2845 .loc 1 2064 23
|
||
2846 0074 FB68 ldr r3, [r7, #12]
|
||
2847 0076 554A ldr r2, .L135+4
|
||
ARM GAS /tmp/cc5G5cqz.s page 87
|
||
|
||
|
||
2848 0078 5A63 str r2, [r3, #52]
|
||
2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
2849 .loc 1 2066 13
|
||
2850 007a FB68 ldr r3, [r7, #12]
|
||
2851 007c 5B8D ldrh r3, [r3, #42] @ movhi
|
||
2852 007e 9BB2 uxth r3, r3
|
||
2853 .loc 1 2066 8
|
||
2854 0080 FF2B cmp r3, #255
|
||
2855 0082 06D9 bls .L127
|
||
2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
2856 .loc 1 2068 22
|
||
2857 0084 FB68 ldr r3, [r7, #12]
|
||
2858 0086 FF22 movs r2, #255
|
||
2859 0088 1A85 strh r2, [r3, #40] @ movhi
|
||
2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
|
||
2860 .loc 1 2069 16
|
||
2861 008a 4FF08073 mov r3, #16777216
|
||
2862 008e 7B61 str r3, [r7, #20]
|
||
2863 0090 07E0 b .L128
|
||
2864 .L127:
|
||
2070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
2865 .loc 1 2073 28
|
||
2866 0092 FB68 ldr r3, [r7, #12]
|
||
2867 0094 5B8D ldrh r3, [r3, #42] @ movhi
|
||
2868 0096 9AB2 uxth r2, r3
|
||
2869 .loc 1 2073 22
|
||
2870 0098 FB68 ldr r3, [r7, #12]
|
||
2871 009a 1A85 strh r2, [r3, #40] @ movhi
|
||
2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
|
||
2872 .loc 1 2074 16
|
||
2873 009c 4FF00073 mov r3, #33554432
|
||
2874 00a0 7B61 str r3, [r7, #20]
|
||
2875 .L128:
|
||
2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
|
||
2876 .loc 1 2077 13
|
||
2877 00a2 FB68 ldr r3, [r7, #12]
|
||
2878 00a4 1B8D ldrh r3, [r3, #40]
|
||
2879 .loc 1 2077 8
|
||
2880 00a6 002B cmp r3, #0
|
||
2881 00a8 70D0 beq .L129
|
||
2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
|
||
2882 .loc 1 2079 15
|
||
2883 00aa FB68 ldr r3, [r7, #12]
|
||
2884 00ac DB6B ldr r3, [r3, #60]
|
||
2885 .loc 1 2079 10
|
||
2886 00ae 002B cmp r3, #0
|
||
2887 00b0 20D0 beq .L130
|
||
2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
|
||
ARM GAS /tmp/cc5G5cqz.s page 88
|
||
|
||
|
||
2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
|
||
2888 .loc 1 2082 13
|
||
2889 00b2 FB68 ldr r3, [r7, #12]
|
||
2890 00b4 DB6B ldr r3, [r3, #60]
|
||
2891 .loc 1 2082 40
|
||
2892 00b6 464A ldr r2, .L135+8
|
||
2893 00b8 9A62 str r2, [r3, #40]
|
||
2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
|
||
2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
|
||
2894 .loc 1 2085 13
|
||
2895 00ba FB68 ldr r3, [r7, #12]
|
||
2896 00bc DB6B ldr r3, [r3, #60]
|
||
2897 .loc 1 2085 41
|
||
2898 00be 454A ldr r2, .L135+12
|
||
2899 00c0 1A63 str r2, [r3, #48]
|
||
2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
|
||
2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
|
||
2900 .loc 1 2088 13
|
||
2901 00c2 FB68 ldr r3, [r7, #12]
|
||
2902 00c4 DB6B ldr r3, [r3, #60]
|
||
2903 .loc 1 2088 44
|
||
2904 00c6 0022 movs r2, #0
|
||
2905 00c8 DA62 str r2, [r3, #44]
|
||
2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
|
||
2906 .loc 1 2089 13
|
||
2907 00ca FB68 ldr r3, [r7, #12]
|
||
2908 00cc DB6B ldr r3, [r3, #60]
|
||
2909 .loc 1 2089 41
|
||
2910 00ce 0022 movs r2, #0
|
||
2911 00d0 5A63 str r2, [r3, #52]
|
||
2090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
|
||
2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
|
||
2912 .loc 1 2092 25
|
||
2913 00d2 FB68 ldr r3, [r7, #12]
|
||
2914 00d4 D86B ldr r0, [r3, #60]
|
||
2915 .loc 1 2092 71
|
||
2916 00d6 FB68 ldr r3, [r7, #12]
|
||
2917 00d8 1B68 ldr r3, [r3]
|
||
2918 .loc 1 2092 66
|
||
2919 00da 2433 adds r3, r3, #36
|
||
2920 .loc 1 2092 25
|
||
2921 00dc 1946 mov r1, r3
|
||
2922 00de 7A68 ldr r2, [r7, #4]
|
||
2093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
2923 .loc 1 2093 46
|
||
2924 00e0 FB68 ldr r3, [r7, #12]
|
||
2925 00e2 1B8D ldrh r3, [r3, #40]
|
||
2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
2926 .loc 1 2092 25
|
||
2927 00e4 FFF7FEFF bl HAL_DMA_Start_IT
|
||
2928 00e8 0346 mov r3, r0
|
||
2929 00ea FB74 strb r3, [r7, #19]
|
||
2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
ARM GAS /tmp/cc5G5cqz.s page 89
|
||
|
||
|
||
2096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
|
||
2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
2108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
|
||
2930 .loc 1 2110 10
|
||
2931 00ec FB7C ldrb r3, [r7, #19] @ zero_extendqisi2
|
||
2932 00ee 002B cmp r3, #0
|
||
2933 00f0 38D1 bne .L132
|
||
2934 00f2 13E0 b .L134
|
||
2935 .L130:
|
||
2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
2936 .loc 1 2098 25
|
||
2937 00f4 FB68 ldr r3, [r7, #12]
|
||
2938 00f6 2022 movs r2, #32
|
||
2939 00f8 83F84120 strb r2, [r3, #65]
|
||
2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2940 .loc 1 2099 25
|
||
2941 00fc FB68 ldr r3, [r7, #12]
|
||
2942 00fe 0022 movs r2, #0
|
||
2943 0100 83F84220 strb r2, [r3, #66]
|
||
2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2944 .loc 1 2102 13
|
||
2945 0104 FB68 ldr r3, [r7, #12]
|
||
2946 0106 5B6C ldr r3, [r3, #68]
|
||
2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2947 .loc 1 2102 25
|
||
2948 0108 43F08002 orr r2, r3, #128
|
||
2949 010c FB68 ldr r3, [r7, #12]
|
||
2950 010e 5A64 str r2, [r3, #68]
|
||
2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2951 .loc 1 2105 9
|
||
2952 0110 FB68 ldr r3, [r7, #12]
|
||
2953 0112 0022 movs r2, #0
|
||
2954 0114 83F84020 strb r2, [r3, #64]
|
||
2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2955 .loc 1 2107 16
|
||
2956 0118 0123 movs r3, #1
|
||
2957 011a 50E0 b .L125
|
||
2958 .L134:
|
||
2111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
|
||
2113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART *
|
||
2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_
|
||
2959 .loc 1 2114 59
|
||
2960 011c FB68 ldr r3, [r7, #12]
|
||
2961 011e 1B8D ldrh r3, [r3, #40]
|
||
ARM GAS /tmp/cc5G5cqz.s page 90
|
||
|
||
|
||
2962 .loc 1 2114 9
|
||
2963 0120 DAB2 uxtb r2, r3
|
||
2964 0122 7989 ldrh r1, [r7, #10]
|
||
2965 0124 2C4B ldr r3, .L135+16
|
||
2966 0126 0093 str r3, [sp]
|
||
2967 0128 7B69 ldr r3, [r7, #20]
|
||
2968 012a F868 ldr r0, [r7, #12]
|
||
2969 012c FFF7FEFF bl I2C_TransferConfig
|
||
2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
|
||
2117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
|
||
2970 .loc 1 2117 13
|
||
2971 0130 FB68 ldr r3, [r7, #12]
|
||
2972 0132 5B8D ldrh r3, [r3, #42] @ movhi
|
||
2973 0134 9AB2 uxth r2, r3
|
||
2974 .loc 1 2117 32
|
||
2975 0136 FB68 ldr r3, [r7, #12]
|
||
2976 0138 1B8D ldrh r3, [r3, #40]
|
||
2977 .loc 1 2117 25
|
||
2978 013a D31A subs r3, r2, r3
|
||
2979 013c 9AB2 uxth r2, r3
|
||
2980 013e FB68 ldr r3, [r7, #12]
|
||
2981 0140 5A85 strh r2, [r3, #42] @ movhi
|
||
2118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
2982 .loc 1 2120 9
|
||
2983 0142 FB68 ldr r3, [r7, #12]
|
||
2984 0144 0022 movs r2, #0
|
||
2985 0146 83F84020 strb r2, [r3, #64]
|
||
2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
2124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
2125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
|
||
2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
|
||
2986 .loc 1 2126 9
|
||
2987 014a 1021 movs r1, #16
|
||
2988 014c F868 ldr r0, [r7, #12]
|
||
2989 014e FFF7FEFF bl I2C_Enable_IRQ
|
||
2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
|
||
2129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
|
||
2990 .loc 1 2129 13
|
||
2991 0152 FB68 ldr r3, [r7, #12]
|
||
2992 0154 1B68 ldr r3, [r3]
|
||
2993 .loc 1 2129 23
|
||
2994 0156 1A68 ldr r2, [r3]
|
||
2995 .loc 1 2129 13
|
||
2996 0158 FB68 ldr r3, [r7, #12]
|
||
2997 015a 1B68 ldr r3, [r3]
|
||
2998 .loc 1 2129 29
|
||
2999 015c 42F40042 orr r2, r2, #32768
|
||
3000 0160 1A60 str r2, [r3]
|
||
3001 0162 29E0 b .L133
|
||
3002 .L132:
|
||
2130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 91
|
||
|
||
|
||
2131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
2134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
3003 .loc 1 2134 25
|
||
3004 0164 FB68 ldr r3, [r7, #12]
|
||
3005 0166 2022 movs r2, #32
|
||
3006 0168 83F84120 strb r2, [r3, #65]
|
||
2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
3007 .loc 1 2135 25
|
||
3008 016c FB68 ldr r3, [r7, #12]
|
||
3009 016e 0022 movs r2, #0
|
||
3010 0170 83F84220 strb r2, [r3, #66]
|
||
2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
2138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
|
||
3011 .loc 1 2138 13
|
||
3012 0174 FB68 ldr r3, [r7, #12]
|
||
3013 0176 5B6C ldr r3, [r3, #68]
|
||
3014 .loc 1 2138 25
|
||
3015 0178 43F01002 orr r2, r3, #16
|
||
3016 017c FB68 ldr r3, [r7, #12]
|
||
3017 017e 5A64 str r2, [r3, #68]
|
||
2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
3018 .loc 1 2141 9
|
||
3019 0180 FB68 ldr r3, [r7, #12]
|
||
3020 0182 0022 movs r2, #0
|
||
3021 0184 83F84020 strb r2, [r3, #64]
|
||
2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
3022 .loc 1 2143 16
|
||
3023 0188 0123 movs r3, #1
|
||
3024 018a 18E0 b .L125
|
||
3025 .L129:
|
||
2144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
|
||
2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
|
||
3026 .loc 1 2149 21
|
||
3027 018c FB68 ldr r3, [r7, #12]
|
||
3028 018e 134A ldr r2, .L135+20
|
||
3029 0190 5A63 str r2, [r3, #52]
|
||
2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
|
||
2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
|
||
2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
|
||
3030 .loc 1 2153 57
|
||
3031 0192 FB68 ldr r3, [r7, #12]
|
||
3032 0194 1B8D ldrh r3, [r3, #40]
|
||
3033 .loc 1 2153 7
|
||
3034 0196 DAB2 uxtb r2, r3
|
||
3035 0198 7989 ldrh r1, [r7, #10]
|
||
3036 019a 0F4B ldr r3, .L135+16
|
||
ARM GAS /tmp/cc5G5cqz.s page 92
|
||
|
||
|
||
3037 019c 0093 str r3, [sp]
|
||
3038 019e 4FF00073 mov r3, #33554432
|
||
3039 01a2 F868 ldr r0, [r7, #12]
|
||
3040 01a4 FFF7FEFF bl I2C_TransferConfig
|
||
2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
|
||
2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
3041 .loc 1 2157 7
|
||
3042 01a8 FB68 ldr r3, [r7, #12]
|
||
3043 01aa 0022 movs r2, #0
|
||
3044 01ac 83F84020 strb r2, [r3, #64]
|
||
2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
|
||
2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
|
||
2164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
|
||
2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
|
||
2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
3045 .loc 1 2166 7
|
||
3046 01b0 0121 movs r1, #1
|
||
3047 01b2 F868 ldr r0, [r7, #12]
|
||
3048 01b4 FFF7FEFF bl I2C_Enable_IRQ
|
||
3049 .L133:
|
||
2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
3050 .loc 1 2169 12
|
||
3051 01b8 0023 movs r3, #0
|
||
3052 01ba 00E0 b .L125
|
||
3053 .L123:
|
||
2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
3054 .loc 1 2173 12
|
||
3055 01bc 0223 movs r3, #2
|
||
3056 .L125:
|
||
2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3057 .loc 1 2175 1
|
||
3058 01be 1846 mov r0, r3
|
||
3059 01c0 1837 adds r7, r7, #24
|
||
3060 .cfi_def_cfa_offset 8
|
||
3061 01c2 BD46 mov sp, r7
|
||
3062 .cfi_def_cfa_register 13
|
||
3063 @ sp needed
|
||
3064 01c4 80BD pop {r7, pc}
|
||
3065 .L136:
|
||
3066 01c6 00BF .align 2
|
||
3067 .L135:
|
||
3068 01c8 0000FFFF .word -65536
|
||
3069 01cc 00000000 .word I2C_Master_ISR_DMA
|
||
3070 01d0 00000000 .word I2C_DMAMasterReceiveCplt
|
||
3071 01d4 00000000 .word I2C_DMAError
|
||
ARM GAS /tmp/cc5G5cqz.s page 93
|
||
|
||
|
||
3072 01d8 00240080 .word -2147474432
|
||
3073 01dc 00000000 .word I2C_Master_ISR_IT
|
||
3074 .cfi_endproc
|
||
3075 .LFE143:
|
||
3077 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits
|
||
3078 .align 1
|
||
3079 .global HAL_I2C_Slave_Transmit_DMA
|
||
3080 .syntax unified
|
||
3081 .thumb
|
||
3082 .thumb_func
|
||
3084 HAL_I2C_Slave_Transmit_DMA:
|
||
3085 .LFB144:
|
||
2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA
|
||
2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size
|
||
2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3086 .loc 1 2186 1
|
||
3087 .cfi_startproc
|
||
3088 @ args = 0, pretend = 0, frame = 24
|
||
3089 @ frame_needed = 1, uses_anonymous_args = 0
|
||
3090 0000 80B5 push {r7, lr}
|
||
3091 .cfi_def_cfa_offset 8
|
||
3092 .cfi_offset 7, -8
|
||
3093 .cfi_offset 14, -4
|
||
3094 0002 86B0 sub sp, sp, #24
|
||
3095 .cfi_def_cfa_offset 32
|
||
3096 0004 00AF add r7, sp, #0
|
||
3097 .cfi_def_cfa_register 7
|
||
3098 0006 F860 str r0, [r7, #12]
|
||
3099 0008 B960 str r1, [r7, #8]
|
||
3100 000a 1346 mov r3, r2
|
||
3101 000c FB80 strh r3, [r7, #6] @ movhi
|
||
2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
|
||
2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
3102 .loc 1 2189 11
|
||
3103 000e FB68 ldr r3, [r7, #12]
|
||
3104 0010 93F84130 ldrb r3, [r3, #65]
|
||
3105 0014 DBB2 uxtb r3, r3
|
||
3106 .loc 1 2189 6
|
||
3107 0016 202B cmp r3, #32
|
||
3108 0018 40F0D180 bne .L138
|
||
2190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
|
||
3109 .loc 1 2191 8
|
||
3110 001c BB68 ldr r3, [r7, #8]
|
||
3111 001e 002B cmp r3, #0
|
||
3112 0020 02D0 beq .L139
|
||
3113 .loc 1 2191 25 discriminator 1
|
||
3114 0022 FB88 ldrh r3, [r7, #6]
|
||
ARM GAS /tmp/cc5G5cqz.s page 94
|
||
|
||
|
||
3115 0024 002B cmp r3, #0
|
||
3116 0026 05D1 bne .L140
|
||
3117 .L139:
|
||
2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
|
||
3118 .loc 1 2193 23
|
||
3119 0028 FB68 ldr r3, [r7, #12]
|
||
3120 002a 4FF40072 mov r2, #512
|
||
3121 002e 5A64 str r2, [r3, #68]
|
||
2194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
3122 .loc 1 2194 15
|
||
3123 0030 0123 movs r3, #1
|
||
3124 0032 C5E0 b .L141
|
||
3125 .L140:
|
||
2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
3126 .loc 1 2197 5
|
||
3127 0034 FB68 ldr r3, [r7, #12]
|
||
3128 0036 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
3129 003a 012B cmp r3, #1
|
||
3130 003c 01D1 bne .L142
|
||
3131 .loc 1 2197 5 is_stmt 0 discriminator 1
|
||
3132 003e 0223 movs r3, #2
|
||
3133 .loc 1 2197 5
|
||
3134 0040 BEE0 b .L141
|
||
3135 .L142:
|
||
3136 .loc 1 2197 5 discriminator 2
|
||
3137 0042 FB68 ldr r3, [r7, #12]
|
||
3138 0044 0122 movs r2, #1
|
||
3139 0046 83F84020 strb r2, [r3, #64]
|
||
2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
|
||
3140 .loc 1 2199 23 is_stmt 1
|
||
3141 004a FB68 ldr r3, [r7, #12]
|
||
3142 004c 2122 movs r2, #33
|
||
3143 004e 83F84120 strb r2, [r3, #65]
|
||
2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
|
||
3144 .loc 1 2200 23
|
||
3145 0052 FB68 ldr r3, [r7, #12]
|
||
3146 0054 2022 movs r2, #32
|
||
3147 0056 83F84220 strb r2, [r3, #66]
|
||
2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
3148 .loc 1 2201 23
|
||
3149 005a FB68 ldr r3, [r7, #12]
|
||
3150 005c 0022 movs r2, #0
|
||
3151 005e 5A64 str r2, [r3, #68]
|
||
2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
3152 .loc 1 2204 23
|
||
3153 0060 FB68 ldr r3, [r7, #12]
|
||
3154 0062 BA68 ldr r2, [r7, #8]
|
||
3155 0064 5A62 str r2, [r3, #36]
|
||
2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
3156 .loc 1 2205 23
|
||
3157 0066 FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 95
|
||
|
||
|
||
3158 0068 FA88 ldrh r2, [r7, #6] @ movhi
|
||
3159 006a 5A85 strh r2, [r3, #42] @ movhi
|
||
2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
3160 .loc 1 2206 29
|
||
3161 006c FB68 ldr r3, [r7, #12]
|
||
3162 006e 5B8D ldrh r3, [r3, #42] @ movhi
|
||
3163 0070 9AB2 uxth r2, r3
|
||
3164 .loc 1 2206 23
|
||
3165 0072 FB68 ldr r3, [r7, #12]
|
||
3166 0074 1A85 strh r2, [r3, #40] @ movhi
|
||
2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
3167 .loc 1 2207 23
|
||
3168 0076 FB68 ldr r3, [r7, #12]
|
||
3169 0078 534A ldr r2, .L150
|
||
3170 007a DA62 str r2, [r3, #44]
|
||
2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
|
||
3171 .loc 1 2208 23
|
||
3172 007c FB68 ldr r3, [r7, #12]
|
||
3173 007e 534A ldr r2, .L150+4
|
||
3174 0080 5A63 str r2, [r3, #52]
|
||
2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
|
||
2211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
|
||
3175 .loc 1 2211 19
|
||
3176 0082 FB68 ldr r3, [r7, #12]
|
||
3177 0084 1B6A ldr r3, [r3, #32]
|
||
3178 .loc 1 2211 8
|
||
3179 0086 B3F5003F cmp r3, #131072
|
||
3180 008a 17D1 bne .L143
|
||
2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
|
||
2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
|
||
2215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
|
||
3181 .loc 1 2215 35
|
||
3182 008c FB68 ldr r3, [r7, #12]
|
||
3183 008e 5B6A ldr r3, [r3, #36]
|
||
3184 .loc 1 2215 30
|
||
3185 0090 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
3186 .loc 1 2215 11
|
||
3187 0092 FB68 ldr r3, [r7, #12]
|
||
3188 0094 1B68 ldr r3, [r3]
|
||
3189 .loc 1 2215 28
|
||
3190 0096 9A62 str r2, [r3, #40]
|
||
2216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
2218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
3191 .loc 1 2218 11
|
||
3192 0098 FB68 ldr r3, [r7, #12]
|
||
3193 009a 5B6A ldr r3, [r3, #36]
|
||
3194 .loc 1 2218 21
|
||
3195 009c 5A1C adds r2, r3, #1
|
||
3196 009e FB68 ldr r3, [r7, #12]
|
||
3197 00a0 5A62 str r2, [r3, #36]
|
||
2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
3198 .loc 1 2220 11
|
||
3199 00a2 FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 96
|
||
|
||
|
||
3200 00a4 5B8D ldrh r3, [r3, #42] @ movhi
|
||
3201 00a6 9BB2 uxth r3, r3
|
||
3202 .loc 1 2220 22
|
||
3203 00a8 013B subs r3, r3, #1
|
||
3204 00aa 9AB2 uxth r2, r3
|
||
3205 00ac FB68 ldr r3, [r7, #12]
|
||
3206 00ae 5A85 strh r2, [r3, #42] @ movhi
|
||
2221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
3207 .loc 1 2221 11
|
||
3208 00b0 FB68 ldr r3, [r7, #12]
|
||
3209 00b2 1B8D ldrh r3, [r3, #40]
|
||
3210 .loc 1 2221 21
|
||
3211 00b4 013B subs r3, r3, #1
|
||
3212 00b6 9AB2 uxth r2, r3
|
||
3213 00b8 FB68 ldr r3, [r7, #12]
|
||
3214 00ba 1A85 strh r2, [r3, #40] @ movhi
|
||
3215 .L143:
|
||
2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
|
||
3216 .loc 1 2224 13
|
||
3217 00bc FB68 ldr r3, [r7, #12]
|
||
3218 00be 5B8D ldrh r3, [r3, #42] @ movhi
|
||
3219 00c0 9BB2 uxth r3, r3
|
||
3220 .loc 1 2224 8
|
||
3221 00c2 002B cmp r3, #0
|
||
3222 00c4 68D0 beq .L144
|
||
2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
|
||
3223 .loc 1 2226 15
|
||
3224 00c6 FB68 ldr r3, [r7, #12]
|
||
3225 00c8 9B6B ldr r3, [r3, #56]
|
||
3226 .loc 1 2226 10
|
||
3227 00ca 002B cmp r3, #0
|
||
3228 00cc 22D0 beq .L145
|
||
2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
|
||
2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
|
||
3229 .loc 1 2229 13
|
||
3230 00ce FB68 ldr r3, [r7, #12]
|
||
3231 00d0 9B6B ldr r3, [r3, #56]
|
||
3232 .loc 1 2229 40
|
||
3233 00d2 3F4A ldr r2, .L150+8
|
||
3234 00d4 9A62 str r2, [r3, #40]
|
||
2230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
|
||
2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
|
||
3235 .loc 1 2232 13
|
||
3236 00d6 FB68 ldr r3, [r7, #12]
|
||
3237 00d8 9B6B ldr r3, [r3, #56]
|
||
3238 .loc 1 2232 41
|
||
3239 00da 3E4A ldr r2, .L150+12
|
||
3240 00dc 1A63 str r2, [r3, #48]
|
||
2233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
|
||
2235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
|
||
3241 .loc 1 2235 13
|
||
ARM GAS /tmp/cc5G5cqz.s page 97
|
||
|
||
|
||
3242 00de FB68 ldr r3, [r7, #12]
|
||
3243 00e0 9B6B ldr r3, [r3, #56]
|
||
3244 .loc 1 2235 44
|
||
3245 00e2 0022 movs r2, #0
|
||
3246 00e4 DA62 str r2, [r3, #44]
|
||
2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
|
||
3247 .loc 1 2236 13
|
||
3248 00e6 FB68 ldr r3, [r7, #12]
|
||
3249 00e8 9B6B ldr r3, [r3, #56]
|
||
3250 .loc 1 2236 41
|
||
3251 00ea 0022 movs r2, #0
|
||
3252 00ec 5A63 str r2, [r3, #52]
|
||
2237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
|
||
2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx,
|
||
3253 .loc 1 2239 25
|
||
3254 00ee FB68 ldr r3, [r7, #12]
|
||
3255 00f0 986B ldr r0, [r3, #56]
|
||
2240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
|
||
3256 .loc 1 2240 56
|
||
3257 00f2 FB68 ldr r3, [r7, #12]
|
||
3258 00f4 5B6A ldr r3, [r3, #36]
|
||
2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
|
||
3259 .loc 1 2239 25
|
||
3260 00f6 1946 mov r1, r3
|
||
3261 .loc 1 2240 83
|
||
3262 00f8 FB68 ldr r3, [r7, #12]
|
||
3263 00fa 1B68 ldr r3, [r3]
|
||
3264 .loc 1 2240 78
|
||
3265 00fc 2833 adds r3, r3, #40
|
||
2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
|
||
3266 .loc 1 2239 25
|
||
3267 00fe 1A46 mov r2, r3
|
||
2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
3268 .loc 1 2241 46
|
||
3269 0100 FB68 ldr r3, [r7, #12]
|
||
3270 0102 1B8D ldrh r3, [r3, #40]
|
||
2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
|
||
3271 .loc 1 2239 25
|
||
3272 0104 FFF7FEFF bl HAL_DMA_Start_IT
|
||
3273 0108 0346 mov r3, r0
|
||
3274 010a FB75 strb r3, [r7, #23]
|
||
2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
|
||
2247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
2248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
|
||
2251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
2254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 98
|
||
|
||
|
||
2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
|
||
3275 .loc 1 2258 10
|
||
3276 010c FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
3277 010e 002B cmp r3, #0
|
||
3278 0110 2ED1 bne .L147
|
||
3279 0112 13E0 b .L149
|
||
3280 .L145:
|
||
2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
3281 .loc 1 2246 25
|
||
3282 0114 FB68 ldr r3, [r7, #12]
|
||
3283 0116 2822 movs r2, #40
|
||
3284 0118 83F84120 strb r2, [r3, #65]
|
||
2247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3285 .loc 1 2247 25
|
||
3286 011c FB68 ldr r3, [r7, #12]
|
||
3287 011e 0022 movs r2, #0
|
||
3288 0120 83F84220 strb r2, [r3, #66]
|
||
2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3289 .loc 1 2250 13
|
||
3290 0124 FB68 ldr r3, [r7, #12]
|
||
3291 0126 5B6C ldr r3, [r3, #68]
|
||
2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3292 .loc 1 2250 25
|
||
3293 0128 43F08002 orr r2, r3, #128
|
||
3294 012c FB68 ldr r3, [r7, #12]
|
||
3295 012e 5A64 str r2, [r3, #68]
|
||
2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3296 .loc 1 2253 9
|
||
3297 0130 FB68 ldr r3, [r7, #12]
|
||
3298 0132 0022 movs r2, #0
|
||
3299 0134 83F84020 strb r2, [r3, #64]
|
||
2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3300 .loc 1 2255 16
|
||
3301 0138 0123 movs r3, #1
|
||
3302 013a 41E0 b .L141
|
||
3303 .L149:
|
||
2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
|
||
2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
|
||
3304 .loc 1 2261 13
|
||
3305 013c FB68 ldr r3, [r7, #12]
|
||
3306 013e 1B68 ldr r3, [r3]
|
||
3307 .loc 1 2261 23
|
||
3308 0140 5A68 ldr r2, [r3, #4]
|
||
3309 .loc 1 2261 13
|
||
3310 0142 FB68 ldr r3, [r7, #12]
|
||
3311 0144 1B68 ldr r3, [r3]
|
||
3312 .loc 1 2261 29
|
||
3313 0146 22F40042 bic r2, r2, #32768
|
||
3314 014a 5A60 str r2, [r3, #4]
|
||
2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
3315 .loc 1 2264 9
|
||
3316 014c FB68 ldr r3, [r7, #12]
|
||
3317 014e 0022 movs r2, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 99
|
||
|
||
|
||
3318 0150 83F84020 strb r2, [r3, #64]
|
||
2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
|
||
2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
|
||
3319 .loc 1 2270 9
|
||
3320 0154 4FF40041 mov r1, #32768
|
||
3321 0158 F868 ldr r0, [r7, #12]
|
||
3322 015a FFF7FEFF bl I2C_Enable_IRQ
|
||
2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
|
||
2273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
|
||
3323 .loc 1 2273 13
|
||
3324 015e FB68 ldr r3, [r7, #12]
|
||
3325 0160 1B68 ldr r3, [r3]
|
||
3326 .loc 1 2273 23
|
||
3327 0162 1A68 ldr r2, [r3]
|
||
3328 .loc 1 2273 13
|
||
3329 0164 FB68 ldr r3, [r7, #12]
|
||
3330 0166 1B68 ldr r3, [r3]
|
||
3331 .loc 1 2273 29
|
||
3332 0168 42F48042 orr r2, r2, #16384
|
||
3333 016c 1A60 str r2, [r3]
|
||
3334 016e 24E0 b .L148
|
||
3335 .L147:
|
||
2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
|
||
3336 .loc 1 2278 25
|
||
3337 0170 FB68 ldr r3, [r7, #12]
|
||
3338 0172 2822 movs r2, #40
|
||
3339 0174 83F84120 strb r2, [r3, #65]
|
||
2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
3340 .loc 1 2279 25
|
||
3341 0178 FB68 ldr r3, [r7, #12]
|
||
3342 017a 0022 movs r2, #0
|
||
3343 017c 83F84220 strb r2, [r3, #66]
|
||
2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
|
||
3344 .loc 1 2282 13
|
||
3345 0180 FB68 ldr r3, [r7, #12]
|
||
3346 0182 5B6C ldr r3, [r3, #68]
|
||
3347 .loc 1 2282 25
|
||
3348 0184 43F01002 orr r2, r3, #16
|
||
3349 0188 FB68 ldr r3, [r7, #12]
|
||
3350 018a 5A64 str r2, [r3, #68]
|
||
2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
3351 .loc 1 2285 9
|
||
3352 018c FB68 ldr r3, [r7, #12]
|
||
3353 018e 0022 movs r2, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 100
|
||
|
||
|
||
3354 0190 83F84020 strb r2, [r3, #64]
|
||
2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
3355 .loc 1 2287 16
|
||
3356 0194 0123 movs r3, #1
|
||
3357 0196 13E0 b .L141
|
||
3358 .L144:
|
||
2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
|
||
2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
|
||
3359 .loc 1 2293 11
|
||
3360 0198 FB68 ldr r3, [r7, #12]
|
||
3361 019a 1B68 ldr r3, [r3]
|
||
3362 .loc 1 2293 21
|
||
3363 019c 5A68 ldr r2, [r3, #4]
|
||
3364 .loc 1 2293 11
|
||
3365 019e FB68 ldr r3, [r7, #12]
|
||
3366 01a0 1B68 ldr r3, [r3]
|
||
3367 .loc 1 2293 27
|
||
3368 01a2 22F40042 bic r2, r2, #32768
|
||
3369 01a6 5A60 str r2, [r3, #4]
|
||
2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
3370 .loc 1 2296 7
|
||
3371 01a8 FB68 ldr r3, [r7, #12]
|
||
3372 01aa 0022 movs r2, #0
|
||
3373 01ac 83F84020 strb r2, [r3, #64]
|
||
2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
|
||
2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
|
||
3374 .loc 1 2302 7
|
||
3375 01b0 4FF40041 mov r1, #32768
|
||
3376 01b4 F868 ldr r0, [r7, #12]
|
||
3377 01b6 FFF7FEFF bl I2C_Enable_IRQ
|
||
3378 .L148:
|
||
2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
3379 .loc 1 2305 12
|
||
3380 01ba 0023 movs r3, #0
|
||
3381 01bc 00E0 b .L141
|
||
3382 .L138:
|
||
2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
3383 .loc 1 2309 12
|
||
3384 01be 0223 movs r3, #2
|
||
3385 .L141:
|
||
2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 101
|
||
|
||
|
||
2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3386 .loc 1 2311 1
|
||
3387 01c0 1846 mov r0, r3
|
||
3388 01c2 1837 adds r7, r7, #24
|
||
3389 .cfi_def_cfa_offset 8
|
||
3390 01c4 BD46 mov sp, r7
|
||
3391 .cfi_def_cfa_register 13
|
||
3392 @ sp needed
|
||
3393 01c6 80BD pop {r7, pc}
|
||
3394 .L151:
|
||
3395 .align 2
|
||
3396 .L150:
|
||
3397 01c8 0000FFFF .word -65536
|
||
3398 01cc 00000000 .word I2C_Slave_ISR_DMA
|
||
3399 01d0 00000000 .word I2C_DMASlaveTransmitCplt
|
||
3400 01d4 00000000 .word I2C_DMAError
|
||
3401 .cfi_endproc
|
||
3402 .LFE144:
|
||
3404 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits
|
||
3405 .align 1
|
||
3406 .global HAL_I2C_Slave_Receive_DMA
|
||
3407 .syntax unified
|
||
3408 .thumb
|
||
3409 .thumb_func
|
||
3411 HAL_I2C_Slave_Receive_DMA:
|
||
3412 .LFB145:
|
||
2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA
|
||
2315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
2321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
|
||
2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3413 .loc 1 2322 1
|
||
3414 .cfi_startproc
|
||
3415 @ args = 0, pretend = 0, frame = 24
|
||
3416 @ frame_needed = 1, uses_anonymous_args = 0
|
||
3417 0000 80B5 push {r7, lr}
|
||
3418 .cfi_def_cfa_offset 8
|
||
3419 .cfi_offset 7, -8
|
||
3420 .cfi_offset 14, -4
|
||
3421 0002 86B0 sub sp, sp, #24
|
||
3422 .cfi_def_cfa_offset 32
|
||
3423 0004 00AF add r7, sp, #0
|
||
3424 .cfi_def_cfa_register 7
|
||
3425 0006 F860 str r0, [r7, #12]
|
||
3426 0008 B960 str r1, [r7, #8]
|
||
3427 000a 1346 mov r3, r2
|
||
3428 000c FB80 strh r3, [r7, #6] @ movhi
|
||
2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
|
||
2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
3429 .loc 1 2325 11
|
||
ARM GAS /tmp/cc5G5cqz.s page 102
|
||
|
||
|
||
3430 000e FB68 ldr r3, [r7, #12]
|
||
3431 0010 93F84130 ldrb r3, [r3, #65]
|
||
3432 0014 DBB2 uxtb r3, r3
|
||
3433 .loc 1 2325 6
|
||
3434 0016 202B cmp r3, #32
|
||
3435 0018 40F09B80 bne .L153
|
||
2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
|
||
3436 .loc 1 2327 8
|
||
3437 001c BB68 ldr r3, [r7, #8]
|
||
3438 001e 002B cmp r3, #0
|
||
3439 0020 02D0 beq .L154
|
||
3440 .loc 1 2327 25 discriminator 1
|
||
3441 0022 FB88 ldrh r3, [r7, #6]
|
||
3442 0024 002B cmp r3, #0
|
||
3443 0026 05D1 bne .L155
|
||
3444 .L154:
|
||
2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
|
||
3445 .loc 1 2329 23
|
||
3446 0028 FB68 ldr r3, [r7, #12]
|
||
3447 002a 4FF40072 mov r2, #512
|
||
3448 002e 5A64 str r2, [r3, #68]
|
||
2330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
3449 .loc 1 2330 15
|
||
3450 0030 0123 movs r3, #1
|
||
3451 0032 8FE0 b .L156
|
||
3452 .L155:
|
||
2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
3453 .loc 1 2333 5
|
||
3454 0034 FB68 ldr r3, [r7, #12]
|
||
3455 0036 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
3456 003a 012B cmp r3, #1
|
||
3457 003c 01D1 bne .L157
|
||
3458 .loc 1 2333 5 is_stmt 0 discriminator 1
|
||
3459 003e 0223 movs r3, #2
|
||
3460 .loc 1 2333 5
|
||
3461 0040 88E0 b .L156
|
||
3462 .L157:
|
||
3463 .loc 1 2333 5 discriminator 2
|
||
3464 0042 FB68 ldr r3, [r7, #12]
|
||
3465 0044 0122 movs r2, #1
|
||
3466 0046 83F84020 strb r2, [r3, #64]
|
||
2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
|
||
3467 .loc 1 2335 23 is_stmt 1
|
||
3468 004a FB68 ldr r3, [r7, #12]
|
||
3469 004c 2222 movs r2, #34
|
||
3470 004e 83F84120 strb r2, [r3, #65]
|
||
2336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
|
||
3471 .loc 1 2336 23
|
||
3472 0052 FB68 ldr r3, [r7, #12]
|
||
3473 0054 2022 movs r2, #32
|
||
3474 0056 83F84220 strb r2, [r3, #66]
|
||
2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
ARM GAS /tmp/cc5G5cqz.s page 103
|
||
|
||
|
||
3475 .loc 1 2337 23
|
||
3476 005a FB68 ldr r3, [r7, #12]
|
||
3477 005c 0022 movs r2, #0
|
||
3478 005e 5A64 str r2, [r3, #68]
|
||
2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
3479 .loc 1 2340 23
|
||
3480 0060 FB68 ldr r3, [r7, #12]
|
||
3481 0062 BA68 ldr r2, [r7, #8]
|
||
3482 0064 5A62 str r2, [r3, #36]
|
||
2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
3483 .loc 1 2341 23
|
||
3484 0066 FB68 ldr r3, [r7, #12]
|
||
3485 0068 FA88 ldrh r2, [r7, #6] @ movhi
|
||
3486 006a 5A85 strh r2, [r3, #42] @ movhi
|
||
2342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
3487 .loc 1 2342 29
|
||
3488 006c FB68 ldr r3, [r7, #12]
|
||
3489 006e 5B8D ldrh r3, [r3, #42] @ movhi
|
||
3490 0070 9AB2 uxth r2, r3
|
||
3491 .loc 1 2342 23
|
||
3492 0072 FB68 ldr r3, [r7, #12]
|
||
3493 0074 1A85 strh r2, [r3, #40] @ movhi
|
||
2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
3494 .loc 1 2343 23
|
||
3495 0076 FB68 ldr r3, [r7, #12]
|
||
3496 0078 384A ldr r2, .L163
|
||
3497 007a DA62 str r2, [r3, #44]
|
||
2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
|
||
3498 .loc 1 2344 23
|
||
3499 007c FB68 ldr r3, [r7, #12]
|
||
3500 007e 384A ldr r2, .L163+4
|
||
3501 0080 5A63 str r2, [r3, #52]
|
||
2345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
|
||
3502 .loc 1 2346 13
|
||
3503 0082 FB68 ldr r3, [r7, #12]
|
||
3504 0084 DB6B ldr r3, [r3, #60]
|
||
3505 .loc 1 2346 8
|
||
3506 0086 002B cmp r3, #0
|
||
3507 0088 20D0 beq .L158
|
||
2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
|
||
2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
|
||
3508 .loc 1 2349 11
|
||
3509 008a FB68 ldr r3, [r7, #12]
|
||
3510 008c DB6B ldr r3, [r3, #60]
|
||
3511 .loc 1 2349 38
|
||
3512 008e 354A ldr r2, .L163+8
|
||
3513 0090 9A62 str r2, [r3, #40]
|
||
2350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
|
||
2352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
|
||
3514 .loc 1 2352 11
|
||
3515 0092 FB68 ldr r3, [r7, #12]
|
||
3516 0094 DB6B ldr r3, [r3, #60]
|
||
ARM GAS /tmp/cc5G5cqz.s page 104
|
||
|
||
|
||
3517 .loc 1 2352 39
|
||
3518 0096 344A ldr r2, .L163+12
|
||
3519 0098 1A63 str r2, [r3, #48]
|
||
2353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
|
||
2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
|
||
3520 .loc 1 2355 11
|
||
3521 009a FB68 ldr r3, [r7, #12]
|
||
3522 009c DB6B ldr r3, [r3, #60]
|
||
3523 .loc 1 2355 42
|
||
3524 009e 0022 movs r2, #0
|
||
3525 00a0 DA62 str r2, [r3, #44]
|
||
2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
|
||
3526 .loc 1 2356 11
|
||
3527 00a2 FB68 ldr r3, [r7, #12]
|
||
3528 00a4 DB6B ldr r3, [r3, #60]
|
||
3529 .loc 1 2356 39
|
||
3530 00a6 0022 movs r2, #0
|
||
3531 00a8 5A63 str r2, [r3, #52]
|
||
2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
|
||
2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
|
||
3532 .loc 1 2359 23
|
||
3533 00aa FB68 ldr r3, [r7, #12]
|
||
3534 00ac D86B ldr r0, [r3, #60]
|
||
3535 .loc 1 2359 69
|
||
3536 00ae FB68 ldr r3, [r7, #12]
|
||
3537 00b0 1B68 ldr r3, [r3]
|
||
3538 .loc 1 2359 64
|
||
3539 00b2 2433 adds r3, r3, #36
|
||
3540 .loc 1 2359 23
|
||
3541 00b4 1946 mov r1, r3
|
||
3542 00b6 BA68 ldr r2, [r7, #8]
|
||
2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
3543 .loc 1 2360 44
|
||
3544 00b8 FB68 ldr r3, [r7, #12]
|
||
3545 00ba 1B8D ldrh r3, [r3, #40]
|
||
2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
3546 .loc 1 2359 23
|
||
3547 00bc FFF7FEFF bl HAL_DMA_Start_IT
|
||
3548 00c0 0346 mov r3, r0
|
||
3549 00c2 FB75 strb r3, [r7, #23]
|
||
2361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
|
||
2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
|
||
2370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 105
|
||
|
||
|
||
2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
|
||
3550 .loc 1 2377 8
|
||
3551 00c4 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
3552 00c6 002B cmp r3, #0
|
||
3553 00c8 2FD1 bne .L160
|
||
3554 00ca 13E0 b .L162
|
||
3555 .L158:
|
||
2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
3556 .loc 1 2365 23
|
||
3557 00cc FB68 ldr r3, [r7, #12]
|
||
3558 00ce 2822 movs r2, #40
|
||
3559 00d0 83F84120 strb r2, [r3, #65]
|
||
2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3560 .loc 1 2366 23
|
||
3561 00d4 FB68 ldr r3, [r7, #12]
|
||
3562 00d6 0022 movs r2, #0
|
||
3563 00d8 83F84220 strb r2, [r3, #66]
|
||
2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3564 .loc 1 2369 11
|
||
3565 00dc FB68 ldr r3, [r7, #12]
|
||
3566 00de 5B6C ldr r3, [r3, #68]
|
||
2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3567 .loc 1 2369 23
|
||
3568 00e0 43F08002 orr r2, r3, #128
|
||
3569 00e4 FB68 ldr r3, [r7, #12]
|
||
3570 00e6 5A64 str r2, [r3, #68]
|
||
2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3571 .loc 1 2372 7
|
||
3572 00e8 FB68 ldr r3, [r7, #12]
|
||
3573 00ea 0022 movs r2, #0
|
||
3574 00ec 83F84020 strb r2, [r3, #64]
|
||
2374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3575 .loc 1 2374 14
|
||
3576 00f0 0123 movs r3, #1
|
||
3577 00f2 2FE0 b .L156
|
||
3578 .L162:
|
||
2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
|
||
2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
|
||
3579 .loc 1 2380 11
|
||
3580 00f4 FB68 ldr r3, [r7, #12]
|
||
3581 00f6 1B68 ldr r3, [r3]
|
||
3582 .loc 1 2380 21
|
||
3583 00f8 5A68 ldr r2, [r3, #4]
|
||
3584 .loc 1 2380 11
|
||
3585 00fa FB68 ldr r3, [r7, #12]
|
||
3586 00fc 1B68 ldr r3, [r3]
|
||
3587 .loc 1 2380 27
|
||
3588 00fe 22F40042 bic r2, r2, #32768
|
||
3589 0102 5A60 str r2, [r3, #4]
|
||
2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
3590 .loc 1 2383 7
|
||
3591 0104 FB68 ldr r3, [r7, #12]
|
||
3592 0106 0022 movs r2, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 106
|
||
|
||
|
||
3593 0108 83F84020 strb r2, [r3, #64]
|
||
2384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
|
||
2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
|
||
3594 .loc 1 2389 7
|
||
3595 010c 4FF40041 mov r1, #32768
|
||
3596 0110 F868 ldr r0, [r7, #12]
|
||
3597 0112 FFF7FEFF bl I2C_Enable_IRQ
|
||
2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
|
||
2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
|
||
3598 .loc 1 2392 11
|
||
3599 0116 FB68 ldr r3, [r7, #12]
|
||
3600 0118 1B68 ldr r3, [r3]
|
||
3601 .loc 1 2392 21
|
||
3602 011a 1A68 ldr r2, [r3]
|
||
3603 .loc 1 2392 11
|
||
3604 011c FB68 ldr r3, [r7, #12]
|
||
3605 011e 1B68 ldr r3, [r3]
|
||
3606 .loc 1 2392 27
|
||
3607 0120 42F40042 orr r2, r2, #32768
|
||
3608 0124 1A60 str r2, [r3]
|
||
2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
|
||
2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
|
||
2402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
2405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
3609 .loc 1 2409 12
|
||
3610 0126 0023 movs r3, #0
|
||
3611 0128 14E0 b .L156
|
||
3612 .L160:
|
||
2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
3613 .loc 1 2397 23
|
||
3614 012a FB68 ldr r3, [r7, #12]
|
||
3615 012c 2822 movs r2, #40
|
||
3616 012e 83F84120 strb r2, [r3, #65]
|
||
2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3617 .loc 1 2398 23
|
||
3618 0132 FB68 ldr r3, [r7, #12]
|
||
3619 0134 0022 movs r2, #0
|
||
3620 0136 83F84220 strb r2, [r3, #66]
|
||
2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 107
|
||
|
||
|
||
3621 .loc 1 2401 11
|
||
3622 013a FB68 ldr r3, [r7, #12]
|
||
3623 013c 5B6C ldr r3, [r3, #68]
|
||
2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3624 .loc 1 2401 23
|
||
3625 013e 43F01002 orr r2, r3, #16
|
||
3626 0142 FB68 ldr r3, [r7, #12]
|
||
3627 0144 5A64 str r2, [r3, #68]
|
||
2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3628 .loc 1 2404 7
|
||
3629 0146 FB68 ldr r3, [r7, #12]
|
||
3630 0148 0022 movs r2, #0
|
||
3631 014a 83F84020 strb r2, [r3, #64]
|
||
2406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3632 .loc 1 2406 14
|
||
3633 014e 0123 movs r3, #1
|
||
3634 0150 00E0 b .L156
|
||
3635 .L153:
|
||
2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
3636 .loc 1 2413 12
|
||
3637 0152 0223 movs r3, #2
|
||
3638 .L156:
|
||
2414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3639 .loc 1 2415 1
|
||
3640 0154 1846 mov r0, r3
|
||
3641 0156 1837 adds r7, r7, #24
|
||
3642 .cfi_def_cfa_offset 8
|
||
3643 0158 BD46 mov sp, r7
|
||
3644 .cfi_def_cfa_register 13
|
||
3645 @ sp needed
|
||
3646 015a 80BD pop {r7, pc}
|
||
3647 .L164:
|
||
3648 .align 2
|
||
3649 .L163:
|
||
3650 015c 0000FFFF .word -65536
|
||
3651 0160 00000000 .word I2C_Slave_ISR_DMA
|
||
3652 0164 00000000 .word I2C_DMASlaveReceiveCplt
|
||
3653 0168 00000000 .word I2C_DMAError
|
||
3654 .cfi_endproc
|
||
3655 .LFE145:
|
||
3657 .section .text.HAL_I2C_Mem_Write,"ax",%progbits
|
||
3658 .align 1
|
||
3659 .global HAL_I2C_Mem_Write
|
||
3660 .syntax unified
|
||
3661 .thumb
|
||
3662 .thumb_func
|
||
3664 HAL_I2C_Mem_Write:
|
||
3665 .LFB146:
|
||
2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address
|
||
2419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
ARM GAS /tmp/cc5G5cqz.s page 108
|
||
|
||
|
||
2421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
|
||
2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
|
||
2425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
|
||
2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre
|
||
2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti
|
||
2432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3666 .loc 1 2432 1
|
||
3667 .cfi_startproc
|
||
3668 @ args = 12, pretend = 0, frame = 24
|
||
3669 @ frame_needed = 1, uses_anonymous_args = 0
|
||
3670 0000 80B5 push {r7, lr}
|
||
3671 .cfi_def_cfa_offset 8
|
||
3672 .cfi_offset 7, -8
|
||
3673 .cfi_offset 14, -4
|
||
3674 0002 88B0 sub sp, sp, #32
|
||
3675 .cfi_def_cfa_offset 40
|
||
3676 0004 02AF add r7, sp, #8
|
||
3677 .cfi_def_cfa 7, 32
|
||
3678 0006 F860 str r0, [r7, #12]
|
||
3679 0008 0846 mov r0, r1
|
||
3680 000a 1146 mov r1, r2
|
||
3681 000c 1A46 mov r2, r3
|
||
3682 000e 0346 mov r3, r0 @ movhi
|
||
3683 0010 7B81 strh r3, [r7, #10] @ movhi
|
||
3684 0012 0B46 mov r3, r1 @ movhi
|
||
3685 0014 3B81 strh r3, [r7, #8] @ movhi
|
||
3686 0016 1346 mov r3, r2 @ movhi
|
||
3687 0018 FB80 strh r3, [r7, #6] @ movhi
|
||
2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
|
||
2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
|
||
2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
3688 .loc 1 2438 11
|
||
3689 001a FB68 ldr r3, [r7, #12]
|
||
3690 001c 93F84130 ldrb r3, [r3, #65]
|
||
3691 0020 DBB2 uxtb r3, r3
|
||
3692 .loc 1 2438 6
|
||
3693 0022 202B cmp r3, #32
|
||
3694 0024 40F0F980 bne .L166
|
||
2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
|
||
3695 .loc 1 2440 8
|
||
3696 0028 3B6A ldr r3, [r7, #32]
|
||
3697 002a 002B cmp r3, #0
|
||
3698 002c 02D0 beq .L167
|
||
3699 .loc 1 2440 25 discriminator 1
|
||
3700 002e BB8C ldrh r3, [r7, #36]
|
||
3701 0030 002B cmp r3, #0
|
||
3702 0032 05D1 bne .L168
|
||
ARM GAS /tmp/cc5G5cqz.s page 109
|
||
|
||
|
||
3703 .L167:
|
||
2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
|
||
3704 .loc 1 2442 23
|
||
3705 0034 FB68 ldr r3, [r7, #12]
|
||
3706 0036 4FF40072 mov r2, #512
|
||
3707 003a 5A64 str r2, [r3, #68]
|
||
2443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
3708 .loc 1 2443 15
|
||
3709 003c 0123 movs r3, #1
|
||
3710 003e EDE0 b .L169
|
||
3711 .L168:
|
||
2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
2447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
3712 .loc 1 2447 5
|
||
3713 0040 FB68 ldr r3, [r7, #12]
|
||
3714 0042 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
3715 0046 012B cmp r3, #1
|
||
3716 0048 01D1 bne .L170
|
||
3717 .loc 1 2447 5 is_stmt 0 discriminator 1
|
||
3718 004a 0223 movs r3, #2
|
||
3719 .loc 1 2447 5
|
||
3720 004c E6E0 b .L169
|
||
3721 .L170:
|
||
3722 .loc 1 2447 5 discriminator 2
|
||
3723 004e FB68 ldr r3, [r7, #12]
|
||
3724 0050 0122 movs r2, #1
|
||
3725 0052 83F84020 strb r2, [r3, #64]
|
||
2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
|
||
2450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
|
||
3726 .loc 1 2450 17 is_stmt 1
|
||
3727 0056 FFF7FEFF bl HAL_GetTick
|
||
3728 005a 7861 str r0, [r7, #20]
|
||
2451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
|
||
3729 .loc 1 2452 9
|
||
3730 005c 7B69 ldr r3, [r7, #20]
|
||
3731 005e 0093 str r3, [sp]
|
||
3732 0060 1923 movs r3, #25
|
||
3733 0062 0122 movs r2, #1
|
||
3734 0064 4FF40041 mov r1, #32768
|
||
3735 0068 F868 ldr r0, [r7, #12]
|
||
3736 006a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
3737 006e 0346 mov r3, r0
|
||
3738 .loc 1 2452 8 discriminator 1
|
||
3739 0070 002B cmp r3, #0
|
||
3740 0072 01D0 beq .L171
|
||
2453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
3741 .loc 1 2454 14
|
||
3742 0074 0123 movs r3, #1
|
||
3743 0076 D1E0 b .L169
|
||
3744 .L171:
|
||
2455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 110
|
||
|
||
|
||
2456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
|
||
3745 .loc 1 2457 21
|
||
3746 0078 FB68 ldr r3, [r7, #12]
|
||
3747 007a 2122 movs r2, #33
|
||
3748 007c 83F84120 strb r2, [r3, #65]
|
||
2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
|
||
3749 .loc 1 2458 21
|
||
3750 0080 FB68 ldr r3, [r7, #12]
|
||
3751 0082 4022 movs r2, #64
|
||
3752 0084 83F84220 strb r2, [r3, #66]
|
||
2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
3753 .loc 1 2459 21
|
||
3754 0088 FB68 ldr r3, [r7, #12]
|
||
3755 008a 0022 movs r2, #0
|
||
3756 008c 5A64 str r2, [r3, #68]
|
||
2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
3757 .loc 1 2462 21
|
||
3758 008e FB68 ldr r3, [r7, #12]
|
||
3759 0090 3A6A ldr r2, [r7, #32]
|
||
3760 0092 5A62 str r2, [r3, #36]
|
||
2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
3761 .loc 1 2463 21
|
||
3762 0094 FB68 ldr r3, [r7, #12]
|
||
3763 0096 BA8C ldrh r2, [r7, #36] @ movhi
|
||
3764 0098 5A85 strh r2, [r3, #42] @ movhi
|
||
2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
|
||
3765 .loc 1 2464 21
|
||
3766 009a FB68 ldr r3, [r7, #12]
|
||
3767 009c 0022 movs r2, #0
|
||
3768 009e 5A63 str r2, [r3, #52]
|
||
2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
|
||
2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL
|
||
3769 .loc 1 2467 9
|
||
3770 00a0 F888 ldrh r0, [r7, #6]
|
||
3771 00a2 3A89 ldrh r2, [r7, #8]
|
||
3772 00a4 7989 ldrh r1, [r7, #10]
|
||
3773 00a6 7B69 ldr r3, [r7, #20]
|
||
3774 00a8 0193 str r3, [sp, #4]
|
||
3775 00aa BB6A ldr r3, [r7, #40]
|
||
3776 00ac 0093 str r3, [sp]
|
||
3777 00ae 0346 mov r3, r0
|
||
3778 00b0 F868 ldr r0, [r7, #12]
|
||
3779 00b2 FFF7FEFF bl I2C_RequestMemoryWrite
|
||
3780 00b6 0346 mov r3, r0
|
||
3781 .loc 1 2467 8 discriminator 1
|
||
3782 00b8 002B cmp r3, #0
|
||
3783 00ba 05D0 beq .L172
|
||
2468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
3784 .loc 1 2470 7
|
||
3785 00bc FB68 ldr r3, [r7, #12]
|
||
3786 00be 0022 movs r2, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 111
|
||
|
||
|
||
3787 00c0 83F84020 strb r2, [r3, #64]
|
||
2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
3788 .loc 1 2471 14
|
||
3789 00c4 0123 movs r3, #1
|
||
3790 00c6 A9E0 b .L169
|
||
3791 .L172:
|
||
2472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
|
||
2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
3792 .loc 1 2475 13
|
||
3793 00c8 FB68 ldr r3, [r7, #12]
|
||
3794 00ca 5B8D ldrh r3, [r3, #42] @ movhi
|
||
3795 00cc 9BB2 uxth r3, r3
|
||
3796 .loc 1 2475 8
|
||
3797 00ce FF2B cmp r3, #255
|
||
3798 00d0 0ED9 bls .L173
|
||
2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
3799 .loc 1 2477 22
|
||
3800 00d2 FB68 ldr r3, [r7, #12]
|
||
3801 00d4 FF22 movs r2, #255
|
||
3802 00d6 1A85 strh r2, [r3, #40] @ movhi
|
||
2478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
|
||
3803 .loc 1 2478 57
|
||
3804 00d8 FB68 ldr r3, [r7, #12]
|
||
3805 00da 1B8D ldrh r3, [r3, #40]
|
||
3806 .loc 1 2478 7
|
||
3807 00dc DAB2 uxtb r2, r3
|
||
3808 00de 7989 ldrh r1, [r7, #10]
|
||
3809 00e0 0023 movs r3, #0
|
||
3810 00e2 0093 str r3, [sp]
|
||
3811 00e4 4FF08073 mov r3, #16777216
|
||
3812 00e8 F868 ldr r0, [r7, #12]
|
||
3813 00ea FFF7FEFF bl I2C_TransferConfig
|
||
3814 00ee 0FE0 b .L179
|
||
3815 .L173:
|
||
2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
3816 .loc 1 2482 28
|
||
3817 00f0 FB68 ldr r3, [r7, #12]
|
||
3818 00f2 5B8D ldrh r3, [r3, #42] @ movhi
|
||
3819 00f4 9AB2 uxth r2, r3
|
||
3820 .loc 1 2482 22
|
||
3821 00f6 FB68 ldr r3, [r7, #12]
|
||
3822 00f8 1A85 strh r2, [r3, #40] @ movhi
|
||
2483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
|
||
3823 .loc 1 2483 57
|
||
3824 00fa FB68 ldr r3, [r7, #12]
|
||
3825 00fc 1B8D ldrh r3, [r3, #40]
|
||
3826 .loc 1 2483 7
|
||
3827 00fe DAB2 uxtb r2, r3
|
||
3828 0100 7989 ldrh r1, [r7, #10]
|
||
3829 0102 0023 movs r3, #0
|
||
3830 0104 0093 str r3, [sp]
|
||
ARM GAS /tmp/cc5G5cqz.s page 112
|
||
|
||
|
||
3831 0106 4FF00073 mov r3, #33554432
|
||
3832 010a F868 ldr r0, [r7, #12]
|
||
3833 010c FFF7FEFF bl I2C_TransferConfig
|
||
3834 .L179:
|
||
2484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do
|
||
2487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
|
||
2489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
|
||
3835 .loc 1 2489 11
|
||
3836 0110 7A69 ldr r2, [r7, #20]
|
||
3837 0112 B96A ldr r1, [r7, #40]
|
||
3838 0114 F868 ldr r0, [r7, #12]
|
||
3839 0116 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
|
||
3840 011a 0346 mov r3, r0
|
||
3841 .loc 1 2489 10 discriminator 1
|
||
3842 011c 002B cmp r3, #0
|
||
3843 011e 01D0 beq .L175
|
||
2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
3844 .loc 1 2491 16
|
||
3845 0120 0123 movs r3, #1
|
||
3846 0122 7BE0 b .L169
|
||
3847 .L175:
|
||
2492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
|
||
2495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
|
||
3848 .loc 1 2495 35
|
||
3849 0124 FB68 ldr r3, [r7, #12]
|
||
3850 0126 5B6A ldr r3, [r3, #36]
|
||
3851 .loc 1 2495 30
|
||
3852 0128 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
3853 .loc 1 2495 11
|
||
3854 012a FB68 ldr r3, [r7, #12]
|
||
3855 012c 1B68 ldr r3, [r3]
|
||
3856 .loc 1 2495 28
|
||
3857 012e 9A62 str r2, [r3, #40]
|
||
2496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
2498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
3858 .loc 1 2498 11
|
||
3859 0130 FB68 ldr r3, [r7, #12]
|
||
3860 0132 5B6A ldr r3, [r3, #36]
|
||
3861 .loc 1 2498 21
|
||
3862 0134 5A1C adds r2, r3, #1
|
||
3863 0136 FB68 ldr r3, [r7, #12]
|
||
3864 0138 5A62 str r2, [r3, #36]
|
||
2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
3865 .loc 1 2500 11
|
||
3866 013a FB68 ldr r3, [r7, #12]
|
||
3867 013c 5B8D ldrh r3, [r3, #42] @ movhi
|
||
3868 013e 9BB2 uxth r3, r3
|
||
3869 .loc 1 2500 22
|
||
3870 0140 013B subs r3, r3, #1
|
||
ARM GAS /tmp/cc5G5cqz.s page 113
|
||
|
||
|
||
3871 0142 9AB2 uxth r2, r3
|
||
3872 0144 FB68 ldr r3, [r7, #12]
|
||
3873 0146 5A85 strh r2, [r3, #42] @ movhi
|
||
2501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
3874 .loc 1 2501 11
|
||
3875 0148 FB68 ldr r3, [r7, #12]
|
||
3876 014a 1B8D ldrh r3, [r3, #40]
|
||
3877 .loc 1 2501 21
|
||
3878 014c 013B subs r3, r3, #1
|
||
3879 014e 9AB2 uxth r2, r3
|
||
3880 0150 FB68 ldr r3, [r7, #12]
|
||
3881 0152 1A85 strh r2, [r3, #40] @ movhi
|
||
2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
|
||
3882 .loc 1 2503 16
|
||
3883 0154 FB68 ldr r3, [r7, #12]
|
||
3884 0156 5B8D ldrh r3, [r3, #42] @ movhi
|
||
3885 0158 9BB2 uxth r3, r3
|
||
3886 .loc 1 2503 10
|
||
3887 015a 002B cmp r3, #0
|
||
3888 015c 34D0 beq .L176
|
||
3889 .loc 1 2503 43 discriminator 1
|
||
3890 015e FB68 ldr r3, [r7, #12]
|
||
3891 0160 1B8D ldrh r3, [r3, #40]
|
||
3892 .loc 1 2503 35 discriminator 1
|
||
3893 0162 002B cmp r3, #0
|
||
3894 0164 30D1 bne .L176
|
||
2504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
|
||
2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
|
||
3895 .loc 1 2506 13
|
||
3896 0166 7B69 ldr r3, [r7, #20]
|
||
3897 0168 0093 str r3, [sp]
|
||
3898 016a BB6A ldr r3, [r7, #40]
|
||
3899 016c 0022 movs r2, #0
|
||
3900 016e 8021 movs r1, #128
|
||
3901 0170 F868 ldr r0, [r7, #12]
|
||
3902 0172 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
3903 0176 0346 mov r3, r0
|
||
3904 .loc 1 2506 12 discriminator 1
|
||
3905 0178 002B cmp r3, #0
|
||
3906 017a 01D0 beq .L177
|
||
2507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
3907 .loc 1 2508 18
|
||
3908 017c 0123 movs r3, #1
|
||
3909 017e 4DE0 b .L169
|
||
3910 .L177:
|
||
2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
3911 .loc 1 2511 17
|
||
3912 0180 FB68 ldr r3, [r7, #12]
|
||
3913 0182 5B8D ldrh r3, [r3, #42] @ movhi
|
||
3914 0184 9BB2 uxth r3, r3
|
||
3915 .loc 1 2511 12
|
||
3916 0186 FF2B cmp r3, #255
|
||
ARM GAS /tmp/cc5G5cqz.s page 114
|
||
|
||
|
||
3917 0188 0ED9 bls .L178
|
||
2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
3918 .loc 1 2513 26
|
||
3919 018a FB68 ldr r3, [r7, #12]
|
||
3920 018c FF22 movs r2, #255
|
||
3921 018e 1A85 strh r2, [r3, #40] @ movhi
|
||
2514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
|
||
3922 .loc 1 2514 61
|
||
3923 0190 FB68 ldr r3, [r7, #12]
|
||
3924 0192 1B8D ldrh r3, [r3, #40]
|
||
3925 .loc 1 2514 11
|
||
3926 0194 DAB2 uxtb r2, r3
|
||
3927 0196 7989 ldrh r1, [r7, #10]
|
||
3928 0198 0023 movs r3, #0
|
||
3929 019a 0093 str r3, [sp]
|
||
3930 019c 4FF08073 mov r3, #16777216
|
||
3931 01a0 F868 ldr r0, [r7, #12]
|
||
3932 01a2 FFF7FEFF bl I2C_TransferConfig
|
||
3933 01a6 0FE0 b .L176
|
||
3934 .L178:
|
||
2515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
|
||
2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
3935 .loc 1 2519 32
|
||
3936 01a8 FB68 ldr r3, [r7, #12]
|
||
3937 01aa 5B8D ldrh r3, [r3, #42] @ movhi
|
||
3938 01ac 9AB2 uxth r2, r3
|
||
3939 .loc 1 2519 26
|
||
3940 01ae FB68 ldr r3, [r7, #12]
|
||
3941 01b0 1A85 strh r2, [r3, #40] @ movhi
|
||
2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
|
||
3942 .loc 1 2520 61
|
||
3943 01b2 FB68 ldr r3, [r7, #12]
|
||
3944 01b4 1B8D ldrh r3, [r3, #40]
|
||
3945 .loc 1 2520 11
|
||
3946 01b6 DAB2 uxtb r2, r3
|
||
3947 01b8 7989 ldrh r1, [r7, #10]
|
||
3948 01ba 0023 movs r3, #0
|
||
3949 01bc 0093 str r3, [sp]
|
||
3950 01be 4FF00073 mov r3, #33554432
|
||
3951 01c2 F868 ldr r0, [r7, #12]
|
||
3952 01c4 FFF7FEFF bl I2C_TransferConfig
|
||
3953 .L176:
|
||
2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
|
||
2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (hi2c->XferCount > 0U);
|
||
3954 .loc 1 2525 18
|
||
3955 01c8 FB68 ldr r3, [r7, #12]
|
||
3956 01ca 5B8D ldrh r3, [r3, #42] @ movhi
|
||
3957 01cc 9BB2 uxth r3, r3
|
||
3958 .loc 1 2525 30
|
||
3959 01ce 002B cmp r3, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 115
|
||
|
||
|
||
3960 01d0 9ED1 bne .L179
|
||
2526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
|
||
2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
|
||
2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
|
||
3961 .loc 1 2529 9
|
||
3962 01d2 7A69 ldr r2, [r7, #20]
|
||
3963 01d4 B96A ldr r1, [r7, #40]
|
||
3964 01d6 F868 ldr r0, [r7, #12]
|
||
3965 01d8 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
|
||
3966 01dc 0346 mov r3, r0
|
||
3967 .loc 1 2529 8 discriminator 1
|
||
3968 01de 002B cmp r3, #0
|
||
3969 01e0 01D0 beq .L180
|
||
2530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
3970 .loc 1 2531 14
|
||
3971 01e2 0123 movs r3, #1
|
||
3972 01e4 1AE0 b .L169
|
||
3973 .L180:
|
||
2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
|
||
2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
3974 .loc 1 2535 5
|
||
3975 01e6 FB68 ldr r3, [r7, #12]
|
||
3976 01e8 1B68 ldr r3, [r3]
|
||
3977 01ea 2022 movs r2, #32
|
||
3978 01ec DA61 str r2, [r3, #28]
|
||
2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
|
||
2538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
|
||
3979 .loc 1 2538 5
|
||
3980 01ee FB68 ldr r3, [r7, #12]
|
||
3981 01f0 1B68 ldr r3, [r3]
|
||
3982 01f2 5968 ldr r1, [r3, #4]
|
||
3983 01f4 FB68 ldr r3, [r7, #12]
|
||
3984 01f6 1A68 ldr r2, [r3]
|
||
3985 01f8 0A4B ldr r3, .L181
|
||
3986 01fa 0B40 ands r3, r3, r1
|
||
3987 01fc 5360 str r3, [r2, #4]
|
||
2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
3988 .loc 1 2540 17
|
||
3989 01fe FB68 ldr r3, [r7, #12]
|
||
3990 0200 2022 movs r2, #32
|
||
3991 0202 83F84120 strb r2, [r3, #65]
|
||
2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
3992 .loc 1 2541 17
|
||
3993 0206 FB68 ldr r3, [r7, #12]
|
||
3994 0208 0022 movs r2, #0
|
||
3995 020a 83F84220 strb r2, [r3, #66]
|
||
2542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
3996 .loc 1 2544 5
|
||
3997 020e FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 116
|
||
|
||
|
||
3998 0210 0022 movs r2, #0
|
||
3999 0212 83F84020 strb r2, [r3, #64]
|
||
2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
4000 .loc 1 2546 12
|
||
4001 0216 0023 movs r3, #0
|
||
4002 0218 00E0 b .L169
|
||
4003 .L166:
|
||
2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
4004 .loc 1 2550 12
|
||
4005 021a 0223 movs r3, #2
|
||
4006 .L169:
|
||
2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4007 .loc 1 2552 1
|
||
4008 021c 1846 mov r0, r3
|
||
4009 021e 1837 adds r7, r7, #24
|
||
4010 .cfi_def_cfa_offset 8
|
||
4011 0220 BD46 mov sp, r7
|
||
4012 .cfi_def_cfa_register 13
|
||
4013 @ sp needed
|
||
4014 0222 80BD pop {r7, pc}
|
||
4015 .L182:
|
||
4016 .align 2
|
||
4017 .L181:
|
||
4018 0224 00E800FE .word -33495040
|
||
4019 .cfi_endproc
|
||
4020 .LFE146:
|
||
4022 .section .text.HAL_I2C_Mem_Read,"ax",%progbits
|
||
4023 .align 1
|
||
4024 .global HAL_I2C_Mem_Read
|
||
4025 .syntax unified
|
||
4026 .thumb
|
||
4027 .thumb_func
|
||
4029 HAL_I2C_Mem_Read:
|
||
4030 .LFB147:
|
||
2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address
|
||
2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
2558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
|
||
2561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
|
||
2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
|
||
2565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
2566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres
|
||
2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim
|
||
2569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4031 .loc 1 2569 1
|
||
ARM GAS /tmp/cc5G5cqz.s page 117
|
||
|
||
|
||
4032 .cfi_startproc
|
||
4033 @ args = 12, pretend = 0, frame = 24
|
||
4034 @ frame_needed = 1, uses_anonymous_args = 0
|
||
4035 0000 80B5 push {r7, lr}
|
||
4036 .cfi_def_cfa_offset 8
|
||
4037 .cfi_offset 7, -8
|
||
4038 .cfi_offset 14, -4
|
||
4039 0002 88B0 sub sp, sp, #32
|
||
4040 .cfi_def_cfa_offset 40
|
||
4041 0004 02AF add r7, sp, #8
|
||
4042 .cfi_def_cfa 7, 32
|
||
4043 0006 F860 str r0, [r7, #12]
|
||
4044 0008 0846 mov r0, r1
|
||
4045 000a 1146 mov r1, r2
|
||
4046 000c 1A46 mov r2, r3
|
||
4047 000e 0346 mov r3, r0 @ movhi
|
||
4048 0010 7B81 strh r3, [r7, #10] @ movhi
|
||
4049 0012 0B46 mov r3, r1 @ movhi
|
||
4050 0014 3B81 strh r3, [r7, #8] @ movhi
|
||
4051 0016 1346 mov r3, r2 @ movhi
|
||
4052 0018 FB80 strh r3, [r7, #6] @ movhi
|
||
2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
|
||
2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
|
||
2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
4053 .loc 1 2575 11
|
||
4054 001a FB68 ldr r3, [r7, #12]
|
||
4055 001c 93F84130 ldrb r3, [r3, #65]
|
||
4056 0020 DBB2 uxtb r3, r3
|
||
4057 .loc 1 2575 6
|
||
4058 0022 202B cmp r3, #32
|
||
4059 0024 40F0FD80 bne .L184
|
||
2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
|
||
4060 .loc 1 2577 8
|
||
4061 0028 3B6A ldr r3, [r7, #32]
|
||
4062 002a 002B cmp r3, #0
|
||
4063 002c 02D0 beq .L185
|
||
4064 .loc 1 2577 25 discriminator 1
|
||
4065 002e BB8C ldrh r3, [r7, #36]
|
||
4066 0030 002B cmp r3, #0
|
||
4067 0032 05D1 bne .L186
|
||
4068 .L185:
|
||
2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
|
||
4069 .loc 1 2579 23
|
||
4070 0034 FB68 ldr r3, [r7, #12]
|
||
4071 0036 4FF40072 mov r2, #512
|
||
4072 003a 5A64 str r2, [r3, #68]
|
||
2580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
4073 .loc 1 2580 15
|
||
4074 003c 0123 movs r3, #1
|
||
4075 003e F1E0 b .L187
|
||
4076 .L186:
|
||
2581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 118
|
||
|
||
|
||
2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
4077 .loc 1 2584 5
|
||
4078 0040 FB68 ldr r3, [r7, #12]
|
||
4079 0042 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
4080 0046 012B cmp r3, #1
|
||
4081 0048 01D1 bne .L188
|
||
4082 .loc 1 2584 5 is_stmt 0 discriminator 1
|
||
4083 004a 0223 movs r3, #2
|
||
4084 .loc 1 2584 5
|
||
4085 004c EAE0 b .L187
|
||
4086 .L188:
|
||
4087 .loc 1 2584 5 discriminator 2
|
||
4088 004e FB68 ldr r3, [r7, #12]
|
||
4089 0050 0122 movs r2, #1
|
||
4090 0052 83F84020 strb r2, [r3, #64]
|
||
2585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
|
||
2587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
|
||
4091 .loc 1 2587 17 is_stmt 1
|
||
4092 0056 FFF7FEFF bl HAL_GetTick
|
||
4093 005a 7861 str r0, [r7, #20]
|
||
2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
|
||
4094 .loc 1 2589 9
|
||
4095 005c 7B69 ldr r3, [r7, #20]
|
||
4096 005e 0093 str r3, [sp]
|
||
4097 0060 1923 movs r3, #25
|
||
4098 0062 0122 movs r2, #1
|
||
4099 0064 4FF40041 mov r1, #32768
|
||
4100 0068 F868 ldr r0, [r7, #12]
|
||
4101 006a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
4102 006e 0346 mov r3, r0
|
||
4103 .loc 1 2589 8 discriminator 1
|
||
4104 0070 002B cmp r3, #0
|
||
4105 0072 01D0 beq .L189
|
||
2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
4106 .loc 1 2591 14
|
||
4107 0074 0123 movs r3, #1
|
||
4108 0076 D5E0 b .L187
|
||
4109 .L189:
|
||
2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
|
||
4110 .loc 1 2594 21
|
||
4111 0078 FB68 ldr r3, [r7, #12]
|
||
4112 007a 2222 movs r2, #34
|
||
4113 007c 83F84120 strb r2, [r3, #65]
|
||
2595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
|
||
4114 .loc 1 2595 21
|
||
4115 0080 FB68 ldr r3, [r7, #12]
|
||
4116 0082 4022 movs r2, #64
|
||
4117 0084 83F84220 strb r2, [r3, #66]
|
||
2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
4118 .loc 1 2596 21
|
||
ARM GAS /tmp/cc5G5cqz.s page 119
|
||
|
||
|
||
4119 0088 FB68 ldr r3, [r7, #12]
|
||
4120 008a 0022 movs r2, #0
|
||
4121 008c 5A64 str r2, [r3, #68]
|
||
2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
4122 .loc 1 2599 21
|
||
4123 008e FB68 ldr r3, [r7, #12]
|
||
4124 0090 3A6A ldr r2, [r7, #32]
|
||
4125 0092 5A62 str r2, [r3, #36]
|
||
2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
4126 .loc 1 2600 21
|
||
4127 0094 FB68 ldr r3, [r7, #12]
|
||
4128 0096 BA8C ldrh r2, [r7, #36] @ movhi
|
||
4129 0098 5A85 strh r2, [r3, #42] @ movhi
|
||
2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
|
||
4130 .loc 1 2601 21
|
||
4131 009a FB68 ldr r3, [r7, #12]
|
||
4132 009c 0022 movs r2, #0
|
||
4133 009e 5A63 str r2, [r3, #52]
|
||
2602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
|
||
2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_
|
||
4134 .loc 1 2604 9
|
||
4135 00a0 F888 ldrh r0, [r7, #6]
|
||
4136 00a2 3A89 ldrh r2, [r7, #8]
|
||
4137 00a4 7989 ldrh r1, [r7, #10]
|
||
4138 00a6 7B69 ldr r3, [r7, #20]
|
||
4139 00a8 0193 str r3, [sp, #4]
|
||
4140 00aa BB6A ldr r3, [r7, #40]
|
||
4141 00ac 0093 str r3, [sp]
|
||
4142 00ae 0346 mov r3, r0
|
||
4143 00b0 F868 ldr r0, [r7, #12]
|
||
4144 00b2 FFF7FEFF bl I2C_RequestMemoryRead
|
||
4145 00b6 0346 mov r3, r0
|
||
4146 .loc 1 2604 8 discriminator 1
|
||
4147 00b8 002B cmp r3, #0
|
||
4148 00ba 05D0 beq .L190
|
||
2605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
4149 .loc 1 2607 7
|
||
4150 00bc FB68 ldr r3, [r7, #12]
|
||
4151 00be 0022 movs r2, #0
|
||
4152 00c0 83F84020 strb r2, [r3, #64]
|
||
2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
4153 .loc 1 2608 14
|
||
4154 00c4 0123 movs r3, #1
|
||
4155 00c6 ADE0 b .L187
|
||
4156 .L190:
|
||
2609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
|
||
2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
|
||
2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
4157 .loc 1 2613 13
|
||
4158 00c8 FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 120
|
||
|
||
|
||
4159 00ca 5B8D ldrh r3, [r3, #42] @ movhi
|
||
4160 00cc 9BB2 uxth r3, r3
|
||
4161 .loc 1 2613 8
|
||
4162 00ce FF2B cmp r3, #255
|
||
4163 00d0 0ED9 bls .L191
|
||
2614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
4164 .loc 1 2615 22
|
||
4165 00d2 FB68 ldr r3, [r7, #12]
|
||
4166 00d4 FF22 movs r2, #255
|
||
4167 00d6 1A85 strh r2, [r3, #40] @ movhi
|
||
2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
|
||
4168 .loc 1 2616 57
|
||
4169 00d8 FB68 ldr r3, [r7, #12]
|
||
4170 00da 1B8D ldrh r3, [r3, #40]
|
||
4171 .loc 1 2616 7
|
||
4172 00dc DAB2 uxtb r2, r3
|
||
4173 00de 7989 ldrh r1, [r7, #10]
|
||
4174 00e0 524B ldr r3, .L199
|
||
4175 00e2 0093 str r3, [sp]
|
||
4176 00e4 4FF08073 mov r3, #16777216
|
||
4177 00e8 F868 ldr r0, [r7, #12]
|
||
4178 00ea FFF7FEFF bl I2C_TransferConfig
|
||
4179 00ee 0FE0 b .L197
|
||
4180 .L191:
|
||
2617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
|
||
2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
4181 .loc 1 2621 28
|
||
4182 00f0 FB68 ldr r3, [r7, #12]
|
||
4183 00f2 5B8D ldrh r3, [r3, #42] @ movhi
|
||
4184 00f4 9AB2 uxth r2, r3
|
||
4185 .loc 1 2621 22
|
||
4186 00f6 FB68 ldr r3, [r7, #12]
|
||
4187 00f8 1A85 strh r2, [r3, #40] @ movhi
|
||
2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
|
||
4188 .loc 1 2622 57
|
||
4189 00fa FB68 ldr r3, [r7, #12]
|
||
4190 00fc 1B8D ldrh r3, [r3, #40]
|
||
4191 .loc 1 2622 7
|
||
4192 00fe DAB2 uxtb r2, r3
|
||
4193 0100 7989 ldrh r1, [r7, #10]
|
||
4194 0102 4A4B ldr r3, .L199
|
||
4195 0104 0093 str r3, [sp]
|
||
4196 0106 4FF00073 mov r3, #33554432
|
||
4197 010a F868 ldr r0, [r7, #12]
|
||
4198 010c FFF7FEFF bl I2C_TransferConfig
|
||
4199 .L197:
|
||
2623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
|
||
2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do
|
||
2627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
|
||
2629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK)
|
||
ARM GAS /tmp/cc5G5cqz.s page 121
|
||
|
||
|
||
4200 .loc 1 2629 11
|
||
4201 0110 7B69 ldr r3, [r7, #20]
|
||
4202 0112 0093 str r3, [sp]
|
||
4203 0114 BB6A ldr r3, [r7, #40]
|
||
4204 0116 0022 movs r2, #0
|
||
4205 0118 0421 movs r1, #4
|
||
4206 011a F868 ldr r0, [r7, #12]
|
||
4207 011c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
4208 0120 0346 mov r3, r0
|
||
4209 .loc 1 2629 10 discriminator 1
|
||
4210 0122 002B cmp r3, #0
|
||
4211 0124 01D0 beq .L193
|
||
2630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
4212 .loc 1 2631 16
|
||
4213 0126 0123 movs r3, #1
|
||
4214 0128 7CE0 b .L187
|
||
4215 .L193:
|
||
2632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
|
||
2635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
|
||
4216 .loc 1 2635 38
|
||
4217 012a FB68 ldr r3, [r7, #12]
|
||
4218 012c 1B68 ldr r3, [r3]
|
||
4219 .loc 1 2635 48
|
||
4220 012e 5A6A ldr r2, [r3, #36]
|
||
4221 .loc 1 2635 12
|
||
4222 0130 FB68 ldr r3, [r7, #12]
|
||
4223 0132 5B6A ldr r3, [r3, #36]
|
||
4224 .loc 1 2635 25
|
||
4225 0134 D2B2 uxtb r2, r2
|
||
4226 .loc 1 2635 23
|
||
4227 0136 1A70 strb r2, [r3]
|
||
2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
4228 .loc 1 2638 11
|
||
4229 0138 FB68 ldr r3, [r7, #12]
|
||
4230 013a 5B6A ldr r3, [r3, #36]
|
||
4231 .loc 1 2638 21
|
||
4232 013c 5A1C adds r2, r3, #1
|
||
4233 013e FB68 ldr r3, [r7, #12]
|
||
4234 0140 5A62 str r2, [r3, #36]
|
||
2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
4235 .loc 1 2640 11
|
||
4236 0142 FB68 ldr r3, [r7, #12]
|
||
4237 0144 1B8D ldrh r3, [r3, #40]
|
||
4238 .loc 1 2640 21
|
||
4239 0146 013B subs r3, r3, #1
|
||
4240 0148 9AB2 uxth r2, r3
|
||
4241 014a FB68 ldr r3, [r7, #12]
|
||
4242 014c 1A85 strh r2, [r3, #40] @ movhi
|
||
2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
4243 .loc 1 2641 11
|
||
4244 014e FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 122
|
||
|
||
|
||
4245 0150 5B8D ldrh r3, [r3, #42] @ movhi
|
||
4246 0152 9BB2 uxth r3, r3
|
||
4247 .loc 1 2641 22
|
||
4248 0154 013B subs r3, r3, #1
|
||
4249 0156 9AB2 uxth r2, r3
|
||
4250 0158 FB68 ldr r3, [r7, #12]
|
||
4251 015a 5A85 strh r2, [r3, #42] @ movhi
|
||
2642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
|
||
4252 .loc 1 2643 16
|
||
4253 015c FB68 ldr r3, [r7, #12]
|
||
4254 015e 5B8D ldrh r3, [r3, #42] @ movhi
|
||
4255 0160 9BB2 uxth r3, r3
|
||
4256 .loc 1 2643 10
|
||
4257 0162 002B cmp r3, #0
|
||
4258 0164 34D0 beq .L194
|
||
4259 .loc 1 2643 43 discriminator 1
|
||
4260 0166 FB68 ldr r3, [r7, #12]
|
||
4261 0168 1B8D ldrh r3, [r3, #40]
|
||
4262 .loc 1 2643 35 discriminator 1
|
||
4263 016a 002B cmp r3, #0
|
||
4264 016c 30D1 bne .L194
|
||
2644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
|
||
2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
|
||
4265 .loc 1 2646 13
|
||
4266 016e 7B69 ldr r3, [r7, #20]
|
||
4267 0170 0093 str r3, [sp]
|
||
4268 0172 BB6A ldr r3, [r7, #40]
|
||
4269 0174 0022 movs r2, #0
|
||
4270 0176 8021 movs r1, #128
|
||
4271 0178 F868 ldr r0, [r7, #12]
|
||
4272 017a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
4273 017e 0346 mov r3, r0
|
||
4274 .loc 1 2646 12 discriminator 1
|
||
4275 0180 002B cmp r3, #0
|
||
4276 0182 01D0 beq .L195
|
||
2647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
4277 .loc 1 2648 18
|
||
4278 0184 0123 movs r3, #1
|
||
4279 0186 4DE0 b .L187
|
||
4280 .L195:
|
||
2649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
4281 .loc 1 2651 17
|
||
4282 0188 FB68 ldr r3, [r7, #12]
|
||
4283 018a 5B8D ldrh r3, [r3, #42] @ movhi
|
||
4284 018c 9BB2 uxth r3, r3
|
||
4285 .loc 1 2651 12
|
||
4286 018e FF2B cmp r3, #255
|
||
4287 0190 0ED9 bls .L196
|
||
2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
4288 .loc 1 2653 26
|
||
4289 0192 FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 123
|
||
|
||
|
||
4290 0194 FF22 movs r2, #255
|
||
4291 0196 1A85 strh r2, [r3, #40] @ movhi
|
||
2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
|
||
4292 .loc 1 2654 62
|
||
4293 0198 FB68 ldr r3, [r7, #12]
|
||
4294 019a 1B8D ldrh r3, [r3, #40]
|
||
4295 .loc 1 2654 11
|
||
4296 019c DAB2 uxtb r2, r3
|
||
4297 019e 7989 ldrh r1, [r7, #10]
|
||
4298 01a0 0023 movs r3, #0
|
||
4299 01a2 0093 str r3, [sp]
|
||
4300 01a4 4FF08073 mov r3, #16777216
|
||
4301 01a8 F868 ldr r0, [r7, #12]
|
||
4302 01aa FFF7FEFF bl I2C_TransferConfig
|
||
4303 01ae 0FE0 b .L194
|
||
4304 .L196:
|
||
2655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
|
||
2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
4305 .loc 1 2659 32
|
||
4306 01b0 FB68 ldr r3, [r7, #12]
|
||
4307 01b2 5B8D ldrh r3, [r3, #42] @ movhi
|
||
4308 01b4 9AB2 uxth r2, r3
|
||
4309 .loc 1 2659 26
|
||
4310 01b6 FB68 ldr r3, [r7, #12]
|
||
4311 01b8 1A85 strh r2, [r3, #40] @ movhi
|
||
2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
|
||
4312 .loc 1 2660 61
|
||
4313 01ba FB68 ldr r3, [r7, #12]
|
||
4314 01bc 1B8D ldrh r3, [r3, #40]
|
||
4315 .loc 1 2660 11
|
||
4316 01be DAB2 uxtb r2, r3
|
||
4317 01c0 7989 ldrh r1, [r7, #10]
|
||
4318 01c2 0023 movs r3, #0
|
||
4319 01c4 0093 str r3, [sp]
|
||
4320 01c6 4FF00073 mov r3, #33554432
|
||
4321 01ca F868 ldr r0, [r7, #12]
|
||
4322 01cc FFF7FEFF bl I2C_TransferConfig
|
||
4323 .L194:
|
||
2661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
|
||
2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (hi2c->XferCount > 0U);
|
||
4324 .loc 1 2664 18
|
||
4325 01d0 FB68 ldr r3, [r7, #12]
|
||
4326 01d2 5B8D ldrh r3, [r3, #42] @ movhi
|
||
4327 01d4 9BB2 uxth r3, r3
|
||
4328 .loc 1 2664 30
|
||
4329 01d6 002B cmp r3, #0
|
||
4330 01d8 9AD1 bne .L197
|
||
2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
|
||
2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
|
||
2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
|
||
4331 .loc 1 2668 9
|
||
ARM GAS /tmp/cc5G5cqz.s page 124
|
||
|
||
|
||
4332 01da 7A69 ldr r2, [r7, #20]
|
||
4333 01dc B96A ldr r1, [r7, #40]
|
||
4334 01de F868 ldr r0, [r7, #12]
|
||
4335 01e0 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
|
||
4336 01e4 0346 mov r3, r0
|
||
4337 .loc 1 2668 8 discriminator 1
|
||
4338 01e6 002B cmp r3, #0
|
||
4339 01e8 01D0 beq .L198
|
||
2669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
4340 .loc 1 2670 14
|
||
4341 01ea 0123 movs r3, #1
|
||
4342 01ec 1AE0 b .L187
|
||
4343 .L198:
|
||
2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
|
||
2674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
4344 .loc 1 2674 5
|
||
4345 01ee FB68 ldr r3, [r7, #12]
|
||
4346 01f0 1B68 ldr r3, [r3]
|
||
4347 01f2 2022 movs r2, #32
|
||
4348 01f4 DA61 str r2, [r3, #28]
|
||
2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
|
||
2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
|
||
4349 .loc 1 2677 5
|
||
4350 01f6 FB68 ldr r3, [r7, #12]
|
||
4351 01f8 1B68 ldr r3, [r3]
|
||
4352 01fa 5968 ldr r1, [r3, #4]
|
||
4353 01fc FB68 ldr r3, [r7, #12]
|
||
4354 01fe 1A68 ldr r2, [r3]
|
||
4355 0200 0B4B ldr r3, .L199+4
|
||
4356 0202 0B40 ands r3, r3, r1
|
||
4357 0204 5360 str r3, [r2, #4]
|
||
2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
4358 .loc 1 2679 17
|
||
4359 0206 FB68 ldr r3, [r7, #12]
|
||
4360 0208 2022 movs r2, #32
|
||
4361 020a 83F84120 strb r2, [r3, #65]
|
||
2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
4362 .loc 1 2680 17
|
||
4363 020e FB68 ldr r3, [r7, #12]
|
||
4364 0210 0022 movs r2, #0
|
||
4365 0212 83F84220 strb r2, [r3, #66]
|
||
2681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
4366 .loc 1 2683 5
|
||
4367 0216 FB68 ldr r3, [r7, #12]
|
||
4368 0218 0022 movs r2, #0
|
||
4369 021a 83F84020 strb r2, [r3, #64]
|
||
2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
4370 .loc 1 2685 12
|
||
4371 021e 0023 movs r3, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 125
|
||
|
||
|
||
4372 0220 00E0 b .L187
|
||
4373 .L184:
|
||
2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
4374 .loc 1 2689 12
|
||
4375 0222 0223 movs r3, #2
|
||
4376 .L187:
|
||
2690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4377 .loc 1 2691 1
|
||
4378 0224 1846 mov r0, r3
|
||
4379 0226 1837 adds r7, r7, #24
|
||
4380 .cfi_def_cfa_offset 8
|
||
4381 0228 BD46 mov sp, r7
|
||
4382 .cfi_def_cfa_register 13
|
||
4383 @ sp needed
|
||
4384 022a 80BD pop {r7, pc}
|
||
4385 .L200:
|
||
4386 .align 2
|
||
4387 .L199:
|
||
4388 022c 00240080 .word -2147474432
|
||
4389 0230 00E800FE .word -33495040
|
||
4390 .cfi_endproc
|
||
4391 .LFE147:
|
||
4393 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits
|
||
4394 .align 1
|
||
4395 .global HAL_I2C_Mem_Write_IT
|
||
4396 .syntax unified
|
||
4397 .thumb
|
||
4398 .thumb_func
|
||
4400 HAL_I2C_Mem_Write_IT:
|
||
4401 .LFB148:
|
||
2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres
|
||
2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
2695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
|
||
2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
|
||
2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
2702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
2703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
2704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd
|
||
2705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
|
||
2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4402 .loc 1 2706 1
|
||
4403 .cfi_startproc
|
||
4404 @ args = 8, pretend = 0, frame = 16
|
||
4405 @ frame_needed = 1, uses_anonymous_args = 0
|
||
4406 0000 80B5 push {r7, lr}
|
||
4407 .cfi_def_cfa_offset 8
|
||
4408 .cfi_offset 7, -8
|
||
4409 .cfi_offset 14, -4
|
||
ARM GAS /tmp/cc5G5cqz.s page 126
|
||
|
||
|
||
4410 0002 86B0 sub sp, sp, #24
|
||
4411 .cfi_def_cfa_offset 32
|
||
4412 0004 02AF add r7, sp, #8
|
||
4413 .cfi_def_cfa 7, 24
|
||
4414 0006 F860 str r0, [r7, #12]
|
||
4415 0008 0846 mov r0, r1
|
||
4416 000a 1146 mov r1, r2
|
||
4417 000c 1A46 mov r2, r3
|
||
4418 000e 0346 mov r3, r0 @ movhi
|
||
4419 0010 7B81 strh r3, [r7, #10] @ movhi
|
||
4420 0012 0B46 mov r3, r1 @ movhi
|
||
4421 0014 3B81 strh r3, [r7, #8] @ movhi
|
||
4422 0016 1346 mov r3, r2 @ movhi
|
||
4423 0018 FB80 strh r3, [r7, #6] @ movhi
|
||
2707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
|
||
2709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
4424 .loc 1 2710 11
|
||
4425 001a FB68 ldr r3, [r7, #12]
|
||
4426 001c 93F84130 ldrb r3, [r3, #65]
|
||
4427 0020 DBB2 uxtb r3, r3
|
||
4428 .loc 1 2710 6
|
||
4429 0022 202B cmp r3, #32
|
||
4430 0024 67D1 bne .L202
|
||
2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
|
||
4431 .loc 1 2712 8
|
||
4432 0026 BB69 ldr r3, [r7, #24]
|
||
4433 0028 002B cmp r3, #0
|
||
4434 002a 02D0 beq .L203
|
||
4435 .loc 1 2712 25 discriminator 1
|
||
4436 002c BB8B ldrh r3, [r7, #28]
|
||
4437 002e 002B cmp r3, #0
|
||
4438 0030 05D1 bne .L204
|
||
4439 .L203:
|
||
2713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
|
||
4440 .loc 1 2714 23
|
||
4441 0032 FB68 ldr r3, [r7, #12]
|
||
4442 0034 4FF40072 mov r2, #512
|
||
4443 0038 5A64 str r2, [r3, #68]
|
||
2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
4444 .loc 1 2715 15
|
||
4445 003a 0123 movs r3, #1
|
||
4446 003c 5CE0 b .L205
|
||
4447 .L204:
|
||
2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
|
||
4448 .loc 1 2718 9
|
||
4449 003e FB68 ldr r3, [r7, #12]
|
||
4450 0040 1B68 ldr r3, [r3]
|
||
4451 0042 9B69 ldr r3, [r3, #24]
|
||
4452 0044 03F40043 and r3, r3, #32768
|
||
4453 .loc 1 2718 8
|
||
4454 0048 B3F5004F cmp r3, #32768
|
||
ARM GAS /tmp/cc5G5cqz.s page 127
|
||
|
||
|
||
4455 004c 01D1 bne .L206
|
||
2719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
4456 .loc 1 2720 14
|
||
4457 004e 0223 movs r3, #2
|
||
4458 0050 52E0 b .L205
|
||
4459 .L206:
|
||
2721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
4460 .loc 1 2724 5
|
||
4461 0052 FB68 ldr r3, [r7, #12]
|
||
4462 0054 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
4463 0058 012B cmp r3, #1
|
||
4464 005a 01D1 bne .L207
|
||
4465 .loc 1 2724 5 is_stmt 0 discriminator 1
|
||
4466 005c 0223 movs r3, #2
|
||
4467 .loc 1 2724 5
|
||
4468 005e 4BE0 b .L205
|
||
4469 .L207:
|
||
4470 .loc 1 2724 5 discriminator 2
|
||
4471 0060 FB68 ldr r3, [r7, #12]
|
||
4472 0062 0122 movs r2, #1
|
||
4473 0064 83F84020 strb r2, [r3, #64]
|
||
2725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
|
||
4474 .loc 1 2726 23 is_stmt 1
|
||
4475 0068 FB68 ldr r3, [r7, #12]
|
||
4476 006a 2122 movs r2, #33
|
||
4477 006c 83F84120 strb r2, [r3, #65]
|
||
2727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
|
||
4478 .loc 1 2727 23
|
||
4479 0070 FB68 ldr r3, [r7, #12]
|
||
4480 0072 4022 movs r2, #64
|
||
4481 0074 83F84220 strb r2, [r3, #66]
|
||
2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
4482 .loc 1 2728 23
|
||
4483 0078 FB68 ldr r3, [r7, #12]
|
||
4484 007a 0022 movs r2, #0
|
||
4485 007c 5A64 str r2, [r3, #68]
|
||
2729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
4486 .loc 1 2731 23
|
||
4487 007e FB68 ldr r3, [r7, #12]
|
||
4488 0080 BA69 ldr r2, [r7, #24]
|
||
4489 0082 5A62 str r2, [r3, #36]
|
||
2732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
4490 .loc 1 2732 23
|
||
4491 0084 FB68 ldr r3, [r7, #12]
|
||
4492 0086 BA8B ldrh r2, [r7, #28] @ movhi
|
||
4493 0088 5A85 strh r2, [r3, #42] @ movhi
|
||
2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
4494 .loc 1 2733 23
|
||
4495 008a FB68 ldr r3, [r7, #12]
|
||
4496 008c 1C4A ldr r2, .L210
|
||
ARM GAS /tmp/cc5G5cqz.s page 128
|
||
|
||
|
||
4497 008e DA62 str r2, [r3, #44]
|
||
2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
|
||
4498 .loc 1 2734 23
|
||
4499 0090 FB68 ldr r3, [r7, #12]
|
||
4500 0092 1C4A ldr r2, .L210+4
|
||
4501 0094 5A63 str r2, [r3, #52]
|
||
2735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
|
||
4502 .loc 1 2735 23
|
||
4503 0096 7A89 ldrh r2, [r7, #10]
|
||
4504 0098 FB68 ldr r3, [r7, #12]
|
||
4505 009a DA64 str r2, [r3, #76]
|
||
2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
|
||
2738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
|
||
4506 .loc 1 2738 8
|
||
4507 009c FB88 ldrh r3, [r7, #6]
|
||
4508 009e 012B cmp r3, #1
|
||
4509 00a0 09D1 bne .L208
|
||
2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
|
||
2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
|
||
4510 .loc 1 2741 30
|
||
4511 00a2 3B89 ldrh r3, [r7, #8] @ movhi
|
||
4512 00a4 DAB2 uxtb r2, r3
|
||
4513 .loc 1 2741 11
|
||
4514 00a6 FB68 ldr r3, [r7, #12]
|
||
4515 00a8 1B68 ldr r3, [r3]
|
||
4516 .loc 1 2741 28
|
||
4517 00aa 9A62 str r2, [r3, #40]
|
||
2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
|
||
2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
|
||
4518 .loc 1 2744 24
|
||
4519 00ac FB68 ldr r3, [r7, #12]
|
||
4520 00ae 4FF0FF32 mov r2, #-1
|
||
4521 00b2 1A65 str r2, [r3, #80]
|
||
4522 00b4 0BE0 b .L209
|
||
4523 .L208:
|
||
2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
|
||
2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
|
||
2750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
|
||
4524 .loc 1 2750 30
|
||
4525 00b6 3B89 ldrh r3, [r7, #8]
|
||
4526 00b8 1B0A lsrs r3, r3, #8
|
||
4527 00ba 9BB2 uxth r3, r3
|
||
4528 00bc DAB2 uxtb r2, r3
|
||
4529 .loc 1 2750 11
|
||
4530 00be FB68 ldr r3, [r7, #12]
|
||
4531 00c0 1B68 ldr r3, [r3]
|
||
4532 .loc 1 2750 28
|
||
4533 00c2 9A62 str r2, [r3, #40]
|
||
2751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
|
||
2753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
|
||
ARM GAS /tmp/cc5G5cqz.s page 129
|
||
|
||
|
||
4534 .loc 1 2753 26
|
||
4535 00c4 3B89 ldrh r3, [r7, #8] @ movhi
|
||
4536 00c6 DBB2 uxtb r3, r3
|
||
4537 00c8 1A46 mov r2, r3
|
||
4538 .loc 1 2753 24
|
||
4539 00ca FB68 ldr r3, [r7, #12]
|
||
4540 00cc 1A65 str r2, [r3, #80]
|
||
4541 .L209:
|
||
2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
|
||
2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_W
|
||
4542 .loc 1 2756 5
|
||
4543 00ce FB88 ldrh r3, [r7, #6] @ movhi
|
||
4544 00d0 DAB2 uxtb r2, r3
|
||
4545 00d2 7989 ldrh r1, [r7, #10]
|
||
4546 00d4 0C4B ldr r3, .L210+8
|
||
4547 00d6 0093 str r3, [sp]
|
||
4548 00d8 4FF08073 mov r3, #16777216
|
||
4549 00dc F868 ldr r0, [r7, #12]
|
||
4550 00de FFF7FEFF bl I2C_TransferConfig
|
||
2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
4551 .loc 1 2759 5
|
||
4552 00e2 FB68 ldr r3, [r7, #12]
|
||
4553 00e4 0022 movs r2, #0
|
||
4554 00e6 83F84020 strb r2, [r3, #64]
|
||
2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
2762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
2763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
|
||
2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
|
||
2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
|
||
2768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
|
||
2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
4555 .loc 1 2769 5
|
||
4556 00ea 0121 movs r1, #1
|
||
4557 00ec F868 ldr r0, [r7, #12]
|
||
4558 00ee FFF7FEFF bl I2C_Enable_IRQ
|
||
2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
4559 .loc 1 2771 12
|
||
4560 00f2 0023 movs r3, #0
|
||
4561 00f4 00E0 b .L205
|
||
4562 .L202:
|
||
2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
4563 .loc 1 2775 12
|
||
4564 00f6 0223 movs r3, #2
|
||
4565 .L205:
|
||
2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4566 .loc 1 2777 1
|
||
ARM GAS /tmp/cc5G5cqz.s page 130
|
||
|
||
|
||
4567 00f8 1846 mov r0, r3
|
||
4568 00fa 1037 adds r7, r7, #16
|
||
4569 .cfi_def_cfa_offset 8
|
||
4570 00fc BD46 mov sp, r7
|
||
4571 .cfi_def_cfa_register 13
|
||
4572 @ sp needed
|
||
4573 00fe 80BD pop {r7, pc}
|
||
4574 .L211:
|
||
4575 .align 2
|
||
4576 .L210:
|
||
4577 0100 0000FFFF .word -65536
|
||
4578 0104 00000000 .word I2C_Mem_ISR_IT
|
||
4579 0108 00200080 .word -2147475456
|
||
4580 .cfi_endproc
|
||
4581 .LFE148:
|
||
4583 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits
|
||
4584 .align 1
|
||
4585 .global HAL_I2C_Mem_Read_IT
|
||
4586 .syntax unified
|
||
4587 .thumb
|
||
4588 .thumb_func
|
||
4590 HAL_I2C_Mem_Read_IT:
|
||
4591 .LFB149:
|
||
2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre
|
||
2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
|
||
2786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
|
||
2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
2788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
2791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd
|
||
2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
|
||
2793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4592 .loc 1 2793 1
|
||
4593 .cfi_startproc
|
||
4594 @ args = 8, pretend = 0, frame = 16
|
||
4595 @ frame_needed = 1, uses_anonymous_args = 0
|
||
4596 0000 80B5 push {r7, lr}
|
||
4597 .cfi_def_cfa_offset 8
|
||
4598 .cfi_offset 7, -8
|
||
4599 .cfi_offset 14, -4
|
||
4600 0002 86B0 sub sp, sp, #24
|
||
4601 .cfi_def_cfa_offset 32
|
||
4602 0004 02AF add r7, sp, #8
|
||
4603 .cfi_def_cfa 7, 24
|
||
4604 0006 F860 str r0, [r7, #12]
|
||
4605 0008 0846 mov r0, r1
|
||
4606 000a 1146 mov r1, r2
|
||
4607 000c 1A46 mov r2, r3
|
||
4608 000e 0346 mov r3, r0 @ movhi
|
||
4609 0010 7B81 strh r3, [r7, #10] @ movhi
|
||
ARM GAS /tmp/cc5G5cqz.s page 131
|
||
|
||
|
||
4610 0012 0B46 mov r3, r1 @ movhi
|
||
4611 0014 3B81 strh r3, [r7, #8] @ movhi
|
||
4612 0016 1346 mov r3, r2 @ movhi
|
||
4613 0018 FB80 strh r3, [r7, #6] @ movhi
|
||
2794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
2795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
|
||
2796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
4614 .loc 1 2797 11
|
||
4615 001a FB68 ldr r3, [r7, #12]
|
||
4616 001c 93F84130 ldrb r3, [r3, #65]
|
||
4617 0020 DBB2 uxtb r3, r3
|
||
4618 .loc 1 2797 6
|
||
4619 0022 202B cmp r3, #32
|
||
4620 0024 66D1 bne .L213
|
||
2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
|
||
4621 .loc 1 2799 8
|
||
4622 0026 BB69 ldr r3, [r7, #24]
|
||
4623 0028 002B cmp r3, #0
|
||
4624 002a 02D0 beq .L214
|
||
4625 .loc 1 2799 25 discriminator 1
|
||
4626 002c BB8B ldrh r3, [r7, #28]
|
||
4627 002e 002B cmp r3, #0
|
||
4628 0030 05D1 bne .L215
|
||
4629 .L214:
|
||
2800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
|
||
4630 .loc 1 2801 23
|
||
4631 0032 FB68 ldr r3, [r7, #12]
|
||
4632 0034 4FF40072 mov r2, #512
|
||
4633 0038 5A64 str r2, [r3, #68]
|
||
2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
4634 .loc 1 2802 15
|
||
4635 003a 0123 movs r3, #1
|
||
4636 003c 5BE0 b .L216
|
||
4637 .L215:
|
||
2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
|
||
4638 .loc 1 2805 9
|
||
4639 003e FB68 ldr r3, [r7, #12]
|
||
4640 0040 1B68 ldr r3, [r3]
|
||
4641 0042 9B69 ldr r3, [r3, #24]
|
||
4642 0044 03F40043 and r3, r3, #32768
|
||
4643 .loc 1 2805 8
|
||
4644 0048 B3F5004F cmp r3, #32768
|
||
4645 004c 01D1 bne .L217
|
||
2806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
4646 .loc 1 2807 14
|
||
4647 004e 0223 movs r3, #2
|
||
4648 0050 51E0 b .L216
|
||
4649 .L217:
|
||
2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
ARM GAS /tmp/cc5G5cqz.s page 132
|
||
|
||
|
||
2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
4650 .loc 1 2811 5
|
||
4651 0052 FB68 ldr r3, [r7, #12]
|
||
4652 0054 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
4653 0058 012B cmp r3, #1
|
||
4654 005a 01D1 bne .L218
|
||
4655 .loc 1 2811 5 is_stmt 0 discriminator 1
|
||
4656 005c 0223 movs r3, #2
|
||
4657 .loc 1 2811 5
|
||
4658 005e 4AE0 b .L216
|
||
4659 .L218:
|
||
4660 .loc 1 2811 5 discriminator 2
|
||
4661 0060 FB68 ldr r3, [r7, #12]
|
||
4662 0062 0122 movs r2, #1
|
||
4663 0064 83F84020 strb r2, [r3, #64]
|
||
2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
|
||
4664 .loc 1 2813 23 is_stmt 1
|
||
4665 0068 FB68 ldr r3, [r7, #12]
|
||
4666 006a 2222 movs r2, #34
|
||
4667 006c 83F84120 strb r2, [r3, #65]
|
||
2814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
|
||
4668 .loc 1 2814 23
|
||
4669 0070 FB68 ldr r3, [r7, #12]
|
||
4670 0072 4022 movs r2, #64
|
||
4671 0074 83F84220 strb r2, [r3, #66]
|
||
2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
4672 .loc 1 2815 23
|
||
4673 0078 FB68 ldr r3, [r7, #12]
|
||
4674 007a 0022 movs r2, #0
|
||
4675 007c 5A64 str r2, [r3, #68]
|
||
2816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
2818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
4676 .loc 1 2818 23
|
||
4677 007e FB68 ldr r3, [r7, #12]
|
||
4678 0080 BA69 ldr r2, [r7, #24]
|
||
4679 0082 5A62 str r2, [r3, #36]
|
||
2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
4680 .loc 1 2819 23
|
||
4681 0084 FB68 ldr r3, [r7, #12]
|
||
4682 0086 BA8B ldrh r2, [r7, #28] @ movhi
|
||
4683 0088 5A85 strh r2, [r3, #42] @ movhi
|
||
2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
4684 .loc 1 2820 23
|
||
4685 008a FB68 ldr r3, [r7, #12]
|
||
4686 008c 1C4A ldr r2, .L221
|
||
4687 008e DA62 str r2, [r3, #44]
|
||
2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
|
||
4688 .loc 1 2821 23
|
||
4689 0090 FB68 ldr r3, [r7, #12]
|
||
4690 0092 1C4A ldr r2, .L221+4
|
||
4691 0094 5A63 str r2, [r3, #52]
|
||
2822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
|
||
4692 .loc 1 2822 23
|
||
4693 0096 7A89 ldrh r2, [r7, #10]
|
||
4694 0098 FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 133
|
||
|
||
|
||
4695 009a DA64 str r2, [r3, #76]
|
||
2823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
|
||
2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
|
||
4696 .loc 1 2825 8
|
||
4697 009c FB88 ldrh r3, [r7, #6]
|
||
4698 009e 012B cmp r3, #1
|
||
4699 00a0 09D1 bne .L219
|
||
2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
|
||
2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
|
||
4700 .loc 1 2828 30
|
||
4701 00a2 3B89 ldrh r3, [r7, #8] @ movhi
|
||
4702 00a4 DAB2 uxtb r2, r3
|
||
4703 .loc 1 2828 11
|
||
4704 00a6 FB68 ldr r3, [r7, #12]
|
||
4705 00a8 1B68 ldr r3, [r3]
|
||
4706 .loc 1 2828 28
|
||
4707 00aa 9A62 str r2, [r3, #40]
|
||
2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
|
||
2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
|
||
4708 .loc 1 2831 24
|
||
4709 00ac FB68 ldr r3, [r7, #12]
|
||
4710 00ae 4FF0FF32 mov r2, #-1
|
||
4711 00b2 1A65 str r2, [r3, #80]
|
||
4712 00b4 0BE0 b .L220
|
||
4713 .L219:
|
||
2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
|
||
2834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
|
||
2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
|
||
4714 .loc 1 2837 30
|
||
4715 00b6 3B89 ldrh r3, [r7, #8]
|
||
4716 00b8 1B0A lsrs r3, r3, #8
|
||
4717 00ba 9BB2 uxth r3, r3
|
||
4718 00bc DAB2 uxtb r2, r3
|
||
4719 .loc 1 2837 11
|
||
4720 00be FB68 ldr r3, [r7, #12]
|
||
4721 00c0 1B68 ldr r3, [r3]
|
||
4722 .loc 1 2837 28
|
||
4723 00c2 9A62 str r2, [r3, #40]
|
||
2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
|
||
2840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
|
||
4724 .loc 1 2840 26
|
||
4725 00c4 3B89 ldrh r3, [r7, #8] @ movhi
|
||
4726 00c6 DBB2 uxtb r3, r3
|
||
4727 00c8 1A46 mov r2, r3
|
||
4728 .loc 1 2840 24
|
||
4729 00ca FB68 ldr r3, [r7, #12]
|
||
4730 00cc 1A65 str r2, [r3, #80]
|
||
4731 .L220:
|
||
2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
|
||
ARM GAS /tmp/cc5G5cqz.s page 134
|
||
|
||
|
||
2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_
|
||
4732 .loc 1 2843 5
|
||
4733 00ce FB88 ldrh r3, [r7, #6] @ movhi
|
||
4734 00d0 DAB2 uxtb r2, r3
|
||
4735 00d2 7989 ldrh r1, [r7, #10]
|
||
4736 00d4 0C4B ldr r3, .L221+8
|
||
4737 00d6 0093 str r3, [sp]
|
||
4738 00d8 0023 movs r3, #0
|
||
4739 00da F868 ldr r0, [r7, #12]
|
||
4740 00dc FFF7FEFF bl I2C_TransferConfig
|
||
2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
4741 .loc 1 2846 5
|
||
4742 00e0 FB68 ldr r3, [r7, #12]
|
||
4743 00e2 0022 movs r2, #0
|
||
4744 00e4 83F84020 strb r2, [r3, #64]
|
||
2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
2849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
2851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
|
||
2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
|
||
2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
|
||
2855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
|
||
2856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, (I2C_XFER_TX_IT | I2C_XFER_RX_IT));
|
||
4745 .loc 1 2856 5
|
||
4746 00e8 0321 movs r1, #3
|
||
4747 00ea F868 ldr r0, [r7, #12]
|
||
4748 00ec FFF7FEFF bl I2C_Enable_IRQ
|
||
2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
4749 .loc 1 2858 12
|
||
4750 00f0 0023 movs r3, #0
|
||
4751 00f2 00E0 b .L216
|
||
4752 .L213:
|
||
2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
4753 .loc 1 2862 12
|
||
4754 00f4 0223 movs r3, #2
|
||
4755 .L216:
|
||
2863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4756 .loc 1 2864 1
|
||
4757 00f6 1846 mov r0, r3
|
||
4758 00f8 1037 adds r7, r7, #16
|
||
4759 .cfi_def_cfa_offset 8
|
||
4760 00fa BD46 mov sp, r7
|
||
4761 .cfi_def_cfa_register 13
|
||
4762 @ sp needed
|
||
4763 00fc 80BD pop {r7, pc}
|
||
4764 .L222:
|
||
4765 00fe 00BF .align 2
|
||
4766 .L221:
|
||
ARM GAS /tmp/cc5G5cqz.s page 135
|
||
|
||
|
||
4767 0100 0000FFFF .word -65536
|
||
4768 0104 00000000 .word I2C_Mem_ISR_IT
|
||
4769 0108 00200080 .word -2147475456
|
||
4770 .cfi_endproc
|
||
4771 .LFE149:
|
||
4773 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits
|
||
4774 .align 1
|
||
4775 .global HAL_I2C_Mem_Write_DMA
|
||
4776 .syntax unified
|
||
4777 .thumb
|
||
4778 .thumb_func
|
||
4780 HAL_I2C_Mem_Write_DMA:
|
||
4781 .LFB150:
|
||
2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
2867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address
|
||
2868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
2870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
2871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
2872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
|
||
2873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
|
||
2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
2875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
2876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
2877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA
|
||
2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
|
||
2880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4782 .loc 1 2880 1
|
||
4783 .cfi_startproc
|
||
4784 @ args = 8, pretend = 0, frame = 24
|
||
4785 @ frame_needed = 1, uses_anonymous_args = 0
|
||
4786 0000 80B5 push {r7, lr}
|
||
4787 .cfi_def_cfa_offset 8
|
||
4788 .cfi_offset 7, -8
|
||
4789 .cfi_offset 14, -4
|
||
4790 0002 88B0 sub sp, sp, #32
|
||
4791 .cfi_def_cfa_offset 40
|
||
4792 0004 02AF add r7, sp, #8
|
||
4793 .cfi_def_cfa 7, 32
|
||
4794 0006 F860 str r0, [r7, #12]
|
||
4795 0008 0846 mov r0, r1
|
||
4796 000a 1146 mov r1, r2
|
||
4797 000c 1A46 mov r2, r3
|
||
4798 000e 0346 mov r3, r0 @ movhi
|
||
4799 0010 7B81 strh r3, [r7, #10] @ movhi
|
||
4800 0012 0B46 mov r3, r1 @ movhi
|
||
4801 0014 3B81 strh r3, [r7, #8] @ movhi
|
||
4802 0016 1346 mov r3, r2 @ movhi
|
||
4803 0018 FB80 strh r3, [r7, #6] @ movhi
|
||
2881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
|
||
2882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
2884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
|
||
2885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
ARM GAS /tmp/cc5G5cqz.s page 136
|
||
|
||
|
||
4804 .loc 1 2886 11
|
||
4805 001a FB68 ldr r3, [r7, #12]
|
||
4806 001c 93F84130 ldrb r3, [r3, #65]
|
||
4807 0020 DBB2 uxtb r3, r3
|
||
4808 .loc 1 2886 6
|
||
4809 0022 202B cmp r3, #32
|
||
4810 0024 40F0C380 bne .L224
|
||
2887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
|
||
4811 .loc 1 2888 8
|
||
4812 0028 3B6A ldr r3, [r7, #32]
|
||
4813 002a 002B cmp r3, #0
|
||
4814 002c 02D0 beq .L225
|
||
4815 .loc 1 2888 25 discriminator 1
|
||
4816 002e BB8C ldrh r3, [r7, #36]
|
||
4817 0030 002B cmp r3, #0
|
||
4818 0032 05D1 bne .L226
|
||
4819 .L225:
|
||
2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
|
||
4820 .loc 1 2890 23
|
||
4821 0034 FB68 ldr r3, [r7, #12]
|
||
4822 0036 4FF40072 mov r2, #512
|
||
4823 003a 5A64 str r2, [r3, #68]
|
||
2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
4824 .loc 1 2891 15
|
||
4825 003c 0123 movs r3, #1
|
||
4826 003e B7E0 b .L227
|
||
4827 .L226:
|
||
2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
|
||
4828 .loc 1 2894 9
|
||
4829 0040 FB68 ldr r3, [r7, #12]
|
||
4830 0042 1B68 ldr r3, [r3]
|
||
4831 0044 9B69 ldr r3, [r3, #24]
|
||
4832 0046 03F40043 and r3, r3, #32768
|
||
4833 .loc 1 2894 8
|
||
4834 004a B3F5004F cmp r3, #32768
|
||
4835 004e 01D1 bne .L228
|
||
2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
4836 .loc 1 2896 14
|
||
4837 0050 0223 movs r3, #2
|
||
4838 0052 ADE0 b .L227
|
||
4839 .L228:
|
||
2897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
2900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
4840 .loc 1 2900 5
|
||
4841 0054 FB68 ldr r3, [r7, #12]
|
||
4842 0056 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
4843 005a 012B cmp r3, #1
|
||
4844 005c 01D1 bne .L229
|
||
4845 .loc 1 2900 5 is_stmt 0 discriminator 1
|
||
4846 005e 0223 movs r3, #2
|
||
ARM GAS /tmp/cc5G5cqz.s page 137
|
||
|
||
|
||
4847 .loc 1 2900 5
|
||
4848 0060 A6E0 b .L227
|
||
4849 .L229:
|
||
4850 .loc 1 2900 5 discriminator 2
|
||
4851 0062 FB68 ldr r3, [r7, #12]
|
||
4852 0064 0122 movs r2, #1
|
||
4853 0066 83F84020 strb r2, [r3, #64]
|
||
2901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
|
||
4854 .loc 1 2902 23 is_stmt 1
|
||
4855 006a FB68 ldr r3, [r7, #12]
|
||
4856 006c 2122 movs r2, #33
|
||
4857 006e 83F84120 strb r2, [r3, #65]
|
||
2903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
|
||
4858 .loc 1 2903 23
|
||
4859 0072 FB68 ldr r3, [r7, #12]
|
||
4860 0074 4022 movs r2, #64
|
||
4861 0076 83F84220 strb r2, [r3, #66]
|
||
2904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
4862 .loc 1 2904 23
|
||
4863 007a FB68 ldr r3, [r7, #12]
|
||
4864 007c 0022 movs r2, #0
|
||
4865 007e 5A64 str r2, [r3, #68]
|
||
2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
4866 .loc 1 2907 23
|
||
4867 0080 FB68 ldr r3, [r7, #12]
|
||
4868 0082 3A6A ldr r2, [r7, #32]
|
||
4869 0084 5A62 str r2, [r3, #36]
|
||
2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
4870 .loc 1 2908 23
|
||
4871 0086 FB68 ldr r3, [r7, #12]
|
||
4872 0088 BA8C ldrh r2, [r7, #36] @ movhi
|
||
4873 008a 5A85 strh r2, [r3, #42] @ movhi
|
||
2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
4874 .loc 1 2909 23
|
||
4875 008c FB68 ldr r3, [r7, #12]
|
||
4876 008e 4A4A ldr r2, .L239
|
||
4877 0090 DA62 str r2, [r3, #44]
|
||
2910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
|
||
4878 .loc 1 2910 23
|
||
4879 0092 FB68 ldr r3, [r7, #12]
|
||
4880 0094 494A ldr r2, .L239+4
|
||
4881 0096 5A63 str r2, [r3, #52]
|
||
2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
|
||
4882 .loc 1 2911 23
|
||
4883 0098 7A89 ldrh r2, [r7, #10]
|
||
4884 009a FB68 ldr r3, [r7, #12]
|
||
4885 009c DA64 str r2, [r3, #76]
|
||
2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
4886 .loc 1 2913 13
|
||
4887 009e FB68 ldr r3, [r7, #12]
|
||
4888 00a0 5B8D ldrh r3, [r3, #42] @ movhi
|
||
4889 00a2 9BB2 uxth r3, r3
|
||
4890 .loc 1 2913 8
|
||
ARM GAS /tmp/cc5G5cqz.s page 138
|
||
|
||
|
||
4891 00a4 FF2B cmp r3, #255
|
||
4892 00a6 03D9 bls .L230
|
||
2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
4893 .loc 1 2915 22
|
||
4894 00a8 FB68 ldr r3, [r7, #12]
|
||
4895 00aa FF22 movs r2, #255
|
||
4896 00ac 1A85 strh r2, [r3, #40] @ movhi
|
||
4897 00ae 04E0 b .L231
|
||
4898 .L230:
|
||
2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
4899 .loc 1 2919 28
|
||
4900 00b0 FB68 ldr r3, [r7, #12]
|
||
4901 00b2 5B8D ldrh r3, [r3, #42] @ movhi
|
||
4902 00b4 9AB2 uxth r2, r3
|
||
4903 .loc 1 2919 22
|
||
4904 00b6 FB68 ldr r3, [r7, #12]
|
||
4905 00b8 1A85 strh r2, [r3, #40] @ movhi
|
||
4906 .L231:
|
||
2920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
|
||
2923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
|
||
4907 .loc 1 2923 8
|
||
4908 00ba FB88 ldrh r3, [r7, #6]
|
||
4909 00bc 012B cmp r3, #1
|
||
4910 00be 09D1 bne .L232
|
||
2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
|
||
2926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
|
||
4911 .loc 1 2926 30
|
||
4912 00c0 3B89 ldrh r3, [r7, #8] @ movhi
|
||
4913 00c2 DAB2 uxtb r2, r3
|
||
4914 .loc 1 2926 11
|
||
4915 00c4 FB68 ldr r3, [r7, #12]
|
||
4916 00c6 1B68 ldr r3, [r3]
|
||
4917 .loc 1 2926 28
|
||
4918 00c8 9A62 str r2, [r3, #40]
|
||
2927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
|
||
2929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
|
||
4919 .loc 1 2929 24
|
||
4920 00ca FB68 ldr r3, [r7, #12]
|
||
4921 00cc 4FF0FF32 mov r2, #-1
|
||
4922 00d0 1A65 str r2, [r3, #80]
|
||
4923 00d2 0BE0 b .L233
|
||
4924 .L232:
|
||
2930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
|
||
2932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
|
||
2935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
|
||
4925 .loc 1 2935 30
|
||
ARM GAS /tmp/cc5G5cqz.s page 139
|
||
|
||
|
||
4926 00d4 3B89 ldrh r3, [r7, #8]
|
||
4927 00d6 1B0A lsrs r3, r3, #8
|
||
4928 00d8 9BB2 uxth r3, r3
|
||
4929 00da DAB2 uxtb r2, r3
|
||
4930 .loc 1 2935 11
|
||
4931 00dc FB68 ldr r3, [r7, #12]
|
||
4932 00de 1B68 ldr r3, [r3]
|
||
4933 .loc 1 2935 28
|
||
4934 00e0 9A62 str r2, [r3, #40]
|
||
2936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
|
||
2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
|
||
4935 .loc 1 2938 26
|
||
4936 00e2 3B89 ldrh r3, [r7, #8] @ movhi
|
||
4937 00e4 DBB2 uxtb r3, r3
|
||
4938 00e6 1A46 mov r2, r3
|
||
4939 .loc 1 2938 24
|
||
4940 00e8 FB68 ldr r3, [r7, #12]
|
||
4941 00ea 1A65 str r2, [r3, #80]
|
||
4942 .L233:
|
||
2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
|
||
4943 .loc 1 2941 13
|
||
4944 00ec FB68 ldr r3, [r7, #12]
|
||
4945 00ee 9B6B ldr r3, [r3, #56]
|
||
4946 .loc 1 2941 8
|
||
4947 00f0 002B cmp r3, #0
|
||
4948 00f2 20D0 beq .L234
|
||
2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
|
||
2944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
|
||
4949 .loc 1 2944 11
|
||
4950 00f4 FB68 ldr r3, [r7, #12]
|
||
4951 00f6 9B6B ldr r3, [r3, #56]
|
||
4952 .loc 1 2944 38
|
||
4953 00f8 314A ldr r2, .L239+8
|
||
4954 00fa 9A62 str r2, [r3, #40]
|
||
2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
|
||
2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
|
||
4955 .loc 1 2947 11
|
||
4956 00fc FB68 ldr r3, [r7, #12]
|
||
4957 00fe 9B6B ldr r3, [r3, #56]
|
||
4958 .loc 1 2947 39
|
||
4959 0100 304A ldr r2, .L239+12
|
||
4960 0102 1A63 str r2, [r3, #48]
|
||
2948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
|
||
2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
|
||
4961 .loc 1 2950 11
|
||
4962 0104 FB68 ldr r3, [r7, #12]
|
||
4963 0106 9B6B ldr r3, [r3, #56]
|
||
4964 .loc 1 2950 42
|
||
4965 0108 0022 movs r2, #0
|
||
4966 010a DA62 str r2, [r3, #44]
|
||
2951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
|
||
ARM GAS /tmp/cc5G5cqz.s page 140
|
||
|
||
|
||
4967 .loc 1 2951 11
|
||
4968 010c FB68 ldr r3, [r7, #12]
|
||
4969 010e 9B6B ldr r3, [r3, #56]
|
||
4970 .loc 1 2951 39
|
||
4971 0110 0022 movs r2, #0
|
||
4972 0112 5A63 str r2, [r3, #52]
|
||
2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
|
||
2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
|
||
4973 .loc 1 2954 23
|
||
4974 0114 FB68 ldr r3, [r7, #12]
|
||
4975 0116 986B ldr r0, [r3, #56]
|
||
4976 0118 396A ldr r1, [r7, #32]
|
||
4977 .loc 1 2954 86
|
||
4978 011a FB68 ldr r3, [r7, #12]
|
||
4979 011c 1B68 ldr r3, [r3]
|
||
4980 .loc 1 2954 81
|
||
4981 011e 2833 adds r3, r3, #40
|
||
4982 .loc 1 2954 23
|
||
4983 0120 1A46 mov r2, r3
|
||
2955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
4984 .loc 1 2955 44
|
||
4985 0122 FB68 ldr r3, [r7, #12]
|
||
4986 0124 1B8D ldrh r3, [r3, #40]
|
||
2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
4987 .loc 1 2954 23
|
||
4988 0126 FFF7FEFF bl HAL_DMA_Start_IT
|
||
4989 012a 0346 mov r3, r0
|
||
4990 012c FB75 strb r3, [r7, #23]
|
||
2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
2960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
2961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
2962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
|
||
2965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
2968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
2970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
2971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
|
||
4991 .loc 1 2972 8
|
||
4992 012e FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
4993 0130 002B cmp r3, #0
|
||
4994 0132 28D1 bne .L236
|
||
4995 0134 13E0 b .L238
|
||
4996 .L234:
|
||
2960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
4997 .loc 1 2960 23
|
||
4998 0136 FB68 ldr r3, [r7, #12]
|
||
4999 0138 2022 movs r2, #32
|
||
5000 013a 83F84120 strb r2, [r3, #65]
|
||
ARM GAS /tmp/cc5G5cqz.s page 141
|
||
|
||
|
||
2961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5001 .loc 1 2961 23
|
||
5002 013e FB68 ldr r3, [r7, #12]
|
||
5003 0140 0022 movs r2, #0
|
||
5004 0142 83F84220 strb r2, [r3, #66]
|
||
2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5005 .loc 1 2964 11
|
||
5006 0146 FB68 ldr r3, [r7, #12]
|
||
5007 0148 5B6C ldr r3, [r3, #68]
|
||
2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5008 .loc 1 2964 23
|
||
5009 014a 43F08002 orr r2, r3, #128
|
||
5010 014e FB68 ldr r3, [r7, #12]
|
||
5011 0150 5A64 str r2, [r3, #68]
|
||
2967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5012 .loc 1 2967 7
|
||
5013 0152 FB68 ldr r3, [r7, #12]
|
||
5014 0154 0022 movs r2, #0
|
||
5015 0156 83F84020 strb r2, [r3, #64]
|
||
2969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5016 .loc 1 2969 14
|
||
5017 015a 0123 movs r3, #1
|
||
5018 015c 28E0 b .L227
|
||
5019 .L238:
|
||
2973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
|
||
2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START
|
||
5020 .loc 1 2975 7
|
||
5021 015e FB88 ldrh r3, [r7, #6] @ movhi
|
||
5022 0160 DAB2 uxtb r2, r3
|
||
5023 0162 7989 ldrh r1, [r7, #10]
|
||
5024 0164 184B ldr r3, .L239+16
|
||
5025 0166 0093 str r3, [sp]
|
||
5026 0168 4FF08073 mov r3, #16777216
|
||
5027 016c F868 ldr r0, [r7, #12]
|
||
5028 016e FFF7FEFF bl I2C_TransferConfig
|
||
2976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
5029 .loc 1 2978 7
|
||
5030 0172 FB68 ldr r3, [r7, #12]
|
||
5031 0174 0022 movs r2, #0
|
||
5032 0176 83F84020 strb r2, [r3, #64]
|
||
2979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
2981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
2983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
|
||
2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
|
||
2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
|
||
2986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
|
||
2987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
5033 .loc 1 2987 7
|
||
5034 017a 0121 movs r1, #1
|
||
5035 017c F868 ldr r0, [r7, #12]
|
||
5036 017e FFF7FEFF bl I2C_Enable_IRQ
|
||
2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 142
|
||
|
||
|
||
2989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
2990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
2991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
2992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
2993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
|
||
2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
5037 .loc 1 3004 12
|
||
5038 0182 0023 movs r3, #0
|
||
5039 0184 14E0 b .L227
|
||
5040 .L236:
|
||
2992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
5041 .loc 1 2992 23
|
||
5042 0186 FB68 ldr r3, [r7, #12]
|
||
5043 0188 2022 movs r2, #32
|
||
5044 018a 83F84120 strb r2, [r3, #65]
|
||
2993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5045 .loc 1 2993 23
|
||
5046 018e FB68 ldr r3, [r7, #12]
|
||
5047 0190 0022 movs r2, #0
|
||
5048 0192 83F84220 strb r2, [r3, #66]
|
||
2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5049 .loc 1 2996 11
|
||
5050 0196 FB68 ldr r3, [r7, #12]
|
||
5051 0198 5B6C ldr r3, [r3, #68]
|
||
2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5052 .loc 1 2996 23
|
||
5053 019a 43F01002 orr r2, r3, #16
|
||
5054 019e FB68 ldr r3, [r7, #12]
|
||
5055 01a0 5A64 str r2, [r3, #68]
|
||
2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5056 .loc 1 2999 7
|
||
5057 01a2 FB68 ldr r3, [r7, #12]
|
||
5058 01a4 0022 movs r2, #0
|
||
5059 01a6 83F84020 strb r2, [r3, #64]
|
||
3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5060 .loc 1 3001 14
|
||
5061 01aa 0123 movs r3, #1
|
||
5062 01ac 00E0 b .L227
|
||
5063 .L224:
|
||
3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
5064 .loc 1 3008 12
|
||
5065 01ae 0223 movs r3, #2
|
||
5066 .L227:
|
||
3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 143
|
||
|
||
|
||
3010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5067 .loc 1 3010 1
|
||
5068 01b0 1846 mov r0, r3
|
||
5069 01b2 1837 adds r7, r7, #24
|
||
5070 .cfi_def_cfa_offset 8
|
||
5071 01b4 BD46 mov sp, r7
|
||
5072 .cfi_def_cfa_register 13
|
||
5073 @ sp needed
|
||
5074 01b6 80BD pop {r7, pc}
|
||
5075 .L240:
|
||
5076 .align 2
|
||
5077 .L239:
|
||
5078 01b8 0000FFFF .word -65536
|
||
5079 01bc 00000000 .word I2C_Mem_ISR_DMA
|
||
5080 01c0 00000000 .word I2C_DMAMasterTransmitCplt
|
||
5081 01c4 00000000 .word I2C_DMAError
|
||
5082 01c8 00200080 .word -2147475456
|
||
5083 .cfi_endproc
|
||
5084 .LFE150:
|
||
5086 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits
|
||
5087 .align 1
|
||
5088 .global HAL_I2C_Mem_Read_DMA
|
||
5089 .syntax unified
|
||
5090 .thumb
|
||
5091 .thumb_func
|
||
5093 HAL_I2C_Mem_Read_DMA:
|
||
5094 .LFB151:
|
||
3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address.
|
||
3014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
3015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
3018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
|
||
3019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
|
||
3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be read
|
||
3022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd
|
||
3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
|
||
3026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5095 .loc 1 3026 1
|
||
5096 .cfi_startproc
|
||
5097 @ args = 8, pretend = 0, frame = 24
|
||
5098 @ frame_needed = 1, uses_anonymous_args = 0
|
||
5099 0000 80B5 push {r7, lr}
|
||
5100 .cfi_def_cfa_offset 8
|
||
5101 .cfi_offset 7, -8
|
||
5102 .cfi_offset 14, -4
|
||
5103 0002 88B0 sub sp, sp, #32
|
||
5104 .cfi_def_cfa_offset 40
|
||
5105 0004 02AF add r7, sp, #8
|
||
5106 .cfi_def_cfa 7, 32
|
||
5107 0006 F860 str r0, [r7, #12]
|
||
5108 0008 0846 mov r0, r1
|
||
ARM GAS /tmp/cc5G5cqz.s page 144
|
||
|
||
|
||
5109 000a 1146 mov r1, r2
|
||
5110 000c 1A46 mov r2, r3
|
||
5111 000e 0346 mov r3, r0 @ movhi
|
||
5112 0010 7B81 strh r3, [r7, #10] @ movhi
|
||
5113 0012 0B46 mov r3, r1 @ movhi
|
||
5114 0014 3B81 strh r3, [r7, #8] @ movhi
|
||
5115 0016 1346 mov r3, r2 @ movhi
|
||
5116 0018 FB80 strh r3, [r7, #6] @ movhi
|
||
3027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
|
||
3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
3030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
|
||
3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
5117 .loc 1 3032 11
|
||
5118 001a FB68 ldr r3, [r7, #12]
|
||
5119 001c 93F84130 ldrb r3, [r3, #65]
|
||
5120 0020 DBB2 uxtb r3, r3
|
||
5121 .loc 1 3032 6
|
||
5122 0022 202B cmp r3, #32
|
||
5123 0024 40F0C280 bne .L242
|
||
3033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
|
||
5124 .loc 1 3034 8
|
||
5125 0028 3B6A ldr r3, [r7, #32]
|
||
5126 002a 002B cmp r3, #0
|
||
5127 002c 02D0 beq .L243
|
||
5128 .loc 1 3034 25 discriminator 1
|
||
5129 002e BB8C ldrh r3, [r7, #36]
|
||
5130 0030 002B cmp r3, #0
|
||
5131 0032 05D1 bne .L244
|
||
5132 .L243:
|
||
3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
|
||
5133 .loc 1 3036 23
|
||
5134 0034 FB68 ldr r3, [r7, #12]
|
||
5135 0036 4FF40072 mov r2, #512
|
||
5136 003a 5A64 str r2, [r3, #68]
|
||
3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
5137 .loc 1 3037 15
|
||
5138 003c 0123 movs r3, #1
|
||
5139 003e B6E0 b .L245
|
||
5140 .L244:
|
||
3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
|
||
5141 .loc 1 3040 9
|
||
5142 0040 FB68 ldr r3, [r7, #12]
|
||
5143 0042 1B68 ldr r3, [r3]
|
||
5144 0044 9B69 ldr r3, [r3, #24]
|
||
5145 0046 03F40043 and r3, r3, #32768
|
||
5146 .loc 1 3040 8
|
||
5147 004a B3F5004F cmp r3, #32768
|
||
5148 004e 01D1 bne .L246
|
||
3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
5149 .loc 1 3042 14
|
||
ARM GAS /tmp/cc5G5cqz.s page 145
|
||
|
||
|
||
5150 0050 0223 movs r3, #2
|
||
5151 0052 ACE0 b .L245
|
||
5152 .L246:
|
||
3043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
3046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
5153 .loc 1 3046 5
|
||
5154 0054 FB68 ldr r3, [r7, #12]
|
||
5155 0056 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
5156 005a 012B cmp r3, #1
|
||
5157 005c 01D1 bne .L247
|
||
5158 .loc 1 3046 5 is_stmt 0 discriminator 1
|
||
5159 005e 0223 movs r3, #2
|
||
5160 .loc 1 3046 5
|
||
5161 0060 A5E0 b .L245
|
||
5162 .L247:
|
||
5163 .loc 1 3046 5 discriminator 2
|
||
5164 0062 FB68 ldr r3, [r7, #12]
|
||
5165 0064 0122 movs r2, #1
|
||
5166 0066 83F84020 strb r2, [r3, #64]
|
||
3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
|
||
5167 .loc 1 3048 23 is_stmt 1
|
||
5168 006a FB68 ldr r3, [r7, #12]
|
||
5169 006c 2222 movs r2, #34
|
||
5170 006e 83F84120 strb r2, [r3, #65]
|
||
3049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
|
||
5171 .loc 1 3049 23
|
||
5172 0072 FB68 ldr r3, [r7, #12]
|
||
5173 0074 4022 movs r2, #64
|
||
5174 0076 83F84220 strb r2, [r3, #66]
|
||
3050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
5175 .loc 1 3050 23
|
||
5176 007a FB68 ldr r3, [r7, #12]
|
||
5177 007c 0022 movs r2, #0
|
||
5178 007e 5A64 str r2, [r3, #68]
|
||
3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
3053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
5179 .loc 1 3053 23
|
||
5180 0080 FB68 ldr r3, [r7, #12]
|
||
5181 0082 3A6A ldr r2, [r7, #32]
|
||
5182 0084 5A62 str r2, [r3, #36]
|
||
3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
5183 .loc 1 3054 23
|
||
5184 0086 FB68 ldr r3, [r7, #12]
|
||
5185 0088 BA8C ldrh r2, [r7, #36] @ movhi
|
||
5186 008a 5A85 strh r2, [r3, #42] @ movhi
|
||
3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
5187 .loc 1 3055 23
|
||
5188 008c FB68 ldr r3, [r7, #12]
|
||
5189 008e 4A4A ldr r2, .L257
|
||
5190 0090 DA62 str r2, [r3, #44]
|
||
3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
|
||
5191 .loc 1 3056 23
|
||
5192 0092 FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 146
|
||
|
||
|
||
5193 0094 494A ldr r2, .L257+4
|
||
5194 0096 5A63 str r2, [r3, #52]
|
||
3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
|
||
5195 .loc 1 3057 23
|
||
5196 0098 7A89 ldrh r2, [r7, #10]
|
||
5197 009a FB68 ldr r3, [r7, #12]
|
||
5198 009c DA64 str r2, [r3, #76]
|
||
3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
5199 .loc 1 3059 13
|
||
5200 009e FB68 ldr r3, [r7, #12]
|
||
5201 00a0 5B8D ldrh r3, [r3, #42] @ movhi
|
||
5202 00a2 9BB2 uxth r3, r3
|
||
5203 .loc 1 3059 8
|
||
5204 00a4 FF2B cmp r3, #255
|
||
5205 00a6 03D9 bls .L248
|
||
3060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
5206 .loc 1 3061 22
|
||
5207 00a8 FB68 ldr r3, [r7, #12]
|
||
5208 00aa FF22 movs r2, #255
|
||
5209 00ac 1A85 strh r2, [r3, #40] @ movhi
|
||
5210 00ae 04E0 b .L249
|
||
5211 .L248:
|
||
3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
5212 .loc 1 3065 28
|
||
5213 00b0 FB68 ldr r3, [r7, #12]
|
||
5214 00b2 5B8D ldrh r3, [r3, #42] @ movhi
|
||
5215 00b4 9AB2 uxth r2, r3
|
||
5216 .loc 1 3065 22
|
||
5217 00b6 FB68 ldr r3, [r7, #12]
|
||
5218 00b8 1A85 strh r2, [r3, #40] @ movhi
|
||
5219 .L249:
|
||
3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
|
||
3069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
|
||
5220 .loc 1 3069 8
|
||
5221 00ba FB88 ldrh r3, [r7, #6]
|
||
5222 00bc 012B cmp r3, #1
|
||
5223 00be 09D1 bne .L250
|
||
3070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
|
||
3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
|
||
5224 .loc 1 3072 30
|
||
5225 00c0 3B89 ldrh r3, [r7, #8] @ movhi
|
||
5226 00c2 DAB2 uxtb r2, r3
|
||
5227 .loc 1 3072 11
|
||
5228 00c4 FB68 ldr r3, [r7, #12]
|
||
5229 00c6 1B68 ldr r3, [r3]
|
||
5230 .loc 1 3072 28
|
||
5231 00c8 9A62 str r2, [r3, #40]
|
||
3073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
|
||
ARM GAS /tmp/cc5G5cqz.s page 147
|
||
|
||
|
||
3075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
|
||
5232 .loc 1 3075 24
|
||
5233 00ca FB68 ldr r3, [r7, #12]
|
||
5234 00cc 4FF0FF32 mov r2, #-1
|
||
5235 00d0 1A65 str r2, [r3, #80]
|
||
5236 00d2 0BE0 b .L251
|
||
5237 .L250:
|
||
3076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
|
||
3078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
|
||
3081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
|
||
5238 .loc 1 3081 30
|
||
5239 00d4 3B89 ldrh r3, [r7, #8]
|
||
5240 00d6 1B0A lsrs r3, r3, #8
|
||
5241 00d8 9BB2 uxth r3, r3
|
||
5242 00da DAB2 uxtb r2, r3
|
||
5243 .loc 1 3081 11
|
||
5244 00dc FB68 ldr r3, [r7, #12]
|
||
5245 00de 1B68 ldr r3, [r3]
|
||
5246 .loc 1 3081 28
|
||
5247 00e0 9A62 str r2, [r3, #40]
|
||
3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
|
||
3084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
|
||
5248 .loc 1 3084 26
|
||
5249 00e2 3B89 ldrh r3, [r7, #8] @ movhi
|
||
5250 00e4 DBB2 uxtb r3, r3
|
||
5251 00e6 1A46 mov r2, r3
|
||
5252 .loc 1 3084 24
|
||
5253 00e8 FB68 ldr r3, [r7, #12]
|
||
5254 00ea 1A65 str r2, [r3, #80]
|
||
5255 .L251:
|
||
3085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
|
||
5256 .loc 1 3087 13
|
||
5257 00ec FB68 ldr r3, [r7, #12]
|
||
5258 00ee DB6B ldr r3, [r3, #60]
|
||
5259 .loc 1 3087 8
|
||
5260 00f0 002B cmp r3, #0
|
||
5261 00f2 20D0 beq .L252
|
||
3088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
|
||
3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
|
||
5262 .loc 1 3090 11
|
||
5263 00f4 FB68 ldr r3, [r7, #12]
|
||
5264 00f6 DB6B ldr r3, [r3, #60]
|
||
5265 .loc 1 3090 38
|
||
5266 00f8 314A ldr r2, .L257+8
|
||
5267 00fa 9A62 str r2, [r3, #40]
|
||
3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
|
||
3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
|
||
5268 .loc 1 3093 11
|
||
5269 00fc FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 148
|
||
|
||
|
||
5270 00fe DB6B ldr r3, [r3, #60]
|
||
5271 .loc 1 3093 39
|
||
5272 0100 304A ldr r2, .L257+12
|
||
5273 0102 1A63 str r2, [r3, #48]
|
||
3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
|
||
3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
|
||
5274 .loc 1 3096 11
|
||
5275 0104 FB68 ldr r3, [r7, #12]
|
||
5276 0106 DB6B ldr r3, [r3, #60]
|
||
5277 .loc 1 3096 42
|
||
5278 0108 0022 movs r2, #0
|
||
5279 010a DA62 str r2, [r3, #44]
|
||
3097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
|
||
5280 .loc 1 3097 11
|
||
5281 010c FB68 ldr r3, [r7, #12]
|
||
5282 010e DB6B ldr r3, [r3, #60]
|
||
5283 .loc 1 3097 39
|
||
5284 0110 0022 movs r2, #0
|
||
5285 0112 5A63 str r2, [r3, #52]
|
||
3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
|
||
3100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
|
||
5286 .loc 1 3100 23
|
||
5287 0114 FB68 ldr r3, [r7, #12]
|
||
5288 0116 D86B ldr r0, [r3, #60]
|
||
5289 .loc 1 3100 69
|
||
5290 0118 FB68 ldr r3, [r7, #12]
|
||
5291 011a 1B68 ldr r3, [r3]
|
||
5292 .loc 1 3100 64
|
||
5293 011c 2433 adds r3, r3, #36
|
||
5294 .loc 1 3100 23
|
||
5295 011e 1946 mov r1, r3
|
||
5296 0120 3A6A ldr r2, [r7, #32]
|
||
3101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
5297 .loc 1 3101 44
|
||
5298 0122 FB68 ldr r3, [r7, #12]
|
||
5299 0124 1B8D ldrh r3, [r3, #40]
|
||
3100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
5300 .loc 1 3100 23
|
||
5301 0126 FFF7FEFF bl HAL_DMA_Start_IT
|
||
5302 012a 0346 mov r3, r0
|
||
5303 012c FB75 strb r3, [r7, #23]
|
||
3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
3106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
3108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
|
||
3111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
3114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
ARM GAS /tmp/cc5G5cqz.s page 149
|
||
|
||
|
||
3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
|
||
5304 .loc 1 3118 8
|
||
5305 012e FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
5306 0130 002B cmp r3, #0
|
||
5307 0132 27D1 bne .L254
|
||
5308 0134 13E0 b .L256
|
||
5309 .L252:
|
||
3106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
5310 .loc 1 3106 23
|
||
5311 0136 FB68 ldr r3, [r7, #12]
|
||
5312 0138 2022 movs r2, #32
|
||
5313 013a 83F84120 strb r2, [r3, #65]
|
||
3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5314 .loc 1 3107 23
|
||
5315 013e FB68 ldr r3, [r7, #12]
|
||
5316 0140 0022 movs r2, #0
|
||
5317 0142 83F84220 strb r2, [r3, #66]
|
||
3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5318 .loc 1 3110 11
|
||
5319 0146 FB68 ldr r3, [r7, #12]
|
||
5320 0148 5B6C ldr r3, [r3, #68]
|
||
3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5321 .loc 1 3110 23
|
||
5322 014a 43F08002 orr r2, r3, #128
|
||
5323 014e FB68 ldr r3, [r7, #12]
|
||
5324 0150 5A64 str r2, [r3, #68]
|
||
3113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5325 .loc 1 3113 7
|
||
5326 0152 FB68 ldr r3, [r7, #12]
|
||
5327 0154 0022 movs r2, #0
|
||
5328 0156 83F84020 strb r2, [r3, #64]
|
||
3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5329 .loc 1 3115 14
|
||
5330 015a 0123 movs r3, #1
|
||
5331 015c 27E0 b .L245
|
||
5332 .L256:
|
||
3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
|
||
3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_STAR
|
||
5333 .loc 1 3121 7
|
||
5334 015e FB88 ldrh r3, [r7, #6] @ movhi
|
||
5335 0160 DAB2 uxtb r2, r3
|
||
5336 0162 7989 ldrh r1, [r7, #10]
|
||
5337 0164 184B ldr r3, .L257+16
|
||
5338 0166 0093 str r3, [sp]
|
||
5339 0168 0023 movs r3, #0
|
||
5340 016a F868 ldr r0, [r7, #12]
|
||
5341 016c FFF7FEFF bl I2C_TransferConfig
|
||
3122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
5342 .loc 1 3124 7
|
||
5343 0170 FB68 ldr r3, [r7, #12]
|
||
5344 0172 0022 movs r2, #0
|
||
5345 0174 83F84020 strb r2, [r3, #64]
|
||
ARM GAS /tmp/cc5G5cqz.s page 150
|
||
|
||
|
||
3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
3129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
|
||
3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
|
||
3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
|
||
3132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
|
||
3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
5346 .loc 1 3133 7
|
||
5347 0178 0121 movs r1, #1
|
||
5348 017a F868 ldr r0, [r7, #12]
|
||
5349 017c FFF7FEFF bl I2C_Enable_IRQ
|
||
3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
3138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
|
||
3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
5350 .loc 1 3150 12
|
||
5351 0180 0023 movs r3, #0
|
||
5352 0182 14E0 b .L245
|
||
5353 .L254:
|
||
3138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
5354 .loc 1 3138 23
|
||
5355 0184 FB68 ldr r3, [r7, #12]
|
||
5356 0186 2022 movs r2, #32
|
||
5357 0188 83F84120 strb r2, [r3, #65]
|
||
3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5358 .loc 1 3139 23
|
||
5359 018c FB68 ldr r3, [r7, #12]
|
||
5360 018e 0022 movs r2, #0
|
||
5361 0190 83F84220 strb r2, [r3, #66]
|
||
3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5362 .loc 1 3142 11
|
||
5363 0194 FB68 ldr r3, [r7, #12]
|
||
5364 0196 5B6C ldr r3, [r3, #68]
|
||
3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5365 .loc 1 3142 23
|
||
5366 0198 43F01002 orr r2, r3, #16
|
||
5367 019c FB68 ldr r3, [r7, #12]
|
||
5368 019e 5A64 str r2, [r3, #68]
|
||
3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5369 .loc 1 3145 7
|
||
5370 01a0 FB68 ldr r3, [r7, #12]
|
||
5371 01a2 0022 movs r2, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 151
|
||
|
||
|
||
5372 01a4 83F84020 strb r2, [r3, #64]
|
||
3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5373 .loc 1 3147 14
|
||
5374 01a8 0123 movs r3, #1
|
||
5375 01aa 00E0 b .L245
|
||
5376 .L242:
|
||
3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
5377 .loc 1 3154 12
|
||
5378 01ac 0223 movs r3, #2
|
||
5379 .L245:
|
||
3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5380 .loc 1 3156 1
|
||
5381 01ae 1846 mov r0, r3
|
||
5382 01b0 1837 adds r7, r7, #24
|
||
5383 .cfi_def_cfa_offset 8
|
||
5384 01b2 BD46 mov sp, r7
|
||
5385 .cfi_def_cfa_register 13
|
||
5386 @ sp needed
|
||
5387 01b4 80BD pop {r7, pc}
|
||
5388 .L258:
|
||
5389 01b6 00BF .align 2
|
||
5390 .L257:
|
||
5391 01b8 0000FFFF .word -65536
|
||
5392 01bc 00000000 .word I2C_Mem_ISR_DMA
|
||
5393 01c0 00000000 .word I2C_DMAMasterReceiveCplt
|
||
5394 01c4 00000000 .word I2C_DMAError
|
||
5395 01c8 00200080 .word -2147475456
|
||
5396 .cfi_endproc
|
||
5397 .LFE151:
|
||
5399 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits
|
||
5400 .align 1
|
||
5401 .global HAL_I2C_IsDeviceReady
|
||
5402 .syntax unified
|
||
5403 .thumb
|
||
5404 .thumb_func
|
||
5406 HAL_I2C_IsDeviceReady:
|
||
5407 .LFB152:
|
||
3157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Checks if target device is ready for communication.
|
||
3160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This function is used with Memory devices
|
||
3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
3162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
3164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Trials Number of trials
|
||
3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
|
||
3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria
|
||
3170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
|
||
3171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5408 .loc 1 3171 1
|
||
ARM GAS /tmp/cc5G5cqz.s page 152
|
||
|
||
|
||
5409 .cfi_startproc
|
||
5410 @ args = 0, pretend = 0, frame = 32
|
||
5411 @ frame_needed = 1, uses_anonymous_args = 0
|
||
5412 0000 80B5 push {r7, lr}
|
||
5413 .cfi_def_cfa_offset 8
|
||
5414 .cfi_offset 7, -8
|
||
5415 .cfi_offset 14, -4
|
||
5416 0002 8AB0 sub sp, sp, #40
|
||
5417 .cfi_def_cfa_offset 48
|
||
5418 0004 02AF add r7, sp, #8
|
||
5419 .cfi_def_cfa 7, 40
|
||
5420 0006 F860 str r0, [r7, #12]
|
||
5421 0008 7A60 str r2, [r7, #4]
|
||
5422 000a 3B60 str r3, [r7]
|
||
5423 000c 0B46 mov r3, r1 @ movhi
|
||
5424 000e 7B81 strh r3, [r7, #10] @ movhi
|
||
3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
|
||
3173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL;
|
||
5425 .loc 1 3174 17
|
||
5426 0010 0023 movs r3, #0
|
||
5427 0012 7B61 str r3, [r7, #20]
|
||
3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp1;
|
||
3177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp2;
|
||
3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
5428 .loc 1 3179 11
|
||
5429 0014 FB68 ldr r3, [r7, #12]
|
||
5430 0016 93F84130 ldrb r3, [r3, #65]
|
||
5431 001a DBB2 uxtb r3, r3
|
||
5432 .loc 1 3179 6
|
||
5433 001c 202B cmp r3, #32
|
||
5434 001e 40F0F380 bne .L260
|
||
3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
|
||
5435 .loc 1 3181 9
|
||
5436 0022 FB68 ldr r3, [r7, #12]
|
||
5437 0024 1B68 ldr r3, [r3]
|
||
5438 0026 9B69 ldr r3, [r3, #24]
|
||
5439 0028 03F40043 and r3, r3, #32768
|
||
5440 .loc 1 3181 8
|
||
5441 002c B3F5004F cmp r3, #32768
|
||
5442 0030 01D1 bne .L261
|
||
3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
5443 .loc 1 3183 14
|
||
5444 0032 0223 movs r3, #2
|
||
5445 0034 E9E0 b .L262
|
||
5446 .L261:
|
||
3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
5447 .loc 1 3187 5
|
||
5448 0036 FB68 ldr r3, [r7, #12]
|
||
5449 0038 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
ARM GAS /tmp/cc5G5cqz.s page 153
|
||
|
||
|
||
5450 003c 012B cmp r3, #1
|
||
5451 003e 01D1 bne .L263
|
||
5452 .loc 1 3187 5 is_stmt 0 discriminator 1
|
||
5453 0040 0223 movs r3, #2
|
||
5454 .loc 1 3187 5
|
||
5455 0042 E2E0 b .L262
|
||
5456 .L263:
|
||
5457 .loc 1 3187 5 discriminator 2
|
||
5458 0044 FB68 ldr r3, [r7, #12]
|
||
5459 0046 0122 movs r2, #1
|
||
5460 0048 83F84020 strb r2, [r3, #64]
|
||
3188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
|
||
5461 .loc 1 3189 17 is_stmt 1
|
||
5462 004c FB68 ldr r3, [r7, #12]
|
||
5463 004e 2422 movs r2, #36
|
||
5464 0050 83F84120 strb r2, [r3, #65]
|
||
3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
5465 .loc 1 3190 21
|
||
5466 0054 FB68 ldr r3, [r7, #12]
|
||
5467 0056 0022 movs r2, #0
|
||
5468 0058 5A64 str r2, [r3, #68]
|
||
5469 .L276:
|
||
3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do
|
||
3193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Start */
|
||
3195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress);
|
||
5470 .loc 1 3195 29
|
||
5471 005a FB68 ldr r3, [r7, #12]
|
||
5472 005c DB68 ldr r3, [r3, #12]
|
||
5473 005e 012B cmp r3, #1
|
||
5474 0060 07D1 bne .L264
|
||
5475 .loc 1 3195 29 is_stmt 0 discriminator 1
|
||
5476 0062 7B89 ldrh r3, [r7, #10]
|
||
5477 0064 C3F30903 ubfx r3, r3, #0, #10
|
||
5478 0068 43F00073 orr r3, r3, #33554432
|
||
5479 006c 43F40053 orr r3, r3, #8192
|
||
5480 0070 06E0 b .L265
|
||
5481 .L264:
|
||
5482 .loc 1 3195 29 discriminator 2
|
||
5483 0072 7B89 ldrh r3, [r7, #10]
|
||
5484 0074 C3F30903 ubfx r3, r3, #0, #10
|
||
5485 0078 43F00073 orr r3, r3, #33554432
|
||
5486 007c 43F42053 orr r3, r3, #10240
|
||
5487 .L265:
|
||
5488 .loc 1 3195 11 is_stmt 1 discriminator 4
|
||
5489 0080 FA68 ldr r2, [r7, #12]
|
||
5490 0082 1268 ldr r2, [r2]
|
||
5491 .loc 1 3195 27 discriminator 4
|
||
5492 0084 5360 str r3, [r2, #4]
|
||
3196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
|
||
3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/
|
||
3199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
|
||
5493 .loc 1 3199 19
|
||
5494 0086 FFF7FEFF bl HAL_GetTick
|
||
ARM GAS /tmp/cc5G5cqz.s page 154
|
||
|
||
|
||
5495 008a B861 str r0, [r7, #24]
|
||
3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
5496 .loc 1 3201 14
|
||
5497 008c FB68 ldr r3, [r7, #12]
|
||
5498 008e 1B68 ldr r3, [r3]
|
||
5499 0090 9B69 ldr r3, [r3, #24]
|
||
5500 0092 03F02003 and r3, r3, #32
|
||
5501 0096 202B cmp r3, #32
|
||
5502 0098 0CBF ite eq
|
||
5503 009a 0123 moveq r3, #1
|
||
5504 009c 0023 movne r3, #0
|
||
5505 009e DBB2 uxtb r3, r3
|
||
5506 .loc 1 3201 12
|
||
5507 00a0 FB77 strb r3, [r7, #31]
|
||
3202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
|
||
5508 .loc 1 3202 14
|
||
5509 00a2 FB68 ldr r3, [r7, #12]
|
||
5510 00a4 1B68 ldr r3, [r3]
|
||
5511 00a6 9B69 ldr r3, [r3, #24]
|
||
5512 00a8 03F01003 and r3, r3, #16
|
||
5513 00ac 102B cmp r3, #16
|
||
5514 00ae 0CBF ite eq
|
||
5515 00b0 0123 moveq r3, #1
|
||
5516 00b2 0023 movne r3, #0
|
||
5517 00b4 DBB2 uxtb r3, r3
|
||
5518 .loc 1 3202 12
|
||
5519 00b6 BB77 strb r3, [r7, #30]
|
||
3203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET))
|
||
5520 .loc 1 3204 13
|
||
5521 00b8 34E0 b .L266
|
||
5522 .L270:
|
||
3205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
|
||
5523 .loc 1 3206 12
|
||
5524 00ba 3B68 ldr r3, [r7]
|
||
5525 00bc B3F1FF3F cmp r3, #-1
|
||
5526 00c0 1AD0 beq .L267
|
||
3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
|
||
5527 .loc 1 3208 17
|
||
5528 00c2 FFF7FEFF bl HAL_GetTick
|
||
5529 00c6 0246 mov r2, r0
|
||
5530 .loc 1 3208 31 discriminator 1
|
||
5531 00c8 BB69 ldr r3, [r7, #24]
|
||
5532 00ca D31A subs r3, r2, r3
|
||
5533 .loc 1 3208 14 discriminator 1
|
||
5534 00cc 3A68 ldr r2, [r7]
|
||
5535 00ce 9A42 cmp r2, r3
|
||
5536 00d0 02D3 bcc .L268
|
||
5537 .loc 1 3208 55 discriminator 1
|
||
5538 00d2 3B68 ldr r3, [r7]
|
||
5539 00d4 002B cmp r3, #0
|
||
5540 00d6 0FD1 bne .L267
|
||
5541 .L268:
|
||
3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
ARM GAS /tmp/cc5G5cqz.s page 155
|
||
|
||
|
||
3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
3211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
5542 .loc 1 3211 25
|
||
5543 00d8 FB68 ldr r3, [r7, #12]
|
||
5544 00da 2022 movs r2, #32
|
||
5545 00dc 83F84120 strb r2, [r3, #65]
|
||
3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
3214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
|
||
5546 .loc 1 3214 17
|
||
5547 00e0 FB68 ldr r3, [r7, #12]
|
||
5548 00e2 5B6C ldr r3, [r3, #68]
|
||
5549 .loc 1 3214 29
|
||
5550 00e4 43F02002 orr r2, r3, #32
|
||
5551 00e8 FB68 ldr r3, [r7, #12]
|
||
5552 00ea 5A64 str r2, [r3, #68]
|
||
3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
5553 .loc 1 3217 13
|
||
5554 00ec FB68 ldr r3, [r7, #12]
|
||
5555 00ee 0022 movs r2, #0
|
||
5556 00f0 83F84020 strb r2, [r3, #64]
|
||
3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
5557 .loc 1 3219 20
|
||
5558 00f4 0123 movs r3, #1
|
||
5559 00f6 88E0 b .L262
|
||
5560 .L267:
|
||
3220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
5561 .loc 1 3223 16
|
||
5562 00f8 FB68 ldr r3, [r7, #12]
|
||
5563 00fa 1B68 ldr r3, [r3]
|
||
5564 00fc 9B69 ldr r3, [r3, #24]
|
||
5565 00fe 03F02003 and r3, r3, #32
|
||
5566 0102 202B cmp r3, #32
|
||
5567 0104 0CBF ite eq
|
||
5568 0106 0123 moveq r3, #1
|
||
5569 0108 0023 movne r3, #0
|
||
5570 010a DBB2 uxtb r3, r3
|
||
5571 .loc 1 3223 14
|
||
5572 010c FB77 strb r3, [r7, #31]
|
||
3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
|
||
5573 .loc 1 3224 16
|
||
5574 010e FB68 ldr r3, [r7, #12]
|
||
5575 0110 1B68 ldr r3, [r3]
|
||
5576 0112 9B69 ldr r3, [r3, #24]
|
||
5577 0114 03F01003 and r3, r3, #16
|
||
5578 0118 102B cmp r3, #16
|
||
5579 011a 0CBF ite eq
|
||
5580 011c 0123 moveq r3, #1
|
||
5581 011e 0023 movne r3, #0
|
||
5582 0120 DBB2 uxtb r3, r3
|
||
5583 .loc 1 3224 14
|
||
ARM GAS /tmp/cc5G5cqz.s page 156
|
||
|
||
|
||
5584 0122 BB77 strb r3, [r7, #30]
|
||
5585 .L266:
|
||
3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5586 .loc 1 3204 30
|
||
5587 0124 FB7F ldrb r3, [r7, #31] @ zero_extendqisi2
|
||
5588 0126 002B cmp r3, #0
|
||
5589 0128 02D1 bne .L269
|
||
3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5590 .loc 1 3204 30 is_stmt 0 discriminator 1
|
||
5591 012a BB7F ldrb r3, [r7, #30] @ zero_extendqisi2
|
||
5592 012c 002B cmp r3, #0
|
||
5593 012e C4D0 beq .L270
|
||
5594 .L269:
|
||
3225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */
|
||
3228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET)
|
||
5595 .loc 1 3228 11 is_stmt 1
|
||
5596 0130 FB68 ldr r3, [r7, #12]
|
||
5597 0132 1B68 ldr r3, [r3]
|
||
5598 0134 9B69 ldr r3, [r3, #24]
|
||
5599 0136 03F01003 and r3, r3, #16
|
||
5600 .loc 1 3228 10
|
||
5601 013a 102B cmp r3, #16
|
||
5602 013c 1AD0 beq .L271
|
||
3229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
|
||
3231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
|
||
5603 .loc 1 3231 13
|
||
5604 013e BB69 ldr r3, [r7, #24]
|
||
5605 0140 0093 str r3, [sp]
|
||
5606 0142 3B68 ldr r3, [r7]
|
||
5607 0144 0022 movs r2, #0
|
||
5608 0146 2021 movs r1, #32
|
||
5609 0148 F868 ldr r0, [r7, #12]
|
||
5610 014a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
5611 014e 0346 mov r3, r0
|
||
5612 .loc 1 3231 12 discriminator 1
|
||
5613 0150 002B cmp r3, #0
|
||
5614 0152 01D0 beq .L272
|
||
3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
5615 .loc 1 3233 18
|
||
5616 0154 0123 movs r3, #1
|
||
5617 0156 58E0 b .L262
|
||
5618 .L272:
|
||
3234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
|
||
3237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
5619 .loc 1 3237 9
|
||
5620 0158 FB68 ldr r3, [r7, #12]
|
||
5621 015a 1B68 ldr r3, [r3]
|
||
5622 015c 2022 movs r2, #32
|
||
5623 015e DA61 str r2, [r3, #28]
|
||
3238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Device is ready */
|
||
ARM GAS /tmp/cc5G5cqz.s page 157
|
||
|
||
|
||
3240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
5624 .loc 1 3240 21
|
||
5625 0160 FB68 ldr r3, [r7, #12]
|
||
5626 0162 2022 movs r2, #32
|
||
5627 0164 83F84120 strb r2, [r3, #65]
|
||
3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
5628 .loc 1 3243 9
|
||
5629 0168 FB68 ldr r3, [r7, #12]
|
||
5630 016a 0022 movs r2, #0
|
||
5631 016c 83F84020 strb r2, [r3, #64]
|
||
3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
5632 .loc 1 3245 16
|
||
5633 0170 0023 movs r3, #0
|
||
5634 0172 4AE0 b .L262
|
||
5635 .L271:
|
||
3246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
|
||
3250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
|
||
5636 .loc 1 3250 13
|
||
5637 0174 BB69 ldr r3, [r7, #24]
|
||
5638 0176 0093 str r3, [sp]
|
||
5639 0178 3B68 ldr r3, [r7]
|
||
5640 017a 0022 movs r2, #0
|
||
5641 017c 2021 movs r1, #32
|
||
5642 017e F868 ldr r0, [r7, #12]
|
||
5643 0180 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
5644 0184 0346 mov r3, r0
|
||
5645 .loc 1 3250 12 discriminator 1
|
||
5646 0186 002B cmp r3, #0
|
||
5647 0188 01D0 beq .L273
|
||
3251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
5648 .loc 1 3252 18
|
||
5649 018a 0123 movs r3, #1
|
||
5650 018c 3DE0 b .L262
|
||
5651 .L273:
|
||
3253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
|
||
3256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
5652 .loc 1 3256 9
|
||
5653 018e FB68 ldr r3, [r7, #12]
|
||
5654 0190 1B68 ldr r3, [r3]
|
||
5655 0192 1022 movs r2, #16
|
||
5656 0194 DA61 str r2, [r3, #28]
|
||
3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/
|
||
3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
5657 .loc 1 3259 9
|
||
5658 0196 FB68 ldr r3, [r7, #12]
|
||
5659 0198 1B68 ldr r3, [r3]
|
||
5660 019a 2022 movs r2, #32
|
||
ARM GAS /tmp/cc5G5cqz.s page 158
|
||
|
||
|
||
5661 019c DA61 str r2, [r3, #28]
|
||
3260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if the maximum allowed number of trials has been reached */
|
||
3263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_Trials == Trials)
|
||
5662 .loc 1 3263 22
|
||
5663 019e 7B69 ldr r3, [r7, #20]
|
||
5664 .loc 1 3263 10
|
||
5665 01a0 7A68 ldr r2, [r7, #4]
|
||
5666 01a2 9A42 cmp r2, r3
|
||
5667 01a4 18D1 bne .L274
|
||
3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
|
||
3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
|
||
5668 .loc 1 3266 13
|
||
5669 01a6 FB68 ldr r3, [r7, #12]
|
||
5670 01a8 1B68 ldr r3, [r3]
|
||
5671 .loc 1 3266 23
|
||
5672 01aa 5A68 ldr r2, [r3, #4]
|
||
5673 .loc 1 3266 13
|
||
5674 01ac FB68 ldr r3, [r7, #12]
|
||
5675 01ae 1B68 ldr r3, [r3]
|
||
5676 .loc 1 3266 29
|
||
5677 01b0 42F48042 orr r2, r2, #16384
|
||
5678 01b4 5A60 str r2, [r3, #4]
|
||
3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
|
||
3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
|
||
5679 .loc 1 3269 13
|
||
5680 01b6 BB69 ldr r3, [r7, #24]
|
||
5681 01b8 0093 str r3, [sp]
|
||
5682 01ba 3B68 ldr r3, [r7]
|
||
5683 01bc 0022 movs r2, #0
|
||
5684 01be 2021 movs r1, #32
|
||
5685 01c0 F868 ldr r0, [r7, #12]
|
||
5686 01c2 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
5687 01c6 0346 mov r3, r0
|
||
5688 .loc 1 3269 12 discriminator 1
|
||
5689 01c8 002B cmp r3, #0
|
||
5690 01ca 01D0 beq .L275
|
||
3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
5691 .loc 1 3271 18
|
||
5692 01cc 0123 movs r3, #1
|
||
5693 01ce 1CE0 b .L262
|
||
5694 .L275:
|
||
3272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
|
||
3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
5695 .loc 1 3275 9
|
||
5696 01d0 FB68 ldr r3, [r7, #12]
|
||
5697 01d2 1B68 ldr r3, [r3]
|
||
5698 01d4 2022 movs r2, #32
|
||
5699 01d6 DA61 str r2, [r3, #28]
|
||
5700 .L274:
|
||
3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 159
|
||
|
||
|
||
3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Trials */
|
||
3279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Trials++;
|
||
5701 .loc 1 3279 17
|
||
5702 01d8 7B69 ldr r3, [r7, #20]
|
||
5703 01da 0133 adds r3, r3, #1
|
||
5704 01dc 7B61 str r3, [r7, #20]
|
||
3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials);
|
||
5705 .loc 1 3280 25
|
||
5706 01de 7B69 ldr r3, [r7, #20]
|
||
5707 01e0 7A68 ldr r2, [r7, #4]
|
||
5708 01e2 9A42 cmp r2, r3
|
||
5709 01e4 3FF639AF bhi .L276
|
||
3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
5710 .loc 1 3283 17
|
||
5711 01e8 FB68 ldr r3, [r7, #12]
|
||
5712 01ea 2022 movs r2, #32
|
||
5713 01ec 83F84120 strb r2, [r3, #65]
|
||
3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
|
||
5714 .loc 1 3286 9
|
||
5715 01f0 FB68 ldr r3, [r7, #12]
|
||
5716 01f2 5B6C ldr r3, [r3, #68]
|
||
5717 .loc 1 3286 21
|
||
5718 01f4 43F02002 orr r2, r3, #32
|
||
5719 01f8 FB68 ldr r3, [r7, #12]
|
||
5720 01fa 5A64 str r2, [r3, #68]
|
||
3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
5721 .loc 1 3289 5
|
||
5722 01fc FB68 ldr r3, [r7, #12]
|
||
5723 01fe 0022 movs r2, #0
|
||
5724 0200 83F84020 strb r2, [r3, #64]
|
||
3290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
5725 .loc 1 3291 12
|
||
5726 0204 0123 movs r3, #1
|
||
5727 0206 00E0 b .L262
|
||
5728 .L260:
|
||
3292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
5729 .loc 1 3295 12
|
||
5730 0208 0223 movs r3, #2
|
||
5731 .L262:
|
||
3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5732 .loc 1 3297 1
|
||
5733 020a 1846 mov r0, r3
|
||
5734 020c 2037 adds r7, r7, #32
|
||
5735 .cfi_def_cfa_offset 8
|
||
5736 020e BD46 mov sp, r7
|
||
ARM GAS /tmp/cc5G5cqz.s page 160
|
||
|
||
|
||
5737 .cfi_def_cfa_register 13
|
||
5738 @ sp needed
|
||
5739 0210 80BD pop {r7, pc}
|
||
5740 .cfi_endproc
|
||
5741 .LFE152:
|
||
5743 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits
|
||
5744 .align 1
|
||
5745 .global HAL_I2C_Master_Seq_Transmit_IT
|
||
5746 .syntax unified
|
||
5747 .thumb
|
||
5748 .thumb_func
|
||
5750 HAL_I2C_Master_Seq_Transmit_IT:
|
||
5751 .LFB153:
|
||
3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte
|
||
3301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
|
||
3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
3303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
3304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
|
||
3309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
3310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
|
||
3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
|
||
3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5752 .loc 1 3313 1
|
||
5753 .cfi_startproc
|
||
5754 @ args = 4, pretend = 0, frame = 24
|
||
5755 @ frame_needed = 1, uses_anonymous_args = 0
|
||
5756 0000 80B5 push {r7, lr}
|
||
5757 .cfi_def_cfa_offset 8
|
||
5758 .cfi_offset 7, -8
|
||
5759 .cfi_offset 14, -4
|
||
5760 0002 88B0 sub sp, sp, #32
|
||
5761 .cfi_def_cfa_offset 40
|
||
5762 0004 02AF add r7, sp, #8
|
||
5763 .cfi_def_cfa 7, 32
|
||
5764 0006 F860 str r0, [r7, #12]
|
||
5765 0008 7A60 str r2, [r7, #4]
|
||
5766 000a 1A46 mov r2, r3
|
||
5767 000c 0B46 mov r3, r1 @ movhi
|
||
5768 000e 7B81 strh r3, [r7, #10] @ movhi
|
||
5769 0010 1346 mov r3, r2 @ movhi
|
||
5770 0012 3B81 strh r3, [r7, #8] @ movhi
|
||
3314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
|
||
3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
|
||
5771 .loc 1 3315 12
|
||
5772 0014 3A4B ldr r3, .L288
|
||
5773 0016 3B61 str r3, [r7, #16]
|
||
3316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
|
||
3319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 161
|
||
|
||
|
||
3320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
5774 .loc 1 3320 11
|
||
5775 0018 FB68 ldr r3, [r7, #12]
|
||
5776 001a 93F84130 ldrb r3, [r3, #65]
|
||
5777 001e DBB2 uxtb r3, r3
|
||
5778 .loc 1 3320 6
|
||
5779 0020 202B cmp r3, #32
|
||
5780 0022 67D1 bne .L278
|
||
3321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
3323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
5781 .loc 1 3323 5
|
||
5782 0024 FB68 ldr r3, [r7, #12]
|
||
5783 0026 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
5784 002a 012B cmp r3, #1
|
||
5785 002c 01D1 bne .L279
|
||
5786 .loc 1 3323 5 is_stmt 0 discriminator 1
|
||
5787 002e 0223 movs r3, #2
|
||
5788 .loc 1 3323 5
|
||
5789 0030 61E0 b .L280
|
||
5790 .L279:
|
||
5791 .loc 1 3323 5 discriminator 2
|
||
5792 0032 FB68 ldr r3, [r7, #12]
|
||
5793 0034 0122 movs r2, #1
|
||
5794 0036 83F84020 strb r2, [r3, #64]
|
||
3324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
|
||
5795 .loc 1 3325 21 is_stmt 1
|
||
5796 003a FB68 ldr r3, [r7, #12]
|
||
5797 003c 2122 movs r2, #33
|
||
5798 003e 83F84120 strb r2, [r3, #65]
|
||
3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
|
||
5799 .loc 1 3326 21
|
||
5800 0042 FB68 ldr r3, [r7, #12]
|
||
5801 0044 1022 movs r2, #16
|
||
5802 0046 83F84220 strb r2, [r3, #66]
|
||
3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
5803 .loc 1 3327 21
|
||
5804 004a FB68 ldr r3, [r7, #12]
|
||
5805 004c 0022 movs r2, #0
|
||
5806 004e 5A64 str r2, [r3, #68]
|
||
3328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
3330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
5807 .loc 1 3330 23
|
||
5808 0050 FB68 ldr r3, [r7, #12]
|
||
5809 0052 7A68 ldr r2, [r7, #4]
|
||
5810 0054 5A62 str r2, [r3, #36]
|
||
3331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
5811 .loc 1 3331 23
|
||
5812 0056 FB68 ldr r3, [r7, #12]
|
||
5813 0058 3A89 ldrh r2, [r7, #8] @ movhi
|
||
5814 005a 5A85 strh r2, [r3, #42] @ movhi
|
||
3332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
|
||
5815 .loc 1 3332 23
|
||
5816 005c FB68 ldr r3, [r7, #12]
|
||
5817 005e 3A6A ldr r2, [r7, #32]
|
||
ARM GAS /tmp/cc5G5cqz.s page 162
|
||
|
||
|
||
5818 0060 DA62 str r2, [r3, #44]
|
||
3333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
|
||
5819 .loc 1 3333 23
|
||
5820 0062 FB68 ldr r3, [r7, #12]
|
||
5821 0064 274A ldr r2, .L288+4
|
||
5822 0066 5A63 str r2, [r3, #52]
|
||
3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
|
||
3336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
5823 .loc 1 3336 13
|
||
5824 0068 FB68 ldr r3, [r7, #12]
|
||
5825 006a 5B8D ldrh r3, [r3, #42] @ movhi
|
||
5826 006c 9BB2 uxth r3, r3
|
||
5827 .loc 1 3336 8
|
||
5828 006e FF2B cmp r3, #255
|
||
5829 0070 06D9 bls .L281
|
||
3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
5830 .loc 1 3338 22
|
||
5831 0072 FB68 ldr r3, [r7, #12]
|
||
5832 0074 FF22 movs r2, #255
|
||
5833 0076 1A85 strh r2, [r3, #40] @ movhi
|
||
3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
|
||
5834 .loc 1 3339 16
|
||
5835 0078 4FF08073 mov r3, #16777216
|
||
5836 007c 7B61 str r3, [r7, #20]
|
||
5837 007e 07E0 b .L282
|
||
5838 .L281:
|
||
3340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
5839 .loc 1 3343 28
|
||
5840 0080 FB68 ldr r3, [r7, #12]
|
||
5841 0082 5B8D ldrh r3, [r3, #42] @ movhi
|
||
5842 0084 9AB2 uxth r2, r3
|
||
5843 .loc 1 3343 22
|
||
5844 0086 FB68 ldr r3, [r7, #12]
|
||
5845 0088 1A85 strh r2, [r3, #40] @ movhi
|
||
3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
|
||
5846 .loc 1 3344 16
|
||
5847 008a FB68 ldr r3, [r7, #12]
|
||
5848 008c DB6A ldr r3, [r3, #44]
|
||
5849 008e 7B61 str r3, [r7, #20]
|
||
5850 .L282:
|
||
3345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
|
||
3348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
|
||
3349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
|
||
3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \
|
||
5851 .loc 1 3350 14
|
||
5852 0090 FB68 ldr r3, [r7, #12]
|
||
5853 0092 1B6B ldr r3, [r3, #48]
|
||
5854 .loc 1 3350 8
|
||
5855 0094 112B cmp r3, #17
|
||
5856 0096 0ED1 bne .L283
|
||
ARM GAS /tmp/cc5G5cqz.s page 163
|
||
|
||
|
||
3351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
|
||
5857 .loc 1 3351 10
|
||
5858 0098 3B6A ldr r3, [r7, #32]
|
||
5859 009a AA2B cmp r3, #170
|
||
5860 009c 03D0 beq .L284
|
||
5861 .loc 1 3351 10 is_stmt 0 discriminator 2
|
||
5862 009e 3B6A ldr r3, [r7, #32]
|
||
5863 00a0 B3F52A4F cmp r3, #43520
|
||
5864 00a4 01D1 bne .L285
|
||
5865 .L284:
|
||
5866 .loc 1 3351 10 discriminator 3
|
||
5867 00a6 0123 movs r3, #1
|
||
5868 .loc 1 3351 10
|
||
5869 00a8 00E0 b .L286
|
||
5870 .L285:
|
||
5871 .loc 1 3351 10 discriminator 4
|
||
5872 00aa 0023 movs r3, #0
|
||
5873 .L286:
|
||
3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
|
||
5874 .loc 1 3350 59 is_stmt 1
|
||
5875 00ac 002B cmp r3, #0
|
||
5876 00ae 02D1 bne .L283
|
||
3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
|
||
5877 .loc 1 3353 19
|
||
5878 00b0 0023 movs r3, #0
|
||
5879 00b2 3B61 str r3, [r7, #16]
|
||
5880 00b4 0AE0 b .L287
|
||
5881 .L283:
|
||
3354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
|
||
3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
|
||
5882 .loc 1 3358 7
|
||
5883 00b6 F868 ldr r0, [r7, #12]
|
||
5884 00b8 FFF7FEFF bl I2C_ConvertOtherXferOptions
|
||
3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
|
||
3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
|
||
5885 .loc 1 3361 15
|
||
5886 00bc FB68 ldr r3, [r7, #12]
|
||
5887 00be 5B8D ldrh r3, [r3, #42] @ movhi
|
||
5888 00c0 9BB2 uxth r3, r3
|
||
5889 .loc 1 3361 10
|
||
5890 00c2 FF2B cmp r3, #255
|
||
5891 00c4 02D8 bhi .L287
|
||
3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
|
||
5892 .loc 1 3363 18
|
||
5893 00c6 FB68 ldr r3, [r7, #12]
|
||
5894 00c8 DB6A ldr r3, [r3, #44]
|
||
5895 00ca 7B61 str r3, [r7, #20]
|
||
5896 .L287:
|
||
3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 164
|
||
|
||
|
||
3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
|
||
3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
|
||
5897 .loc 1 3368 55
|
||
5898 00cc FB68 ldr r3, [r7, #12]
|
||
5899 00ce 1B8D ldrh r3, [r3, #40]
|
||
5900 .loc 1 3368 5
|
||
5901 00d0 DAB2 uxtb r2, r3
|
||
5902 00d2 7989 ldrh r1, [r7, #10]
|
||
5903 00d4 3B69 ldr r3, [r7, #16]
|
||
5904 00d6 0093 str r3, [sp]
|
||
5905 00d8 7B69 ldr r3, [r7, #20]
|
||
5906 00da F868 ldr r0, [r7, #12]
|
||
5907 00dc FFF7FEFF bl I2C_TransferConfig
|
||
3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
5908 .loc 1 3371 5
|
||
5909 00e0 FB68 ldr r3, [r7, #12]
|
||
5910 00e2 0022 movs r2, #0
|
||
5911 00e4 83F84020 strb r2, [r3, #64]
|
||
3372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
3374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
|
||
3377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
|
||
3378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
|
||
3379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
|
||
3380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
5912 .loc 1 3380 5
|
||
5913 00e8 0121 movs r1, #1
|
||
5914 00ea F868 ldr r0, [r7, #12]
|
||
5915 00ec FFF7FEFF bl I2C_Enable_IRQ
|
||
3381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
5916 .loc 1 3382 12
|
||
5917 00f0 0023 movs r3, #0
|
||
5918 00f2 00E0 b .L280
|
||
5919 .L278:
|
||
3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
5920 .loc 1 3386 12
|
||
5921 00f4 0223 movs r3, #2
|
||
5922 .L280:
|
||
3387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5923 .loc 1 3388 1
|
||
5924 00f6 1846 mov r0, r3
|
||
5925 00f8 1837 adds r7, r7, #24
|
||
5926 .cfi_def_cfa_offset 8
|
||
5927 00fa BD46 mov sp, r7
|
||
5928 .cfi_def_cfa_register 13
|
||
5929 @ sp needed
|
||
5930 00fc 80BD pop {r7, pc}
|
||
5931 .L289:
|
||
ARM GAS /tmp/cc5G5cqz.s page 165
|
||
|
||
|
||
5932 00fe 00BF .align 2
|
||
5933 .L288:
|
||
5934 0100 00200080 .word -2147475456
|
||
5935 0104 00000000 .word I2C_Master_ISR_IT
|
||
5936 .cfi_endproc
|
||
5937 .LFE153:
|
||
5939 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits
|
||
5940 .align 1
|
||
5941 .global HAL_I2C_Master_Seq_Transmit_DMA
|
||
5942 .syntax unified
|
||
5943 .thumb
|
||
5944 .thumb_func
|
||
5946 HAL_I2C_Master_Seq_Transmit_DMA:
|
||
5947 .LFB154:
|
||
3389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA.
|
||
3392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
|
||
3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
3396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
3397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
3398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
|
||
3400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin
|
||
3403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
|
||
3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5948 .loc 1 3404 1
|
||
5949 .cfi_startproc
|
||
5950 @ args = 4, pretend = 0, frame = 32
|
||
5951 @ frame_needed = 1, uses_anonymous_args = 0
|
||
5952 0000 80B5 push {r7, lr}
|
||
5953 .cfi_def_cfa_offset 8
|
||
5954 .cfi_offset 7, -8
|
||
5955 .cfi_offset 14, -4
|
||
5956 0002 8AB0 sub sp, sp, #40
|
||
5957 .cfi_def_cfa_offset 48
|
||
5958 0004 02AF add r7, sp, #8
|
||
5959 .cfi_def_cfa 7, 40
|
||
5960 0006 F860 str r0, [r7, #12]
|
||
5961 0008 7A60 str r2, [r7, #4]
|
||
5962 000a 1A46 mov r2, r3
|
||
5963 000c 0B46 mov r3, r1 @ movhi
|
||
5964 000e 7B81 strh r3, [r7, #10] @ movhi
|
||
5965 0010 1346 mov r3, r2 @ movhi
|
||
5966 0012 3B81 strh r3, [r7, #8] @ movhi
|
||
3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
|
||
3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
|
||
5967 .loc 1 3406 12
|
||
5968 0014 774B ldr r3, .L307
|
||
5969 0016 BB61 str r3, [r7, #24]
|
||
3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
|
||
3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
ARM GAS /tmp/cc5G5cqz.s page 166
|
||
|
||
|
||
3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
|
||
3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
5970 .loc 1 3412 11
|
||
5971 0018 FB68 ldr r3, [r7, #12]
|
||
5972 001a 93F84130 ldrb r3, [r3, #65]
|
||
5973 001e DBB2 uxtb r3, r3
|
||
5974 .loc 1 3412 6
|
||
5975 0020 202B cmp r3, #32
|
||
5976 0022 40F0E180 bne .L291
|
||
3413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
5977 .loc 1 3415 5
|
||
5978 0026 FB68 ldr r3, [r7, #12]
|
||
5979 0028 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
5980 002c 012B cmp r3, #1
|
||
5981 002e 01D1 bne .L292
|
||
5982 .loc 1 3415 5 is_stmt 0 discriminator 1
|
||
5983 0030 0223 movs r3, #2
|
||
5984 .loc 1 3415 5
|
||
5985 0032 DAE0 b .L293
|
||
5986 .L292:
|
||
5987 .loc 1 3415 5 discriminator 2
|
||
5988 0034 FB68 ldr r3, [r7, #12]
|
||
5989 0036 0122 movs r2, #1
|
||
5990 0038 83F84020 strb r2, [r3, #64]
|
||
3416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
|
||
5991 .loc 1 3417 21 is_stmt 1
|
||
5992 003c FB68 ldr r3, [r7, #12]
|
||
5993 003e 2122 movs r2, #33
|
||
5994 0040 83F84120 strb r2, [r3, #65]
|
||
3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
|
||
5995 .loc 1 3418 21
|
||
5996 0044 FB68 ldr r3, [r7, #12]
|
||
5997 0046 1022 movs r2, #16
|
||
5998 0048 83F84220 strb r2, [r3, #66]
|
||
3419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
5999 .loc 1 3419 21
|
||
6000 004c FB68 ldr r3, [r7, #12]
|
||
6001 004e 0022 movs r2, #0
|
||
6002 0050 5A64 str r2, [r3, #68]
|
||
3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
6003 .loc 1 3422 23
|
||
6004 0052 FB68 ldr r3, [r7, #12]
|
||
6005 0054 7A68 ldr r2, [r7, #4]
|
||
6006 0056 5A62 str r2, [r3, #36]
|
||
3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
6007 .loc 1 3423 23
|
||
6008 0058 FB68 ldr r3, [r7, #12]
|
||
6009 005a 3A89 ldrh r2, [r7, #8] @ movhi
|
||
6010 005c 5A85 strh r2, [r3, #42] @ movhi
|
||
3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
|
||
6011 .loc 1 3424 23
|
||
ARM GAS /tmp/cc5G5cqz.s page 167
|
||
|
||
|
||
6012 005e FB68 ldr r3, [r7, #12]
|
||
6013 0060 BA6A ldr r2, [r7, #40]
|
||
6014 0062 DA62 str r2, [r3, #44]
|
||
3425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
|
||
6015 .loc 1 3425 23
|
||
6016 0064 FB68 ldr r3, [r7, #12]
|
||
6017 0066 644A ldr r2, .L307+4
|
||
6018 0068 5A63 str r2, [r3, #52]
|
||
3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
|
||
3428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
6019 .loc 1 3428 13
|
||
6020 006a FB68 ldr r3, [r7, #12]
|
||
6021 006c 5B8D ldrh r3, [r3, #42] @ movhi
|
||
6022 006e 9BB2 uxth r3, r3
|
||
6023 .loc 1 3428 8
|
||
6024 0070 FF2B cmp r3, #255
|
||
6025 0072 06D9 bls .L294
|
||
3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
6026 .loc 1 3430 22
|
||
6027 0074 FB68 ldr r3, [r7, #12]
|
||
6028 0076 FF22 movs r2, #255
|
||
6029 0078 1A85 strh r2, [r3, #40] @ movhi
|
||
3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
|
||
6030 .loc 1 3431 16
|
||
6031 007a 4FF08073 mov r3, #16777216
|
||
6032 007e FB61 str r3, [r7, #28]
|
||
6033 0080 07E0 b .L295
|
||
6034 .L294:
|
||
3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
6035 .loc 1 3435 28
|
||
6036 0082 FB68 ldr r3, [r7, #12]
|
||
6037 0084 5B8D ldrh r3, [r3, #42] @ movhi
|
||
6038 0086 9AB2 uxth r2, r3
|
||
6039 .loc 1 3435 22
|
||
6040 0088 FB68 ldr r3, [r7, #12]
|
||
6041 008a 1A85 strh r2, [r3, #40] @ movhi
|
||
3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
|
||
6042 .loc 1 3436 16
|
||
6043 008c FB68 ldr r3, [r7, #12]
|
||
6044 008e DB6A ldr r3, [r3, #44]
|
||
6045 0090 FB61 str r3, [r7, #28]
|
||
6046 .L295:
|
||
3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
|
||
3440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
|
||
3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
|
||
3442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \
|
||
6047 .loc 1 3442 14
|
||
6048 0092 FB68 ldr r3, [r7, #12]
|
||
6049 0094 1B6B ldr r3, [r3, #48]
|
||
6050 .loc 1 3442 8
|
||
ARM GAS /tmp/cc5G5cqz.s page 168
|
||
|
||
|
||
6051 0096 112B cmp r3, #17
|
||
6052 0098 0ED1 bne .L296
|
||
3443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
|
||
6053 .loc 1 3443 10
|
||
6054 009a BB6A ldr r3, [r7, #40]
|
||
6055 009c AA2B cmp r3, #170
|
||
6056 009e 03D0 beq .L297
|
||
6057 .loc 1 3443 10 is_stmt 0 discriminator 2
|
||
6058 00a0 BB6A ldr r3, [r7, #40]
|
||
6059 00a2 B3F52A4F cmp r3, #43520
|
||
6060 00a6 01D1 bne .L298
|
||
6061 .L297:
|
||
6062 .loc 1 3443 10 discriminator 3
|
||
6063 00a8 0123 movs r3, #1
|
||
6064 .loc 1 3443 10
|
||
6065 00aa 00E0 b .L299
|
||
6066 .L298:
|
||
6067 .loc 1 3443 10 discriminator 4
|
||
6068 00ac 0023 movs r3, #0
|
||
6069 .L299:
|
||
3442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
|
||
6070 .loc 1 3442 59 is_stmt 1
|
||
6071 00ae 002B cmp r3, #0
|
||
6072 00b0 02D1 bne .L296
|
||
3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
|
||
6073 .loc 1 3445 19
|
||
6074 00b2 0023 movs r3, #0
|
||
6075 00b4 BB61 str r3, [r7, #24]
|
||
6076 00b6 0AE0 b .L300
|
||
6077 .L296:
|
||
3446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
|
||
3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
|
||
6078 .loc 1 3450 7
|
||
6079 00b8 F868 ldr r0, [r7, #12]
|
||
6080 00ba FFF7FEFF bl I2C_ConvertOtherXferOptions
|
||
3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
|
||
3453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
|
||
6081 .loc 1 3453 15
|
||
6082 00be FB68 ldr r3, [r7, #12]
|
||
6083 00c0 5B8D ldrh r3, [r3, #42] @ movhi
|
||
6084 00c2 9BB2 uxth r3, r3
|
||
6085 .loc 1 3453 10
|
||
6086 00c4 FF2B cmp r3, #255
|
||
6087 00c6 02D8 bhi .L300
|
||
3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
|
||
6088 .loc 1 3455 18
|
||
6089 00c8 FB68 ldr r3, [r7, #12]
|
||
6090 00ca DB6A ldr r3, [r3, #44]
|
||
6091 00cc FB61 str r3, [r7, #28]
|
||
6092 .L300:
|
||
3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 169
|
||
|
||
|
||
3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
|
||
6093 .loc 1 3459 13
|
||
6094 00ce FB68 ldr r3, [r7, #12]
|
||
6095 00d0 1B8D ldrh r3, [r3, #40]
|
||
6096 .loc 1 3459 8
|
||
6097 00d2 002B cmp r3, #0
|
||
6098 00d4 70D0 beq .L301
|
||
3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
|
||
6099 .loc 1 3461 15
|
||
6100 00d6 FB68 ldr r3, [r7, #12]
|
||
6101 00d8 9B6B ldr r3, [r3, #56]
|
||
6102 .loc 1 3461 10
|
||
6103 00da 002B cmp r3, #0
|
||
6104 00dc 20D0 beq .L302
|
||
3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
|
||
3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
|
||
6105 .loc 1 3464 13
|
||
6106 00de FB68 ldr r3, [r7, #12]
|
||
6107 00e0 9B6B ldr r3, [r3, #56]
|
||
6108 .loc 1 3464 40
|
||
6109 00e2 464A ldr r2, .L307+8
|
||
6110 00e4 9A62 str r2, [r3, #40]
|
||
3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
|
||
3467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
|
||
6111 .loc 1 3467 13
|
||
6112 00e6 FB68 ldr r3, [r7, #12]
|
||
6113 00e8 9B6B ldr r3, [r3, #56]
|
||
6114 .loc 1 3467 41
|
||
6115 00ea 454A ldr r2, .L307+12
|
||
6116 00ec 1A63 str r2, [r3, #48]
|
||
3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
|
||
3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
|
||
6117 .loc 1 3470 13
|
||
6118 00ee FB68 ldr r3, [r7, #12]
|
||
6119 00f0 9B6B ldr r3, [r3, #56]
|
||
6120 .loc 1 3470 44
|
||
6121 00f2 0022 movs r2, #0
|
||
6122 00f4 DA62 str r2, [r3, #44]
|
||
3471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
|
||
6123 .loc 1 3471 13
|
||
6124 00f6 FB68 ldr r3, [r7, #12]
|
||
6125 00f8 9B6B ldr r3, [r3, #56]
|
||
6126 .loc 1 3471 41
|
||
6127 00fa 0022 movs r2, #0
|
||
6128 00fc 5A63 str r2, [r3, #52]
|
||
3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
|
||
3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->
|
||
6129 .loc 1 3474 25
|
||
6130 00fe FB68 ldr r3, [r7, #12]
|
||
6131 0100 986B ldr r0, [r3, #56]
|
||
ARM GAS /tmp/cc5G5cqz.s page 170
|
||
|
||
|
||
6132 0102 7968 ldr r1, [r7, #4]
|
||
6133 .loc 1 3474 88
|
||
6134 0104 FB68 ldr r3, [r7, #12]
|
||
6135 0106 1B68 ldr r3, [r3]
|
||
6136 .loc 1 3474 83
|
||
6137 0108 2833 adds r3, r3, #40
|
||
6138 .loc 1 3474 25
|
||
6139 010a 1A46 mov r2, r3
|
||
3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
6140 .loc 1 3475 46
|
||
6141 010c FB68 ldr r3, [r7, #12]
|
||
6142 010e 1B8D ldrh r3, [r3, #40]
|
||
3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
6143 .loc 1 3474 25
|
||
6144 0110 FFF7FEFF bl HAL_DMA_Start_IT
|
||
6145 0114 0346 mov r3, r0
|
||
6146 0116 FB75 strb r3, [r7, #23]
|
||
3476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
3480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
3481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
3482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
|
||
3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
3490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
|
||
6147 .loc 1 3492 10
|
||
6148 0118 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
6149 011a 002B cmp r3, #0
|
||
6150 011c 38D1 bne .L304
|
||
6151 011e 13E0 b .L306
|
||
6152 .L302:
|
||
3480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
6153 .loc 1 3480 25
|
||
6154 0120 FB68 ldr r3, [r7, #12]
|
||
6155 0122 2022 movs r2, #32
|
||
6156 0124 83F84120 strb r2, [r3, #65]
|
||
3481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6157 .loc 1 3481 25
|
||
6158 0128 FB68 ldr r3, [r7, #12]
|
||
6159 012a 0022 movs r2, #0
|
||
6160 012c 83F84220 strb r2, [r3, #66]
|
||
3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6161 .loc 1 3484 13
|
||
6162 0130 FB68 ldr r3, [r7, #12]
|
||
6163 0132 5B6C ldr r3, [r3, #68]
|
||
3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6164 .loc 1 3484 25
|
||
6165 0134 43F08002 orr r2, r3, #128
|
||
ARM GAS /tmp/cc5G5cqz.s page 171
|
||
|
||
|
||
6166 0138 FB68 ldr r3, [r7, #12]
|
||
6167 013a 5A64 str r2, [r3, #68]
|
||
3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6168 .loc 1 3487 9
|
||
6169 013c FB68 ldr r3, [r7, #12]
|
||
6170 013e 0022 movs r2, #0
|
||
6171 0140 83F84020 strb r2, [r3, #64]
|
||
3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6172 .loc 1 3489 16
|
||
6173 0144 0123 movs r3, #1
|
||
6174 0146 50E0 b .L293
|
||
6175 .L306:
|
||
3493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
|
||
3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
|
||
6176 .loc 1 3495 59
|
||
6177 0148 FB68 ldr r3, [r7, #12]
|
||
6178 014a 1B8D ldrh r3, [r3, #40]
|
||
6179 .loc 1 3495 9
|
||
6180 014c DAB2 uxtb r2, r3
|
||
6181 014e 7989 ldrh r1, [r7, #10]
|
||
6182 0150 BB69 ldr r3, [r7, #24]
|
||
6183 0152 0093 str r3, [sp]
|
||
6184 0154 FB69 ldr r3, [r7, #28]
|
||
6185 0156 F868 ldr r0, [r7, #12]
|
||
6186 0158 FFF7FEFF bl I2C_TransferConfig
|
||
3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
|
||
3498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
|
||
6187 .loc 1 3498 13
|
||
6188 015c FB68 ldr r3, [r7, #12]
|
||
6189 015e 5B8D ldrh r3, [r3, #42] @ movhi
|
||
6190 0160 9AB2 uxth r2, r3
|
||
6191 .loc 1 3498 32
|
||
6192 0162 FB68 ldr r3, [r7, #12]
|
||
6193 0164 1B8D ldrh r3, [r3, #40]
|
||
6194 .loc 1 3498 25
|
||
6195 0166 D31A subs r3, r2, r3
|
||
6196 0168 9AB2 uxth r2, r3
|
||
6197 016a FB68 ldr r3, [r7, #12]
|
||
6198 016c 5A85 strh r2, [r3, #42] @ movhi
|
||
3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6199 .loc 1 3501 9
|
||
6200 016e FB68 ldr r3, [r7, #12]
|
||
6201 0170 0022 movs r2, #0
|
||
6202 0172 83F84020 strb r2, [r3, #64]
|
||
3502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
3504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
|
||
3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
|
||
6203 .loc 1 3507 9
|
||
6204 0176 1021 movs r1, #16
|
||
6205 0178 F868 ldr r0, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 172
|
||
|
||
|
||
6206 017a FFF7FEFF bl I2C_Enable_IRQ
|
||
3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
|
||
3510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
|
||
6207 .loc 1 3510 13
|
||
6208 017e FB68 ldr r3, [r7, #12]
|
||
6209 0180 1B68 ldr r3, [r3]
|
||
6210 .loc 1 3510 23
|
||
6211 0182 1A68 ldr r2, [r3]
|
||
6212 .loc 1 3510 13
|
||
6213 0184 FB68 ldr r3, [r7, #12]
|
||
6214 0186 1B68 ldr r3, [r3]
|
||
6215 .loc 1 3510 29
|
||
6216 0188 42F48042 orr r2, r2, #16384
|
||
6217 018c 1A60 str r2, [r3]
|
||
6218 018e 29E0 b .L305
|
||
6219 .L304:
|
||
3511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
3515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
6220 .loc 1 3515 25
|
||
6221 0190 FB68 ldr r3, [r7, #12]
|
||
6222 0192 2022 movs r2, #32
|
||
6223 0194 83F84120 strb r2, [r3, #65]
|
||
3516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
6224 .loc 1 3516 25
|
||
6225 0198 FB68 ldr r3, [r7, #12]
|
||
6226 019a 0022 movs r2, #0
|
||
6227 019c 83F84220 strb r2, [r3, #66]
|
||
3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
|
||
6228 .loc 1 3519 13
|
||
6229 01a0 FB68 ldr r3, [r7, #12]
|
||
6230 01a2 5B6C ldr r3, [r3, #68]
|
||
6231 .loc 1 3519 25
|
||
6232 01a4 43F01002 orr r2, r3, #16
|
||
6233 01a8 FB68 ldr r3, [r7, #12]
|
||
6234 01aa 5A64 str r2, [r3, #68]
|
||
3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6235 .loc 1 3522 9
|
||
6236 01ac FB68 ldr r3, [r7, #12]
|
||
6237 01ae 0022 movs r2, #0
|
||
6238 01b0 83F84020 strb r2, [r3, #64]
|
||
3523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
6239 .loc 1 3524 16
|
||
6240 01b4 0123 movs r3, #1
|
||
6241 01b6 18E0 b .L293
|
||
6242 .L301:
|
||
3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
ARM GAS /tmp/cc5G5cqz.s page 173
|
||
|
||
|
||
3528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
|
||
3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
|
||
6243 .loc 1 3530 21
|
||
6244 01b8 FB68 ldr r3, [r7, #12]
|
||
6245 01ba 124A ldr r2, .L307+16
|
||
6246 01bc 5A63 str r2, [r3, #52]
|
||
3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
|
||
3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
|
||
3534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
|
||
6247 .loc 1 3534 57
|
||
6248 01be FB68 ldr r3, [r7, #12]
|
||
6249 01c0 1B8D ldrh r3, [r3, #40]
|
||
6250 .loc 1 3534 7
|
||
6251 01c2 DAB2 uxtb r2, r3
|
||
6252 01c4 7989 ldrh r1, [r7, #10]
|
||
6253 01c6 0B4B ldr r3, .L307
|
||
6254 01c8 0093 str r3, [sp]
|
||
6255 01ca 4FF00073 mov r3, #33554432
|
||
6256 01ce F868 ldr r0, [r7, #12]
|
||
6257 01d0 FFF7FEFF bl I2C_TransferConfig
|
||
3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
|
||
3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6258 .loc 1 3538 7
|
||
6259 01d4 FB68 ldr r3, [r7, #12]
|
||
6260 01d6 0022 movs r2, #0
|
||
6261 01d8 83F84020 strb r2, [r3, #64]
|
||
3539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
|
||
3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
|
||
3545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
|
||
3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
|
||
3547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
6262 .loc 1 3547 7
|
||
6263 01dc 0121 movs r1, #1
|
||
6264 01de F868 ldr r0, [r7, #12]
|
||
6265 01e0 FFF7FEFF bl I2C_Enable_IRQ
|
||
6266 .L305:
|
||
3548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
6267 .loc 1 3550 12
|
||
6268 01e4 0023 movs r3, #0
|
||
6269 01e6 00E0 b .L293
|
||
6270 .L291:
|
||
3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
6271 .loc 1 3554 12
|
||
6272 01e8 0223 movs r3, #2
|
||
ARM GAS /tmp/cc5G5cqz.s page 174
|
||
|
||
|
||
6273 .L293:
|
||
3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6274 .loc 1 3556 1
|
||
6275 01ea 1846 mov r0, r3
|
||
6276 01ec 2037 adds r7, r7, #32
|
||
6277 .cfi_def_cfa_offset 8
|
||
6278 01ee BD46 mov sp, r7
|
||
6279 .cfi_def_cfa_register 13
|
||
6280 @ sp needed
|
||
6281 01f0 80BD pop {r7, pc}
|
||
6282 .L308:
|
||
6283 01f2 00BF .align 2
|
||
6284 .L307:
|
||
6285 01f4 00200080 .word -2147475456
|
||
6286 01f8 00000000 .word I2C_Master_ISR_DMA
|
||
6287 01fc 00000000 .word I2C_DMAMasterTransmitCplt
|
||
6288 0200 00000000 .word I2C_DMAError
|
||
6289 0204 00000000 .word I2C_Master_ISR_IT
|
||
6290 .cfi_endproc
|
||
6291 .LFE154:
|
||
6293 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits
|
||
6294 .align 1
|
||
6295 .global HAL_I2C_Master_Seq_Receive_IT
|
||
6296 .syntax unified
|
||
6297 .thumb
|
||
6298 .thumb_func
|
||
6300 HAL_I2C_Master_Seq_Receive_IT:
|
||
6301 .LFB155:
|
||
3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter
|
||
3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
|
||
3561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
3564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
3565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
3566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
|
||
3568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8
|
||
3571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
|
||
3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6302 .loc 1 3572 1
|
||
6303 .cfi_startproc
|
||
6304 @ args = 4, pretend = 0, frame = 24
|
||
6305 @ frame_needed = 1, uses_anonymous_args = 0
|
||
6306 0000 80B5 push {r7, lr}
|
||
6307 .cfi_def_cfa_offset 8
|
||
6308 .cfi_offset 7, -8
|
||
6309 .cfi_offset 14, -4
|
||
6310 0002 88B0 sub sp, sp, #32
|
||
6311 .cfi_def_cfa_offset 40
|
||
6312 0004 02AF add r7, sp, #8
|
||
6313 .cfi_def_cfa 7, 32
|
||
ARM GAS /tmp/cc5G5cqz.s page 175
|
||
|
||
|
||
6314 0006 F860 str r0, [r7, #12]
|
||
6315 0008 7A60 str r2, [r7, #4]
|
||
6316 000a 1A46 mov r2, r3
|
||
6317 000c 0B46 mov r3, r1 @ movhi
|
||
6318 000e 7B81 strh r3, [r7, #10] @ movhi
|
||
6319 0010 1346 mov r3, r2 @ movhi
|
||
6320 0012 3B81 strh r3, [r7, #8] @ movhi
|
||
3573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
|
||
3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
|
||
6321 .loc 1 3574 12
|
||
6322 0014 3A4B ldr r3, .L320
|
||
6323 0016 3B61 str r3, [r7, #16]
|
||
3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
|
||
3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
6324 .loc 1 3579 11
|
||
6325 0018 FB68 ldr r3, [r7, #12]
|
||
6326 001a 93F84130 ldrb r3, [r3, #65]
|
||
6327 001e DBB2 uxtb r3, r3
|
||
6328 .loc 1 3579 6
|
||
6329 0020 202B cmp r3, #32
|
||
6330 0022 67D1 bne .L310
|
||
3580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
3582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
6331 .loc 1 3582 5
|
||
6332 0024 FB68 ldr r3, [r7, #12]
|
||
6333 0026 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
6334 002a 012B cmp r3, #1
|
||
6335 002c 01D1 bne .L311
|
||
6336 .loc 1 3582 5 is_stmt 0 discriminator 1
|
||
6337 002e 0223 movs r3, #2
|
||
6338 .loc 1 3582 5
|
||
6339 0030 61E0 b .L312
|
||
6340 .L311:
|
||
6341 .loc 1 3582 5 discriminator 2
|
||
6342 0032 FB68 ldr r3, [r7, #12]
|
||
6343 0034 0122 movs r2, #1
|
||
6344 0036 83F84020 strb r2, [r3, #64]
|
||
3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
|
||
6345 .loc 1 3584 21 is_stmt 1
|
||
6346 003a FB68 ldr r3, [r7, #12]
|
||
6347 003c 2222 movs r2, #34
|
||
6348 003e 83F84120 strb r2, [r3, #65]
|
||
3585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
|
||
6349 .loc 1 3585 21
|
||
6350 0042 FB68 ldr r3, [r7, #12]
|
||
6351 0044 1022 movs r2, #16
|
||
6352 0046 83F84220 strb r2, [r3, #66]
|
||
3586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
6353 .loc 1 3586 21
|
||
6354 004a FB68 ldr r3, [r7, #12]
|
||
6355 004c 0022 movs r2, #0
|
||
6356 004e 5A64 str r2, [r3, #68]
|
||
ARM GAS /tmp/cc5G5cqz.s page 176
|
||
|
||
|
||
3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
6357 .loc 1 3589 23
|
||
6358 0050 FB68 ldr r3, [r7, #12]
|
||
6359 0052 7A68 ldr r2, [r7, #4]
|
||
6360 0054 5A62 str r2, [r3, #36]
|
||
3590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
6361 .loc 1 3590 23
|
||
6362 0056 FB68 ldr r3, [r7, #12]
|
||
6363 0058 3A89 ldrh r2, [r7, #8] @ movhi
|
||
6364 005a 5A85 strh r2, [r3, #42] @ movhi
|
||
3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
|
||
6365 .loc 1 3591 23
|
||
6366 005c FB68 ldr r3, [r7, #12]
|
||
6367 005e 3A6A ldr r2, [r7, #32]
|
||
6368 0060 DA62 str r2, [r3, #44]
|
||
3592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
|
||
6369 .loc 1 3592 23
|
||
6370 0062 FB68 ldr r3, [r7, #12]
|
||
6371 0064 274A ldr r2, .L320+4
|
||
6372 0066 5A63 str r2, [r3, #52]
|
||
3593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
|
||
3595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
6373 .loc 1 3595 13
|
||
6374 0068 FB68 ldr r3, [r7, #12]
|
||
6375 006a 5B8D ldrh r3, [r3, #42] @ movhi
|
||
6376 006c 9BB2 uxth r3, r3
|
||
6377 .loc 1 3595 8
|
||
6378 006e FF2B cmp r3, #255
|
||
6379 0070 06D9 bls .L313
|
||
3596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
6380 .loc 1 3597 22
|
||
6381 0072 FB68 ldr r3, [r7, #12]
|
||
6382 0074 FF22 movs r2, #255
|
||
6383 0076 1A85 strh r2, [r3, #40] @ movhi
|
||
3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
|
||
6384 .loc 1 3598 16
|
||
6385 0078 4FF08073 mov r3, #16777216
|
||
6386 007c 7B61 str r3, [r7, #20]
|
||
6387 007e 07E0 b .L314
|
||
6388 .L313:
|
||
3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
6389 .loc 1 3602 28
|
||
6390 0080 FB68 ldr r3, [r7, #12]
|
||
6391 0082 5B8D ldrh r3, [r3, #42] @ movhi
|
||
6392 0084 9AB2 uxth r2, r3
|
||
6393 .loc 1 3602 22
|
||
6394 0086 FB68 ldr r3, [r7, #12]
|
||
6395 0088 1A85 strh r2, [r3, #40] @ movhi
|
||
3603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
|
||
6396 .loc 1 3603 16
|
||
ARM GAS /tmp/cc5G5cqz.s page 177
|
||
|
||
|
||
6397 008a FB68 ldr r3, [r7, #12]
|
||
6398 008c DB6A ldr r3, [r3, #44]
|
||
6399 008e 7B61 str r3, [r7, #20]
|
||
6400 .L314:
|
||
3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
|
||
3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
|
||
3608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
|
||
3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \
|
||
6401 .loc 1 3609 14
|
||
6402 0090 FB68 ldr r3, [r7, #12]
|
||
6403 0092 1B6B ldr r3, [r3, #48]
|
||
6404 .loc 1 3609 8
|
||
6405 0094 122B cmp r3, #18
|
||
6406 0096 0ED1 bne .L315
|
||
3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
|
||
6407 .loc 1 3610 10
|
||
6408 0098 3B6A ldr r3, [r7, #32]
|
||
6409 009a AA2B cmp r3, #170
|
||
6410 009c 03D0 beq .L316
|
||
6411 .loc 1 3610 10 is_stmt 0 discriminator 2
|
||
6412 009e 3B6A ldr r3, [r7, #32]
|
||
6413 00a0 B3F52A4F cmp r3, #43520
|
||
6414 00a4 01D1 bne .L317
|
||
6415 .L316:
|
||
6416 .loc 1 3610 10 discriminator 3
|
||
6417 00a6 0123 movs r3, #1
|
||
6418 .loc 1 3610 10
|
||
6419 00a8 00E0 b .L318
|
||
6420 .L317:
|
||
6421 .loc 1 3610 10 discriminator 4
|
||
6422 00aa 0023 movs r3, #0
|
||
6423 .L318:
|
||
3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
|
||
6424 .loc 1 3609 59 is_stmt 1
|
||
6425 00ac 002B cmp r3, #0
|
||
6426 00ae 02D1 bne .L315
|
||
3611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
|
||
6427 .loc 1 3612 19
|
||
6428 00b0 0023 movs r3, #0
|
||
6429 00b2 3B61 str r3, [r7, #16]
|
||
6430 00b4 0AE0 b .L319
|
||
6431 .L315:
|
||
3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
|
||
3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
|
||
6432 .loc 1 3617 7
|
||
6433 00b6 F868 ldr r0, [r7, #12]
|
||
6434 00b8 FFF7FEFF bl I2C_ConvertOtherXferOptions
|
||
3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
|
||
3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
|
||
6435 .loc 1 3620 15
|
||
ARM GAS /tmp/cc5G5cqz.s page 178
|
||
|
||
|
||
6436 00bc FB68 ldr r3, [r7, #12]
|
||
6437 00be 5B8D ldrh r3, [r3, #42] @ movhi
|
||
6438 00c0 9BB2 uxth r3, r3
|
||
6439 .loc 1 3620 10
|
||
6440 00c2 FF2B cmp r3, #255
|
||
6441 00c4 02D8 bhi .L319
|
||
3621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
|
||
6442 .loc 1 3622 18
|
||
6443 00c6 FB68 ldr r3, [r7, #12]
|
||
6444 00c8 DB6A ldr r3, [r3, #44]
|
||
6445 00ca 7B61 str r3, [r7, #20]
|
||
6446 .L319:
|
||
3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
|
||
3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
|
||
6447 .loc 1 3627 55
|
||
6448 00cc FB68 ldr r3, [r7, #12]
|
||
6449 00ce 1B8D ldrh r3, [r3, #40]
|
||
6450 .loc 1 3627 5
|
||
6451 00d0 DAB2 uxtb r2, r3
|
||
6452 00d2 7989 ldrh r1, [r7, #10]
|
||
6453 00d4 3B69 ldr r3, [r7, #16]
|
||
6454 00d6 0093 str r3, [sp]
|
||
6455 00d8 7B69 ldr r3, [r7, #20]
|
||
6456 00da F868 ldr r0, [r7, #12]
|
||
6457 00dc FFF7FEFF bl I2C_TransferConfig
|
||
3628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6458 .loc 1 3630 5
|
||
6459 00e0 FB68 ldr r3, [r7, #12]
|
||
6460 00e2 0022 movs r2, #0
|
||
6461 00e4 83F84020 strb r2, [r3, #64]
|
||
3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
3633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
3635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
|
||
6462 .loc 1 3635 5
|
||
6463 00e8 0221 movs r1, #2
|
||
6464 00ea F868 ldr r0, [r7, #12]
|
||
6465 00ec FFF7FEFF bl I2C_Enable_IRQ
|
||
3636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
6466 .loc 1 3637 12
|
||
6467 00f0 0023 movs r3, #0
|
||
6468 00f2 00E0 b .L312
|
||
6469 .L310:
|
||
3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
6470 .loc 1 3641 12
|
||
6471 00f4 0223 movs r3, #2
|
||
ARM GAS /tmp/cc5G5cqz.s page 179
|
||
|
||
|
||
6472 .L312:
|
||
3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6473 .loc 1 3643 1
|
||
6474 00f6 1846 mov r0, r3
|
||
6475 00f8 1837 adds r7, r7, #24
|
||
6476 .cfi_def_cfa_offset 8
|
||
6477 00fa BD46 mov sp, r7
|
||
6478 .cfi_def_cfa_register 13
|
||
6479 @ sp needed
|
||
6480 00fc 80BD pop {r7, pc}
|
||
6481 .L321:
|
||
6482 00fe 00BF .align 2
|
||
6483 .L320:
|
||
6484 0100 00240080 .word -2147474432
|
||
6485 0104 00000000 .word I2C_Master_ISR_IT
|
||
6486 .cfi_endproc
|
||
6487 .LFE155:
|
||
6489 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits
|
||
6490 .align 1
|
||
6491 .global HAL_I2C_Master_Seq_Receive_DMA
|
||
6492 .syntax unified
|
||
6493 .thumb
|
||
6494 .thumb_func
|
||
6496 HAL_I2C_Master_Seq_Receive_DMA:
|
||
6497 .LFB156:
|
||
3644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA
|
||
3647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
|
||
3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
3651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
3652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
3653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
|
||
3655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
3657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
|
||
3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
|
||
3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6498 .loc 1 3659 1
|
||
6499 .cfi_startproc
|
||
6500 @ args = 4, pretend = 0, frame = 32
|
||
6501 @ frame_needed = 1, uses_anonymous_args = 0
|
||
6502 0000 80B5 push {r7, lr}
|
||
6503 .cfi_def_cfa_offset 8
|
||
6504 .cfi_offset 7, -8
|
||
6505 .cfi_offset 14, -4
|
||
6506 0002 8AB0 sub sp, sp, #40
|
||
6507 .cfi_def_cfa_offset 48
|
||
6508 0004 02AF add r7, sp, #8
|
||
6509 .cfi_def_cfa 7, 40
|
||
6510 0006 F860 str r0, [r7, #12]
|
||
6511 0008 7A60 str r2, [r7, #4]
|
||
6512 000a 1A46 mov r2, r3
|
||
ARM GAS /tmp/cc5G5cqz.s page 180
|
||
|
||
|
||
6513 000c 0B46 mov r3, r1 @ movhi
|
||
6514 000e 7B81 strh r3, [r7, #10] @ movhi
|
||
6515 0010 1346 mov r3, r2 @ movhi
|
||
6516 0012 3B81 strh r3, [r7, #8] @ movhi
|
||
3660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
|
||
3661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
|
||
6517 .loc 1 3661 12
|
||
6518 0014 774B ldr r3, .L339
|
||
6519 0016 BB61 str r3, [r7, #24]
|
||
3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
|
||
3663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
|
||
3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
6520 .loc 1 3667 11
|
||
6521 0018 FB68 ldr r3, [r7, #12]
|
||
6522 001a 93F84130 ldrb r3, [r3, #65]
|
||
6523 001e DBB2 uxtb r3, r3
|
||
6524 .loc 1 3667 6
|
||
6525 0020 202B cmp r3, #32
|
||
6526 0022 40F0E180 bne .L323
|
||
3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
6527 .loc 1 3670 5
|
||
6528 0026 FB68 ldr r3, [r7, #12]
|
||
6529 0028 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
6530 002c 012B cmp r3, #1
|
||
6531 002e 01D1 bne .L324
|
||
6532 .loc 1 3670 5 is_stmt 0 discriminator 1
|
||
6533 0030 0223 movs r3, #2
|
||
6534 .loc 1 3670 5
|
||
6535 0032 DAE0 b .L325
|
||
6536 .L324:
|
||
6537 .loc 1 3670 5 discriminator 2
|
||
6538 0034 FB68 ldr r3, [r7, #12]
|
||
6539 0036 0122 movs r2, #1
|
||
6540 0038 83F84020 strb r2, [r3, #64]
|
||
3671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
|
||
6541 .loc 1 3672 21 is_stmt 1
|
||
6542 003c FB68 ldr r3, [r7, #12]
|
||
6543 003e 2222 movs r2, #34
|
||
6544 0040 83F84120 strb r2, [r3, #65]
|
||
3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
|
||
6545 .loc 1 3673 21
|
||
6546 0044 FB68 ldr r3, [r7, #12]
|
||
6547 0046 1022 movs r2, #16
|
||
6548 0048 83F84220 strb r2, [r3, #66]
|
||
3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
6549 .loc 1 3674 21
|
||
6550 004c FB68 ldr r3, [r7, #12]
|
||
6551 004e 0022 movs r2, #0
|
||
6552 0050 5A64 str r2, [r3, #68]
|
||
3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
ARM GAS /tmp/cc5G5cqz.s page 181
|
||
|
||
|
||
3677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
6553 .loc 1 3677 23
|
||
6554 0052 FB68 ldr r3, [r7, #12]
|
||
6555 0054 7A68 ldr r2, [r7, #4]
|
||
6556 0056 5A62 str r2, [r3, #36]
|
||
3678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
6557 .loc 1 3678 23
|
||
6558 0058 FB68 ldr r3, [r7, #12]
|
||
6559 005a 3A89 ldrh r2, [r7, #8] @ movhi
|
||
6560 005c 5A85 strh r2, [r3, #42] @ movhi
|
||
3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
|
||
6561 .loc 1 3679 23
|
||
6562 005e FB68 ldr r3, [r7, #12]
|
||
6563 0060 BA6A ldr r2, [r7, #40]
|
||
6564 0062 DA62 str r2, [r3, #44]
|
||
3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
|
||
6565 .loc 1 3680 23
|
||
6566 0064 FB68 ldr r3, [r7, #12]
|
||
6567 0066 644A ldr r2, .L339+4
|
||
6568 0068 5A63 str r2, [r3, #52]
|
||
3681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
|
||
3683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
6569 .loc 1 3683 13
|
||
6570 006a FB68 ldr r3, [r7, #12]
|
||
6571 006c 5B8D ldrh r3, [r3, #42] @ movhi
|
||
6572 006e 9BB2 uxth r3, r3
|
||
6573 .loc 1 3683 8
|
||
6574 0070 FF2B cmp r3, #255
|
||
6575 0072 06D9 bls .L326
|
||
3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
6576 .loc 1 3685 22
|
||
6577 0074 FB68 ldr r3, [r7, #12]
|
||
6578 0076 FF22 movs r2, #255
|
||
6579 0078 1A85 strh r2, [r3, #40] @ movhi
|
||
3686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
|
||
6580 .loc 1 3686 16
|
||
6581 007a 4FF08073 mov r3, #16777216
|
||
6582 007e FB61 str r3, [r7, #28]
|
||
6583 0080 07E0 b .L327
|
||
6584 .L326:
|
||
3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
6585 .loc 1 3690 28
|
||
6586 0082 FB68 ldr r3, [r7, #12]
|
||
6587 0084 5B8D ldrh r3, [r3, #42] @ movhi
|
||
6588 0086 9AB2 uxth r2, r3
|
||
6589 .loc 1 3690 22
|
||
6590 0088 FB68 ldr r3, [r7, #12]
|
||
6591 008a 1A85 strh r2, [r3, #40] @ movhi
|
||
3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
|
||
6592 .loc 1 3691 16
|
||
6593 008c FB68 ldr r3, [r7, #12]
|
||
6594 008e DB6A ldr r3, [r3, #44]
|
||
ARM GAS /tmp/cc5G5cqz.s page 182
|
||
|
||
|
||
6595 0090 FB61 str r3, [r7, #28]
|
||
6596 .L327:
|
||
3692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
|
||
3695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
|
||
3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
|
||
3697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \
|
||
6597 .loc 1 3697 14
|
||
6598 0092 FB68 ldr r3, [r7, #12]
|
||
6599 0094 1B6B ldr r3, [r3, #48]
|
||
6600 .loc 1 3697 8
|
||
6601 0096 122B cmp r3, #18
|
||
6602 0098 0ED1 bne .L328
|
||
3698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
|
||
6603 .loc 1 3698 10
|
||
6604 009a BB6A ldr r3, [r7, #40]
|
||
6605 009c AA2B cmp r3, #170
|
||
6606 009e 03D0 beq .L329
|
||
6607 .loc 1 3698 10 is_stmt 0 discriminator 2
|
||
6608 00a0 BB6A ldr r3, [r7, #40]
|
||
6609 00a2 B3F52A4F cmp r3, #43520
|
||
6610 00a6 01D1 bne .L330
|
||
6611 .L329:
|
||
6612 .loc 1 3698 10 discriminator 3
|
||
6613 00a8 0123 movs r3, #1
|
||
6614 .loc 1 3698 10
|
||
6615 00aa 00E0 b .L331
|
||
6616 .L330:
|
||
6617 .loc 1 3698 10 discriminator 4
|
||
6618 00ac 0023 movs r3, #0
|
||
6619 .L331:
|
||
3697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
|
||
6620 .loc 1 3697 59 is_stmt 1
|
||
6621 00ae 002B cmp r3, #0
|
||
6622 00b0 02D1 bne .L328
|
||
3699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
|
||
6623 .loc 1 3700 19
|
||
6624 00b2 0023 movs r3, #0
|
||
6625 00b4 BB61 str r3, [r7, #24]
|
||
6626 00b6 0AE0 b .L332
|
||
6627 .L328:
|
||
3701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
|
||
3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
|
||
6628 .loc 1 3705 7
|
||
6629 00b8 F868 ldr r0, [r7, #12]
|
||
6630 00ba FFF7FEFF bl I2C_ConvertOtherXferOptions
|
||
3706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
|
||
3708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
|
||
6631 .loc 1 3708 15
|
||
6632 00be FB68 ldr r3, [r7, #12]
|
||
6633 00c0 5B8D ldrh r3, [r3, #42] @ movhi
|
||
ARM GAS /tmp/cc5G5cqz.s page 183
|
||
|
||
|
||
6634 00c2 9BB2 uxth r3, r3
|
||
6635 .loc 1 3708 10
|
||
6636 00c4 FF2B cmp r3, #255
|
||
6637 00c6 02D8 bhi .L332
|
||
3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
|
||
6638 .loc 1 3710 18
|
||
6639 00c8 FB68 ldr r3, [r7, #12]
|
||
6640 00ca DB6A ldr r3, [r3, #44]
|
||
6641 00cc FB61 str r3, [r7, #28]
|
||
6642 .L332:
|
||
3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
|
||
6643 .loc 1 3714 13
|
||
6644 00ce FB68 ldr r3, [r7, #12]
|
||
6645 00d0 1B8D ldrh r3, [r3, #40]
|
||
6646 .loc 1 3714 8
|
||
6647 00d2 002B cmp r3, #0
|
||
6648 00d4 70D0 beq .L333
|
||
3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
|
||
6649 .loc 1 3716 15
|
||
6650 00d6 FB68 ldr r3, [r7, #12]
|
||
6651 00d8 DB6B ldr r3, [r3, #60]
|
||
6652 .loc 1 3716 10
|
||
6653 00da 002B cmp r3, #0
|
||
6654 00dc 20D0 beq .L334
|
||
3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
|
||
3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
|
||
6655 .loc 1 3719 13
|
||
6656 00de FB68 ldr r3, [r7, #12]
|
||
6657 00e0 DB6B ldr r3, [r3, #60]
|
||
6658 .loc 1 3719 40
|
||
6659 00e2 464A ldr r2, .L339+8
|
||
6660 00e4 9A62 str r2, [r3, #40]
|
||
3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
|
||
3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
|
||
6661 .loc 1 3722 13
|
||
6662 00e6 FB68 ldr r3, [r7, #12]
|
||
6663 00e8 DB6B ldr r3, [r3, #60]
|
||
6664 .loc 1 3722 41
|
||
6665 00ea 454A ldr r2, .L339+12
|
||
6666 00ec 1A63 str r2, [r3, #48]
|
||
3723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
|
||
3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
|
||
6667 .loc 1 3725 13
|
||
6668 00ee FB68 ldr r3, [r7, #12]
|
||
6669 00f0 DB6B ldr r3, [r3, #60]
|
||
6670 .loc 1 3725 44
|
||
6671 00f2 0022 movs r2, #0
|
||
6672 00f4 DA62 str r2, [r3, #44]
|
||
3726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
|
||
ARM GAS /tmp/cc5G5cqz.s page 184
|
||
|
||
|
||
6673 .loc 1 3726 13
|
||
6674 00f6 FB68 ldr r3, [r7, #12]
|
||
6675 00f8 DB6B ldr r3, [r3, #60]
|
||
6676 .loc 1 3726 41
|
||
6677 00fa 0022 movs r2, #0
|
||
6678 00fc 5A63 str r2, [r3, #52]
|
||
3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
|
||
3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
|
||
6679 .loc 1 3729 25
|
||
6680 00fe FB68 ldr r3, [r7, #12]
|
||
6681 0100 D86B ldr r0, [r3, #60]
|
||
6682 .loc 1 3729 71
|
||
6683 0102 FB68 ldr r3, [r7, #12]
|
||
6684 0104 1B68 ldr r3, [r3]
|
||
6685 .loc 1 3729 66
|
||
6686 0106 2433 adds r3, r3, #36
|
||
6687 .loc 1 3729 25
|
||
6688 0108 1946 mov r1, r3
|
||
6689 010a 7A68 ldr r2, [r7, #4]
|
||
3730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
6690 .loc 1 3730 46
|
||
6691 010c FB68 ldr r3, [r7, #12]
|
||
6692 010e 1B8D ldrh r3, [r3, #40]
|
||
3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
6693 .loc 1 3729 25
|
||
6694 0110 FFF7FEFF bl HAL_DMA_Start_IT
|
||
6695 0114 0346 mov r3, r0
|
||
6696 0116 FB75 strb r3, [r7, #23]
|
||
3731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
3735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
3736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
3737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
|
||
3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
|
||
6697 .loc 1 3747 10
|
||
6698 0118 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
6699 011a 002B cmp r3, #0
|
||
6700 011c 38D1 bne .L336
|
||
6701 011e 13E0 b .L338
|
||
6702 .L334:
|
||
3735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
6703 .loc 1 3735 25
|
||
6704 0120 FB68 ldr r3, [r7, #12]
|
||
6705 0122 2022 movs r2, #32
|
||
6706 0124 83F84120 strb r2, [r3, #65]
|
||
ARM GAS /tmp/cc5G5cqz.s page 185
|
||
|
||
|
||
3736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6707 .loc 1 3736 25
|
||
6708 0128 FB68 ldr r3, [r7, #12]
|
||
6709 012a 0022 movs r2, #0
|
||
6710 012c 83F84220 strb r2, [r3, #66]
|
||
3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6711 .loc 1 3739 13
|
||
6712 0130 FB68 ldr r3, [r7, #12]
|
||
6713 0132 5B6C ldr r3, [r3, #68]
|
||
3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6714 .loc 1 3739 25
|
||
6715 0134 43F08002 orr r2, r3, #128
|
||
6716 0138 FB68 ldr r3, [r7, #12]
|
||
6717 013a 5A64 str r2, [r3, #68]
|
||
3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6718 .loc 1 3742 9
|
||
6719 013c FB68 ldr r3, [r7, #12]
|
||
6720 013e 0022 movs r2, #0
|
||
6721 0140 83F84020 strb r2, [r3, #64]
|
||
3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6722 .loc 1 3744 16
|
||
6723 0144 0123 movs r3, #1
|
||
6724 0146 50E0 b .L325
|
||
6725 .L338:
|
||
3748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
|
||
3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
|
||
6726 .loc 1 3750 59
|
||
6727 0148 FB68 ldr r3, [r7, #12]
|
||
6728 014a 1B8D ldrh r3, [r3, #40]
|
||
6729 .loc 1 3750 9
|
||
6730 014c DAB2 uxtb r2, r3
|
||
6731 014e 7989 ldrh r1, [r7, #10]
|
||
6732 0150 BB69 ldr r3, [r7, #24]
|
||
6733 0152 0093 str r3, [sp]
|
||
6734 0154 FB69 ldr r3, [r7, #28]
|
||
6735 0156 F868 ldr r0, [r7, #12]
|
||
6736 0158 FFF7FEFF bl I2C_TransferConfig
|
||
3751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
|
||
3753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
|
||
6737 .loc 1 3753 13
|
||
6738 015c FB68 ldr r3, [r7, #12]
|
||
6739 015e 5B8D ldrh r3, [r3, #42] @ movhi
|
||
6740 0160 9AB2 uxth r2, r3
|
||
6741 .loc 1 3753 32
|
||
6742 0162 FB68 ldr r3, [r7, #12]
|
||
6743 0164 1B8D ldrh r3, [r3, #40]
|
||
6744 .loc 1 3753 25
|
||
6745 0166 D31A subs r3, r2, r3
|
||
6746 0168 9AB2 uxth r2, r3
|
||
6747 016a FB68 ldr r3, [r7, #12]
|
||
6748 016c 5A85 strh r2, [r3, #42] @ movhi
|
||
3754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6749 .loc 1 3756 9
|
||
ARM GAS /tmp/cc5G5cqz.s page 186
|
||
|
||
|
||
6750 016e FB68 ldr r3, [r7, #12]
|
||
6751 0170 0022 movs r2, #0
|
||
6752 0172 83F84020 strb r2, [r3, #64]
|
||
3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
3759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
3761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
|
||
3762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
|
||
6753 .loc 1 3762 9
|
||
6754 0176 1021 movs r1, #16
|
||
6755 0178 F868 ldr r0, [r7, #12]
|
||
6756 017a FFF7FEFF bl I2C_Enable_IRQ
|
||
3763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
|
||
3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
|
||
6757 .loc 1 3765 13
|
||
6758 017e FB68 ldr r3, [r7, #12]
|
||
6759 0180 1B68 ldr r3, [r3]
|
||
6760 .loc 1 3765 23
|
||
6761 0182 1A68 ldr r2, [r3]
|
||
6762 .loc 1 3765 13
|
||
6763 0184 FB68 ldr r3, [r7, #12]
|
||
6764 0186 1B68 ldr r3, [r3]
|
||
6765 .loc 1 3765 29
|
||
6766 0188 42F40042 orr r2, r2, #32768
|
||
6767 018c 1A60 str r2, [r3]
|
||
6768 018e 29E0 b .L337
|
||
6769 .L336:
|
||
3766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
3770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
6770 .loc 1 3770 25
|
||
6771 0190 FB68 ldr r3, [r7, #12]
|
||
6772 0192 2022 movs r2, #32
|
||
6773 0194 83F84120 strb r2, [r3, #65]
|
||
3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
6774 .loc 1 3771 25
|
||
6775 0198 FB68 ldr r3, [r7, #12]
|
||
6776 019a 0022 movs r2, #0
|
||
6777 019c 83F84220 strb r2, [r3, #66]
|
||
3772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
|
||
6778 .loc 1 3774 13
|
||
6779 01a0 FB68 ldr r3, [r7, #12]
|
||
6780 01a2 5B6C ldr r3, [r3, #68]
|
||
6781 .loc 1 3774 25
|
||
6782 01a4 43F01002 orr r2, r3, #16
|
||
6783 01a8 FB68 ldr r3, [r7, #12]
|
||
6784 01aa 5A64 str r2, [r3, #68]
|
||
3775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6785 .loc 1 3777 9
|
||
ARM GAS /tmp/cc5G5cqz.s page 187
|
||
|
||
|
||
6786 01ac FB68 ldr r3, [r7, #12]
|
||
6787 01ae 0022 movs r2, #0
|
||
6788 01b0 83F84020 strb r2, [r3, #64]
|
||
3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
6789 .loc 1 3779 16
|
||
6790 01b4 0123 movs r3, #1
|
||
6791 01b6 18E0 b .L325
|
||
6792 .L333:
|
||
3780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
|
||
3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
|
||
6793 .loc 1 3785 21
|
||
6794 01b8 FB68 ldr r3, [r7, #12]
|
||
6795 01ba 124A ldr r2, .L339+16
|
||
6796 01bc 5A63 str r2, [r3, #52]
|
||
3786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
|
||
3788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
|
||
3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
|
||
6797 .loc 1 3789 57
|
||
6798 01be FB68 ldr r3, [r7, #12]
|
||
6799 01c0 1B8D ldrh r3, [r3, #40]
|
||
6800 .loc 1 3789 7
|
||
6801 01c2 DAB2 uxtb r2, r3
|
||
6802 01c4 7989 ldrh r1, [r7, #10]
|
||
6803 01c6 0B4B ldr r3, .L339
|
||
6804 01c8 0093 str r3, [sp]
|
||
6805 01ca 4FF00073 mov r3, #33554432
|
||
6806 01ce F868 ldr r0, [r7, #12]
|
||
6807 01d0 FFF7FEFF bl I2C_TransferConfig
|
||
3790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
|
||
3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6808 .loc 1 3793 7
|
||
6809 01d4 FB68 ldr r3, [r7, #12]
|
||
6810 01d6 0022 movs r2, #0
|
||
6811 01d8 83F84020 strb r2, [r3, #64]
|
||
3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
3796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
3798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
|
||
3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
|
||
3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
|
||
3801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
|
||
3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
6812 .loc 1 3802 7
|
||
6813 01dc 0121 movs r1, #1
|
||
6814 01de F868 ldr r0, [r7, #12]
|
||
6815 01e0 FFF7FEFF bl I2C_Enable_IRQ
|
||
6816 .L337:
|
||
3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 188
|
||
|
||
|
||
3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
6817 .loc 1 3805 12
|
||
6818 01e4 0023 movs r3, #0
|
||
6819 01e6 00E0 b .L325
|
||
6820 .L323:
|
||
3806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
6821 .loc 1 3809 12
|
||
6822 01e8 0223 movs r3, #2
|
||
6823 .L325:
|
||
3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6824 .loc 1 3811 1
|
||
6825 01ea 1846 mov r0, r3
|
||
6826 01ec 2037 adds r7, r7, #32
|
||
6827 .cfi_def_cfa_offset 8
|
||
6828 01ee BD46 mov sp, r7
|
||
6829 .cfi_def_cfa_register 13
|
||
6830 @ sp needed
|
||
6831 01f0 80BD pop {r7, pc}
|
||
6832 .L340:
|
||
6833 01f2 00BF .align 2
|
||
6834 .L339:
|
||
6835 01f4 00240080 .word -2147474432
|
||
6836 01f8 00000000 .word I2C_Master_ISR_DMA
|
||
6837 01fc 00000000 .word I2C_DMAMasterReceiveCplt
|
||
6838 0200 00000000 .word I2C_DMAError
|
||
6839 0204 00000000 .word I2C_Master_ISR_IT
|
||
6840 .cfi_endproc
|
||
6841 .LFE156:
|
||
6843 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits
|
||
6844 .align 1
|
||
6845 .global HAL_I2C_Slave_Seq_Transmit_IT
|
||
6846 .syntax unified
|
||
6847 .thumb
|
||
6848 .thumb_func
|
||
6850 HAL_I2C_Slave_Seq_Transmit_IT:
|
||
6851 .LFB157:
|
||
3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
3814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit
|
||
3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
|
||
3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
3817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
3818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
|
||
3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S
|
||
3824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
|
||
3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6852 .loc 1 3825 1
|
||
6853 .cfi_startproc
|
||
ARM GAS /tmp/cc5G5cqz.s page 189
|
||
|
||
|
||
6854 @ args = 0, pretend = 0, frame = 24
|
||
6855 @ frame_needed = 1, uses_anonymous_args = 0
|
||
6856 0000 80B5 push {r7, lr}
|
||
6857 .cfi_def_cfa_offset 8
|
||
6858 .cfi_offset 7, -8
|
||
6859 .cfi_offset 14, -4
|
||
6860 0002 86B0 sub sp, sp, #24
|
||
6861 .cfi_def_cfa_offset 32
|
||
6862 0004 00AF add r7, sp, #0
|
||
6863 .cfi_def_cfa_register 7
|
||
6864 0006 F860 str r0, [r7, #12]
|
||
6865 0008 B960 str r1, [r7, #8]
|
||
6866 000a 3B60 str r3, [r7]
|
||
6867 000c 1346 mov r3, r2 @ movhi
|
||
6868 000e FB80 strh r3, [r7, #6] @ movhi
|
||
3826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
|
||
3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
|
||
3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
|
||
3831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
|
||
6869 .loc 1 3832 22
|
||
6870 0010 FB68 ldr r3, [r7, #12]
|
||
6871 0012 93F84130 ldrb r3, [r3, #65]
|
||
6872 0016 DBB2 uxtb r3, r3
|
||
6873 .loc 1 3832 30
|
||
6874 0018 03F02803 and r3, r3, #40
|
||
6875 .loc 1 3832 6
|
||
6876 001c 282B cmp r3, #40
|
||
6877 001e 40F09880 bne .L342
|
||
3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
|
||
6878 .loc 1 3834 8
|
||
6879 0022 BB68 ldr r3, [r7, #8]
|
||
6880 0024 002B cmp r3, #0
|
||
6881 0026 02D0 beq .L343
|
||
6882 .loc 1 3834 25 discriminator 1
|
||
6883 0028 FB88 ldrh r3, [r7, #6]
|
||
6884 002a 002B cmp r3, #0
|
||
6885 002c 05D1 bne .L344
|
||
6886 .L343:
|
||
3835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
|
||
6887 .loc 1 3836 23
|
||
6888 002e FB68 ldr r3, [r7, #12]
|
||
6889 0030 4FF40072 mov r2, #512
|
||
6890 0034 5A64 str r2, [r3, #68]
|
||
3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
6891 .loc 1 3837 15
|
||
6892 0036 0123 movs r3, #1
|
||
6893 0038 8CE0 b .L345
|
||
6894 .L344:
|
||
3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
|
||
3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
|
||
ARM GAS /tmp/cc5G5cqz.s page 190
|
||
|
||
|
||
6895 .loc 1 3841 5
|
||
6896 003a 48F20101 movw r1, #32769
|
||
6897 003e F868 ldr r0, [r7, #12]
|
||
6898 0040 FFF7FEFF bl I2C_Disable_IRQ
|
||
3842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
6899 .loc 1 3844 5
|
||
6900 0044 FB68 ldr r3, [r7, #12]
|
||
6901 0046 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
6902 004a 012B cmp r3, #1
|
||
6903 004c 01D1 bne .L346
|
||
6904 .loc 1 3844 5 is_stmt 0 discriminator 1
|
||
6905 004e 0223 movs r3, #2
|
||
6906 .loc 1 3844 5
|
||
6907 0050 80E0 b .L345
|
||
6908 .L346:
|
||
6909 .loc 1 3844 5 discriminator 2
|
||
6910 0052 FB68 ldr r3, [r7, #12]
|
||
6911 0054 0122 movs r2, #1
|
||
6912 0056 83F84020 strb r2, [r3, #64]
|
||
3845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
|
||
3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
|
||
3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
|
||
6913 .loc 1 3848 13 is_stmt 1
|
||
6914 005a FB68 ldr r3, [r7, #12]
|
||
6915 005c 93F84130 ldrb r3, [r3, #65]
|
||
6916 0060 DBB2 uxtb r3, r3
|
||
6917 .loc 1 3848 8
|
||
6918 0062 2A2B cmp r3, #42
|
||
6919 0064 2AD1 bne .L347
|
||
3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
|
||
3851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
|
||
6920 .loc 1 3851 7
|
||
6921 0066 0221 movs r1, #2
|
||
6922 0068 F868 ldr r0, [r7, #12]
|
||
6923 006a FFF7FEFF bl I2C_Disable_IRQ
|
||
3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
|
||
3854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
|
||
6924 .loc 1 3854 16
|
||
6925 006e FB68 ldr r3, [r7, #12]
|
||
6926 0070 1B68 ldr r3, [r3]
|
||
6927 .loc 1 3854 26
|
||
6928 0072 1B68 ldr r3, [r3]
|
||
6929 .loc 1 3854 32
|
||
6930 0074 03F40043 and r3, r3, #32768
|
||
6931 .loc 1 3854 10
|
||
6932 0078 B3F5004F cmp r3, #32768
|
||
6933 007c 1ED1 bne .L347
|
||
3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
|
||
6934 .loc 1 3856 13
|
||
6935 007e FB68 ldr r3, [r7, #12]
|
||
6936 0080 1B68 ldr r3, [r3]
|
||
ARM GAS /tmp/cc5G5cqz.s page 191
|
||
|
||
|
||
6937 .loc 1 3856 23
|
||
6938 0082 1A68 ldr r2, [r3]
|
||
6939 .loc 1 3856 13
|
||
6940 0084 FB68 ldr r3, [r7, #12]
|
||
6941 0086 1B68 ldr r3, [r3]
|
||
6942 .loc 1 3856 29
|
||
6943 0088 22F40042 bic r2, r2, #32768
|
||
6944 008c 1A60 str r2, [r3]
|
||
3857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
|
||
6945 .loc 1 3858 17
|
||
6946 008e FB68 ldr r3, [r7, #12]
|
||
6947 0090 DB6B ldr r3, [r3, #60]
|
||
6948 .loc 1 3858 12
|
||
6949 0092 002B cmp r3, #0
|
||
6950 0094 12D0 beq .L347
|
||
3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
|
||
3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
|
||
3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
|
||
6951 .loc 1 3862 15
|
||
6952 0096 FB68 ldr r3, [r7, #12]
|
||
6953 0098 DB6B ldr r3, [r3, #60]
|
||
6954 .loc 1 3862 43
|
||
6955 009a 304A ldr r2, .L349
|
||
6956 009c 5A63 str r2, [r3, #52]
|
||
3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
|
||
3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
|
||
6957 .loc 1 3865 15
|
||
6958 009e FB68 ldr r3, [r7, #12]
|
||
6959 00a0 DB6B ldr r3, [r3, #60]
|
||
6960 00a2 1846 mov r0, r3
|
||
6961 00a4 FFF7FEFF bl HAL_DMA_Abort_IT
|
||
6962 00a8 0346 mov r3, r0
|
||
6963 .loc 1 3865 14 discriminator 1
|
||
6964 00aa 002B cmp r3, #0
|
||
6965 00ac 06D0 beq .L347
|
||
3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
|
||
3868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
|
||
6966 .loc 1 3868 17
|
||
6967 00ae FB68 ldr r3, [r7, #12]
|
||
6968 00b0 DB6B ldr r3, [r3, #60]
|
||
6969 .loc 1 3868 25
|
||
6970 00b2 5B6B ldr r3, [r3, #52]
|
||
6971 .loc 1 3868 49
|
||
6972 00b4 FA68 ldr r2, [r7, #12]
|
||
6973 00b6 D26B ldr r2, [r2, #60]
|
||
6974 .loc 1 3868 13
|
||
6975 00b8 1046 mov r0, r2
|
||
6976 00ba 9847 blx r3
|
||
6977 .LVL0:
|
||
6978 .L347:
|
||
3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 192
|
||
|
||
|
||
3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
|
||
6979 .loc 1 3874 21
|
||
6980 00bc FB68 ldr r3, [r7, #12]
|
||
6981 00be 2922 movs r2, #41
|
||
6982 00c0 83F84120 strb r2, [r3, #65]
|
||
3875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
|
||
6983 .loc 1 3875 21
|
||
6984 00c4 FB68 ldr r3, [r7, #12]
|
||
6985 00c6 2022 movs r2, #32
|
||
6986 00c8 83F84220 strb r2, [r3, #66]
|
||
3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
6987 .loc 1 3876 21
|
||
6988 00cc FB68 ldr r3, [r7, #12]
|
||
6989 00ce 0022 movs r2, #0
|
||
6990 00d0 5A64 str r2, [r3, #68]
|
||
3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
|
||
3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
|
||
6991 .loc 1 3879 9
|
||
6992 00d2 FB68 ldr r3, [r7, #12]
|
||
6993 00d4 1B68 ldr r3, [r3]
|
||
6994 .loc 1 3879 19
|
||
6995 00d6 5A68 ldr r2, [r3, #4]
|
||
6996 .loc 1 3879 9
|
||
6997 00d8 FB68 ldr r3, [r7, #12]
|
||
6998 00da 1B68 ldr r3, [r3]
|
||
6999 .loc 1 3879 25
|
||
7000 00dc 22F40042 bic r2, r2, #32768
|
||
7001 00e0 5A60 str r2, [r3, #4]
|
||
3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
3882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
7002 .loc 1 3882 23
|
||
7003 00e2 FB68 ldr r3, [r7, #12]
|
||
7004 00e4 BA68 ldr r2, [r7, #8]
|
||
7005 00e6 5A62 str r2, [r3, #36]
|
||
3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
7006 .loc 1 3883 23
|
||
7007 00e8 FB68 ldr r3, [r7, #12]
|
||
7008 00ea FA88 ldrh r2, [r7, #6] @ movhi
|
||
7009 00ec 5A85 strh r2, [r3, #42] @ movhi
|
||
3884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
7010 .loc 1 3884 29
|
||
7011 00ee FB68 ldr r3, [r7, #12]
|
||
7012 00f0 5B8D ldrh r3, [r3, #42] @ movhi
|
||
7013 00f2 9AB2 uxth r2, r3
|
||
7014 .loc 1 3884 23
|
||
7015 00f4 FB68 ldr r3, [r7, #12]
|
||
7016 00f6 1A85 strh r2, [r3, #40] @ movhi
|
||
3885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
|
||
7017 .loc 1 3885 23
|
||
7018 00f8 FB68 ldr r3, [r7, #12]
|
||
7019 00fa 3A68 ldr r2, [r7]
|
||
7020 00fc DA62 str r2, [r3, #44]
|
||
3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
|
||
ARM GAS /tmp/cc5G5cqz.s page 193
|
||
|
||
|
||
7021 .loc 1 3886 23
|
||
7022 00fe FB68 ldr r3, [r7, #12]
|
||
7023 0100 174A ldr r2, .L349+4
|
||
7024 0102 5A63 str r2, [r3, #52]
|
||
3887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
|
||
7025 .loc 1 3888 11
|
||
7026 0104 FB68 ldr r3, [r7, #12]
|
||
7027 0106 1B68 ldr r3, [r3]
|
||
7028 0108 9B69 ldr r3, [r3, #24]
|
||
7029 010a 03F00803 and r3, r3, #8
|
||
7030 010e 082B cmp r3, #8
|
||
7031 0110 0CBF ite eq
|
||
7032 0112 0123 moveq r3, #1
|
||
7033 0114 0023 movne r3, #0
|
||
7034 0116 DBB2 uxtb r3, r3
|
||
7035 .loc 1 3888 9
|
||
7036 0118 FB75 strb r3, [r7, #23]
|
||
3889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
|
||
7037 .loc 1 3889 10
|
||
7038 011a FB68 ldr r3, [r7, #12]
|
||
7039 011c 1B68 ldr r3, [r3]
|
||
7040 011e 9B69 ldr r3, [r3, #24]
|
||
7041 0120 1B0C lsrs r3, r3, #16
|
||
7042 0122 DBB2 uxtb r3, r3
|
||
7043 0124 03F00103 and r3, r3, #1
|
||
7044 0128 DBB2 uxtb r3, r3
|
||
7045 .loc 1 3889 8
|
||
7046 012a 012B cmp r3, #1
|
||
7047 012c 06D1 bne .L348
|
||
7048 .loc 1 3889 54 discriminator 1
|
||
7049 012e FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
7050 0130 002B cmp r3, #0
|
||
7051 0132 03D0 beq .L348
|
||
3890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
|
||
3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
|
||
3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
|
||
7052 .loc 1 3893 7
|
||
7053 0134 FB68 ldr r3, [r7, #12]
|
||
7054 0136 1B68 ldr r3, [r3]
|
||
7055 0138 0822 movs r2, #8
|
||
7056 013a DA61 str r2, [r3, #28]
|
||
7057 .L348:
|
||
3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
7058 .loc 1 3897 5
|
||
7059 013c FB68 ldr r3, [r7, #12]
|
||
7060 013e 0022 movs r2, #0
|
||
7061 0140 83F84020 strb r2, [r3, #64]
|
||
3898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
3902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
|
||
ARM GAS /tmp/cc5G5cqz.s page 194
|
||
|
||
|
||
3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
|
||
7062 .loc 1 3903 5
|
||
7063 0144 48F20101 movw r1, #32769
|
||
7064 0148 F868 ldr r0, [r7, #12]
|
||
7065 014a FFF7FEFF bl I2C_Enable_IRQ
|
||
3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
7066 .loc 1 3905 12
|
||
7067 014e 0023 movs r3, #0
|
||
7068 0150 00E0 b .L345
|
||
7069 .L342:
|
||
3906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
7070 .loc 1 3909 12
|
||
7071 0152 0123 movs r3, #1
|
||
7072 .L345:
|
||
3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7073 .loc 1 3911 1
|
||
7074 0154 1846 mov r0, r3
|
||
7075 0156 1837 adds r7, r7, #24
|
||
7076 .cfi_def_cfa_offset 8
|
||
7077 0158 BD46 mov sp, r7
|
||
7078 .cfi_def_cfa_register 13
|
||
7079 @ sp needed
|
||
7080 015a 80BD pop {r7, pc}
|
||
7081 .L350:
|
||
7082 .align 2
|
||
7083 .L349:
|
||
7084 015c 00000000 .word I2C_DMAAbort
|
||
7085 0160 00000000 .word I2C_Slave_ISR_IT
|
||
7086 .cfi_endproc
|
||
7087 .LFE157:
|
||
7089 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits
|
||
7090 .align 1
|
||
7091 .global HAL_I2C_Slave_Seq_Transmit_DMA
|
||
7092 .syntax unified
|
||
7093 .thumb
|
||
7094 .thumb_func
|
||
7096 HAL_I2C_Slave_Seq_Transmit_DMA:
|
||
7097 .LFB158:
|
||
3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
3914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit
|
||
3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
|
||
3916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
3917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
3918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
3920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
|
||
3921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t
|
||
3924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
|
||
3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
ARM GAS /tmp/cc5G5cqz.s page 195
|
||
|
||
|
||
7098 .loc 1 3925 1
|
||
7099 .cfi_startproc
|
||
7100 @ args = 0, pretend = 0, frame = 24
|
||
7101 @ frame_needed = 1, uses_anonymous_args = 0
|
||
7102 0000 80B5 push {r7, lr}
|
||
7103 .cfi_def_cfa_offset 8
|
||
7104 .cfi_offset 7, -8
|
||
7105 .cfi_offset 14, -4
|
||
7106 0002 86B0 sub sp, sp, #24
|
||
7107 .cfi_def_cfa_offset 32
|
||
7108 0004 00AF add r7, sp, #0
|
||
7109 .cfi_def_cfa_register 7
|
||
7110 0006 F860 str r0, [r7, #12]
|
||
7111 0008 B960 str r1, [r7, #8]
|
||
7112 000a 3B60 str r3, [r7]
|
||
7113 000c 1346 mov r3, r2 @ movhi
|
||
7114 000e FB80 strh r3, [r7, #6] @ movhi
|
||
3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
|
||
3927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
|
||
3928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
|
||
3929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
3931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
|
||
3932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
|
||
7115 .loc 1 3933 22
|
||
7116 0010 FB68 ldr r3, [r7, #12]
|
||
7117 0012 93F84130 ldrb r3, [r3, #65]
|
||
7118 0016 DBB2 uxtb r3, r3
|
||
7119 .loc 1 3933 30
|
||
7120 0018 03F02803 and r3, r3, #40
|
||
7121 .loc 1 3933 6
|
||
7122 001c 282B cmp r3, #40
|
||
7123 001e 40F02881 bne .L352
|
||
3934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
|
||
7124 .loc 1 3935 8
|
||
7125 0022 BB68 ldr r3, [r7, #8]
|
||
7126 0024 002B cmp r3, #0
|
||
7127 0026 02D0 beq .L353
|
||
7128 .loc 1 3935 25 discriminator 1
|
||
7129 0028 FB88 ldrh r3, [r7, #6]
|
||
7130 002a 002B cmp r3, #0
|
||
7131 002c 05D1 bne .L354
|
||
7132 .L353:
|
||
3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
|
||
7133 .loc 1 3937 23
|
||
7134 002e FB68 ldr r3, [r7, #12]
|
||
7135 0030 4FF40072 mov r2, #512
|
||
7136 0034 5A64 str r2, [r3, #68]
|
||
3938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
7137 .loc 1 3938 15
|
||
7138 0036 0123 movs r3, #1
|
||
7139 0038 1CE1 b .L355
|
||
7140 .L354:
|
||
3939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 196
|
||
|
||
|
||
3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
3942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
7141 .loc 1 3942 5
|
||
7142 003a FB68 ldr r3, [r7, #12]
|
||
7143 003c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
7144 0040 012B cmp r3, #1
|
||
7145 0042 01D1 bne .L356
|
||
7146 .loc 1 3942 5 is_stmt 0 discriminator 1
|
||
7147 0044 0223 movs r3, #2
|
||
7148 .loc 1 3942 5
|
||
7149 0046 15E1 b .L355
|
||
7150 .L356:
|
||
7151 .loc 1 3942 5 discriminator 2
|
||
7152 0048 FB68 ldr r3, [r7, #12]
|
||
7153 004a 0122 movs r2, #1
|
||
7154 004c 83F84020 strb r2, [r3, #64]
|
||
3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
|
||
3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
|
||
7155 .loc 1 3945 5 is_stmt 1
|
||
7156 0050 48F20101 movw r1, #32769
|
||
7157 0054 F868 ldr r0, [r7, #12]
|
||
7158 0056 FFF7FEFF bl I2C_Disable_IRQ
|
||
3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
|
||
3948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
|
||
3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
|
||
7159 .loc 1 3949 13
|
||
7160 005a FB68 ldr r3, [r7, #12]
|
||
7161 005c 93F84130 ldrb r3, [r3, #65]
|
||
7162 0060 DBB2 uxtb r3, r3
|
||
7163 .loc 1 3949 8
|
||
7164 0062 2A2B cmp r3, #42
|
||
7165 0064 2BD1 bne .L357
|
||
3950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
|
||
3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
|
||
7166 .loc 1 3952 7
|
||
7167 0066 0221 movs r1, #2
|
||
7168 0068 F868 ldr r0, [r7, #12]
|
||
7169 006a FFF7FEFF bl I2C_Disable_IRQ
|
||
3953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
|
||
7170 .loc 1 3954 16
|
||
7171 006e FB68 ldr r3, [r7, #12]
|
||
7172 0070 1B68 ldr r3, [r3]
|
||
7173 .loc 1 3954 26
|
||
7174 0072 1B68 ldr r3, [r3]
|
||
7175 .loc 1 3954 32
|
||
7176 0074 03F40043 and r3, r3, #32768
|
||
7177 .loc 1 3954 10
|
||
7178 0078 B3F5004F cmp r3, #32768
|
||
7179 007c 4CD1 bne .L358
|
||
3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
|
||
3957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
|
||
ARM GAS /tmp/cc5G5cqz.s page 197
|
||
|
||
|
||
7180 .loc 1 3957 17
|
||
7181 007e FB68 ldr r3, [r7, #12]
|
||
7182 0080 DB6B ldr r3, [r3, #60]
|
||
7183 .loc 1 3957 12
|
||
7184 0082 002B cmp r3, #0
|
||
7185 0084 48D0 beq .L358
|
||
3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
|
||
7186 .loc 1 3959 15
|
||
7187 0086 FB68 ldr r3, [r7, #12]
|
||
7188 0088 1B68 ldr r3, [r3]
|
||
7189 .loc 1 3959 25
|
||
7190 008a 1A68 ldr r2, [r3]
|
||
7191 .loc 1 3959 15
|
||
7192 008c FB68 ldr r3, [r7, #12]
|
||
7193 008e 1B68 ldr r3, [r3]
|
||
7194 .loc 1 3959 31
|
||
7195 0090 22F40042 bic r2, r2, #32768
|
||
7196 0094 1A60 str r2, [r3]
|
||
3960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
|
||
3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
|
||
3963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
|
||
7197 .loc 1 3963 15
|
||
7198 0096 FB68 ldr r3, [r7, #12]
|
||
7199 0098 DB6B ldr r3, [r3, #60]
|
||
7200 .loc 1 3963 43
|
||
7201 009a 784A ldr r2, .L366
|
||
7202 009c 5A63 str r2, [r3, #52]
|
||
3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
|
||
3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
|
||
7203 .loc 1 3966 15
|
||
7204 009e FB68 ldr r3, [r7, #12]
|
||
7205 00a0 DB6B ldr r3, [r3, #60]
|
||
7206 00a2 1846 mov r0, r3
|
||
7207 00a4 FFF7FEFF bl HAL_DMA_Abort_IT
|
||
7208 00a8 0346 mov r3, r0
|
||
7209 .loc 1 3966 14 discriminator 1
|
||
7210 00aa 002B cmp r3, #0
|
||
7211 00ac 34D0 beq .L358
|
||
3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
|
||
3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
|
||
7212 .loc 1 3969 17
|
||
7213 00ae FB68 ldr r3, [r7, #12]
|
||
7214 00b0 DB6B ldr r3, [r3, #60]
|
||
7215 .loc 1 3969 25
|
||
7216 00b2 5B6B ldr r3, [r3, #52]
|
||
7217 .loc 1 3969 49
|
||
7218 00b4 FA68 ldr r2, [r7, #12]
|
||
7219 00b6 D26B ldr r2, [r2, #60]
|
||
7220 .loc 1 3969 13
|
||
7221 00b8 1046 mov r0, r2
|
||
7222 00ba 9847 blx r3
|
||
7223 .LVL1:
|
||
7224 00bc 2CE0 b .L358
|
||
ARM GAS /tmp/cc5G5cqz.s page 198
|
||
|
||
|
||
7225 .L357:
|
||
3970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
|
||
7226 .loc 1 3974 18
|
||
7227 00be FB68 ldr r3, [r7, #12]
|
||
7228 00c0 93F84130 ldrb r3, [r3, #65]
|
||
7229 00c4 DBB2 uxtb r3, r3
|
||
7230 .loc 1 3974 13
|
||
7231 00c6 292B cmp r3, #41
|
||
7232 00c8 26D1 bne .L358
|
||
3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
|
||
7233 .loc 1 3976 16
|
||
7234 00ca FB68 ldr r3, [r7, #12]
|
||
7235 00cc 1B68 ldr r3, [r3]
|
||
7236 .loc 1 3976 26
|
||
7237 00ce 1B68 ldr r3, [r3]
|
||
7238 .loc 1 3976 32
|
||
7239 00d0 03F48043 and r3, r3, #16384
|
||
7240 .loc 1 3976 10
|
||
7241 00d4 B3F5804F cmp r3, #16384
|
||
7242 00d8 1ED1 bne .L358
|
||
3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
|
||
7243 .loc 1 3978 13
|
||
7244 00da FB68 ldr r3, [r7, #12]
|
||
7245 00dc 1B68 ldr r3, [r3]
|
||
7246 .loc 1 3978 23
|
||
7247 00de 1A68 ldr r2, [r3]
|
||
7248 .loc 1 3978 13
|
||
7249 00e0 FB68 ldr r3, [r7, #12]
|
||
7250 00e2 1B68 ldr r3, [r3]
|
||
7251 .loc 1 3978 29
|
||
7252 00e4 22F48042 bic r2, r2, #16384
|
||
7253 00e8 1A60 str r2, [r3]
|
||
3979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
|
||
3981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
|
||
7254 .loc 1 3981 17
|
||
7255 00ea FB68 ldr r3, [r7, #12]
|
||
7256 00ec 9B6B ldr r3, [r3, #56]
|
||
7257 .loc 1 3981 12
|
||
7258 00ee 002B cmp r3, #0
|
||
7259 00f0 12D0 beq .L358
|
||
3982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
|
||
3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
|
||
3985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
|
||
7260 .loc 1 3985 15
|
||
7261 00f2 FB68 ldr r3, [r7, #12]
|
||
7262 00f4 9B6B ldr r3, [r3, #56]
|
||
7263 .loc 1 3985 43
|
||
7264 00f6 614A ldr r2, .L366
|
||
7265 00f8 5A63 str r2, [r3, #52]
|
||
ARM GAS /tmp/cc5G5cqz.s page 199
|
||
|
||
|
||
3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
3987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
|
||
3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
|
||
7266 .loc 1 3988 15
|
||
7267 00fa FB68 ldr r3, [r7, #12]
|
||
7268 00fc 9B6B ldr r3, [r3, #56]
|
||
7269 00fe 1846 mov r0, r3
|
||
7270 0100 FFF7FEFF bl HAL_DMA_Abort_IT
|
||
7271 0104 0346 mov r3, r0
|
||
7272 .loc 1 3988 14 discriminator 1
|
||
7273 0106 002B cmp r3, #0
|
||
7274 0108 06D0 beq .L358
|
||
3989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
|
||
3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
|
||
7275 .loc 1 3991 17
|
||
7276 010a FB68 ldr r3, [r7, #12]
|
||
7277 010c 9B6B ldr r3, [r3, #56]
|
||
7278 .loc 1 3991 25
|
||
7279 010e 5B6B ldr r3, [r3, #52]
|
||
7280 .loc 1 3991 49
|
||
7281 0110 FA68 ldr r2, [r7, #12]
|
||
7282 0112 926B ldr r2, [r2, #56]
|
||
7283 .loc 1 3991 13
|
||
7284 0114 1046 mov r0, r2
|
||
7285 0116 9847 blx r3
|
||
7286 .LVL2:
|
||
7287 .L358:
|
||
3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
3996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
3997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
|
||
3999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
|
||
7288 .loc 1 4001 21
|
||
7289 0118 FB68 ldr r3, [r7, #12]
|
||
7290 011a 2922 movs r2, #41
|
||
7291 011c 83F84120 strb r2, [r3, #65]
|
||
4002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
|
||
7292 .loc 1 4002 21
|
||
7293 0120 FB68 ldr r3, [r7, #12]
|
||
7294 0122 2022 movs r2, #32
|
||
7295 0124 83F84220 strb r2, [r3, #66]
|
||
4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
7296 .loc 1 4003 21
|
||
7297 0128 FB68 ldr r3, [r7, #12]
|
||
7298 012a 0022 movs r2, #0
|
||
7299 012c 5A64 str r2, [r3, #68]
|
||
4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
|
||
4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
|
||
7300 .loc 1 4006 9
|
||
7301 012e FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 200
|
||
|
||
|
||
7302 0130 1B68 ldr r3, [r3]
|
||
7303 .loc 1 4006 19
|
||
7304 0132 5A68 ldr r2, [r3, #4]
|
||
7305 .loc 1 4006 9
|
||
7306 0134 FB68 ldr r3, [r7, #12]
|
||
7307 0136 1B68 ldr r3, [r3]
|
||
7308 .loc 1 4006 25
|
||
7309 0138 22F40042 bic r2, r2, #32768
|
||
7310 013c 5A60 str r2, [r3, #4]
|
||
4007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
7311 .loc 1 4009 23
|
||
7312 013e FB68 ldr r3, [r7, #12]
|
||
7313 0140 BA68 ldr r2, [r7, #8]
|
||
7314 0142 5A62 str r2, [r3, #36]
|
||
4010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
7315 .loc 1 4010 23
|
||
7316 0144 FB68 ldr r3, [r7, #12]
|
||
7317 0146 FA88 ldrh r2, [r7, #6] @ movhi
|
||
7318 0148 5A85 strh r2, [r3, #42] @ movhi
|
||
4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
7319 .loc 1 4011 29
|
||
7320 014a FB68 ldr r3, [r7, #12]
|
||
7321 014c 5B8D ldrh r3, [r3, #42] @ movhi
|
||
7322 014e 9AB2 uxth r2, r3
|
||
7323 .loc 1 4011 23
|
||
7324 0150 FB68 ldr r3, [r7, #12]
|
||
7325 0152 1A85 strh r2, [r3, #40] @ movhi
|
||
4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
|
||
7326 .loc 1 4012 23
|
||
7327 0154 FB68 ldr r3, [r7, #12]
|
||
7328 0156 3A68 ldr r2, [r7]
|
||
7329 0158 DA62 str r2, [r3, #44]
|
||
4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
|
||
7330 .loc 1 4013 23
|
||
7331 015a FB68 ldr r3, [r7, #12]
|
||
7332 015c 484A ldr r2, .L366+4
|
||
7333 015e 5A63 str r2, [r3, #52]
|
||
4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
|
||
7334 .loc 1 4015 13
|
||
7335 0160 FB68 ldr r3, [r7, #12]
|
||
7336 0162 9B6B ldr r3, [r3, #56]
|
||
7337 .loc 1 4015 8
|
||
7338 0164 002B cmp r3, #0
|
||
7339 0166 20D0 beq .L359
|
||
4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
|
||
4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
|
||
7340 .loc 1 4018 11
|
||
7341 0168 FB68 ldr r3, [r7, #12]
|
||
7342 016a 9B6B ldr r3, [r3, #56]
|
||
7343 .loc 1 4018 38
|
||
7344 016c 454A ldr r2, .L366+8
|
||
7345 016e 9A62 str r2, [r3, #40]
|
||
4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 201
|
||
|
||
|
||
4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
|
||
4021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
|
||
7346 .loc 1 4021 11
|
||
7347 0170 FB68 ldr r3, [r7, #12]
|
||
7348 0172 9B6B ldr r3, [r3, #56]
|
||
7349 .loc 1 4021 39
|
||
7350 0174 444A ldr r2, .L366+12
|
||
7351 0176 1A63 str r2, [r3, #48]
|
||
4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
|
||
4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
|
||
7352 .loc 1 4024 11
|
||
7353 0178 FB68 ldr r3, [r7, #12]
|
||
7354 017a 9B6B ldr r3, [r3, #56]
|
||
7355 .loc 1 4024 42
|
||
7356 017c 0022 movs r2, #0
|
||
7357 017e DA62 str r2, [r3, #44]
|
||
4025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
|
||
7358 .loc 1 4025 11
|
||
7359 0180 FB68 ldr r3, [r7, #12]
|
||
7360 0182 9B6B ldr r3, [r3, #56]
|
||
7361 .loc 1 4025 39
|
||
7362 0184 0022 movs r2, #0
|
||
7363 0186 5A63 str r2, [r3, #52]
|
||
4026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
|
||
4028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
|
||
7364 .loc 1 4028 23
|
||
7365 0188 FB68 ldr r3, [r7, #12]
|
||
7366 018a 986B ldr r0, [r3, #56]
|
||
7367 018c B968 ldr r1, [r7, #8]
|
||
7368 .loc 1 4028 86
|
||
7369 018e FB68 ldr r3, [r7, #12]
|
||
7370 0190 1B68 ldr r3, [r3]
|
||
7371 .loc 1 4028 81
|
||
7372 0192 2833 adds r3, r3, #40
|
||
7373 .loc 1 4028 23
|
||
7374 0194 1A46 mov r2, r3
|
||
4029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
7375 .loc 1 4029 44
|
||
7376 0196 FB68 ldr r3, [r7, #12]
|
||
7377 0198 1B8D ldrh r3, [r3, #40]
|
||
4028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
|
||
7378 .loc 1 4028 23
|
||
7379 019a FFF7FEFF bl HAL_DMA_Start_IT
|
||
7380 019e 0346 mov r3, r0
|
||
7381 01a0 FB75 strb r3, [r7, #23]
|
||
4030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
4034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
|
||
4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
4036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
4038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
|
||
4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 202
|
||
|
||
|
||
4040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
4044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
|
||
7382 .loc 1 4046 8
|
||
7383 01a2 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
7384 01a4 002B cmp r3, #0
|
||
7385 01a6 36D1 bne .L361
|
||
7386 01a8 13E0 b .L364
|
||
7387 .L359:
|
||
4034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
7388 .loc 1 4034 23
|
||
7389 01aa FB68 ldr r3, [r7, #12]
|
||
7390 01ac 2822 movs r2, #40
|
||
7391 01ae 83F84120 strb r2, [r3, #65]
|
||
4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7392 .loc 1 4035 23
|
||
7393 01b2 FB68 ldr r3, [r7, #12]
|
||
7394 01b4 0022 movs r2, #0
|
||
7395 01b6 83F84220 strb r2, [r3, #66]
|
||
4038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7396 .loc 1 4038 11
|
||
7397 01ba FB68 ldr r3, [r7, #12]
|
||
7398 01bc 5B6C ldr r3, [r3, #68]
|
||
4038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7399 .loc 1 4038 23
|
||
7400 01be 43F08002 orr r2, r3, #128
|
||
7401 01c2 FB68 ldr r3, [r7, #12]
|
||
7402 01c4 5A64 str r2, [r3, #68]
|
||
4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7403 .loc 1 4041 7
|
||
7404 01c6 FB68 ldr r3, [r7, #12]
|
||
7405 01c8 0022 movs r2, #0
|
||
7406 01ca 83F84020 strb r2, [r3, #64]
|
||
4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7407 .loc 1 4043 14
|
||
7408 01ce 0123 movs r3, #1
|
||
7409 01d0 50E0 b .L355
|
||
7410 .L364:
|
||
4047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
|
||
4049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
|
||
7411 .loc 1 4049 11
|
||
7412 01d2 FB68 ldr r3, [r7, #12]
|
||
7413 01d4 5B8D ldrh r3, [r3, #42] @ movhi
|
||
7414 01d6 9AB2 uxth r2, r3
|
||
7415 .loc 1 4049 30
|
||
7416 01d8 FB68 ldr r3, [r7, #12]
|
||
7417 01da 1B8D ldrh r3, [r3, #40]
|
||
7418 .loc 1 4049 23
|
||
7419 01dc D31A subs r3, r2, r3
|
||
7420 01de 9AB2 uxth r2, r3
|
||
7421 01e0 FB68 ldr r3, [r7, #12]
|
||
7422 01e2 5A85 strh r2, [r3, #42] @ movhi
|
||
ARM GAS /tmp/cc5G5cqz.s page 203
|
||
|
||
|
||
4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset XferSize */
|
||
4052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0;
|
||
7423 .loc 1 4052 22
|
||
7424 01e4 FB68 ldr r3, [r7, #12]
|
||
7425 01e6 0022 movs r2, #0
|
||
7426 01e8 1A85 strh r2, [r3, #40] @ movhi
|
||
4053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
4057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
|
||
4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
|
||
4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
4064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
|
||
7427 .loc 1 4069 11
|
||
7428 01ea FB68 ldr r3, [r7, #12]
|
||
7429 01ec 1B68 ldr r3, [r3]
|
||
7430 01ee 9B69 ldr r3, [r3, #24]
|
||
7431 01f0 03F00803 and r3, r3, #8
|
||
7432 01f4 082B cmp r3, #8
|
||
7433 01f6 0CBF ite eq
|
||
7434 01f8 0123 moveq r3, #1
|
||
7435 01fa 0023 movne r3, #0
|
||
7436 01fc DBB2 uxtb r3, r3
|
||
7437 .loc 1 4069 9
|
||
7438 01fe BB75 strb r3, [r7, #22]
|
||
4070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
|
||
7439 .loc 1 4070 10
|
||
7440 0200 FB68 ldr r3, [r7, #12]
|
||
7441 0202 1B68 ldr r3, [r3]
|
||
7442 0204 9B69 ldr r3, [r3, #24]
|
||
7443 0206 1B0C lsrs r3, r3, #16
|
||
7444 0208 DBB2 uxtb r3, r3
|
||
7445 020a 03F00103 and r3, r3, #1
|
||
7446 020e DBB2 uxtb r3, r3
|
||
7447 .loc 1 4070 8
|
||
7448 0210 012B cmp r3, #1
|
||
7449 0212 1BD1 bne .L363
|
||
7450 0214 13E0 b .L365
|
||
7451 .L361:
|
||
4057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
7452 .loc 1 4057 23
|
||
7453 0216 FB68 ldr r3, [r7, #12]
|
||
7454 0218 2822 movs r2, #40
|
||
7455 021a 83F84120 strb r2, [r3, #65]
|
||
4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7456 .loc 1 4058 23
|
||
ARM GAS /tmp/cc5G5cqz.s page 204
|
||
|
||
|
||
7457 021e FB68 ldr r3, [r7, #12]
|
||
7458 0220 0022 movs r2, #0
|
||
7459 0222 83F84220 strb r2, [r3, #66]
|
||
4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7460 .loc 1 4061 11
|
||
7461 0226 FB68 ldr r3, [r7, #12]
|
||
7462 0228 5B6C ldr r3, [r3, #68]
|
||
4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7463 .loc 1 4061 23
|
||
7464 022a 43F01002 orr r2, r3, #16
|
||
7465 022e FB68 ldr r3, [r7, #12]
|
||
7466 0230 5A64 str r2, [r3, #68]
|
||
4064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7467 .loc 1 4064 7
|
||
7468 0232 FB68 ldr r3, [r7, #12]
|
||
7469 0234 0022 movs r2, #0
|
||
7470 0236 83F84020 strb r2, [r3, #64]
|
||
4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7471 .loc 1 4066 14
|
||
7472 023a 0123 movs r3, #1
|
||
7473 023c 1AE0 b .L355
|
||
7474 .L365:
|
||
7475 .loc 1 4070 54 discriminator 1
|
||
7476 023e BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
|
||
7477 0240 002B cmp r3, #0
|
||
7478 0242 03D0 beq .L363
|
||
4071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
|
||
4073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
|
||
4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
|
||
7479 .loc 1 4074 7
|
||
7480 0244 FB68 ldr r3, [r7, #12]
|
||
7481 0246 1B68 ldr r3, [r3]
|
||
7482 0248 0822 movs r2, #8
|
||
7483 024a DA61 str r2, [r3, #28]
|
||
7484 .L363:
|
||
4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
4078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
7485 .loc 1 4078 5
|
||
7486 024c FB68 ldr r3, [r7, #12]
|
||
7487 024e 0022 movs r2, #0
|
||
7488 0250 83F84020 strb r2, [r3, #64]
|
||
4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
|
||
4081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
|
||
7489 .loc 1 4081 9
|
||
7490 0254 FB68 ldr r3, [r7, #12]
|
||
7491 0256 1B68 ldr r3, [r3]
|
||
7492 .loc 1 4081 19
|
||
7493 0258 1A68 ldr r2, [r3]
|
||
7494 .loc 1 4081 9
|
||
7495 025a FB68 ldr r3, [r7, #12]
|
||
7496 025c 1B68 ldr r3, [r3]
|
||
7497 .loc 1 4081 25
|
||
7498 025e 42F48042 orr r2, r2, #16384
|
||
ARM GAS /tmp/cc5G5cqz.s page 205
|
||
|
||
|
||
7499 0262 1A60 str r2, [r3]
|
||
4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
4086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
|
||
4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
|
||
7500 .loc 1 4087 5
|
||
7501 0264 4FF40041 mov r1, #32768
|
||
7502 0268 F868 ldr r0, [r7, #12]
|
||
7503 026a FFF7FEFF bl I2C_Enable_IRQ
|
||
4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
7504 .loc 1 4089 12
|
||
7505 026e 0023 movs r3, #0
|
||
7506 0270 00E0 b .L355
|
||
7507 .L352:
|
||
4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
7508 .loc 1 4093 12
|
||
7509 0272 0123 movs r3, #1
|
||
7510 .L355:
|
||
4094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7511 .loc 1 4095 1
|
||
7512 0274 1846 mov r0, r3
|
||
7513 0276 1837 adds r7, r7, #24
|
||
7514 .cfi_def_cfa_offset 8
|
||
7515 0278 BD46 mov sp, r7
|
||
7516 .cfi_def_cfa_register 13
|
||
7517 @ sp needed
|
||
7518 027a 80BD pop {r7, pc}
|
||
7519 .L367:
|
||
7520 .align 2
|
||
7521 .L366:
|
||
7522 027c 00000000 .word I2C_DMAAbort
|
||
7523 0280 00000000 .word I2C_Slave_ISR_DMA
|
||
7524 0284 00000000 .word I2C_DMASlaveTransmitCplt
|
||
7525 0288 00000000 .word I2C_DMAError
|
||
7526 .cfi_endproc
|
||
7527 .LFE158:
|
||
7529 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits
|
||
7530 .align 1
|
||
7531 .global HAL_I2C_Slave_Seq_Receive_IT
|
||
7532 .syntax unified
|
||
7533 .thumb
|
||
7534 .thumb_func
|
||
7536 HAL_I2C_Slave_Seq_Receive_IT:
|
||
7537 .LFB159:
|
||
4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with
|
||
4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
|
||
4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
ARM GAS /tmp/cc5G5cqz.s page 206
|
||
|
||
|
||
4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
4103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
|
||
4105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si
|
||
4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
|
||
4109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7538 .loc 1 4109 1
|
||
7539 .cfi_startproc
|
||
7540 @ args = 0, pretend = 0, frame = 24
|
||
7541 @ frame_needed = 1, uses_anonymous_args = 0
|
||
7542 0000 80B5 push {r7, lr}
|
||
7543 .cfi_def_cfa_offset 8
|
||
7544 .cfi_offset 7, -8
|
||
7545 .cfi_offset 14, -4
|
||
7546 0002 86B0 sub sp, sp, #24
|
||
7547 .cfi_def_cfa_offset 32
|
||
7548 0004 00AF add r7, sp, #0
|
||
7549 .cfi_def_cfa_register 7
|
||
7550 0006 F860 str r0, [r7, #12]
|
||
7551 0008 B960 str r1, [r7, #8]
|
||
7552 000a 3B60 str r3, [r7]
|
||
7553 000c 1346 mov r3, r2 @ movhi
|
||
7554 000e FB80 strh r3, [r7, #6] @ movhi
|
||
4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
|
||
4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
|
||
4112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
|
||
4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
|
||
7555 .loc 1 4116 22
|
||
7556 0010 FB68 ldr r3, [r7, #12]
|
||
7557 0012 93F84130 ldrb r3, [r3, #65]
|
||
7558 0016 DBB2 uxtb r3, r3
|
||
7559 .loc 1 4116 30
|
||
7560 0018 03F02803 and r3, r3, #40
|
||
7561 .loc 1 4116 6
|
||
7562 001c 282B cmp r3, #40
|
||
7563 001e 40F09880 bne .L369
|
||
4117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
|
||
7564 .loc 1 4118 8
|
||
7565 0022 BB68 ldr r3, [r7, #8]
|
||
7566 0024 002B cmp r3, #0
|
||
7567 0026 02D0 beq .L370
|
||
7568 .loc 1 4118 25 discriminator 1
|
||
7569 0028 FB88 ldrh r3, [r7, #6]
|
||
7570 002a 002B cmp r3, #0
|
||
7571 002c 05D1 bne .L371
|
||
7572 .L370:
|
||
4119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
|
||
7573 .loc 1 4120 23
|
||
7574 002e FB68 ldr r3, [r7, #12]
|
||
7575 0030 4FF40072 mov r2, #512
|
||
ARM GAS /tmp/cc5G5cqz.s page 207
|
||
|
||
|
||
7576 0034 5A64 str r2, [r3, #68]
|
||
4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
7577 .loc 1 4121 15
|
||
7578 0036 0123 movs r3, #1
|
||
7579 0038 8CE0 b .L372
|
||
7580 .L371:
|
||
4122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
|
||
4125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
|
||
7581 .loc 1 4125 5
|
||
7582 003a 48F20201 movw r1, #32770
|
||
7583 003e F868 ldr r0, [r7, #12]
|
||
7584 0040 FFF7FEFF bl I2C_Disable_IRQ
|
||
4126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
4128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
7585 .loc 1 4128 5
|
||
7586 0044 FB68 ldr r3, [r7, #12]
|
||
7587 0046 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
7588 004a 012B cmp r3, #1
|
||
7589 004c 01D1 bne .L373
|
||
7590 .loc 1 4128 5 is_stmt 0 discriminator 1
|
||
7591 004e 0223 movs r3, #2
|
||
7592 .loc 1 4128 5
|
||
7593 0050 80E0 b .L372
|
||
7594 .L373:
|
||
7595 .loc 1 4128 5 discriminator 2
|
||
7596 0052 FB68 ldr r3, [r7, #12]
|
||
7597 0054 0122 movs r2, #1
|
||
7598 0056 83F84020 strb r2, [r3, #64]
|
||
4129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
|
||
4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
|
||
4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
|
||
7599 .loc 1 4132 13 is_stmt 1
|
||
7600 005a FB68 ldr r3, [r7, #12]
|
||
7601 005c 93F84130 ldrb r3, [r3, #65]
|
||
7602 0060 DBB2 uxtb r3, r3
|
||
7603 .loc 1 4132 8
|
||
7604 0062 292B cmp r3, #41
|
||
7605 0064 2AD1 bne .L374
|
||
4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
|
||
4135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
7606 .loc 1 4135 7
|
||
7607 0066 0121 movs r1, #1
|
||
7608 0068 F868 ldr r0, [r7, #12]
|
||
7609 006a FFF7FEFF bl I2C_Disable_IRQ
|
||
4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
|
||
7610 .loc 1 4137 16
|
||
7611 006e FB68 ldr r3, [r7, #12]
|
||
7612 0070 1B68 ldr r3, [r3]
|
||
7613 .loc 1 4137 26
|
||
7614 0072 1B68 ldr r3, [r3]
|
||
7615 .loc 1 4137 32
|
||
ARM GAS /tmp/cc5G5cqz.s page 208
|
||
|
||
|
||
7616 0074 03F48043 and r3, r3, #16384
|
||
7617 .loc 1 4137 10
|
||
7618 0078 B3F5804F cmp r3, #16384
|
||
7619 007c 1ED1 bne .L374
|
||
4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
|
||
7620 .loc 1 4139 13
|
||
7621 007e FB68 ldr r3, [r7, #12]
|
||
7622 0080 1B68 ldr r3, [r3]
|
||
7623 .loc 1 4139 23
|
||
7624 0082 1A68 ldr r2, [r3]
|
||
7625 .loc 1 4139 13
|
||
7626 0084 FB68 ldr r3, [r7, #12]
|
||
7627 0086 1B68 ldr r3, [r3]
|
||
7628 .loc 1 4139 29
|
||
7629 0088 22F48042 bic r2, r2, #16384
|
||
7630 008c 1A60 str r2, [r3]
|
||
4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
|
||
4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
|
||
7631 .loc 1 4142 17
|
||
7632 008e FB68 ldr r3, [r7, #12]
|
||
7633 0090 9B6B ldr r3, [r3, #56]
|
||
7634 .loc 1 4142 12
|
||
7635 0092 002B cmp r3, #0
|
||
7636 0094 12D0 beq .L374
|
||
4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
|
||
4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
|
||
4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
|
||
7637 .loc 1 4146 15
|
||
7638 0096 FB68 ldr r3, [r7, #12]
|
||
7639 0098 9B6B ldr r3, [r3, #56]
|
||
7640 .loc 1 4146 43
|
||
7641 009a 304A ldr r2, .L376
|
||
7642 009c 5A63 str r2, [r3, #52]
|
||
4147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
|
||
4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
|
||
7643 .loc 1 4149 15
|
||
7644 009e FB68 ldr r3, [r7, #12]
|
||
7645 00a0 9B6B ldr r3, [r3, #56]
|
||
7646 00a2 1846 mov r0, r3
|
||
7647 00a4 FFF7FEFF bl HAL_DMA_Abort_IT
|
||
7648 00a8 0346 mov r3, r0
|
||
7649 .loc 1 4149 14 discriminator 1
|
||
7650 00aa 002B cmp r3, #0
|
||
7651 00ac 06D0 beq .L374
|
||
4150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
|
||
4152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
|
||
7652 .loc 1 4152 17
|
||
7653 00ae FB68 ldr r3, [r7, #12]
|
||
7654 00b0 9B6B ldr r3, [r3, #56]
|
||
7655 .loc 1 4152 25
|
||
7656 00b2 5B6B ldr r3, [r3, #52]
|
||
7657 .loc 1 4152 49
|
||
ARM GAS /tmp/cc5G5cqz.s page 209
|
||
|
||
|
||
7658 00b4 FA68 ldr r2, [r7, #12]
|
||
7659 00b6 926B ldr r2, [r2, #56]
|
||
7660 .loc 1 4152 13
|
||
7661 00b8 1046 mov r0, r2
|
||
7662 00ba 9847 blx r3
|
||
7663 .LVL3:
|
||
7664 .L374:
|
||
4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
|
||
7665 .loc 1 4158 21
|
||
7666 00bc FB68 ldr r3, [r7, #12]
|
||
7667 00be 2A22 movs r2, #42
|
||
7668 00c0 83F84120 strb r2, [r3, #65]
|
||
4159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
|
||
7669 .loc 1 4159 21
|
||
7670 00c4 FB68 ldr r3, [r7, #12]
|
||
7671 00c6 2022 movs r2, #32
|
||
7672 00c8 83F84220 strb r2, [r3, #66]
|
||
4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
7673 .loc 1 4160 21
|
||
7674 00cc FB68 ldr r3, [r7, #12]
|
||
7675 00ce 0022 movs r2, #0
|
||
7676 00d0 5A64 str r2, [r3, #68]
|
||
4161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
|
||
4163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
|
||
7677 .loc 1 4163 9
|
||
7678 00d2 FB68 ldr r3, [r7, #12]
|
||
7679 00d4 1B68 ldr r3, [r3]
|
||
7680 .loc 1 4163 19
|
||
7681 00d6 5A68 ldr r2, [r3, #4]
|
||
7682 .loc 1 4163 9
|
||
7683 00d8 FB68 ldr r3, [r7, #12]
|
||
7684 00da 1B68 ldr r3, [r3]
|
||
7685 .loc 1 4163 25
|
||
7686 00dc 22F40042 bic r2, r2, #32768
|
||
7687 00e0 5A60 str r2, [r3, #4]
|
||
4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
4166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
7688 .loc 1 4166 23
|
||
7689 00e2 FB68 ldr r3, [r7, #12]
|
||
7690 00e4 BA68 ldr r2, [r7, #8]
|
||
7691 00e6 5A62 str r2, [r3, #36]
|
||
4167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
7692 .loc 1 4167 23
|
||
7693 00e8 FB68 ldr r3, [r7, #12]
|
||
7694 00ea FA88 ldrh r2, [r7, #6] @ movhi
|
||
7695 00ec 5A85 strh r2, [r3, #42] @ movhi
|
||
4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
7696 .loc 1 4168 29
|
||
7697 00ee FB68 ldr r3, [r7, #12]
|
||
7698 00f0 5B8D ldrh r3, [r3, #42] @ movhi
|
||
ARM GAS /tmp/cc5G5cqz.s page 210
|
||
|
||
|
||
7699 00f2 9AB2 uxth r2, r3
|
||
7700 .loc 1 4168 23
|
||
7701 00f4 FB68 ldr r3, [r7, #12]
|
||
7702 00f6 1A85 strh r2, [r3, #40] @ movhi
|
||
4169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
|
||
7703 .loc 1 4169 23
|
||
7704 00f8 FB68 ldr r3, [r7, #12]
|
||
7705 00fa 3A68 ldr r2, [r7]
|
||
7706 00fc DA62 str r2, [r3, #44]
|
||
4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
|
||
7707 .loc 1 4170 23
|
||
7708 00fe FB68 ldr r3, [r7, #12]
|
||
7709 0100 174A ldr r2, .L376+4
|
||
7710 0102 5A63 str r2, [r3, #52]
|
||
4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
|
||
7711 .loc 1 4172 11
|
||
7712 0104 FB68 ldr r3, [r7, #12]
|
||
7713 0106 1B68 ldr r3, [r3]
|
||
7714 0108 9B69 ldr r3, [r3, #24]
|
||
7715 010a 03F00803 and r3, r3, #8
|
||
7716 010e 082B cmp r3, #8
|
||
7717 0110 0CBF ite eq
|
||
7718 0112 0123 moveq r3, #1
|
||
7719 0114 0023 movne r3, #0
|
||
7720 0116 DBB2 uxtb r3, r3
|
||
7721 .loc 1 4172 9
|
||
7722 0118 FB75 strb r3, [r7, #23]
|
||
4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
|
||
7723 .loc 1 4173 10
|
||
7724 011a FB68 ldr r3, [r7, #12]
|
||
7725 011c 1B68 ldr r3, [r3]
|
||
7726 011e 9B69 ldr r3, [r3, #24]
|
||
7727 0120 1B0C lsrs r3, r3, #16
|
||
7728 0122 DBB2 uxtb r3, r3
|
||
7729 0124 03F00103 and r3, r3, #1
|
||
7730 0128 DBB2 uxtb r3, r3
|
||
7731 .loc 1 4173 8
|
||
7732 012a 002B cmp r3, #0
|
||
7733 012c 06D1 bne .L375
|
||
7734 .loc 1 4173 55 discriminator 1
|
||
7735 012e FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
7736 0130 002B cmp r3, #0
|
||
7737 0132 03D0 beq .L375
|
||
4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
|
||
4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
|
||
4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
|
||
7738 .loc 1 4177 7
|
||
7739 0134 FB68 ldr r3, [r7, #12]
|
||
7740 0136 1B68 ldr r3, [r3]
|
||
7741 0138 0822 movs r2, #8
|
||
7742 013a DA61 str r2, [r3, #28]
|
||
7743 .L375:
|
||
4178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
ARM GAS /tmp/cc5G5cqz.s page 211
|
||
|
||
|
||
4181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
7744 .loc 1 4181 5
|
||
7745 013c FB68 ldr r3, [r7, #12]
|
||
7746 013e 0022 movs r2, #0
|
||
7747 0140 83F84020 strb r2, [r3, #64]
|
||
4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
4184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
4186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
|
||
4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
|
||
7748 .loc 1 4187 5
|
||
7749 0144 48F20201 movw r1, #32770
|
||
7750 0148 F868 ldr r0, [r7, #12]
|
||
7751 014a FFF7FEFF bl I2C_Enable_IRQ
|
||
4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
7752 .loc 1 4189 12
|
||
7753 014e 0023 movs r3, #0
|
||
7754 0150 00E0 b .L372
|
||
7755 .L369:
|
||
4190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
7756 .loc 1 4193 12
|
||
7757 0152 0123 movs r3, #1
|
||
7758 .L372:
|
||
4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7759 .loc 1 4195 1
|
||
7760 0154 1846 mov r0, r3
|
||
7761 0156 1837 adds r7, r7, #24
|
||
7762 .cfi_def_cfa_offset 8
|
||
7763 0158 BD46 mov sp, r7
|
||
7764 .cfi_def_cfa_register 13
|
||
7765 @ sp needed
|
||
7766 015a 80BD pop {r7, pc}
|
||
7767 .L377:
|
||
7768 .align 2
|
||
7769 .L376:
|
||
7770 015c 00000000 .word I2C_DMAAbort
|
||
7771 0160 00000000 .word I2C_Slave_ISR_IT
|
||
7772 .cfi_endproc
|
||
7773 .LFE159:
|
||
7775 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits
|
||
7776 .align 1
|
||
7777 .global HAL_I2C_Slave_Seq_Receive_DMA
|
||
7778 .syntax unified
|
||
7779 .thumb
|
||
7780 .thumb_func
|
||
7782 HAL_I2C_Slave_Seq_Receive_DMA:
|
||
7783 .LFB160:
|
||
4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with
|
||
4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
|
||
ARM GAS /tmp/cc5G5cqz.s page 212
|
||
|
||
|
||
4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
|
||
4203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
|
||
4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
|
||
4205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
4206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S
|
||
4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
|
||
4209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7784 .loc 1 4209 1
|
||
7785 .cfi_startproc
|
||
7786 @ args = 0, pretend = 0, frame = 24
|
||
7787 @ frame_needed = 1, uses_anonymous_args = 0
|
||
7788 0000 80B5 push {r7, lr}
|
||
7789 .cfi_def_cfa_offset 8
|
||
7790 .cfi_offset 7, -8
|
||
7791 .cfi_offset 14, -4
|
||
7792 0002 86B0 sub sp, sp, #24
|
||
7793 .cfi_def_cfa_offset 32
|
||
7794 0004 00AF add r7, sp, #0
|
||
7795 .cfi_def_cfa_register 7
|
||
7796 0006 F860 str r0, [r7, #12]
|
||
7797 0008 B960 str r1, [r7, #8]
|
||
7798 000a 3B60 str r3, [r7]
|
||
7799 000c 1346 mov r3, r2 @ movhi
|
||
7800 000e FB80 strh r3, [r7, #6] @ movhi
|
||
4210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
|
||
4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
|
||
4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
|
||
4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
4215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
|
||
4216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
|
||
7801 .loc 1 4217 22
|
||
7802 0010 FB68 ldr r3, [r7, #12]
|
||
7803 0012 93F84130 ldrb r3, [r3, #65]
|
||
7804 0016 DBB2 uxtb r3, r3
|
||
7805 .loc 1 4217 30
|
||
7806 0018 03F02803 and r3, r3, #40
|
||
7807 .loc 1 4217 6
|
||
7808 001c 282B cmp r3, #40
|
||
7809 001e 40F02881 bne .L379
|
||
4218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
|
||
7810 .loc 1 4219 8
|
||
7811 0022 BB68 ldr r3, [r7, #8]
|
||
7812 0024 002B cmp r3, #0
|
||
7813 0026 02D0 beq .L380
|
||
7814 .loc 1 4219 25 discriminator 1
|
||
7815 0028 FB88 ldrh r3, [r7, #6]
|
||
7816 002a 002B cmp r3, #0
|
||
7817 002c 05D1 bne .L381
|
||
7818 .L380:
|
||
4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
|
||
ARM GAS /tmp/cc5G5cqz.s page 213
|
||
|
||
|
||
7819 .loc 1 4221 23
|
||
7820 002e FB68 ldr r3, [r7, #12]
|
||
7821 0030 4FF40072 mov r2, #512
|
||
7822 0034 5A64 str r2, [r3, #68]
|
||
4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
7823 .loc 1 4222 15
|
||
7824 0036 0123 movs r3, #1
|
||
7825 0038 1CE1 b .L382
|
||
7826 .L381:
|
||
4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
|
||
4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
|
||
7827 .loc 1 4226 5
|
||
7828 003a 48F20201 movw r1, #32770
|
||
7829 003e F868 ldr r0, [r7, #12]
|
||
7830 0040 FFF7FEFF bl I2C_Disable_IRQ
|
||
4227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
7831 .loc 1 4229 5
|
||
7832 0044 FB68 ldr r3, [r7, #12]
|
||
7833 0046 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
7834 004a 012B cmp r3, #1
|
||
7835 004c 01D1 bne .L383
|
||
7836 .loc 1 4229 5 is_stmt 0 discriminator 1
|
||
7837 004e 0223 movs r3, #2
|
||
7838 .loc 1 4229 5
|
||
7839 0050 10E1 b .L382
|
||
7840 .L383:
|
||
7841 .loc 1 4229 5 discriminator 2
|
||
7842 0052 FB68 ldr r3, [r7, #12]
|
||
7843 0054 0122 movs r2, #1
|
||
7844 0056 83F84020 strb r2, [r3, #64]
|
||
4230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
|
||
4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
|
||
4233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
|
||
7845 .loc 1 4233 13 is_stmt 1
|
||
7846 005a FB68 ldr r3, [r7, #12]
|
||
7847 005c 93F84130 ldrb r3, [r3, #65]
|
||
7848 0060 DBB2 uxtb r3, r3
|
||
7849 .loc 1 4233 8
|
||
7850 0062 292B cmp r3, #41
|
||
7851 0064 2BD1 bne .L384
|
||
4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
|
||
4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
7852 .loc 1 4236 7
|
||
7853 0066 0121 movs r1, #1
|
||
7854 0068 F868 ldr r0, [r7, #12]
|
||
7855 006a FFF7FEFF bl I2C_Disable_IRQ
|
||
4237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
|
||
7856 .loc 1 4238 16
|
||
7857 006e FB68 ldr r3, [r7, #12]
|
||
7858 0070 1B68 ldr r3, [r3]
|
||
ARM GAS /tmp/cc5G5cqz.s page 214
|
||
|
||
|
||
7859 .loc 1 4238 26
|
||
7860 0072 1B68 ldr r3, [r3]
|
||
7861 .loc 1 4238 32
|
||
7862 0074 03F48043 and r3, r3, #16384
|
||
7863 .loc 1 4238 10
|
||
7864 0078 B3F5804F cmp r3, #16384
|
||
7865 007c 4CD1 bne .L385
|
||
4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
|
||
4241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
|
||
7866 .loc 1 4241 17
|
||
7867 007e FB68 ldr r3, [r7, #12]
|
||
7868 0080 9B6B ldr r3, [r3, #56]
|
||
7869 .loc 1 4241 12
|
||
7870 0082 002B cmp r3, #0
|
||
7871 0084 48D0 beq .L385
|
||
4242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
|
||
7872 .loc 1 4243 15
|
||
7873 0086 FB68 ldr r3, [r7, #12]
|
||
7874 0088 1B68 ldr r3, [r3]
|
||
7875 .loc 1 4243 25
|
||
7876 008a 1A68 ldr r2, [r3]
|
||
7877 .loc 1 4243 15
|
||
7878 008c FB68 ldr r3, [r7, #12]
|
||
7879 008e 1B68 ldr r3, [r3]
|
||
7880 .loc 1 4243 31
|
||
7881 0090 22F48042 bic r2, r2, #16384
|
||
7882 0094 1A60 str r2, [r3]
|
||
4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
|
||
4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
|
||
4247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
|
||
7883 .loc 1 4247 15
|
||
7884 0096 FB68 ldr r3, [r7, #12]
|
||
7885 0098 9B6B ldr r3, [r3, #56]
|
||
7886 .loc 1 4247 43
|
||
7887 009a 784A ldr r2, .L393
|
||
7888 009c 5A63 str r2, [r3, #52]
|
||
4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
|
||
4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
|
||
7889 .loc 1 4250 15
|
||
7890 009e FB68 ldr r3, [r7, #12]
|
||
7891 00a0 9B6B ldr r3, [r3, #56]
|
||
7892 00a2 1846 mov r0, r3
|
||
7893 00a4 FFF7FEFF bl HAL_DMA_Abort_IT
|
||
7894 00a8 0346 mov r3, r0
|
||
7895 .loc 1 4250 14 discriminator 1
|
||
7896 00aa 002B cmp r3, #0
|
||
7897 00ac 34D0 beq .L385
|
||
4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
|
||
4253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
|
||
7898 .loc 1 4253 17
|
||
7899 00ae FB68 ldr r3, [r7, #12]
|
||
7900 00b0 9B6B ldr r3, [r3, #56]
|
||
ARM GAS /tmp/cc5G5cqz.s page 215
|
||
|
||
|
||
7901 .loc 1 4253 25
|
||
7902 00b2 5B6B ldr r3, [r3, #52]
|
||
7903 .loc 1 4253 49
|
||
7904 00b4 FA68 ldr r2, [r7, #12]
|
||
7905 00b6 926B ldr r2, [r2, #56]
|
||
7906 .loc 1 4253 13
|
||
7907 00b8 1046 mov r0, r2
|
||
7908 00ba 9847 blx r3
|
||
7909 .LVL4:
|
||
7910 00bc 2CE0 b .L385
|
||
7911 .L384:
|
||
4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
|
||
7912 .loc 1 4258 18
|
||
7913 00be FB68 ldr r3, [r7, #12]
|
||
7914 00c0 93F84130 ldrb r3, [r3, #65]
|
||
7915 00c4 DBB2 uxtb r3, r3
|
||
7916 .loc 1 4258 13
|
||
7917 00c6 2A2B cmp r3, #42
|
||
7918 00c8 26D1 bne .L385
|
||
4259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
|
||
7919 .loc 1 4260 16
|
||
7920 00ca FB68 ldr r3, [r7, #12]
|
||
7921 00cc 1B68 ldr r3, [r3]
|
||
7922 .loc 1 4260 26
|
||
7923 00ce 1B68 ldr r3, [r3]
|
||
7924 .loc 1 4260 32
|
||
7925 00d0 03F40043 and r3, r3, #32768
|
||
7926 .loc 1 4260 10
|
||
7927 00d4 B3F5004F cmp r3, #32768
|
||
7928 00d8 1ED1 bne .L385
|
||
4261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
|
||
7929 .loc 1 4262 13
|
||
7930 00da FB68 ldr r3, [r7, #12]
|
||
7931 00dc 1B68 ldr r3, [r3]
|
||
7932 .loc 1 4262 23
|
||
7933 00de 1A68 ldr r2, [r3]
|
||
7934 .loc 1 4262 13
|
||
7935 00e0 FB68 ldr r3, [r7, #12]
|
||
7936 00e2 1B68 ldr r3, [r3]
|
||
7937 .loc 1 4262 29
|
||
7938 00e4 22F40042 bic r2, r2, #32768
|
||
7939 00e8 1A60 str r2, [r3]
|
||
4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
|
||
4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
|
||
7940 .loc 1 4265 17
|
||
7941 00ea FB68 ldr r3, [r7, #12]
|
||
7942 00ec DB6B ldr r3, [r3, #60]
|
||
7943 .loc 1 4265 12
|
||
7944 00ee 002B cmp r3, #0
|
||
7945 00f0 12D0 beq .L385
|
||
ARM GAS /tmp/cc5G5cqz.s page 216
|
||
|
||
|
||
4266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
|
||
4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
|
||
4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
|
||
7946 .loc 1 4269 15
|
||
7947 00f2 FB68 ldr r3, [r7, #12]
|
||
7948 00f4 DB6B ldr r3, [r3, #60]
|
||
7949 .loc 1 4269 43
|
||
7950 00f6 614A ldr r2, .L393
|
||
7951 00f8 5A63 str r2, [r3, #52]
|
||
4270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
|
||
4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
|
||
7952 .loc 1 4272 15
|
||
7953 00fa FB68 ldr r3, [r7, #12]
|
||
7954 00fc DB6B ldr r3, [r3, #60]
|
||
7955 00fe 1846 mov r0, r3
|
||
7956 0100 FFF7FEFF bl HAL_DMA_Abort_IT
|
||
7957 0104 0346 mov r3, r0
|
||
7958 .loc 1 4272 14 discriminator 1
|
||
7959 0106 002B cmp r3, #0
|
||
7960 0108 06D0 beq .L385
|
||
4273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
|
||
4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
|
||
7961 .loc 1 4275 17
|
||
7962 010a FB68 ldr r3, [r7, #12]
|
||
7963 010c DB6B ldr r3, [r3, #60]
|
||
7964 .loc 1 4275 25
|
||
7965 010e 5B6B ldr r3, [r3, #52]
|
||
7966 .loc 1 4275 49
|
||
7967 0110 FA68 ldr r2, [r7, #12]
|
||
7968 0112 D26B ldr r2, [r2, #60]
|
||
7969 .loc 1 4275 13
|
||
7970 0114 1046 mov r0, r2
|
||
7971 0116 9847 blx r3
|
||
7972 .LVL5:
|
||
7973 .L385:
|
||
4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
|
||
4283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
|
||
7974 .loc 1 4285 21
|
||
7975 0118 FB68 ldr r3, [r7, #12]
|
||
7976 011a 2A22 movs r2, #42
|
||
7977 011c 83F84120 strb r2, [r3, #65]
|
||
4286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
|
||
7978 .loc 1 4286 21
|
||
7979 0120 FB68 ldr r3, [r7, #12]
|
||
7980 0122 2022 movs r2, #32
|
||
7981 0124 83F84220 strb r2, [r3, #66]
|
||
ARM GAS /tmp/cc5G5cqz.s page 217
|
||
|
||
|
||
4287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
7982 .loc 1 4287 21
|
||
7983 0128 FB68 ldr r3, [r7, #12]
|
||
7984 012a 0022 movs r2, #0
|
||
7985 012c 5A64 str r2, [r3, #68]
|
||
4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
|
||
4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
|
||
7986 .loc 1 4290 9
|
||
7987 012e FB68 ldr r3, [r7, #12]
|
||
7988 0130 1B68 ldr r3, [r3]
|
||
7989 .loc 1 4290 19
|
||
7990 0132 5A68 ldr r2, [r3, #4]
|
||
7991 .loc 1 4290 9
|
||
7992 0134 FB68 ldr r3, [r7, #12]
|
||
7993 0136 1B68 ldr r3, [r3]
|
||
7994 .loc 1 4290 25
|
||
7995 0138 22F40042 bic r2, r2, #32768
|
||
7996 013c 5A60 str r2, [r3, #4]
|
||
4291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
|
||
4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
|
||
7997 .loc 1 4293 23
|
||
7998 013e FB68 ldr r3, [r7, #12]
|
||
7999 0140 BA68 ldr r2, [r7, #8]
|
||
8000 0142 5A62 str r2, [r3, #36]
|
||
4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
|
||
8001 .loc 1 4294 23
|
||
8002 0144 FB68 ldr r3, [r7, #12]
|
||
8003 0146 FA88 ldrh r2, [r7, #6] @ movhi
|
||
8004 0148 5A85 strh r2, [r3, #42] @ movhi
|
||
4295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
8005 .loc 1 4295 29
|
||
8006 014a FB68 ldr r3, [r7, #12]
|
||
8007 014c 5B8D ldrh r3, [r3, #42] @ movhi
|
||
8008 014e 9AB2 uxth r2, r3
|
||
8009 .loc 1 4295 23
|
||
8010 0150 FB68 ldr r3, [r7, #12]
|
||
8011 0152 1A85 strh r2, [r3, #40] @ movhi
|
||
4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
|
||
8012 .loc 1 4296 23
|
||
8013 0154 FB68 ldr r3, [r7, #12]
|
||
8014 0156 3A68 ldr r2, [r7]
|
||
8015 0158 DA62 str r2, [r3, #44]
|
||
4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
|
||
8016 .loc 1 4297 23
|
||
8017 015a FB68 ldr r3, [r7, #12]
|
||
8018 015c 484A ldr r2, .L393+4
|
||
8019 015e 5A63 str r2, [r3, #52]
|
||
4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
|
||
8020 .loc 1 4299 13
|
||
8021 0160 FB68 ldr r3, [r7, #12]
|
||
8022 0162 DB6B ldr r3, [r3, #60]
|
||
8023 .loc 1 4299 8
|
||
8024 0164 002B cmp r3, #0
|
||
8025 0166 20D0 beq .L386
|
||
ARM GAS /tmp/cc5G5cqz.s page 218
|
||
|
||
|
||
4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
|
||
4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
|
||
8026 .loc 1 4302 11
|
||
8027 0168 FB68 ldr r3, [r7, #12]
|
||
8028 016a DB6B ldr r3, [r3, #60]
|
||
8029 .loc 1 4302 38
|
||
8030 016c 454A ldr r2, .L393+8
|
||
8031 016e 9A62 str r2, [r3, #40]
|
||
4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
|
||
4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
|
||
8032 .loc 1 4305 11
|
||
8033 0170 FB68 ldr r3, [r7, #12]
|
||
8034 0172 DB6B ldr r3, [r3, #60]
|
||
8035 .loc 1 4305 39
|
||
8036 0174 444A ldr r2, .L393+12
|
||
8037 0176 1A63 str r2, [r3, #48]
|
||
4306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
|
||
4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
|
||
8038 .loc 1 4308 11
|
||
8039 0178 FB68 ldr r3, [r7, #12]
|
||
8040 017a DB6B ldr r3, [r3, #60]
|
||
8041 .loc 1 4308 42
|
||
8042 017c 0022 movs r2, #0
|
||
8043 017e DA62 str r2, [r3, #44]
|
||
4309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
|
||
8044 .loc 1 4309 11
|
||
8045 0180 FB68 ldr r3, [r7, #12]
|
||
8046 0182 DB6B ldr r3, [r3, #60]
|
||
8047 .loc 1 4309 39
|
||
8048 0184 0022 movs r2, #0
|
||
8049 0186 5A63 str r2, [r3, #52]
|
||
4310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
|
||
4312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR,
|
||
8050 .loc 1 4312 23
|
||
8051 0188 FB68 ldr r3, [r7, #12]
|
||
8052 018a D86B ldr r0, [r3, #60]
|
||
8053 .loc 1 4312 69
|
||
8054 018c FB68 ldr r3, [r7, #12]
|
||
8055 018e 1B68 ldr r3, [r3]
|
||
8056 .loc 1 4312 64
|
||
8057 0190 2433 adds r3, r3, #36
|
||
8058 .loc 1 4312 23
|
||
8059 0192 1946 mov r1, r3
|
||
8060 0194 BA68 ldr r2, [r7, #8]
|
||
4313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
|
||
8061 .loc 1 4313 61
|
||
8062 0196 FB68 ldr r3, [r7, #12]
|
||
8063 0198 1B8D ldrh r3, [r3, #40]
|
||
4312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
|
||
8064 .loc 1 4312 23
|
||
8065 019a FFF7FEFF bl HAL_DMA_Start_IT
|
||
8066 019e 0346 mov r3, r0
|
||
8067 01a0 FB75 strb r3, [r7, #23]
|
||
ARM GAS /tmp/cc5G5cqz.s page 219
|
||
|
||
|
||
4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
|
||
4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
4320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
|
||
4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
4325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
4326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
4328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
|
||
8068 .loc 1 4330 8
|
||
8069 01a2 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
8070 01a4 002B cmp r3, #0
|
||
8071 01a6 36D1 bne .L388
|
||
8072 01a8 13E0 b .L391
|
||
8073 .L386:
|
||
4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
8074 .loc 1 4318 23
|
||
8075 01aa FB68 ldr r3, [r7, #12]
|
||
8076 01ac 2822 movs r2, #40
|
||
8077 01ae 83F84120 strb r2, [r3, #65]
|
||
4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
8078 .loc 1 4319 23
|
||
8079 01b2 FB68 ldr r3, [r7, #12]
|
||
8080 01b4 0022 movs r2, #0
|
||
8081 01b6 83F84220 strb r2, [r3, #66]
|
||
4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
8082 .loc 1 4322 11
|
||
8083 01ba FB68 ldr r3, [r7, #12]
|
||
8084 01bc 5B6C ldr r3, [r3, #68]
|
||
4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
8085 .loc 1 4322 23
|
||
8086 01be 43F08002 orr r2, r3, #128
|
||
8087 01c2 FB68 ldr r3, [r7, #12]
|
||
8088 01c4 5A64 str r2, [r3, #68]
|
||
4325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
8089 .loc 1 4325 7
|
||
8090 01c6 FB68 ldr r3, [r7, #12]
|
||
8091 01c8 0022 movs r2, #0
|
||
8092 01ca 83F84020 strb r2, [r3, #64]
|
||
4327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8093 .loc 1 4327 14
|
||
8094 01ce 0123 movs r3, #1
|
||
8095 01d0 50E0 b .L382
|
||
8096 .L391:
|
||
4331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
|
||
4333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
|
||
8097 .loc 1 4333 11
|
||
8098 01d2 FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 220
|
||
|
||
|
||
8099 01d4 5B8D ldrh r3, [r3, #42] @ movhi
|
||
8100 01d6 9AB2 uxth r2, r3
|
||
8101 .loc 1 4333 30
|
||
8102 01d8 FB68 ldr r3, [r7, #12]
|
||
8103 01da 1B8D ldrh r3, [r3, #40]
|
||
8104 .loc 1 4333 23
|
||
8105 01dc D31A subs r3, r2, r3
|
||
8106 01de 9AB2 uxth r2, r3
|
||
8107 01e0 FB68 ldr r3, [r7, #12]
|
||
8108 01e2 5A85 strh r2, [r3, #42] @ movhi
|
||
4334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset XferSize */
|
||
4336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0;
|
||
8109 .loc 1 4336 22
|
||
8110 01e4 FB68 ldr r3, [r7, #12]
|
||
8111 01e6 0022 movs r2, #0
|
||
8112 01e8 1A85 strh r2, [r3, #40] @ movhi
|
||
4337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
|
||
4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
|
||
4342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
|
||
4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
|
||
4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
|
||
8113 .loc 1 4353 11
|
||
8114 01ea FB68 ldr r3, [r7, #12]
|
||
8115 01ec 1B68 ldr r3, [r3]
|
||
8116 01ee 9B69 ldr r3, [r3, #24]
|
||
8117 01f0 03F00803 and r3, r3, #8
|
||
8118 01f4 082B cmp r3, #8
|
||
8119 01f6 0CBF ite eq
|
||
8120 01f8 0123 moveq r3, #1
|
||
8121 01fa 0023 movne r3, #0
|
||
8122 01fc DBB2 uxtb r3, r3
|
||
8123 .loc 1 4353 9
|
||
8124 01fe BB75 strb r3, [r7, #22]
|
||
4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
|
||
8125 .loc 1 4354 10
|
||
8126 0200 FB68 ldr r3, [r7, #12]
|
||
8127 0202 1B68 ldr r3, [r3]
|
||
8128 0204 9B69 ldr r3, [r3, #24]
|
||
8129 0206 1B0C lsrs r3, r3, #16
|
||
8130 0208 DBB2 uxtb r3, r3
|
||
8131 020a 03F00103 and r3, r3, #1
|
||
8132 020e DBB2 uxtb r3, r3
|
||
8133 .loc 1 4354 8
|
||
8134 0210 002B cmp r3, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 221
|
||
|
||
|
||
8135 0212 1BD1 bne .L390
|
||
8136 0214 13E0 b .L392
|
||
8137 .L388:
|
||
4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
8138 .loc 1 4341 23
|
||
8139 0216 FB68 ldr r3, [r7, #12]
|
||
8140 0218 2822 movs r2, #40
|
||
8141 021a 83F84120 strb r2, [r3, #65]
|
||
4342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
8142 .loc 1 4342 23
|
||
8143 021e FB68 ldr r3, [r7, #12]
|
||
8144 0220 0022 movs r2, #0
|
||
8145 0222 83F84220 strb r2, [r3, #66]
|
||
4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
8146 .loc 1 4345 11
|
||
8147 0226 FB68 ldr r3, [r7, #12]
|
||
8148 0228 5B6C ldr r3, [r3, #68]
|
||
4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
8149 .loc 1 4345 23
|
||
8150 022a 43F01002 orr r2, r3, #16
|
||
8151 022e FB68 ldr r3, [r7, #12]
|
||
8152 0230 5A64 str r2, [r3, #68]
|
||
4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
8153 .loc 1 4348 7
|
||
8154 0232 FB68 ldr r3, [r7, #12]
|
||
8155 0234 0022 movs r2, #0
|
||
8156 0236 83F84020 strb r2, [r3, #64]
|
||
4350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8157 .loc 1 4350 14
|
||
8158 023a 0123 movs r3, #1
|
||
8159 023c 1AE0 b .L382
|
||
8160 .L392:
|
||
8161 .loc 1 4354 55 discriminator 1
|
||
8162 023e BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
|
||
8163 0240 002B cmp r3, #0
|
||
8164 0242 03D0 beq .L390
|
||
4355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
|
||
4357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
|
||
4358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
|
||
8165 .loc 1 4358 7
|
||
8166 0244 FB68 ldr r3, [r7, #12]
|
||
8167 0246 1B68 ldr r3, [r3]
|
||
8168 0248 0822 movs r2, #8
|
||
8169 024a DA61 str r2, [r3, #28]
|
||
8170 .L390:
|
||
4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
4362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
8171 .loc 1 4362 5
|
||
8172 024c FB68 ldr r3, [r7, #12]
|
||
8173 024e 0022 movs r2, #0
|
||
8174 0250 83F84020 strb r2, [r3, #64]
|
||
4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
|
||
4365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
|
||
ARM GAS /tmp/cc5G5cqz.s page 222
|
||
|
||
|
||
8175 .loc 1 4365 9
|
||
8176 0254 FB68 ldr r3, [r7, #12]
|
||
8177 0256 1B68 ldr r3, [r3]
|
||
8178 .loc 1 4365 19
|
||
8179 0258 1A68 ldr r2, [r3]
|
||
8180 .loc 1 4365 9
|
||
8181 025a FB68 ldr r3, [r7, #12]
|
||
8182 025c 1B68 ldr r3, [r3]
|
||
8183 .loc 1 4365 25
|
||
8184 025e 42F40042 orr r2, r2, #32768
|
||
8185 0262 1A60 str r2, [r3]
|
||
4366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
4369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
4370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
|
||
4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
|
||
8186 .loc 1 4371 5
|
||
8187 0264 48F20201 movw r1, #32770
|
||
8188 0268 F868 ldr r0, [r7, #12]
|
||
8189 026a FFF7FEFF bl I2C_Enable_IRQ
|
||
4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
8190 .loc 1 4373 12
|
||
8191 026e 0023 movs r3, #0
|
||
8192 0270 00E0 b .L382
|
||
8193 .L379:
|
||
4374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
8194 .loc 1 4377 12
|
||
8195 0272 0123 movs r3, #1
|
||
8196 .L382:
|
||
4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8197 .loc 1 4379 1
|
||
8198 0274 1846 mov r0, r3
|
||
8199 0276 1837 adds r7, r7, #24
|
||
8200 .cfi_def_cfa_offset 8
|
||
8201 0278 BD46 mov sp, r7
|
||
8202 .cfi_def_cfa_register 13
|
||
8203 @ sp needed
|
||
8204 027a 80BD pop {r7, pc}
|
||
8205 .L394:
|
||
8206 .align 2
|
||
8207 .L393:
|
||
8208 027c 00000000 .word I2C_DMAAbort
|
||
8209 0280 00000000 .word I2C_Slave_ISR_DMA
|
||
8210 0284 00000000 .word I2C_DMASlaveReceiveCplt
|
||
8211 0288 00000000 .word I2C_DMAError
|
||
8212 .cfi_endproc
|
||
8213 .LFE160:
|
||
8215 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits
|
||
8216 .align 1
|
||
8217 .global HAL_I2C_EnableListen_IT
|
||
8218 .syntax unified
|
||
ARM GAS /tmp/cc5G5cqz.s page 223
|
||
|
||
|
||
8219 .thumb
|
||
8220 .thumb_func
|
||
8222 HAL_I2C_EnableListen_IT:
|
||
8223 .LFB161:
|
||
4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt.
|
||
4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c)
|
||
4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
8224 .loc 1 4388 1
|
||
8225 .cfi_startproc
|
||
8226 @ args = 0, pretend = 0, frame = 8
|
||
8227 @ frame_needed = 1, uses_anonymous_args = 0
|
||
8228 0000 80B5 push {r7, lr}
|
||
8229 .cfi_def_cfa_offset 8
|
||
8230 .cfi_offset 7, -8
|
||
8231 .cfi_offset 14, -4
|
||
8232 0002 82B0 sub sp, sp, #8
|
||
8233 .cfi_def_cfa_offset 16
|
||
8234 0004 00AF add r7, sp, #0
|
||
8235 .cfi_def_cfa_register 7
|
||
8236 0006 7860 str r0, [r7, #4]
|
||
4389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
|
||
8237 .loc 1 4389 11
|
||
8238 0008 7B68 ldr r3, [r7, #4]
|
||
8239 000a 93F84130 ldrb r3, [r3, #65]
|
||
8240 000e DBB2 uxtb r3, r3
|
||
8241 .loc 1 4389 6
|
||
8242 0010 202B cmp r3, #32
|
||
8243 0012 0DD1 bne .L396
|
||
4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
|
||
8244 .loc 1 4391 17
|
||
8245 0014 7B68 ldr r3, [r7, #4]
|
||
8246 0016 2822 movs r2, #40
|
||
8247 0018 83F84120 strb r2, [r3, #65]
|
||
4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
|
||
8248 .loc 1 4392 19
|
||
8249 001c 7B68 ldr r3, [r7, #4]
|
||
8250 001e 074A ldr r2, .L398
|
||
8251 0020 5A63 str r2, [r3, #52]
|
||
4393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the Address Match interrupt */
|
||
4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
|
||
8252 .loc 1 4395 5
|
||
8253 0022 4FF40041 mov r1, #32768
|
||
8254 0026 7868 ldr r0, [r7, #4]
|
||
8255 0028 FFF7FEFF bl I2C_Enable_IRQ
|
||
4396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
8256 .loc 1 4397 12
|
||
8257 002c 0023 movs r3, #0
|
||
8258 002e 00E0 b .L397
|
||
ARM GAS /tmp/cc5G5cqz.s page 224
|
||
|
||
|
||
8259 .L396:
|
||
4398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
8260 .loc 1 4401 12
|
||
8261 0030 0223 movs r3, #2
|
||
8262 .L397:
|
||
4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8263 .loc 1 4403 1
|
||
8264 0032 1846 mov r0, r3
|
||
8265 0034 0837 adds r7, r7, #8
|
||
8266 .cfi_def_cfa_offset 8
|
||
8267 0036 BD46 mov sp, r7
|
||
8268 .cfi_def_cfa_register 13
|
||
8269 @ sp needed
|
||
8270 0038 80BD pop {r7, pc}
|
||
8271 .L399:
|
||
8272 003a 00BF .align 2
|
||
8273 .L398:
|
||
8274 003c 00000000 .word I2C_Slave_ISR_IT
|
||
8275 .cfi_endproc
|
||
8276 .LFE161:
|
||
8278 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits
|
||
8279 .align 1
|
||
8280 .global HAL_I2C_DisableListen_IT
|
||
8281 .syntax unified
|
||
8282 .thumb
|
||
8283 .thumb_func
|
||
8285 HAL_I2C_DisableListen_IT:
|
||
8286 .LFB162:
|
||
4404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt.
|
||
4407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C
|
||
4409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
4410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c)
|
||
4412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
8287 .loc 1 4412 1
|
||
8288 .cfi_startproc
|
||
8289 @ args = 0, pretend = 0, frame = 16
|
||
8290 @ frame_needed = 1, uses_anonymous_args = 0
|
||
8291 0000 80B5 push {r7, lr}
|
||
8292 .cfi_def_cfa_offset 8
|
||
8293 .cfi_offset 7, -8
|
||
8294 .cfi_offset 14, -4
|
||
8295 0002 84B0 sub sp, sp, #16
|
||
8296 .cfi_def_cfa_offset 24
|
||
8297 0004 00AF add r7, sp, #0
|
||
8298 .cfi_def_cfa_register 7
|
||
8299 0006 7860 str r0, [r7, #4]
|
||
4413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
|
||
4414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp;
|
||
4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 225
|
||
|
||
|
||
4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */
|
||
4417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
|
||
8300 .loc 1 4417 11
|
||
8301 0008 7B68 ldr r3, [r7, #4]
|
||
8302 000a 93F84130 ldrb r3, [r3, #65]
|
||
8303 000e DBB2 uxtb r3, r3
|
||
8304 .loc 1 4417 6
|
||
8305 0010 282B cmp r3, #40
|
||
8306 0012 21D1 bne .L401
|
||
4418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK;
|
||
8307 .loc 1 4419 26
|
||
8308 0014 7B68 ldr r3, [r7, #4]
|
||
8309 0016 93F84130 ldrb r3, [r3, #65]
|
||
8310 001a DBB2 uxtb r3, r3
|
||
8311 .loc 1 4419 9
|
||
8312 001c 03F00303 and r3, r3, #3
|
||
8313 0020 FB60 str r3, [r7, #12]
|
||
4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
|
||
8314 .loc 1 4420 48
|
||
8315 0022 7B68 ldr r3, [r7, #4]
|
||
8316 0024 93F84230 ldrb r3, [r3, #66]
|
||
8317 0028 DBB2 uxtb r3, r3
|
||
8318 .loc 1 4420 33
|
||
8319 002a 1A46 mov r2, r3
|
||
8320 .loc 1 4420 31
|
||
8321 002c FB68 ldr r3, [r7, #12]
|
||
8322 002e 1A43 orrs r2, r2, r3
|
||
8323 .loc 1 4420 25
|
||
8324 0030 7B68 ldr r3, [r7, #4]
|
||
8325 0032 1A63 str r2, [r3, #48]
|
||
4421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
8326 .loc 1 4421 17
|
||
8327 0034 7B68 ldr r3, [r7, #4]
|
||
8328 0036 2022 movs r2, #32
|
||
8329 0038 83F84120 strb r2, [r3, #65]
|
||
4422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
8330 .loc 1 4422 16
|
||
8331 003c 7B68 ldr r3, [r7, #4]
|
||
8332 003e 0022 movs r2, #0
|
||
8333 0040 83F84220 strb r2, [r3, #66]
|
||
4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
|
||
8334 .loc 1 4423 19
|
||
8335 0044 7B68 ldr r3, [r7, #4]
|
||
8336 0046 0022 movs r2, #0
|
||
8337 0048 5A63 str r2, [r3, #52]
|
||
4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the Address Match interrupt */
|
||
4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
|
||
8338 .loc 1 4426 5
|
||
8339 004a 4FF40041 mov r1, #32768
|
||
8340 004e 7868 ldr r0, [r7, #4]
|
||
8341 0050 FFF7FEFF bl I2C_Disable_IRQ
|
||
4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
8342 .loc 1 4428 12
|
||
8343 0054 0023 movs r3, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 226
|
||
|
||
|
||
8344 0056 00E0 b .L402
|
||
8345 .L401:
|
||
4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
|
||
8346 .loc 1 4432 12
|
||
8347 0058 0223 movs r3, #2
|
||
8348 .L402:
|
||
4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8349 .loc 1 4434 1
|
||
8350 005a 1846 mov r0, r3
|
||
8351 005c 1037 adds r7, r7, #16
|
||
8352 .cfi_def_cfa_offset 8
|
||
8353 005e BD46 mov sp, r7
|
||
8354 .cfi_def_cfa_register 13
|
||
8355 @ sp needed
|
||
8356 0060 80BD pop {r7, pc}
|
||
8357 .cfi_endproc
|
||
8358 .LFE162:
|
||
8360 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits
|
||
8361 .align 1
|
||
8362 .global HAL_I2C_Master_Abort_IT
|
||
8363 .syntax unified
|
||
8364 .thumb
|
||
8365 .thumb_func
|
||
8367 HAL_I2C_Master_Abort_IT:
|
||
8368 .LFB163:
|
||
4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt.
|
||
4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
4441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
4443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress)
|
||
4445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
8369 .loc 1 4445 1
|
||
8370 .cfi_startproc
|
||
8371 @ args = 0, pretend = 0, frame = 8
|
||
8372 @ frame_needed = 1, uses_anonymous_args = 0
|
||
8373 0000 80B5 push {r7, lr}
|
||
8374 .cfi_def_cfa_offset 8
|
||
8375 .cfi_offset 7, -8
|
||
8376 .cfi_offset 14, -4
|
||
8377 0002 84B0 sub sp, sp, #16
|
||
8378 .cfi_def_cfa_offset 24
|
||
8379 0004 02AF add r7, sp, #8
|
||
8380 .cfi_def_cfa 7, 16
|
||
8381 0006 7860 str r0, [r7, #4]
|
||
8382 0008 0B46 mov r3, r1
|
||
8383 000a 7B80 strh r3, [r7, #2] @ movhi
|
||
4446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER)
|
||
8384 .loc 1 4446 11
|
||
ARM GAS /tmp/cc5G5cqz.s page 227
|
||
|
||
|
||
8385 000c 7B68 ldr r3, [r7, #4]
|
||
8386 000e 93F84230 ldrb r3, [r3, #66]
|
||
8387 0012 DBB2 uxtb r3, r3
|
||
8388 .loc 1 4446 6
|
||
8389 0014 102B cmp r3, #16
|
||
8390 0016 3CD1 bne .L404
|
||
4447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
8391 .loc 1 4449 5
|
||
8392 0018 7B68 ldr r3, [r7, #4]
|
||
8393 001a 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
8394 001e 012B cmp r3, #1
|
||
8395 0020 01D1 bne .L405
|
||
8396 .loc 1 4449 5 is_stmt 0 discriminator 1
|
||
8397 0022 0223 movs r3, #2
|
||
8398 .loc 1 4449 5
|
||
8399 0024 36E0 b .L406
|
||
8400 .L405:
|
||
8401 .loc 1 4449 5 discriminator 2
|
||
8402 0026 7B68 ldr r3, [r7, #4]
|
||
8403 0028 0122 movs r2, #1
|
||
8404 002a 83F84020 strb r2, [r3, #64]
|
||
4450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
|
||
4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
|
||
8405 .loc 1 4452 13 is_stmt 1
|
||
8406 002e 7B68 ldr r3, [r7, #4]
|
||
8407 0030 93F84130 ldrb r3, [r3, #65]
|
||
8408 0034 DBB2 uxtb r3, r3
|
||
8409 .loc 1 4452 8
|
||
8410 0036 212B cmp r3, #33
|
||
8411 0038 07D1 bne .L407
|
||
4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
8412 .loc 1 4454 7
|
||
8413 003a 0121 movs r1, #1
|
||
8414 003c 7868 ldr r0, [r7, #4]
|
||
8415 003e FFF7FEFF bl I2C_Disable_IRQ
|
||
4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
|
||
8416 .loc 1 4455 27
|
||
8417 0042 7B68 ldr r3, [r7, #4]
|
||
8418 0044 1122 movs r2, #17
|
||
8419 0046 1A63 str r2, [r3, #48]
|
||
8420 0048 0CE0 b .L408
|
||
8421 .L407:
|
||
4456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
|
||
8422 .loc 1 4457 18
|
||
8423 004a 7B68 ldr r3, [r7, #4]
|
||
8424 004c 93F84130 ldrb r3, [r3, #65]
|
||
8425 0050 DBB2 uxtb r3, r3
|
||
8426 .loc 1 4457 13
|
||
8427 0052 222B cmp r3, #34
|
||
8428 0054 06D1 bne .L408
|
||
4458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
|
||
ARM GAS /tmp/cc5G5cqz.s page 228
|
||
|
||
|
||
8429 .loc 1 4459 7
|
||
8430 0056 0221 movs r1, #2
|
||
8431 0058 7868 ldr r0, [r7, #4]
|
||
8432 005a FFF7FEFF bl I2C_Disable_IRQ
|
||
4460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
|
||
8433 .loc 1 4460 27
|
||
8434 005e 7B68 ldr r3, [r7, #4]
|
||
8435 0060 1222 movs r2, #18
|
||
8436 0062 1A63 str r2, [r3, #48]
|
||
8437 .L408:
|
||
4461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
|
||
4465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */
|
||
4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT;
|
||
8438 .loc 1 4468 17
|
||
8439 0064 7B68 ldr r3, [r7, #4]
|
||
8440 0066 6022 movs r2, #96
|
||
8441 0068 83F84120 strb r2, [r3, #65]
|
||
4469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */
|
||
4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe
|
||
4472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP);
|
||
8442 .loc 1 4472 5
|
||
8443 006c 7988 ldrh r1, [r7, #2]
|
||
8444 006e 0B4B ldr r3, .L409
|
||
8445 0070 0093 str r3, [sp]
|
||
8446 0072 4FF00073 mov r3, #33554432
|
||
8447 0076 0122 movs r2, #1
|
||
8448 0078 7868 ldr r0, [r7, #4]
|
||
8449 007a FFF7FEFF bl I2C_TransferConfig
|
||
4473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
8450 .loc 1 4475 5
|
||
8451 007e 7B68 ldr r3, [r7, #4]
|
||
8452 0080 0022 movs r2, #0
|
||
8453 0082 83F84020 strb r2, [r3, #64]
|
||
4476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
|
||
4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
|
||
4479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
|
||
4480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
|
||
8454 .loc 1 4480 5
|
||
8455 0086 2021 movs r1, #32
|
||
8456 0088 7868 ldr r0, [r7, #4]
|
||
8457 008a FFF7FEFF bl I2C_Enable_IRQ
|
||
4481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
8458 .loc 1 4482 12
|
||
8459 008e 0023 movs r3, #0
|
||
8460 0090 00E0 b .L406
|
||
8461 .L404:
|
||
4483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 229
|
||
|
||
|
||
4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong usage of abort function */
|
||
4487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */
|
||
4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
8462 .loc 1 4488 12
|
||
8463 0092 0123 movs r3, #1
|
||
8464 .L406:
|
||
4489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8465 .loc 1 4490 1
|
||
8466 0094 1846 mov r0, r3
|
||
8467 0096 0837 adds r7, r7, #8
|
||
8468 .cfi_def_cfa_offset 8
|
||
8469 0098 BD46 mov sp, r7
|
||
8470 .cfi_def_cfa_register 13
|
||
8471 @ sp needed
|
||
8472 009a 80BD pop {r7, pc}
|
||
8473 .L410:
|
||
8474 .align 2
|
||
8475 .L409:
|
||
8476 009c 00400080 .word -2147467264
|
||
8477 .cfi_endproc
|
||
8478 .LFE163:
|
||
8480 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits
|
||
8481 .align 1
|
||
8482 .global HAL_I2C_EV_IRQHandler
|
||
8483 .syntax unified
|
||
8484 .thumb
|
||
8485 .thumb_func
|
||
8487 HAL_I2C_EV_IRQHandler:
|
||
8488 .LFB164:
|
||
4491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
|
||
4494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
|
||
4497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
|
||
4498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request.
|
||
4502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
4505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) /* Derogation MISRAC2012-Rule-8.13 */
|
||
4507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
8489 .loc 1 4507 1
|
||
8490 .cfi_startproc
|
||
8491 @ args = 0, pretend = 0, frame = 16
|
||
8492 @ frame_needed = 1, uses_anonymous_args = 0
|
||
8493 0000 80B5 push {r7, lr}
|
||
8494 .cfi_def_cfa_offset 8
|
||
8495 .cfi_offset 7, -8
|
||
8496 .cfi_offset 14, -4
|
||
ARM GAS /tmp/cc5G5cqz.s page 230
|
||
|
||
|
||
8497 0002 84B0 sub sp, sp, #16
|
||
8498 .cfi_def_cfa_offset 24
|
||
8499 0004 00AF add r7, sp, #0
|
||
8500 .cfi_def_cfa_register 7
|
||
8501 0006 7860 str r0, [r7, #4]
|
||
4508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
|
||
4509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
|
||
8502 .loc 1 4509 24
|
||
8503 0008 7B68 ldr r3, [r7, #4]
|
||
8504 000a 1B68 ldr r3, [r3]
|
||
8505 .loc 1 4509 12
|
||
8506 000c 9B69 ldr r3, [r3, #24]
|
||
8507 000e FB60 str r3, [r7, #12]
|
||
4510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
|
||
8508 .loc 1 4510 24
|
||
8509 0010 7B68 ldr r3, [r7, #4]
|
||
8510 0012 1B68 ldr r3, [r3]
|
||
8511 .loc 1 4510 12
|
||
8512 0014 1B68 ldr r3, [r3]
|
||
8513 0016 BB60 str r3, [r7, #8]
|
||
4511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/
|
||
4513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferISR != NULL)
|
||
8514 .loc 1 4513 11
|
||
8515 0018 7B68 ldr r3, [r7, #4]
|
||
8516 001a 5B6B ldr r3, [r3, #52]
|
||
8517 .loc 1 4513 6
|
||
8518 001c 002B cmp r3, #0
|
||
8519 001e 05D0 beq .L413
|
||
4514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources);
|
||
8520 .loc 1 4515 9
|
||
8521 0020 7B68 ldr r3, [r7, #4]
|
||
8522 0022 5B6B ldr r3, [r3, #52]
|
||
8523 .loc 1 4515 5
|
||
8524 0024 BA68 ldr r2, [r7, #8]
|
||
8525 0026 F968 ldr r1, [r7, #12]
|
||
8526 0028 7868 ldr r0, [r7, #4]
|
||
8527 002a 9847 blx r3
|
||
8528 .LVL6:
|
||
8529 .L413:
|
||
4516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8530 .loc 1 4517 1
|
||
8531 002c 00BF nop
|
||
8532 002e 1037 adds r7, r7, #16
|
||
8533 .cfi_def_cfa_offset 8
|
||
8534 0030 BD46 mov sp, r7
|
||
8535 .cfi_def_cfa_register 13
|
||
8536 @ sp needed
|
||
8537 0032 80BD pop {r7, pc}
|
||
8538 .cfi_endproc
|
||
8539 .LFE164:
|
||
8541 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits
|
||
8542 .align 1
|
||
8543 .global HAL_I2C_ER_IRQHandler
|
||
8544 .syntax unified
|
||
ARM GAS /tmp/cc5G5cqz.s page 231
|
||
|
||
|
||
8545 .thumb
|
||
8546 .thumb_func
|
||
8548 HAL_I2C_ER_IRQHandler:
|
||
8549 .LFB165:
|
||
4518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request.
|
||
4521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
4524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c)
|
||
4526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
8550 .loc 1 4526 1
|
||
8551 .cfi_startproc
|
||
8552 @ args = 0, pretend = 0, frame = 24
|
||
8553 @ frame_needed = 1, uses_anonymous_args = 0
|
||
8554 0000 80B5 push {r7, lr}
|
||
8555 .cfi_def_cfa_offset 8
|
||
8556 .cfi_offset 7, -8
|
||
8557 .cfi_offset 14, -4
|
||
8558 0002 86B0 sub sp, sp, #24
|
||
8559 .cfi_def_cfa_offset 32
|
||
8560 0004 00AF add r7, sp, #0
|
||
8561 .cfi_def_cfa_register 7
|
||
8562 0006 7860 str r0, [r7, #4]
|
||
4527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
|
||
8563 .loc 1 4527 24
|
||
8564 0008 7B68 ldr r3, [r7, #4]
|
||
8565 000a 1B68 ldr r3, [r3]
|
||
8566 .loc 1 4527 12
|
||
8567 000c 9B69 ldr r3, [r3, #24]
|
||
8568 000e 7B61 str r3, [r7, #20]
|
||
4528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
|
||
8569 .loc 1 4528 24
|
||
8570 0010 7B68 ldr r3, [r7, #4]
|
||
8571 0012 1B68 ldr r3, [r3]
|
||
8572 .loc 1 4528 12
|
||
8573 0014 1B68 ldr r3, [r3]
|
||
8574 0016 3B61 str r3, [r7, #16]
|
||
4529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
|
||
4530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/
|
||
4532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \
|
||
8575 .loc 1 4532 8
|
||
8576 0018 7B69 ldr r3, [r7, #20]
|
||
8577 001a 1B0A lsrs r3, r3, #8
|
||
8578 001c 03F00103 and r3, r3, #1
|
||
8579 .loc 1 4532 6
|
||
8580 0020 002B cmp r3, #0
|
||
8581 0022 10D0 beq .L415
|
||
4533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
|
||
8582 .loc 1 4533 8
|
||
8583 0024 3B69 ldr r3, [r7, #16]
|
||
8584 0026 DB09 lsrs r3, r3, #7
|
||
8585 0028 03F00103 and r3, r3, #1
|
||
4532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
|
||
ARM GAS /tmp/cc5G5cqz.s page 232
|
||
|
||
|
||
8586 .loc 1 4532 57 discriminator 1
|
||
8587 002c 002B cmp r3, #0
|
||
8588 002e 0AD0 beq .L415
|
||
4534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR;
|
||
8589 .loc 1 4535 9
|
||
8590 0030 7B68 ldr r3, [r7, #4]
|
||
8591 0032 5B6C ldr r3, [r3, #68]
|
||
8592 .loc 1 4535 21
|
||
8593 0034 43F00102 orr r2, r3, #1
|
||
8594 0038 7B68 ldr r3, [r7, #4]
|
||
8595 003a 5A64 str r2, [r3, #68]
|
||
4536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear BERR flag */
|
||
4538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
|
||
8596 .loc 1 4538 5
|
||
8597 003c 7B68 ldr r3, [r7, #4]
|
||
8598 003e 1B68 ldr r3, [r3]
|
||
8599 0040 4FF48072 mov r2, #256
|
||
8600 0044 DA61 str r2, [r3, #28]
|
||
8601 .L415:
|
||
4539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/
|
||
4542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \
|
||
8602 .loc 1 4542 8
|
||
8603 0046 7B69 ldr r3, [r7, #20]
|
||
8604 0048 9B0A lsrs r3, r3, #10
|
||
8605 004a 03F00103 and r3, r3, #1
|
||
8606 .loc 1 4542 6
|
||
8607 004e 002B cmp r3, #0
|
||
8608 0050 10D0 beq .L416
|
||
4543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
|
||
8609 .loc 1 4543 8
|
||
8610 0052 3B69 ldr r3, [r7, #16]
|
||
8611 0054 DB09 lsrs r3, r3, #7
|
||
8612 0056 03F00103 and r3, r3, #1
|
||
4542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
|
||
8613 .loc 1 4542 56 discriminator 1
|
||
8614 005a 002B cmp r3, #0
|
||
8615 005c 0AD0 beq .L416
|
||
4544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR;
|
||
8616 .loc 1 4545 9
|
||
8617 005e 7B68 ldr r3, [r7, #4]
|
||
8618 0060 5B6C ldr r3, [r3, #68]
|
||
8619 .loc 1 4545 21
|
||
8620 0062 43F00802 orr r2, r3, #8
|
||
8621 0066 7B68 ldr r3, [r7, #4]
|
||
8622 0068 5A64 str r2, [r3, #68]
|
||
4546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear OVR flag */
|
||
4548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
|
||
8623 .loc 1 4548 5
|
||
8624 006a 7B68 ldr r3, [r7, #4]
|
||
8625 006c 1B68 ldr r3, [r3]
|
||
8626 006e 4FF48062 mov r2, #1024
|
||
ARM GAS /tmp/cc5G5cqz.s page 233
|
||
|
||
|
||
8627 0072 DA61 str r2, [r3, #28]
|
||
8628 .L416:
|
||
4549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/
|
||
4552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \
|
||
8629 .loc 1 4552 8
|
||
8630 0074 7B69 ldr r3, [r7, #20]
|
||
8631 0076 5B0A lsrs r3, r3, #9
|
||
8632 0078 03F00103 and r3, r3, #1
|
||
8633 .loc 1 4552 6
|
||
8634 007c 002B cmp r3, #0
|
||
8635 007e 10D0 beq .L417
|
||
4553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
|
||
8636 .loc 1 4553 8
|
||
8637 0080 3B69 ldr r3, [r7, #16]
|
||
8638 0082 DB09 lsrs r3, r3, #7
|
||
8639 0084 03F00103 and r3, r3, #1
|
||
4552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
|
||
8640 .loc 1 4552 57 discriminator 1
|
||
8641 0088 002B cmp r3, #0
|
||
8642 008a 0AD0 beq .L417
|
||
4554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO;
|
||
8643 .loc 1 4555 9
|
||
8644 008c 7B68 ldr r3, [r7, #4]
|
||
8645 008e 5B6C ldr r3, [r3, #68]
|
||
8646 .loc 1 4555 21
|
||
8647 0090 43F00202 orr r2, r3, #2
|
||
8648 0094 7B68 ldr r3, [r7, #4]
|
||
8649 0096 5A64 str r2, [r3, #68]
|
||
4556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ARLO flag */
|
||
4558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
|
||
8650 .loc 1 4558 5
|
||
8651 0098 7B68 ldr r3, [r7, #4]
|
||
8652 009a 1B68 ldr r3, [r3]
|
||
8653 009c 4FF40072 mov r2, #512
|
||
8654 00a0 DA61 str r2, [r3, #28]
|
||
8655 .L417:
|
||
4559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
|
||
4562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
|
||
8656 .loc 1 4562 12
|
||
8657 00a2 7B68 ldr r3, [r7, #4]
|
||
8658 00a4 5B6C ldr r3, [r3, #68]
|
||
8659 00a6 FB60 str r3, [r7, #12]
|
||
4563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */
|
||
4565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_
|
||
8660 .loc 1 4565 17
|
||
8661 00a8 FB68 ldr r3, [r7, #12]
|
||
8662 00aa 03F00B03 and r3, r3, #11
|
||
8663 .loc 1 4565 6
|
||
8664 00ae 002B cmp r3, #0
|
||
8665 00b0 03D0 beq .L419
|
||
ARM GAS /tmp/cc5G5cqz.s page 234
|
||
|
||
|
||
4566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror);
|
||
8666 .loc 1 4567 5
|
||
8667 00b2 F968 ldr r1, [r7, #12]
|
||
8668 00b4 7868 ldr r0, [r7, #4]
|
||
8669 00b6 FFF7FEFF bl I2C_ITError
|
||
8670 .L419:
|
||
4568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8671 .loc 1 4569 1
|
||
8672 00ba 00BF nop
|
||
8673 00bc 1837 adds r7, r7, #24
|
||
8674 .cfi_def_cfa_offset 8
|
||
8675 00be BD46 mov sp, r7
|
||
8676 .cfi_def_cfa_register 13
|
||
8677 @ sp needed
|
||
8678 00c0 80BD pop {r7, pc}
|
||
8679 .cfi_endproc
|
||
8680 .LFE165:
|
||
8682 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits
|
||
8683 .align 1
|
||
8684 .weak HAL_I2C_MasterTxCpltCallback
|
||
8685 .syntax unified
|
||
8686 .thumb
|
||
8687 .thumb_func
|
||
8689 HAL_I2C_MasterTxCpltCallback:
|
||
8690 .LFB166:
|
||
4570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback.
|
||
4573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
4576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c)
|
||
4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
8691 .loc 1 4578 1
|
||
8692 .cfi_startproc
|
||
8693 @ args = 0, pretend = 0, frame = 8
|
||
8694 @ frame_needed = 1, uses_anonymous_args = 0
|
||
8695 @ link register save eliminated.
|
||
8696 0000 80B4 push {r7}
|
||
8697 .cfi_def_cfa_offset 4
|
||
8698 .cfi_offset 7, -4
|
||
8699 0002 83B0 sub sp, sp, #12
|
||
8700 .cfi_def_cfa_offset 16
|
||
8701 0004 00AF add r7, sp, #0
|
||
8702 .cfi_def_cfa_register 7
|
||
8703 0006 7860 str r0, [r7, #4]
|
||
4579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
|
||
4580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
|
||
4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
|
||
4583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file
|
||
4584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8704 .loc 1 4585 1
|
||
ARM GAS /tmp/cc5G5cqz.s page 235
|
||
|
||
|
||
8705 0008 00BF nop
|
||
8706 000a 0C37 adds r7, r7, #12
|
||
8707 .cfi_def_cfa_offset 4
|
||
8708 000c BD46 mov sp, r7
|
||
8709 .cfi_def_cfa_register 13
|
||
8710 @ sp needed
|
||
8711 000e 5DF8047B ldr r7, [sp], #4
|
||
8712 .cfi_restore 7
|
||
8713 .cfi_def_cfa_offset 0
|
||
8714 0012 7047 bx lr
|
||
8715 .cfi_endproc
|
||
8716 .LFE166:
|
||
8718 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits
|
||
8719 .align 1
|
||
8720 .weak HAL_I2C_MasterRxCpltCallback
|
||
8721 .syntax unified
|
||
8722 .thumb
|
||
8723 .thumb_func
|
||
8725 HAL_I2C_MasterRxCpltCallback:
|
||
8726 .LFB167:
|
||
4586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback.
|
||
4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
4592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
|
||
4594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
8727 .loc 1 4594 1
|
||
8728 .cfi_startproc
|
||
8729 @ args = 0, pretend = 0, frame = 8
|
||
8730 @ frame_needed = 1, uses_anonymous_args = 0
|
||
8731 @ link register save eliminated.
|
||
8732 0000 80B4 push {r7}
|
||
8733 .cfi_def_cfa_offset 4
|
||
8734 .cfi_offset 7, -4
|
||
8735 0002 83B0 sub sp, sp, #12
|
||
8736 .cfi_def_cfa_offset 16
|
||
8737 0004 00AF add r7, sp, #0
|
||
8738 .cfi_def_cfa_register 7
|
||
8739 0006 7860 str r0, [r7, #4]
|
||
4595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
|
||
4596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
|
||
4597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
|
||
4599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file
|
||
4600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8740 .loc 1 4601 1
|
||
8741 0008 00BF nop
|
||
8742 000a 0C37 adds r7, r7, #12
|
||
8743 .cfi_def_cfa_offset 4
|
||
8744 000c BD46 mov sp, r7
|
||
8745 .cfi_def_cfa_register 13
|
||
8746 @ sp needed
|
||
8747 000e 5DF8047B ldr r7, [sp], #4
|
||
ARM GAS /tmp/cc5G5cqz.s page 236
|
||
|
||
|
||
8748 .cfi_restore 7
|
||
8749 .cfi_def_cfa_offset 0
|
||
8750 0012 7047 bx lr
|
||
8751 .cfi_endproc
|
||
8752 .LFE167:
|
||
8754 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits
|
||
8755 .align 1
|
||
8756 .weak HAL_I2C_SlaveTxCpltCallback
|
||
8757 .syntax unified
|
||
8758 .thumb
|
||
8759 .thumb_func
|
||
8761 HAL_I2C_SlaveTxCpltCallback:
|
||
8762 .LFB168:
|
||
4602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback.
|
||
4604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c)
|
||
4609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
8763 .loc 1 4609 1
|
||
8764 .cfi_startproc
|
||
8765 @ args = 0, pretend = 0, frame = 8
|
||
8766 @ frame_needed = 1, uses_anonymous_args = 0
|
||
8767 @ link register save eliminated.
|
||
8768 0000 80B4 push {r7}
|
||
8769 .cfi_def_cfa_offset 4
|
||
8770 .cfi_offset 7, -4
|
||
8771 0002 83B0 sub sp, sp, #12
|
||
8772 .cfi_def_cfa_offset 16
|
||
8773 0004 00AF add r7, sp, #0
|
||
8774 .cfi_def_cfa_register 7
|
||
8775 0006 7860 str r0, [r7, #4]
|
||
4610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
|
||
4611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
|
||
4612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
|
||
4614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file
|
||
4615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8776 .loc 1 4616 1
|
||
8777 0008 00BF nop
|
||
8778 000a 0C37 adds r7, r7, #12
|
||
8779 .cfi_def_cfa_offset 4
|
||
8780 000c BD46 mov sp, r7
|
||
8781 .cfi_def_cfa_register 13
|
||
8782 @ sp needed
|
||
8783 000e 5DF8047B ldr r7, [sp], #4
|
||
8784 .cfi_restore 7
|
||
8785 .cfi_def_cfa_offset 0
|
||
8786 0012 7047 bx lr
|
||
8787 .cfi_endproc
|
||
8788 .LFE168:
|
||
8790 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits
|
||
8791 .align 1
|
||
8792 .weak HAL_I2C_SlaveRxCpltCallback
|
||
ARM GAS /tmp/cc5G5cqz.s page 237
|
||
|
||
|
||
8793 .syntax unified
|
||
8794 .thumb
|
||
8795 .thumb_func
|
||
8797 HAL_I2C_SlaveRxCpltCallback:
|
||
8798 .LFB169:
|
||
4617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback.
|
||
4620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
4623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
|
||
4625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
8799 .loc 1 4625 1
|
||
8800 .cfi_startproc
|
||
8801 @ args = 0, pretend = 0, frame = 8
|
||
8802 @ frame_needed = 1, uses_anonymous_args = 0
|
||
8803 @ link register save eliminated.
|
||
8804 0000 80B4 push {r7}
|
||
8805 .cfi_def_cfa_offset 4
|
||
8806 .cfi_offset 7, -4
|
||
8807 0002 83B0 sub sp, sp, #12
|
||
8808 .cfi_def_cfa_offset 16
|
||
8809 0004 00AF add r7, sp, #0
|
||
8810 .cfi_def_cfa_register 7
|
||
8811 0006 7860 str r0, [r7, #4]
|
||
4626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
|
||
4627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
|
||
4628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
|
||
4630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file
|
||
4631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8812 .loc 1 4632 1
|
||
8813 0008 00BF nop
|
||
8814 000a 0C37 adds r7, r7, #12
|
||
8815 .cfi_def_cfa_offset 4
|
||
8816 000c BD46 mov sp, r7
|
||
8817 .cfi_def_cfa_register 13
|
||
8818 @ sp needed
|
||
8819 000e 5DF8047B ldr r7, [sp], #4
|
||
8820 .cfi_restore 7
|
||
8821 .cfi_def_cfa_offset 0
|
||
8822 0012 7047 bx lr
|
||
8823 .cfi_endproc
|
||
8824 .LFE169:
|
||
8826 .section .text.HAL_I2C_AddrCallback,"ax",%progbits
|
||
8827 .align 1
|
||
8828 .weak HAL_I2C_AddrCallback
|
||
8829 .syntax unified
|
||
8830 .thumb
|
||
8831 .thumb_func
|
||
8833 HAL_I2C_AddrCallback:
|
||
8834 .LFB170:
|
||
4633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
ARM GAS /tmp/cc5G5cqz.s page 238
|
||
|
||
|
||
4635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Slave Address Match callback.
|
||
4636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE
|
||
4639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code
|
||
4640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
4641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM
|
||
4643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
8835 .loc 1 4643 1
|
||
8836 .cfi_startproc
|
||
8837 @ args = 0, pretend = 0, frame = 8
|
||
8838 @ frame_needed = 1, uses_anonymous_args = 0
|
||
8839 @ link register save eliminated.
|
||
8840 0000 80B4 push {r7}
|
||
8841 .cfi_def_cfa_offset 4
|
||
8842 .cfi_offset 7, -4
|
||
8843 0002 83B0 sub sp, sp, #12
|
||
8844 .cfi_def_cfa_offset 16
|
||
8845 0004 00AF add r7, sp, #0
|
||
8846 .cfi_def_cfa_register 7
|
||
8847 0006 7860 str r0, [r7, #4]
|
||
8848 0008 0B46 mov r3, r1
|
||
8849 000a FB70 strb r3, [r7, #3]
|
||
8850 000c 1346 mov r3, r2 @ movhi
|
||
8851 000e 3B80 strh r3, [r7] @ movhi
|
||
4644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
|
||
4645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
|
||
4646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(TransferDirection);
|
||
4647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(AddrMatchCode);
|
||
4648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
|
||
4650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file
|
||
4651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8852 .loc 1 4652 1
|
||
8853 0010 00BF nop
|
||
8854 0012 0C37 adds r7, r7, #12
|
||
8855 .cfi_def_cfa_offset 4
|
||
8856 0014 BD46 mov sp, r7
|
||
8857 .cfi_def_cfa_register 13
|
||
8858 @ sp needed
|
||
8859 0016 5DF8047B ldr r7, [sp], #4
|
||
8860 .cfi_restore 7
|
||
8861 .cfi_def_cfa_offset 0
|
||
8862 001a 7047 bx lr
|
||
8863 .cfi_endproc
|
||
8864 .LFE170:
|
||
8866 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits
|
||
8867 .align 1
|
||
8868 .weak HAL_I2C_ListenCpltCallback
|
||
8869 .syntax unified
|
||
8870 .thumb
|
||
8871 .thumb_func
|
||
8873 HAL_I2C_ListenCpltCallback:
|
||
8874 .LFB171:
|
||
4653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 239
|
||
|
||
|
||
4654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Listen Complete callback.
|
||
4656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
4659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c)
|
||
4661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
8875 .loc 1 4661 1
|
||
8876 .cfi_startproc
|
||
8877 @ args = 0, pretend = 0, frame = 8
|
||
8878 @ frame_needed = 1, uses_anonymous_args = 0
|
||
8879 @ link register save eliminated.
|
||
8880 0000 80B4 push {r7}
|
||
8881 .cfi_def_cfa_offset 4
|
||
8882 .cfi_offset 7, -4
|
||
8883 0002 83B0 sub sp, sp, #12
|
||
8884 .cfi_def_cfa_offset 16
|
||
8885 0004 00AF add r7, sp, #0
|
||
8886 .cfi_def_cfa_register 7
|
||
8887 0006 7860 str r0, [r7, #4]
|
||
4662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
|
||
4663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
|
||
4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
|
||
4666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file
|
||
4667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8888 .loc 1 4668 1
|
||
8889 0008 00BF nop
|
||
8890 000a 0C37 adds r7, r7, #12
|
||
8891 .cfi_def_cfa_offset 4
|
||
8892 000c BD46 mov sp, r7
|
||
8893 .cfi_def_cfa_register 13
|
||
8894 @ sp needed
|
||
8895 000e 5DF8047B ldr r7, [sp], #4
|
||
8896 .cfi_restore 7
|
||
8897 .cfi_def_cfa_offset 0
|
||
8898 0012 7047 bx lr
|
||
8899 .cfi_endproc
|
||
8900 .LFE171:
|
||
8902 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits
|
||
8903 .align 1
|
||
8904 .weak HAL_I2C_MemTxCpltCallback
|
||
8905 .syntax unified
|
||
8906 .thumb
|
||
8907 .thumb_func
|
||
8909 HAL_I2C_MemTxCpltCallback:
|
||
8910 .LFB172:
|
||
4669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback.
|
||
4672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
4675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c)
|
||
ARM GAS /tmp/cc5G5cqz.s page 240
|
||
|
||
|
||
4677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
8911 .loc 1 4677 1
|
||
8912 .cfi_startproc
|
||
8913 @ args = 0, pretend = 0, frame = 8
|
||
8914 @ frame_needed = 1, uses_anonymous_args = 0
|
||
8915 @ link register save eliminated.
|
||
8916 0000 80B4 push {r7}
|
||
8917 .cfi_def_cfa_offset 4
|
||
8918 .cfi_offset 7, -4
|
||
8919 0002 83B0 sub sp, sp, #12
|
||
8920 .cfi_def_cfa_offset 16
|
||
8921 0004 00AF add r7, sp, #0
|
||
8922 .cfi_def_cfa_register 7
|
||
8923 0006 7860 str r0, [r7, #4]
|
||
4678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
|
||
4679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
|
||
4680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
|
||
4682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file
|
||
4683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8924 .loc 1 4684 1
|
||
8925 0008 00BF nop
|
||
8926 000a 0C37 adds r7, r7, #12
|
||
8927 .cfi_def_cfa_offset 4
|
||
8928 000c BD46 mov sp, r7
|
||
8929 .cfi_def_cfa_register 13
|
||
8930 @ sp needed
|
||
8931 000e 5DF8047B ldr r7, [sp], #4
|
||
8932 .cfi_restore 7
|
||
8933 .cfi_def_cfa_offset 0
|
||
8934 0012 7047 bx lr
|
||
8935 .cfi_endproc
|
||
8936 .LFE172:
|
||
8938 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits
|
||
8939 .align 1
|
||
8940 .weak HAL_I2C_MemRxCpltCallback
|
||
8941 .syntax unified
|
||
8942 .thumb
|
||
8943 .thumb_func
|
||
8945 HAL_I2C_MemRxCpltCallback:
|
||
8946 .LFB173:
|
||
4685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback.
|
||
4688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
4691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c)
|
||
4693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
8947 .loc 1 4693 1
|
||
8948 .cfi_startproc
|
||
8949 @ args = 0, pretend = 0, frame = 8
|
||
8950 @ frame_needed = 1, uses_anonymous_args = 0
|
||
8951 @ link register save eliminated.
|
||
8952 0000 80B4 push {r7}
|
||
ARM GAS /tmp/cc5G5cqz.s page 241
|
||
|
||
|
||
8953 .cfi_def_cfa_offset 4
|
||
8954 .cfi_offset 7, -4
|
||
8955 0002 83B0 sub sp, sp, #12
|
||
8956 .cfi_def_cfa_offset 16
|
||
8957 0004 00AF add r7, sp, #0
|
||
8958 .cfi_def_cfa_register 7
|
||
8959 0006 7860 str r0, [r7, #4]
|
||
4694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
|
||
4695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
|
||
4696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
|
||
4698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file
|
||
4699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8960 .loc 1 4700 1
|
||
8961 0008 00BF nop
|
||
8962 000a 0C37 adds r7, r7, #12
|
||
8963 .cfi_def_cfa_offset 4
|
||
8964 000c BD46 mov sp, r7
|
||
8965 .cfi_def_cfa_register 13
|
||
8966 @ sp needed
|
||
8967 000e 5DF8047B ldr r7, [sp], #4
|
||
8968 .cfi_restore 7
|
||
8969 .cfi_def_cfa_offset 0
|
||
8970 0012 7047 bx lr
|
||
8971 .cfi_endproc
|
||
8972 .LFE173:
|
||
8974 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits
|
||
8975 .align 1
|
||
8976 .weak HAL_I2C_ErrorCallback
|
||
8977 .syntax unified
|
||
8978 .thumb
|
||
8979 .thumb_func
|
||
8981 HAL_I2C_ErrorCallback:
|
||
8982 .LFB174:
|
||
4701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C error callback.
|
||
4704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
4707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c)
|
||
4709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
8983 .loc 1 4709 1
|
||
8984 .cfi_startproc
|
||
8985 @ args = 0, pretend = 0, frame = 8
|
||
8986 @ frame_needed = 1, uses_anonymous_args = 0
|
||
8987 @ link register save eliminated.
|
||
8988 0000 80B4 push {r7}
|
||
8989 .cfi_def_cfa_offset 4
|
||
8990 .cfi_offset 7, -4
|
||
8991 0002 83B0 sub sp, sp, #12
|
||
8992 .cfi_def_cfa_offset 16
|
||
8993 0004 00AF add r7, sp, #0
|
||
8994 .cfi_def_cfa_register 7
|
||
8995 0006 7860 str r0, [r7, #4]
|
||
ARM GAS /tmp/cc5G5cqz.s page 242
|
||
|
||
|
||
4710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
|
||
4711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
|
||
4712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
|
||
4714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file
|
||
4715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
8996 .loc 1 4716 1
|
||
8997 0008 00BF nop
|
||
8998 000a 0C37 adds r7, r7, #12
|
||
8999 .cfi_def_cfa_offset 4
|
||
9000 000c BD46 mov sp, r7
|
||
9001 .cfi_def_cfa_register 13
|
||
9002 @ sp needed
|
||
9003 000e 5DF8047B ldr r7, [sp], #4
|
||
9004 .cfi_restore 7
|
||
9005 .cfi_def_cfa_offset 0
|
||
9006 0012 7047 bx lr
|
||
9007 .cfi_endproc
|
||
9008 .LFE174:
|
||
9010 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits
|
||
9011 .align 1
|
||
9012 .weak HAL_I2C_AbortCpltCallback
|
||
9013 .syntax unified
|
||
9014 .thumb
|
||
9015 .thumb_func
|
||
9017 HAL_I2C_AbortCpltCallback:
|
||
9018 .LFB175:
|
||
4717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C abort callback.
|
||
4720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
4723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c)
|
||
4725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9019 .loc 1 4725 1
|
||
9020 .cfi_startproc
|
||
9021 @ args = 0, pretend = 0, frame = 8
|
||
9022 @ frame_needed = 1, uses_anonymous_args = 0
|
||
9023 @ link register save eliminated.
|
||
9024 0000 80B4 push {r7}
|
||
9025 .cfi_def_cfa_offset 4
|
||
9026 .cfi_offset 7, -4
|
||
9027 0002 83B0 sub sp, sp, #12
|
||
9028 .cfi_def_cfa_offset 16
|
||
9029 0004 00AF add r7, sp, #0
|
||
9030 .cfi_def_cfa_register 7
|
||
9031 0006 7860 str r0, [r7, #4]
|
||
4726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
|
||
4727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
|
||
4728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
|
||
4730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file
|
||
4731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 243
|
||
|
||
|
||
9032 .loc 1 4732 1
|
||
9033 0008 00BF nop
|
||
9034 000a 0C37 adds r7, r7, #12
|
||
9035 .cfi_def_cfa_offset 4
|
||
9036 000c BD46 mov sp, r7
|
||
9037 .cfi_def_cfa_register 13
|
||
9038 @ sp needed
|
||
9039 000e 5DF8047B ldr r7, [sp], #4
|
||
9040 .cfi_restore 7
|
||
9041 .cfi_def_cfa_offset 0
|
||
9042 0012 7047 bx lr
|
||
9043 .cfi_endproc
|
||
9044 .LFE175:
|
||
9046 .section .text.HAL_I2C_GetState,"ax",%progbits
|
||
9047 .align 1
|
||
9048 .global HAL_I2C_GetState
|
||
9049 .syntax unified
|
||
9050 .thumb
|
||
9051 .thumb_func
|
||
9053 HAL_I2C_GetState:
|
||
9054 .LFB176:
|
||
4733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
|
||
4736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions
|
||
4739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions
|
||
4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
|
||
4741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
|
||
4742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
|
||
4743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions #####
|
||
4744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
|
||
4745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
|
||
4746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral
|
||
4747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and the data flow.
|
||
4748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
|
||
4750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
|
||
4751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Return the I2C handle state.
|
||
4755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL state
|
||
4758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c)
|
||
4760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9055 .loc 1 4760 1
|
||
9056 .cfi_startproc
|
||
9057 @ args = 0, pretend = 0, frame = 8
|
||
9058 @ frame_needed = 1, uses_anonymous_args = 0
|
||
9059 @ link register save eliminated.
|
||
9060 0000 80B4 push {r7}
|
||
9061 .cfi_def_cfa_offset 4
|
||
9062 .cfi_offset 7, -4
|
||
ARM GAS /tmp/cc5G5cqz.s page 244
|
||
|
||
|
||
9063 0002 83B0 sub sp, sp, #12
|
||
9064 .cfi_def_cfa_offset 16
|
||
9065 0004 00AF add r7, sp, #0
|
||
9066 .cfi_def_cfa_register 7
|
||
9067 0006 7860 str r0, [r7, #4]
|
||
4761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return I2C handle state */
|
||
4762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->State;
|
||
9068 .loc 1 4762 14
|
||
9069 0008 7B68 ldr r3, [r7, #4]
|
||
9070 000a 93F84130 ldrb r3, [r3, #65]
|
||
9071 000e DBB2 uxtb r3, r3
|
||
4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
9072 .loc 1 4763 1
|
||
9073 0010 1846 mov r0, r3
|
||
9074 0012 0C37 adds r7, r7, #12
|
||
9075 .cfi_def_cfa_offset 4
|
||
9076 0014 BD46 mov sp, r7
|
||
9077 .cfi_def_cfa_register 13
|
||
9078 @ sp needed
|
||
9079 0016 5DF8047B ldr r7, [sp], #4
|
||
9080 .cfi_restore 7
|
||
9081 .cfi_def_cfa_offset 0
|
||
9082 001a 7047 bx lr
|
||
9083 .cfi_endproc
|
||
9084 .LFE176:
|
||
9086 .section .text.HAL_I2C_GetMode,"ax",%progbits
|
||
9087 .align 1
|
||
9088 .global HAL_I2C_GetMode
|
||
9089 .syntax unified
|
||
9090 .thumb
|
||
9091 .thumb_func
|
||
9093 HAL_I2C_GetMode:
|
||
9094 .LFB177:
|
||
4764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode.
|
||
4767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for I2C module
|
||
4769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL mode
|
||
4770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c)
|
||
4772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9095 .loc 1 4772 1
|
||
9096 .cfi_startproc
|
||
9097 @ args = 0, pretend = 0, frame = 8
|
||
9098 @ frame_needed = 1, uses_anonymous_args = 0
|
||
9099 @ link register save eliminated.
|
||
9100 0000 80B4 push {r7}
|
||
9101 .cfi_def_cfa_offset 4
|
||
9102 .cfi_offset 7, -4
|
||
9103 0002 83B0 sub sp, sp, #12
|
||
9104 .cfi_def_cfa_offset 16
|
||
9105 0004 00AF add r7, sp, #0
|
||
9106 .cfi_def_cfa_register 7
|
||
9107 0006 7860 str r0, [r7, #4]
|
||
4773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->Mode;
|
||
9108 .loc 1 4773 14
|
||
ARM GAS /tmp/cc5G5cqz.s page 245
|
||
|
||
|
||
9109 0008 7B68 ldr r3, [r7, #4]
|
||
9110 000a 93F84230 ldrb r3, [r3, #66]
|
||
9111 000e DBB2 uxtb r3, r3
|
||
4774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
9112 .loc 1 4774 1
|
||
9113 0010 1846 mov r0, r3
|
||
9114 0012 0C37 adds r7, r7, #12
|
||
9115 .cfi_def_cfa_offset 4
|
||
9116 0014 BD46 mov sp, r7
|
||
9117 .cfi_def_cfa_register 13
|
||
9118 @ sp needed
|
||
9119 0016 5DF8047B ldr r7, [sp], #4
|
||
9120 .cfi_restore 7
|
||
9121 .cfi_def_cfa_offset 0
|
||
9122 001a 7047 bx lr
|
||
9123 .cfi_endproc
|
||
9124 .LFE177:
|
||
9126 .section .text.HAL_I2C_GetError,"ax",%progbits
|
||
9127 .align 1
|
||
9128 .global HAL_I2C_GetError
|
||
9129 .syntax unified
|
||
9130 .thumb
|
||
9131 .thumb_func
|
||
9133 HAL_I2C_GetError:
|
||
9134 .LFB178:
|
||
4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Return the I2C error code.
|
||
4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval I2C Error Code
|
||
4781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c)
|
||
4783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9135 .loc 1 4783 1
|
||
9136 .cfi_startproc
|
||
9137 @ args = 0, pretend = 0, frame = 8
|
||
9138 @ frame_needed = 1, uses_anonymous_args = 0
|
||
9139 @ link register save eliminated.
|
||
9140 0000 80B4 push {r7}
|
||
9141 .cfi_def_cfa_offset 4
|
||
9142 .cfi_offset 7, -4
|
||
9143 0002 83B0 sub sp, sp, #12
|
||
9144 .cfi_def_cfa_offset 16
|
||
9145 0004 00AF add r7, sp, #0
|
||
9146 .cfi_def_cfa_register 7
|
||
9147 0006 7860 str r0, [r7, #4]
|
||
4784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->ErrorCode;
|
||
9148 .loc 1 4784 14
|
||
9149 0008 7B68 ldr r3, [r7, #4]
|
||
9150 000a 5B6C ldr r3, [r3, #68]
|
||
4785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
9151 .loc 1 4785 1
|
||
9152 000c 1846 mov r0, r3
|
||
9153 000e 0C37 adds r7, r7, #12
|
||
9154 .cfi_def_cfa_offset 4
|
||
9155 0010 BD46 mov sp, r7
|
||
ARM GAS /tmp/cc5G5cqz.s page 246
|
||
|
||
|
||
9156 .cfi_def_cfa_register 13
|
||
9157 @ sp needed
|
||
9158 0012 5DF8047B ldr r7, [sp], #4
|
||
9159 .cfi_restore 7
|
||
9160 .cfi_def_cfa_offset 0
|
||
9161 0016 7047 bx lr
|
||
9162 .cfi_endproc
|
||
9163 .LFE178:
|
||
9165 .section .text.I2C_Master_ISR_IT,"ax",%progbits
|
||
9166 .align 1
|
||
9167 .syntax unified
|
||
9168 .thumb
|
||
9169 .thumb_func
|
||
9171 I2C_Master_ISR_IT:
|
||
9172 .LFB179:
|
||
4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
|
||
4789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
|
||
4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions
|
||
4796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
|
||
4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt.
|
||
4801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
|
||
4804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
|
||
4805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
4806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
|
||
4808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
|
||
4809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9173 .loc 1 4809 1
|
||
9174 .cfi_startproc
|
||
9175 @ args = 0, pretend = 0, frame = 24
|
||
9176 @ frame_needed = 1, uses_anonymous_args = 0
|
||
9177 0000 80B5 push {r7, lr}
|
||
9178 .cfi_def_cfa_offset 8
|
||
9179 .cfi_offset 7, -8
|
||
9180 .cfi_offset 14, -4
|
||
9181 0002 88B0 sub sp, sp, #32
|
||
9182 .cfi_def_cfa_offset 40
|
||
9183 0004 02AF add r7, sp, #8
|
||
9184 .cfi_def_cfa 7, 32
|
||
9185 0006 F860 str r0, [r7, #12]
|
||
9186 0008 B960 str r1, [r7, #8]
|
||
9187 000a 7A60 str r2, [r7, #4]
|
||
4810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
|
||
4811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
|
||
9188 .loc 1 4811 12
|
||
ARM GAS /tmp/cc5G5cqz.s page 247
|
||
|
||
|
||
9189 000c BB68 ldr r3, [r7, #8]
|
||
9190 000e 7B61 str r3, [r7, #20]
|
||
4812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
4814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
9191 .loc 1 4814 3
|
||
9192 0010 FB68 ldr r3, [r7, #12]
|
||
9193 0012 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
9194 0016 012B cmp r3, #1
|
||
9195 0018 01D1 bne .L437
|
||
9196 .loc 1 4814 3 is_stmt 0 discriminator 1
|
||
9197 001a 0223 movs r3, #2
|
||
9198 .loc 1 4814 3
|
||
9199 001c 14E1 b .L438
|
||
9200 .L437:
|
||
9201 .loc 1 4814 3 discriminator 2
|
||
9202 001e FB68 ldr r3, [r7, #12]
|
||
9203 0020 0122 movs r2, #1
|
||
9204 0022 83F84020 strb r2, [r3, #64]
|
||
4815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
|
||
9205 .loc 1 4816 8 is_stmt 1
|
||
9206 0026 7B69 ldr r3, [r7, #20]
|
||
9207 0028 1B09 lsrs r3, r3, #4
|
||
9208 002a 03F00103 and r3, r3, #1
|
||
9209 .loc 1 4816 6
|
||
9210 002e 002B cmp r3, #0
|
||
9211 0030 13D0 beq .L439
|
||
4817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
|
||
9212 .loc 1 4817 8
|
||
9213 0032 7B68 ldr r3, [r7, #4]
|
||
9214 0034 1B09 lsrs r3, r3, #4
|
||
9215 0036 03F00103 and r3, r3, #1
|
||
4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
|
||
9216 .loc 1 4816 58 discriminator 1
|
||
9217 003a 002B cmp r3, #0
|
||
9218 003c 0DD0 beq .L439
|
||
4818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
|
||
4820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
9219 .loc 1 4820 5
|
||
9220 003e FB68 ldr r3, [r7, #12]
|
||
9221 0040 1B68 ldr r3, [r3]
|
||
9222 0042 1022 movs r2, #16
|
||
9223 0044 DA61 str r2, [r3, #28]
|
||
4821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
|
||
4823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
|
||
4824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
|
||
4825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
|
||
9224 .loc 1 4825 9
|
||
9225 0046 FB68 ldr r3, [r7, #12]
|
||
9226 0048 5B6C ldr r3, [r3, #68]
|
||
9227 .loc 1 4825 21
|
||
9228 004a 43F00402 orr r2, r3, #4
|
||
9229 004e FB68 ldr r3, [r7, #12]
|
||
9230 0050 5A64 str r2, [r3, #68]
|
||
ARM GAS /tmp/cc5G5cqz.s page 248
|
||
|
||
|
||
4826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
|
||
4828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
|
||
9231 .loc 1 4828 5
|
||
9232 0052 F868 ldr r0, [r7, #12]
|
||
9233 0054 FFF7FEFF bl I2C_Flush_TXDR
|
||
9234 0058 E1E0 b .L440
|
||
9235 .L439:
|
||
4829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
|
||
9236 .loc 1 4830 13
|
||
9237 005a 7B69 ldr r3, [r7, #20]
|
||
9238 005c 9B08 lsrs r3, r3, #2
|
||
9239 005e 03F00103 and r3, r3, #1
|
||
9240 .loc 1 4830 11
|
||
9241 0062 002B cmp r3, #0
|
||
9242 0064 23D0 beq .L441
|
||
4831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
|
||
9243 .loc 1 4831 13
|
||
9244 0066 7B68 ldr r3, [r7, #4]
|
||
9245 0068 9B08 lsrs r3, r3, #2
|
||
9246 006a 03F00103 and r3, r3, #1
|
||
4830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
|
||
9247 .loc 1 4830 65 discriminator 1
|
||
9248 006e 002B cmp r3, #0
|
||
9249 0070 1DD0 beq .L441
|
||
4832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
|
||
4834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
|
||
9250 .loc 1 4834 16
|
||
9251 0072 7B69 ldr r3, [r7, #20]
|
||
9252 0074 23F00403 bic r3, r3, #4
|
||
9253 0078 7B61 str r3, [r7, #20]
|
||
4835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
|
||
4837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
|
||
9254 .loc 1 4837 36
|
||
9255 007a FB68 ldr r3, [r7, #12]
|
||
9256 007c 1B68 ldr r3, [r3]
|
||
9257 .loc 1 4837 46
|
||
9258 007e 5A6A ldr r2, [r3, #36]
|
||
9259 .loc 1 4837 10
|
||
9260 0080 FB68 ldr r3, [r7, #12]
|
||
9261 0082 5B6A ldr r3, [r3, #36]
|
||
9262 .loc 1 4837 23
|
||
9263 0084 D2B2 uxtb r2, r2
|
||
9264 .loc 1 4837 21
|
||
9265 0086 1A70 strb r2, [r3]
|
||
4838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
4840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
9266 .loc 1 4840 9
|
||
9267 0088 FB68 ldr r3, [r7, #12]
|
||
9268 008a 5B6A ldr r3, [r3, #36]
|
||
9269 .loc 1 4840 19
|
||
9270 008c 5A1C adds r2, r3, #1
|
||
9271 008e FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 249
|
||
|
||
|
||
9272 0090 5A62 str r2, [r3, #36]
|
||
4841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
9273 .loc 1 4842 9
|
||
9274 0092 FB68 ldr r3, [r7, #12]
|
||
9275 0094 1B8D ldrh r3, [r3, #40]
|
||
9276 .loc 1 4842 19
|
||
9277 0096 013B subs r3, r3, #1
|
||
9278 0098 9AB2 uxth r2, r3
|
||
9279 009a FB68 ldr r3, [r7, #12]
|
||
9280 009c 1A85 strh r2, [r3, #40] @ movhi
|
||
4843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
9281 .loc 1 4843 9
|
||
9282 009e FB68 ldr r3, [r7, #12]
|
||
9283 00a0 5B8D ldrh r3, [r3, #42] @ movhi
|
||
9284 00a2 9BB2 uxth r3, r3
|
||
9285 .loc 1 4843 20
|
||
9286 00a4 013B subs r3, r3, #1
|
||
9287 00a6 9AB2 uxth r2, r3
|
||
9288 00a8 FB68 ldr r3, [r7, #12]
|
||
9289 00aa 5A85 strh r2, [r3, #42] @ movhi
|
||
9290 00ac B7E0 b .L440
|
||
9291 .L441:
|
||
4844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
|
||
9292 .loc 1 4845 13
|
||
9293 00ae 7B69 ldr r3, [r7, #20]
|
||
9294 00b0 5B08 lsrs r3, r3, #1
|
||
9295 00b2 03F00103 and r3, r3, #1
|
||
9296 .loc 1 4845 11
|
||
9297 00b6 002B cmp r3, #0
|
||
9298 00b8 1ED0 beq .L442
|
||
4846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
|
||
9299 .loc 1 4846 13
|
||
9300 00ba 7B68 ldr r3, [r7, #4]
|
||
9301 00bc 5B08 lsrs r3, r3, #1
|
||
9302 00be 03F00103 and r3, r3, #1
|
||
4845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
|
||
9303 .loc 1 4845 65 discriminator 1
|
||
9304 00c2 002B cmp r3, #0
|
||
9305 00c4 18D0 beq .L442
|
||
4847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
|
||
4849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
|
||
9306 .loc 1 4849 33
|
||
9307 00c6 FB68 ldr r3, [r7, #12]
|
||
9308 00c8 5B6A ldr r3, [r3, #36]
|
||
9309 .loc 1 4849 28
|
||
9310 00ca 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
9311 .loc 1 4849 9
|
||
9312 00cc FB68 ldr r3, [r7, #12]
|
||
9313 00ce 1B68 ldr r3, [r3]
|
||
9314 .loc 1 4849 26
|
||
9315 00d0 9A62 str r2, [r3, #40]
|
||
4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
4852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
ARM GAS /tmp/cc5G5cqz.s page 250
|
||
|
||
|
||
9316 .loc 1 4852 9
|
||
9317 00d2 FB68 ldr r3, [r7, #12]
|
||
9318 00d4 5B6A ldr r3, [r3, #36]
|
||
9319 .loc 1 4852 19
|
||
9320 00d6 5A1C adds r2, r3, #1
|
||
9321 00d8 FB68 ldr r3, [r7, #12]
|
||
9322 00da 5A62 str r2, [r3, #36]
|
||
4853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
9323 .loc 1 4854 9
|
||
9324 00dc FB68 ldr r3, [r7, #12]
|
||
9325 00de 1B8D ldrh r3, [r3, #40]
|
||
9326 .loc 1 4854 19
|
||
9327 00e0 013B subs r3, r3, #1
|
||
9328 00e2 9AB2 uxth r2, r3
|
||
9329 00e4 FB68 ldr r3, [r7, #12]
|
||
9330 00e6 1A85 strh r2, [r3, #40] @ movhi
|
||
4855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
9331 .loc 1 4855 9
|
||
9332 00e8 FB68 ldr r3, [r7, #12]
|
||
9333 00ea 5B8D ldrh r3, [r3, #42] @ movhi
|
||
9334 00ec 9BB2 uxth r3, r3
|
||
9335 .loc 1 4855 20
|
||
9336 00ee 013B subs r3, r3, #1
|
||
9337 00f0 9AB2 uxth r2, r3
|
||
9338 00f2 FB68 ldr r3, [r7, #12]
|
||
9339 00f4 5A85 strh r2, [r3, #42] @ movhi
|
||
9340 00f6 92E0 b .L440
|
||
9341 .L442:
|
||
4856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \
|
||
9342 .loc 1 4857 13
|
||
9343 00f8 7B69 ldr r3, [r7, #20]
|
||
9344 00fa DB09 lsrs r3, r3, #7
|
||
9345 00fc 03F00103 and r3, r3, #1
|
||
9346 .loc 1 4857 11
|
||
9347 0100 002B cmp r3, #0
|
||
9348 0102 5DD0 beq .L443
|
||
4858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
9349 .loc 1 4858 13
|
||
9350 0104 7B68 ldr r3, [r7, #4]
|
||
9351 0106 9B09 lsrs r3, r3, #6
|
||
9352 0108 03F00103 and r3, r3, #1
|
||
4857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
9353 .loc 1 4857 64 discriminator 1
|
||
9354 010c 002B cmp r3, #0
|
||
9355 010e 57D0 beq .L443
|
||
4859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
|
||
9356 .loc 1 4860 14
|
||
9357 0110 FB68 ldr r3, [r7, #12]
|
||
9358 0112 5B8D ldrh r3, [r3, #42] @ movhi
|
||
9359 0114 9BB2 uxth r3, r3
|
||
9360 .loc 1 4860 8
|
||
9361 0116 002B cmp r3, #0
|
||
9362 0118 40D0 beq .L444
|
||
9363 .loc 1 4860 41 discriminator 1
|
||
ARM GAS /tmp/cc5G5cqz.s page 251
|
||
|
||
|
||
9364 011a FB68 ldr r3, [r7, #12]
|
||
9365 011c 1B8D ldrh r3, [r3, #40]
|
||
9366 .loc 1 4860 33 discriminator 1
|
||
9367 011e 002B cmp r3, #0
|
||
9368 0120 3CD1 bne .L444
|
||
4861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
|
||
9369 .loc 1 4862 35
|
||
9370 0122 FB68 ldr r3, [r7, #12]
|
||
9371 0124 1B68 ldr r3, [r3]
|
||
9372 .loc 1 4862 45
|
||
9373 0126 5B68 ldr r3, [r3, #4]
|
||
9374 .loc 1 4862 20
|
||
9375 0128 9BB2 uxth r3, r3
|
||
9376 .loc 1 4862 18
|
||
9377 012a C3F30903 ubfx r3, r3, #0, #10
|
||
9378 012e 7B82 strh r3, [r7, #18] @ movhi
|
||
4863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
9379 .loc 1 4864 15
|
||
9380 0130 FB68 ldr r3, [r7, #12]
|
||
9381 0132 5B8D ldrh r3, [r3, #42] @ movhi
|
||
9382 0134 9BB2 uxth r3, r3
|
||
9383 .loc 1 4864 10
|
||
9384 0136 FF2B cmp r3, #255
|
||
9385 0138 0ED9 bls .L445
|
||
4865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
9386 .loc 1 4866 24
|
||
9387 013a FB68 ldr r3, [r7, #12]
|
||
9388 013c FF22 movs r2, #255
|
||
9389 013e 1A85 strh r2, [r3, #40] @ movhi
|
||
4867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
|
||
9390 .loc 1 4867 59
|
||
9391 0140 FB68 ldr r3, [r7, #12]
|
||
9392 0142 1B8D ldrh r3, [r3, #40]
|
||
9393 .loc 1 4867 9
|
||
9394 0144 DAB2 uxtb r2, r3
|
||
9395 0146 798A ldrh r1, [r7, #18]
|
||
9396 0148 0023 movs r3, #0
|
||
9397 014a 0093 str r3, [sp]
|
||
9398 014c 4FF08073 mov r3, #16777216
|
||
9399 0150 F868 ldr r0, [r7, #12]
|
||
9400 0152 FFF7FEFF bl I2C_TransferConfig
|
||
4864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9401 .loc 1 4864 10
|
||
9402 0156 32E0 b .L448
|
||
9403 .L445:
|
||
4868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
9404 .loc 1 4871 30
|
||
9405 0158 FB68 ldr r3, [r7, #12]
|
||
9406 015a 5B8D ldrh r3, [r3, #42] @ movhi
|
||
9407 015c 9AB2 uxth r2, r3
|
||
9408 .loc 1 4871 24
|
||
ARM GAS /tmp/cc5G5cqz.s page 252
|
||
|
||
|
||
9409 015e FB68 ldr r3, [r7, #12]
|
||
9410 0160 1A85 strh r2, [r3, #40] @ movhi
|
||
4872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
|
||
9411 .loc 1 4872 17
|
||
9412 0162 FB68 ldr r3, [r7, #12]
|
||
9413 0164 DB6A ldr r3, [r3, #44]
|
||
9414 .loc 1 4872 12
|
||
9415 0166 13F5803F cmn r3, #65536
|
||
9416 016a 0BD0 beq .L447
|
||
4873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize,
|
||
9417 .loc 1 4874 61
|
||
9418 016c FB68 ldr r3, [r7, #12]
|
||
9419 016e 1B8D ldrh r3, [r3, #40]
|
||
9420 .loc 1 4874 11
|
||
9421 0170 DAB2 uxtb r2, r3
|
||
4875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
|
||
9422 .loc 1 4875 34
|
||
9423 0172 FB68 ldr r3, [r7, #12]
|
||
9424 0174 DB6A ldr r3, [r3, #44]
|
||
4874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
|
||
9425 .loc 1 4874 11
|
||
9426 0176 798A ldrh r1, [r7, #18]
|
||
9427 0178 0020 movs r0, #0
|
||
9428 017a 0090 str r0, [sp]
|
||
9429 017c F868 ldr r0, [r7, #12]
|
||
9430 017e FFF7FEFF bl I2C_TransferConfig
|
||
4864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9431 .loc 1 4864 10
|
||
9432 0182 1CE0 b .L448
|
||
9433 .L447:
|
||
4876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize,
|
||
9434 .loc 1 4879 61
|
||
9435 0184 FB68 ldr r3, [r7, #12]
|
||
9436 0186 1B8D ldrh r3, [r3, #40]
|
||
9437 .loc 1 4879 11
|
||
9438 0188 DAB2 uxtb r2, r3
|
||
9439 018a 798A ldrh r1, [r7, #18]
|
||
9440 018c 0023 movs r3, #0
|
||
9441 018e 0093 str r3, [sp]
|
||
9442 0190 4FF00073 mov r3, #33554432
|
||
9443 0194 F868 ldr r0, [r7, #12]
|
||
9444 0196 FFF7FEFF bl I2C_TransferConfig
|
||
4864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9445 .loc 1 4864 10
|
||
9446 019a 10E0 b .L448
|
||
9447 .L444:
|
||
4880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
|
||
4881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
|
||
ARM GAS /tmp/cc5G5cqz.s page 253
|
||
|
||
|
||
4887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
|
||
9448 .loc 1 4887 11
|
||
9449 019c FB68 ldr r3, [r7, #12]
|
||
9450 019e 1B68 ldr r3, [r3]
|
||
9451 01a0 5B68 ldr r3, [r3, #4]
|
||
9452 01a2 03F00073 and r3, r3, #33554432
|
||
9453 .loc 1 4887 10
|
||
9454 01a6 B3F1007F cmp r3, #33554432
|
||
9455 01aa 03D0 beq .L449
|
||
4888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
|
||
4890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
|
||
9456 .loc 1 4890 9
|
||
9457 01ac F868 ldr r0, [r7, #12]
|
||
9458 01ae FFF7FEFF bl I2C_ITMasterSeqCplt
|
||
4860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9459 .loc 1 4860 8
|
||
9460 01b2 34E0 b .L440
|
||
9461 .L449:
|
||
4891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
|
||
4895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
4896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
|
||
9462 .loc 1 4896 9
|
||
9463 01b4 4021 movs r1, #64
|
||
9464 01b6 F868 ldr r0, [r7, #12]
|
||
9465 01b8 FFF7FEFF bl I2C_ITError
|
||
4860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9466 .loc 1 4860 8
|
||
9467 01bc 2FE0 b .L440
|
||
9468 .L448:
|
||
9469 01be 2EE0 b .L440
|
||
9470 .L443:
|
||
4897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \
|
||
9471 .loc 1 4900 13
|
||
9472 01c0 7B69 ldr r3, [r7, #20]
|
||
9473 01c2 9B09 lsrs r3, r3, #6
|
||
9474 01c4 03F00103 and r3, r3, #1
|
||
9475 .loc 1 4900 11
|
||
9476 01c8 002B cmp r3, #0
|
||
9477 01ca 28D0 beq .L440
|
||
4901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
9478 .loc 1 4901 13
|
||
9479 01cc 7B68 ldr r3, [r7, #4]
|
||
9480 01ce 9B09 lsrs r3, r3, #6
|
||
9481 01d0 03F00103 and r3, r3, #1
|
||
4900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
9482 .loc 1 4900 63 discriminator 1
|
||
9483 01d4 002B cmp r3, #0
|
||
9484 01d6 22D0 beq .L440
|
||
4902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
|
||
ARM GAS /tmp/cc5G5cqz.s page 254
|
||
|
||
|
||
9485 .loc 1 4903 13
|
||
9486 01d8 FB68 ldr r3, [r7, #12]
|
||
9487 01da 5B8D ldrh r3, [r3, #42] @ movhi
|
||
9488 01dc 9BB2 uxth r3, r3
|
||
9489 .loc 1 4903 8
|
||
9490 01de 002B cmp r3, #0
|
||
9491 01e0 19D1 bne .L450
|
||
4904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
|
||
9492 .loc 1 4905 11
|
||
9493 01e2 FB68 ldr r3, [r7, #12]
|
||
9494 01e4 1B68 ldr r3, [r3]
|
||
9495 01e6 5B68 ldr r3, [r3, #4]
|
||
9496 01e8 03F00073 and r3, r3, #33554432
|
||
9497 .loc 1 4905 10
|
||
9498 01ec B3F1007F cmp r3, #33554432
|
||
9499 01f0 15D0 beq .L440
|
||
4906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
|
||
4908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
|
||
9500 .loc 1 4908 17
|
||
9501 01f2 FB68 ldr r3, [r7, #12]
|
||
9502 01f4 DB6A ldr r3, [r3, #44]
|
||
9503 .loc 1 4908 12
|
||
9504 01f6 13F5803F cmn r3, #65536
|
||
9505 01fa 08D1 bne .L451
|
||
4909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
|
||
4911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
|
||
9506 .loc 1 4911 15
|
||
9507 01fc FB68 ldr r3, [r7, #12]
|
||
9508 01fe 1B68 ldr r3, [r3]
|
||
9509 .loc 1 4911 25
|
||
9510 0200 5A68 ldr r2, [r3, #4]
|
||
9511 .loc 1 4911 15
|
||
9512 0202 FB68 ldr r3, [r7, #12]
|
||
9513 0204 1B68 ldr r3, [r3]
|
||
9514 .loc 1 4911 31
|
||
9515 0206 42F48042 orr r2, r2, #16384
|
||
9516 020a 5A60 str r2, [r3, #4]
|
||
9517 020c 07E0 b .L440
|
||
9518 .L451:
|
||
4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
|
||
4916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
|
||
9519 .loc 1 4916 11
|
||
9520 020e F868 ldr r0, [r7, #12]
|
||
9521 0210 FFF7FEFF bl I2C_ITMasterSeqCplt
|
||
9522 0214 03E0 b .L440
|
||
9523 .L450:
|
||
4917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
ARM GAS /tmp/cc5G5cqz.s page 255
|
||
|
||
|
||
4922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
|
||
4923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
4924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
|
||
9524 .loc 1 4924 7
|
||
9525 0216 4021 movs r1, #64
|
||
9526 0218 F868 ldr r0, [r7, #12]
|
||
9527 021a FFF7FEFF bl I2C_ITError
|
||
9528 .L440:
|
||
4925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
4928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
|
||
4930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
|
||
9529 .loc 1 4932 8
|
||
9530 021e 7B69 ldr r3, [r7, #20]
|
||
9531 0220 5B09 lsrs r3, r3, #5
|
||
9532 0222 03F00103 and r3, r3, #1
|
||
9533 .loc 1 4932 6
|
||
9534 0226 002B cmp r3, #0
|
||
9535 0228 09D0 beq .L452
|
||
4933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
|
||
9536 .loc 1 4933 8
|
||
9537 022a 7B68 ldr r3, [r7, #4]
|
||
9538 022c 5B09 lsrs r3, r3, #5
|
||
9539 022e 03F00103 and r3, r3, #1
|
||
4932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
|
||
9540 .loc 1 4932 61 discriminator 1
|
||
9541 0232 002B cmp r3, #0
|
||
9542 0234 03D0 beq .L452
|
||
4934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
|
||
4936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
|
||
9543 .loc 1 4936 5
|
||
9544 0236 7969 ldr r1, [r7, #20]
|
||
9545 0238 F868 ldr r0, [r7, #12]
|
||
9546 023a FFF7FEFF bl I2C_ITMasterCplt
|
||
9547 .L452:
|
||
4937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
4940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
9548 .loc 1 4940 3
|
||
9549 023e FB68 ldr r3, [r7, #12]
|
||
9550 0240 0022 movs r2, #0
|
||
9551 0242 83F84020 strb r2, [r3, #64]
|
||
4941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
9552 .loc 1 4942 10
|
||
9553 0246 0023 movs r3, #0
|
||
9554 .L438:
|
||
4943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
9555 .loc 1 4943 1
|
||
9556 0248 1846 mov r0, r3
|
||
9557 024a 1837 adds r7, r7, #24
|
||
ARM GAS /tmp/cc5G5cqz.s page 256
|
||
|
||
|
||
9558 .cfi_def_cfa_offset 8
|
||
9559 024c BD46 mov sp, r7
|
||
9560 .cfi_def_cfa_register 13
|
||
9561 @ sp needed
|
||
9562 024e 80BD pop {r7, pc}
|
||
9563 .cfi_endproc
|
||
9564 .LFE179:
|
||
9566 .section .text.I2C_Mem_ISR_IT,"ax",%progbits
|
||
9567 .align 1
|
||
9568 .syntax unified
|
||
9569 .thumb
|
||
9570 .thumb_func
|
||
9572 I2C_Mem_ISR_IT:
|
||
9573 .LFB180:
|
||
4944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with Interrupt.
|
||
4947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
4949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
|
||
4950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
|
||
4951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
4953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
|
||
4954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
|
||
4955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9574 .loc 1 4955 1
|
||
9575 .cfi_startproc
|
||
9576 @ args = 0, pretend = 0, frame = 24
|
||
9577 @ frame_needed = 1, uses_anonymous_args = 0
|
||
9578 0000 80B5 push {r7, lr}
|
||
9579 .cfi_def_cfa_offset 8
|
||
9580 .cfi_offset 7, -8
|
||
9581 .cfi_offset 14, -4
|
||
9582 0002 88B0 sub sp, sp, #32
|
||
9583 .cfi_def_cfa_offset 40
|
||
9584 0004 02AF add r7, sp, #8
|
||
9585 .cfi_def_cfa 7, 32
|
||
9586 0006 F860 str r0, [r7, #12]
|
||
9587 0008 B960 str r1, [r7, #8]
|
||
9588 000a 7A60 str r2, [r7, #4]
|
||
4956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
|
||
9589 .loc 1 4956 12
|
||
9590 000c 8F4B ldr r3, .L470
|
||
9591 000e 7B61 str r3, [r7, #20]
|
||
4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
|
||
9592 .loc 1 4957 12
|
||
9593 0010 BB68 ldr r3, [r7, #8]
|
||
9594 0012 3B61 str r3, [r7, #16]
|
||
4958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
4960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
9595 .loc 1 4960 3
|
||
9596 0014 FB68 ldr r3, [r7, #12]
|
||
9597 0016 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
9598 001a 012B cmp r3, #1
|
||
9599 001c 01D1 bne .L454
|
||
ARM GAS /tmp/cc5G5cqz.s page 257
|
||
|
||
|
||
9600 .loc 1 4960 3 is_stmt 0 discriminator 1
|
||
9601 001e 0223 movs r3, #2
|
||
9602 .loc 1 4960 3
|
||
9603 0020 10E1 b .L455
|
||
9604 .L454:
|
||
9605 .loc 1 4960 3 discriminator 2
|
||
9606 0022 FB68 ldr r3, [r7, #12]
|
||
9607 0024 0122 movs r2, #1
|
||
9608 0026 83F84020 strb r2, [r3, #64]
|
||
4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
|
||
9609 .loc 1 4962 8 is_stmt 1
|
||
9610 002a 3B69 ldr r3, [r7, #16]
|
||
9611 002c 1B09 lsrs r3, r3, #4
|
||
9612 002e 03F00103 and r3, r3, #1
|
||
9613 .loc 1 4962 6
|
||
9614 0032 002B cmp r3, #0
|
||
9615 0034 13D0 beq .L456
|
||
4963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
|
||
9616 .loc 1 4963 8
|
||
9617 0036 7B68 ldr r3, [r7, #4]
|
||
9618 0038 1B09 lsrs r3, r3, #4
|
||
9619 003a 03F00103 and r3, r3, #1
|
||
4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
|
||
9620 .loc 1 4962 58 discriminator 1
|
||
9621 003e 002B cmp r3, #0
|
||
9622 0040 0DD0 beq .L456
|
||
4964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
|
||
4966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
9623 .loc 1 4966 5
|
||
9624 0042 FB68 ldr r3, [r7, #12]
|
||
9625 0044 1B68 ldr r3, [r3]
|
||
9626 0046 1022 movs r2, #16
|
||
9627 0048 DA61 str r2, [r3, #28]
|
||
4967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
|
||
4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
|
||
4970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
|
||
4971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
|
||
9628 .loc 1 4971 9
|
||
9629 004a FB68 ldr r3, [r7, #12]
|
||
9630 004c 5B6C ldr r3, [r3, #68]
|
||
9631 .loc 1 4971 21
|
||
9632 004e 43F00402 orr r2, r3, #4
|
||
9633 0052 FB68 ldr r3, [r7, #12]
|
||
9634 0054 5A64 str r2, [r3, #68]
|
||
4972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
|
||
4974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
|
||
9635 .loc 1 4974 5
|
||
9636 0056 F868 ldr r0, [r7, #12]
|
||
9637 0058 FFF7FEFF bl I2C_Flush_TXDR
|
||
9638 005c DDE0 b .L457
|
||
9639 .L456:
|
||
4975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
|
||
ARM GAS /tmp/cc5G5cqz.s page 258
|
||
|
||
|
||
9640 .loc 1 4976 13
|
||
9641 005e 3B69 ldr r3, [r7, #16]
|
||
9642 0060 9B08 lsrs r3, r3, #2
|
||
9643 0062 03F00103 and r3, r3, #1
|
||
9644 .loc 1 4976 11
|
||
9645 0066 002B cmp r3, #0
|
||
9646 0068 23D0 beq .L458
|
||
4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
|
||
9647 .loc 1 4977 13
|
||
9648 006a 7B68 ldr r3, [r7, #4]
|
||
9649 006c 9B08 lsrs r3, r3, #2
|
||
9650 006e 03F00103 and r3, r3, #1
|
||
4976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
|
||
9651 .loc 1 4976 65 discriminator 1
|
||
9652 0072 002B cmp r3, #0
|
||
9653 0074 1DD0 beq .L458
|
||
4978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
|
||
4980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
|
||
9654 .loc 1 4980 16
|
||
9655 0076 3B69 ldr r3, [r7, #16]
|
||
9656 0078 23F00403 bic r3, r3, #4
|
||
9657 007c 3B61 str r3, [r7, #16]
|
||
4981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
|
||
4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
|
||
9658 .loc 1 4983 36
|
||
9659 007e FB68 ldr r3, [r7, #12]
|
||
9660 0080 1B68 ldr r3, [r3]
|
||
9661 .loc 1 4983 46
|
||
9662 0082 5A6A ldr r2, [r3, #36]
|
||
9663 .loc 1 4983 10
|
||
9664 0084 FB68 ldr r3, [r7, #12]
|
||
9665 0086 5B6A ldr r3, [r3, #36]
|
||
9666 .loc 1 4983 23
|
||
9667 0088 D2B2 uxtb r2, r2
|
||
9668 .loc 1 4983 21
|
||
9669 008a 1A70 strb r2, [r3]
|
||
4984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
4986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
9670 .loc 1 4986 9
|
||
9671 008c FB68 ldr r3, [r7, #12]
|
||
9672 008e 5B6A ldr r3, [r3, #36]
|
||
9673 .loc 1 4986 19
|
||
9674 0090 5A1C adds r2, r3, #1
|
||
9675 0092 FB68 ldr r3, [r7, #12]
|
||
9676 0094 5A62 str r2, [r3, #36]
|
||
4987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
9677 .loc 1 4988 9
|
||
9678 0096 FB68 ldr r3, [r7, #12]
|
||
9679 0098 1B8D ldrh r3, [r3, #40]
|
||
9680 .loc 1 4988 19
|
||
9681 009a 013B subs r3, r3, #1
|
||
9682 009c 9AB2 uxth r2, r3
|
||
9683 009e FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 259
|
||
|
||
|
||
9684 00a0 1A85 strh r2, [r3, #40] @ movhi
|
||
4989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
9685 .loc 1 4989 9
|
||
9686 00a2 FB68 ldr r3, [r7, #12]
|
||
9687 00a4 5B8D ldrh r3, [r3, #42] @ movhi
|
||
9688 00a6 9BB2 uxth r3, r3
|
||
9689 .loc 1 4989 20
|
||
9690 00a8 013B subs r3, r3, #1
|
||
9691 00aa 9AB2 uxth r2, r3
|
||
9692 00ac FB68 ldr r3, [r7, #12]
|
||
9693 00ae 5A85 strh r2, [r3, #42] @ movhi
|
||
9694 00b0 B3E0 b .L457
|
||
9695 .L458:
|
||
4990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
4991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
|
||
9696 .loc 1 4991 13
|
||
9697 00b2 3B69 ldr r3, [r7, #16]
|
||
9698 00b4 5B08 lsrs r3, r3, #1
|
||
9699 00b6 03F00103 and r3, r3, #1
|
||
9700 .loc 1 4991 11
|
||
9701 00ba 002B cmp r3, #0
|
||
9702 00bc 2DD0 beq .L459
|
||
4992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
|
||
9703 .loc 1 4992 13
|
||
9704 00be 7B68 ldr r3, [r7, #4]
|
||
9705 00c0 5B08 lsrs r3, r3, #1
|
||
9706 00c2 03F00103 and r3, r3, #1
|
||
4991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
|
||
9707 .loc 1 4991 65 discriminator 1
|
||
9708 00c6 002B cmp r3, #0
|
||
9709 00c8 27D0 beq .L459
|
||
4993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Memaddress == 0xFFFFFFFFU)
|
||
9710 .loc 1 4994 13
|
||
9711 00ca FB68 ldr r3, [r7, #12]
|
||
9712 00cc 1B6D ldr r3, [r3, #80]
|
||
9713 .loc 1 4994 8
|
||
9714 00ce B3F1FF3F cmp r3, #-1
|
||
9715 00d2 18D1 bne .L460
|
||
4995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
4996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
|
||
4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
|
||
9716 .loc 1 4997 35
|
||
9717 00d4 FB68 ldr r3, [r7, #12]
|
||
9718 00d6 5B6A ldr r3, [r3, #36]
|
||
9719 .loc 1 4997 30
|
||
9720 00d8 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
9721 .loc 1 4997 11
|
||
9722 00da FB68 ldr r3, [r7, #12]
|
||
9723 00dc 1B68 ldr r3, [r3]
|
||
9724 .loc 1 4997 28
|
||
9725 00de 9A62 str r2, [r3, #40]
|
||
4998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
5000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
9726 .loc 1 5000 11
|
||
9727 00e0 FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 260
|
||
|
||
|
||
9728 00e2 5B6A ldr r3, [r3, #36]
|
||
9729 .loc 1 5000 21
|
||
9730 00e4 5A1C adds r2, r3, #1
|
||
9731 00e6 FB68 ldr r3, [r7, #12]
|
||
9732 00e8 5A62 str r2, [r3, #36]
|
||
5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
9733 .loc 1 5002 11
|
||
9734 00ea FB68 ldr r3, [r7, #12]
|
||
9735 00ec 1B8D ldrh r3, [r3, #40]
|
||
9736 .loc 1 5002 21
|
||
9737 00ee 013B subs r3, r3, #1
|
||
9738 00f0 9AB2 uxth r2, r3
|
||
9739 00f2 FB68 ldr r3, [r7, #12]
|
||
9740 00f4 1A85 strh r2, [r3, #40] @ movhi
|
||
5003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
9741 .loc 1 5003 11
|
||
9742 00f6 FB68 ldr r3, [r7, #12]
|
||
9743 00f8 5B8D ldrh r3, [r3, #42] @ movhi
|
||
9744 00fa 9BB2 uxth r3, r3
|
||
9745 .loc 1 5003 22
|
||
9746 00fc 013B subs r3, r3, #1
|
||
9747 00fe 9AB2 uxth r2, r3
|
||
9748 0100 FB68 ldr r3, [r7, #12]
|
||
9749 0102 5A85 strh r2, [r3, #42] @ movhi
|
||
4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9750 .loc 1 4994 8
|
||
9751 0104 89E0 b .L457
|
||
9752 .L460:
|
||
5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write LSB part of Memory Address */
|
||
5008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress;
|
||
9753 .loc 1 5008 11
|
||
9754 0106 FB68 ldr r3, [r7, #12]
|
||
9755 0108 1B68 ldr r3, [r3]
|
||
9756 .loc 1 5008 34
|
||
9757 010a FA68 ldr r2, [r7, #12]
|
||
9758 010c 126D ldr r2, [r2, #80]
|
||
9759 .loc 1 5008 28
|
||
9760 010e 9A62 str r2, [r3, #40]
|
||
5009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
|
||
5011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
|
||
9761 .loc 1 5011 24
|
||
9762 0110 FB68 ldr r3, [r7, #12]
|
||
9763 0112 4FF0FF32 mov r2, #-1
|
||
9764 0116 1A65 str r2, [r3, #80]
|
||
4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9765 .loc 1 4994 8
|
||
9766 0118 7FE0 b .L457
|
||
9767 .L459:
|
||
5012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \
|
||
9768 .loc 1 5014 13
|
||
ARM GAS /tmp/cc5G5cqz.s page 261
|
||
|
||
|
||
9769 011a 3B69 ldr r3, [r7, #16]
|
||
9770 011c DB09 lsrs r3, r3, #7
|
||
9771 011e 03F00103 and r3, r3, #1
|
||
9772 .loc 1 5014 11
|
||
9773 0122 002B cmp r3, #0
|
||
9774 0124 3DD0 beq .L462
|
||
5015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
9775 .loc 1 5015 13
|
||
9776 0126 7B68 ldr r3, [r7, #4]
|
||
9777 0128 9B09 lsrs r3, r3, #6
|
||
9778 012a 03F00103 and r3, r3, #1
|
||
5014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
9779 .loc 1 5014 64 discriminator 1
|
||
9780 012e 002B cmp r3, #0
|
||
9781 0130 37D0 beq .L462
|
||
5016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
|
||
9782 .loc 1 5017 14
|
||
9783 0132 FB68 ldr r3, [r7, #12]
|
||
9784 0134 5B8D ldrh r3, [r3, #42] @ movhi
|
||
9785 0136 9BB2 uxth r3, r3
|
||
9786 .loc 1 5017 8
|
||
9787 0138 002B cmp r3, #0
|
||
9788 013a 2CD0 beq .L463
|
||
9789 .loc 1 5017 41 discriminator 1
|
||
9790 013c FB68 ldr r3, [r7, #12]
|
||
9791 013e 1B8D ldrh r3, [r3, #40]
|
||
9792 .loc 1 5017 33 discriminator 1
|
||
9793 0140 002B cmp r3, #0
|
||
9794 0142 28D1 bne .L463
|
||
5018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
9795 .loc 1 5019 15
|
||
9796 0144 FB68 ldr r3, [r7, #12]
|
||
9797 0146 5B8D ldrh r3, [r3, #42] @ movhi
|
||
9798 0148 9BB2 uxth r3, r3
|
||
9799 .loc 1 5019 10
|
||
9800 014a FF2B cmp r3, #255
|
||
9801 014c 10D9 bls .L464
|
||
5020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
9802 .loc 1 5021 24
|
||
9803 014e FB68 ldr r3, [r7, #12]
|
||
9804 0150 FF22 movs r2, #255
|
||
9805 0152 1A85 strh r2, [r3, #40] @ movhi
|
||
5022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
|
||
9806 .loc 1 5022 48
|
||
9807 0154 FB68 ldr r3, [r7, #12]
|
||
9808 0156 DB6C ldr r3, [r3, #76]
|
||
9809 .loc 1 5022 9
|
||
9810 0158 99B2 uxth r1, r3
|
||
9811 .loc 1 5022 75
|
||
9812 015a FB68 ldr r3, [r7, #12]
|
||
9813 015c 1B8D ldrh r3, [r3, #40]
|
||
9814 .loc 1 5022 9
|
||
9815 015e DAB2 uxtb r2, r3
|
||
9816 0160 0023 movs r3, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 262
|
||
|
||
|
||
9817 0162 0093 str r3, [sp]
|
||
9818 0164 4FF08073 mov r3, #16777216
|
||
9819 0168 F868 ldr r0, [r7, #12]
|
||
9820 016a FFF7FEFF bl I2C_TransferConfig
|
||
5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9821 .loc 1 5019 10
|
||
9822 016e 17E0 b .L466
|
||
9823 .L464:
|
||
5023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
|
||
5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
9824 .loc 1 5027 30
|
||
9825 0170 FB68 ldr r3, [r7, #12]
|
||
9826 0172 5B8D ldrh r3, [r3, #42] @ movhi
|
||
9827 0174 9AB2 uxth r2, r3
|
||
9828 .loc 1 5027 24
|
||
9829 0176 FB68 ldr r3, [r7, #12]
|
||
9830 0178 1A85 strh r2, [r3, #40] @ movhi
|
||
5028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
|
||
9831 .loc 1 5028 48
|
||
9832 017a FB68 ldr r3, [r7, #12]
|
||
9833 017c DB6C ldr r3, [r3, #76]
|
||
9834 .loc 1 5028 9
|
||
9835 017e 99B2 uxth r1, r3
|
||
9836 .loc 1 5028 75
|
||
9837 0180 FB68 ldr r3, [r7, #12]
|
||
9838 0182 1B8D ldrh r3, [r3, #40]
|
||
9839 .loc 1 5028 9
|
||
9840 0184 DAB2 uxtb r2, r3
|
||
9841 0186 0023 movs r3, #0
|
||
9842 0188 0093 str r3, [sp]
|
||
9843 018a 4FF00073 mov r3, #33554432
|
||
9844 018e F868 ldr r0, [r7, #12]
|
||
9845 0190 FFF7FEFF bl I2C_TransferConfig
|
||
5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9846 .loc 1 5019 10
|
||
9847 0194 04E0 b .L466
|
||
9848 .L463:
|
||
5029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
|
||
5030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
|
||
5035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
5036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
|
||
9849 .loc 1 5036 7
|
||
9850 0196 4021 movs r1, #64
|
||
9851 0198 F868 ldr r0, [r7, #12]
|
||
9852 019a FFF7FEFF bl I2C_ITError
|
||
5017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9853 .loc 1 5017 8
|
||
9854 019e 3CE0 b .L457
|
||
9855 .L466:
|
||
9856 01a0 3BE0 b .L457
|
||
ARM GAS /tmp/cc5G5cqz.s page 263
|
||
|
||
|
||
9857 .L462:
|
||
5037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \
|
||
9858 .loc 1 5039 13
|
||
9859 01a2 3B69 ldr r3, [r7, #16]
|
||
9860 01a4 9B09 lsrs r3, r3, #6
|
||
9861 01a6 03F00103 and r3, r3, #1
|
||
9862 .loc 1 5039 11
|
||
9863 01aa 002B cmp r3, #0
|
||
9864 01ac 35D0 beq .L457
|
||
5040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
9865 .loc 1 5040 13
|
||
9866 01ae 7B68 ldr r3, [r7, #4]
|
||
9867 01b0 9B09 lsrs r3, r3, #6
|
||
9868 01b2 03F00103 and r3, r3, #1
|
||
5039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
9869 .loc 1 5039 63 discriminator 1
|
||
9870 01b6 002B cmp r3, #0
|
||
9871 01b8 2FD0 beq .L457
|
||
5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
|
||
9872 .loc 1 5042 13
|
||
9873 01ba FB68 ldr r3, [r7, #12]
|
||
9874 01bc 93F84130 ldrb r3, [r3, #65]
|
||
9875 01c0 DBB2 uxtb r3, r3
|
||
9876 .loc 1 5042 8
|
||
9877 01c2 222B cmp r3, #34
|
||
9878 01c4 01D1 bne .L467
|
||
5043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ;
|
||
9879 .loc 1 5044 17
|
||
9880 01c6 224B ldr r3, .L470+4
|
||
9881 01c8 7B61 str r3, [r7, #20]
|
||
9882 .L467:
|
||
5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
9883 .loc 1 5047 13
|
||
9884 01ca FB68 ldr r3, [r7, #12]
|
||
9885 01cc 5B8D ldrh r3, [r3, #42] @ movhi
|
||
9886 01ce 9BB2 uxth r3, r3
|
||
9887 .loc 1 5047 8
|
||
9888 01d0 FF2B cmp r3, #255
|
||
9889 01d2 10D9 bls .L468
|
||
5048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
9890 .loc 1 5049 22
|
||
9891 01d4 FB68 ldr r3, [r7, #12]
|
||
9892 01d6 FF22 movs r2, #255
|
||
9893 01d8 1A85 strh r2, [r3, #40] @ movhi
|
||
5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
|
||
5052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
|
||
9894 .loc 1 5052 46
|
||
9895 01da FB68 ldr r3, [r7, #12]
|
||
9896 01dc DB6C ldr r3, [r3, #76]
|
||
ARM GAS /tmp/cc5G5cqz.s page 264
|
||
|
||
|
||
9897 .loc 1 5052 7
|
||
9898 01de 99B2 uxth r1, r3
|
||
9899 .loc 1 5052 73
|
||
9900 01e0 FB68 ldr r3, [r7, #12]
|
||
9901 01e2 1B8D ldrh r3, [r3, #40]
|
||
9902 .loc 1 5052 7
|
||
9903 01e4 DAB2 uxtb r2, r3
|
||
9904 01e6 7B69 ldr r3, [r7, #20]
|
||
9905 01e8 0093 str r3, [sp]
|
||
9906 01ea 4FF08073 mov r3, #16777216
|
||
9907 01ee F868 ldr r0, [r7, #12]
|
||
9908 01f0 FFF7FEFF bl I2C_TransferConfig
|
||
9909 01f4 11E0 b .L457
|
||
9910 .L468:
|
||
5053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
|
||
5054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
9911 .loc 1 5057 28
|
||
9912 01f6 FB68 ldr r3, [r7, #12]
|
||
9913 01f8 5B8D ldrh r3, [r3, #42] @ movhi
|
||
9914 01fa 9AB2 uxth r2, r3
|
||
9915 .loc 1 5057 22
|
||
9916 01fc FB68 ldr r3, [r7, #12]
|
||
9917 01fe 1A85 strh r2, [r3, #40] @ movhi
|
||
5058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */
|
||
5060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
|
||
9918 .loc 1 5060 46
|
||
9919 0200 FB68 ldr r3, [r7, #12]
|
||
9920 0202 DB6C ldr r3, [r3, #76]
|
||
9921 .loc 1 5060 7
|
||
9922 0204 99B2 uxth r1, r3
|
||
9923 .loc 1 5060 73
|
||
9924 0206 FB68 ldr r3, [r7, #12]
|
||
9925 0208 1B8D ldrh r3, [r3, #40]
|
||
9926 .loc 1 5060 7
|
||
9927 020a DAB2 uxtb r2, r3
|
||
9928 020c 7B69 ldr r3, [r7, #20]
|
||
9929 020e 0093 str r3, [sp]
|
||
9930 0210 4FF00073 mov r3, #33554432
|
||
9931 0214 F868 ldr r0, [r7, #12]
|
||
9932 0216 FFF7FEFF bl I2C_TransferConfig
|
||
9933 .L457:
|
||
5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
|
||
5062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
|
||
5067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
|
||
9934 .loc 1 5069 8
|
||
9935 021a 3B69 ldr r3, [r7, #16]
|
||
9936 021c 5B09 lsrs r3, r3, #5
|
||
ARM GAS /tmp/cc5G5cqz.s page 265
|
||
|
||
|
||
9937 021e 03F00103 and r3, r3, #1
|
||
9938 .loc 1 5069 6
|
||
9939 0222 002B cmp r3, #0
|
||
9940 0224 09D0 beq .L469
|
||
5070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
|
||
9941 .loc 1 5070 8
|
||
9942 0226 7B68 ldr r3, [r7, #4]
|
||
9943 0228 5B09 lsrs r3, r3, #5
|
||
9944 022a 03F00103 and r3, r3, #1
|
||
5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
|
||
9945 .loc 1 5069 61 discriminator 1
|
||
9946 022e 002B cmp r3, #0
|
||
9947 0230 03D0 beq .L469
|
||
5071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
|
||
5073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
|
||
9948 .loc 1 5073 5
|
||
9949 0232 3969 ldr r1, [r7, #16]
|
||
9950 0234 F868 ldr r0, [r7, #12]
|
||
9951 0236 FFF7FEFF bl I2C_ITMasterCplt
|
||
9952 .L469:
|
||
5074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
9953 .loc 1 5077 3
|
||
9954 023a FB68 ldr r3, [r7, #12]
|
||
9955 023c 0022 movs r2, #0
|
||
9956 023e 83F84020 strb r2, [r3, #64]
|
||
5078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
9957 .loc 1 5079 10
|
||
9958 0242 0023 movs r3, #0
|
||
9959 .L455:
|
||
5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
9960 .loc 1 5080 1
|
||
9961 0244 1846 mov r0, r3
|
||
9962 0246 1837 adds r7, r7, #24
|
||
9963 .cfi_def_cfa_offset 8
|
||
9964 0248 BD46 mov sp, r7
|
||
9965 .cfi_def_cfa_register 13
|
||
9966 @ sp needed
|
||
9967 024a 80BD pop {r7, pc}
|
||
9968 .L471:
|
||
9969 .align 2
|
||
9970 .L470:
|
||
9971 024c 00200080 .word -2147475456
|
||
9972 0250 00240080 .word -2147474432
|
||
9973 .cfi_endproc
|
||
9974 .LFE180:
|
||
9976 .section .text.I2C_Slave_ISR_IT,"ax",%progbits
|
||
9977 .align 1
|
||
9978 .syntax unified
|
||
9979 .thumb
|
||
9980 .thumb_func
|
||
9982 I2C_Slave_ISR_IT:
|
||
9983 .LFB181:
|
||
ARM GAS /tmp/cc5G5cqz.s page 266
|
||
|
||
|
||
5081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
5083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt.
|
||
5084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
5086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
|
||
5087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
|
||
5088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
5090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
|
||
5091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
|
||
5092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
9984 .loc 1 5092 1
|
||
9985 .cfi_startproc
|
||
9986 @ args = 0, pretend = 0, frame = 24
|
||
9987 @ frame_needed = 1, uses_anonymous_args = 0
|
||
9988 0000 80B5 push {r7, lr}
|
||
9989 .cfi_def_cfa_offset 8
|
||
9990 .cfi_offset 7, -8
|
||
9991 .cfi_offset 14, -4
|
||
9992 0002 86B0 sub sp, sp, #24
|
||
9993 .cfi_def_cfa_offset 32
|
||
9994 0004 00AF add r7, sp, #0
|
||
9995 .cfi_def_cfa_register 7
|
||
9996 0006 F860 str r0, [r7, #12]
|
||
9997 0008 B960 str r1, [r7, #8]
|
||
9998 000a 7A60 str r2, [r7, #4]
|
||
5093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
|
||
9999 .loc 1 5093 12
|
||
10000 000c FB68 ldr r3, [r7, #12]
|
||
10001 000e DB6A ldr r3, [r3, #44]
|
||
10002 0010 7B61 str r3, [r7, #20]
|
||
5094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
|
||
10003 .loc 1 5094 12
|
||
10004 0012 BB68 ldr r3, [r7, #8]
|
||
10005 0014 3B61 str r3, [r7, #16]
|
||
5095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */
|
||
5097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
10006 .loc 1 5097 3
|
||
10007 0016 FB68 ldr r3, [r7, #12]
|
||
10008 0018 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
10009 001c 012B cmp r3, #1
|
||
10010 001e 01D1 bne .L473
|
||
10011 .loc 1 5097 3 is_stmt 0 discriminator 1
|
||
10012 0020 0223 movs r3, #2
|
||
10013 .loc 1 5097 3
|
||
10014 0022 ECE0 b .L474
|
||
10015 .L473:
|
||
10016 .loc 1 5097 3 discriminator 2
|
||
10017 0024 FB68 ldr r3, [r7, #12]
|
||
10018 0026 0122 movs r2, #1
|
||
10019 0028 83F84020 strb r2, [r3, #64]
|
||
5098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if STOPF is set */
|
||
5100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
|
||
10020 .loc 1 5100 8 is_stmt 1
|
||
ARM GAS /tmp/cc5G5cqz.s page 267
|
||
|
||
|
||
10021 002c 3B69 ldr r3, [r7, #16]
|
||
10022 002e 5B09 lsrs r3, r3, #5
|
||
10023 0030 03F00103 and r3, r3, #1
|
||
10024 .loc 1 5100 6
|
||
10025 0034 002B cmp r3, #0
|
||
10026 0036 09D0 beq .L475
|
||
5101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
|
||
10027 .loc 1 5101 8
|
||
10028 0038 7B68 ldr r3, [r7, #4]
|
||
10029 003a 5B09 lsrs r3, r3, #5
|
||
10030 003c 03F00103 and r3, r3, #1
|
||
5100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
|
||
10031 .loc 1 5100 61 discriminator 1
|
||
10032 0040 002B cmp r3, #0
|
||
10033 0042 03D0 beq .L475
|
||
5102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave complete process */
|
||
5104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags);
|
||
10034 .loc 1 5104 5
|
||
10035 0044 3969 ldr r1, [r7, #16]
|
||
10036 0046 F868 ldr r0, [r7, #12]
|
||
10037 0048 FFF7FEFF bl I2C_ITSlaveCplt
|
||
10038 .L475:
|
||
5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
|
||
10039 .loc 1 5107 8
|
||
10040 004c 3B69 ldr r3, [r7, #16]
|
||
10041 004e 1B09 lsrs r3, r3, #4
|
||
10042 0050 03F00103 and r3, r3, #1
|
||
10043 .loc 1 5107 6
|
||
10044 0054 002B cmp r3, #0
|
||
10045 0056 4DD0 beq .L476
|
||
5108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
|
||
10046 .loc 1 5108 8
|
||
10047 0058 7B68 ldr r3, [r7, #4]
|
||
10048 005a 1B09 lsrs r3, r3, #4
|
||
10049 005c 03F00103 and r3, r3, #1
|
||
5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
|
||
10050 .loc 1 5107 58 discriminator 1
|
||
10051 0060 002B cmp r3, #0
|
||
10052 0062 47D0 beq .L476
|
||
5109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
|
||
5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
|
||
5112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0*/
|
||
5113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */
|
||
5114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
|
||
10053 .loc 1 5114 13
|
||
10054 0064 FB68 ldr r3, [r7, #12]
|
||
10055 0066 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10056 0068 9BB2 uxth r3, r3
|
||
10057 .loc 1 5114 8
|
||
10058 006a 002B cmp r3, #0
|
||
10059 006c 28D1 bne .L477
|
||
5115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
|
||
ARM GAS /tmp/cc5G5cqz.s page 268
|
||
|
||
|
||
10060 .loc 1 5116 16
|
||
10061 006e FB68 ldr r3, [r7, #12]
|
||
10062 0070 93F84130 ldrb r3, [r3, #65]
|
||
10063 0074 DBB2 uxtb r3, r3
|
||
10064 .loc 1 5116 10
|
||
10065 0076 282B cmp r3, #40
|
||
10066 0078 08D1 bne .L478
|
||
10067 .loc 1 5116 49 discriminator 1
|
||
10068 007a 7B69 ldr r3, [r7, #20]
|
||
10069 007c B3F1007F cmp r3, #33554432
|
||
10070 0080 04D1 bne .L478
|
||
5117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
|
||
5118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
|
||
5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
|
||
5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
|
||
10071 .loc 1 5121 9
|
||
10072 0082 3969 ldr r1, [r7, #16]
|
||
10073 0084 F868 ldr r0, [r7, #12]
|
||
10074 0086 FFF7FEFF bl I2C_ITListenCplt
|
||
10075 008a 32E0 b .L481
|
||
10076 .L478:
|
||
5122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)
|
||
10077 .loc 1 5123 21
|
||
10078 008c FB68 ldr r3, [r7, #12]
|
||
10079 008e 93F84130 ldrb r3, [r3, #65]
|
||
10080 0092 DBB2 uxtb r3, r3
|
||
10081 .loc 1 5123 15
|
||
10082 0094 292B cmp r3, #41
|
||
10083 0096 0ED1 bne .L480
|
||
10084 .loc 1 5123 62 discriminator 1
|
||
10085 0098 7B69 ldr r3, [r7, #20]
|
||
10086 009a 13F5803F cmn r3, #65536
|
||
10087 009e 0AD0 beq .L480
|
||
5124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
|
||
5126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
10088 .loc 1 5126 9
|
||
10089 00a0 FB68 ldr r3, [r7, #12]
|
||
10090 00a2 1B68 ldr r3, [r3]
|
||
10091 00a4 1022 movs r2, #16
|
||
10092 00a6 DA61 str r2, [r3, #28]
|
||
5127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
|
||
5129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
|
||
10093 .loc 1 5129 9
|
||
10094 00a8 F868 ldr r0, [r7, #12]
|
||
10095 00aa FFF7FEFF bl I2C_Flush_TXDR
|
||
5130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
|
||
5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
|
||
5133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
|
||
10096 .loc 1 5133 9
|
||
10097 00ae F868 ldr r0, [r7, #12]
|
||
10098 00b0 FFF7FEFF bl I2C_ITSlaveSeqCplt
|
||
10099 00b4 1DE0 b .L481
|
||
ARM GAS /tmp/cc5G5cqz.s page 269
|
||
|
||
|
||
10100 .L480:
|
||
5134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
|
||
5138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
10101 .loc 1 5138 9
|
||
10102 00b6 FB68 ldr r3, [r7, #12]
|
||
10103 00b8 1B68 ldr r3, [r3]
|
||
10104 00ba 1022 movs r2, #16
|
||
10105 00bc DA61 str r2, [r3, #28]
|
||
5114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10106 .loc 1 5114 8
|
||
10107 00be 96E0 b .L490
|
||
10108 .L477:
|
||
5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
|
||
5144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
|
||
5145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
10109 .loc 1 5145 7
|
||
10110 00c0 FB68 ldr r3, [r7, #12]
|
||
10111 00c2 1B68 ldr r3, [r3]
|
||
10112 00c4 1022 movs r2, #16
|
||
10113 00c6 DA61 str r2, [r3, #28]
|
||
5146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
|
||
5148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
|
||
10114 .loc 1 5148 11
|
||
10115 00c8 FB68 ldr r3, [r7, #12]
|
||
10116 00ca 5B6C ldr r3, [r3, #68]
|
||
10117 .loc 1 5148 23
|
||
10118 00cc 43F00402 orr r2, r3, #4
|
||
10119 00d0 FB68 ldr r3, [r7, #12]
|
||
10120 00d2 5A64 str r2, [r3, #68]
|
||
5149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
|
||
10121 .loc 1 5150 10
|
||
10122 00d4 7B69 ldr r3, [r7, #20]
|
||
10123 00d6 002B cmp r3, #0
|
||
10124 00d8 04D0 beq .L482
|
||
10125 .loc 1 5150 43 discriminator 1
|
||
10126 00da 7B69 ldr r3, [r7, #20]
|
||
10127 00dc B3F1807F cmp r3, #16777216
|
||
10128 00e0 40F08580 bne .L490
|
||
10129 .L482:
|
||
5151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
|
||
10130 .loc 1 5153 31
|
||
10131 00e4 FB68 ldr r3, [r7, #12]
|
||
10132 00e6 5B6C ldr r3, [r3, #68]
|
||
10133 .loc 1 5153 9
|
||
10134 00e8 1946 mov r1, r3
|
||
10135 00ea F868 ldr r0, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 270
|
||
|
||
|
||
10136 00ec FFF7FEFF bl I2C_ITError
|
||
5114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10137 .loc 1 5114 8
|
||
10138 00f0 7DE0 b .L490
|
||
10139 .L481:
|
||
10140 00f2 7CE0 b .L490
|
||
10141 .L476:
|
||
5154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
|
||
10142 .loc 1 5157 13
|
||
10143 00f4 3B69 ldr r3, [r7, #16]
|
||
10144 00f6 9B08 lsrs r3, r3, #2
|
||
10145 00f8 03F00103 and r3, r3, #1
|
||
10146 .loc 1 5157 11
|
||
10147 00fc 002B cmp r3, #0
|
||
10148 00fe 30D0 beq .L484
|
||
5158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
|
||
10149 .loc 1 5158 13
|
||
10150 0100 7B68 ldr r3, [r7, #4]
|
||
10151 0102 9B08 lsrs r3, r3, #2
|
||
10152 0104 03F00103 and r3, r3, #1
|
||
5157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
|
||
10153 .loc 1 5157 65 discriminator 1
|
||
10154 0108 002B cmp r3, #0
|
||
10155 010a 2AD0 beq .L484
|
||
5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
|
||
10156 .loc 1 5160 13
|
||
10157 010c FB68 ldr r3, [r7, #12]
|
||
10158 010e 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10159 0110 9BB2 uxth r3, r3
|
||
10160 .loc 1 5160 8
|
||
10161 0112 002B cmp r3, #0
|
||
10162 0114 18D0 beq .L485
|
||
5161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
|
||
5163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
|
||
10163 .loc 1 5163 38
|
||
10164 0116 FB68 ldr r3, [r7, #12]
|
||
10165 0118 1B68 ldr r3, [r3]
|
||
10166 .loc 1 5163 48
|
||
10167 011a 5A6A ldr r2, [r3, #36]
|
||
10168 .loc 1 5163 12
|
||
10169 011c FB68 ldr r3, [r7, #12]
|
||
10170 011e 5B6A ldr r3, [r3, #36]
|
||
10171 .loc 1 5163 25
|
||
10172 0120 D2B2 uxtb r2, r2
|
||
10173 .loc 1 5163 23
|
||
10174 0122 1A70 strb r2, [r3]
|
||
5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
5166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
10175 .loc 1 5166 11
|
||
10176 0124 FB68 ldr r3, [r7, #12]
|
||
10177 0126 5B6A ldr r3, [r3, #36]
|
||
ARM GAS /tmp/cc5G5cqz.s page 271
|
||
|
||
|
||
10178 .loc 1 5166 21
|
||
10179 0128 5A1C adds r2, r3, #1
|
||
10180 012a FB68 ldr r3, [r7, #12]
|
||
10181 012c 5A62 str r2, [r3, #36]
|
||
5167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
10182 .loc 1 5168 11
|
||
10183 012e FB68 ldr r3, [r7, #12]
|
||
10184 0130 1B8D ldrh r3, [r3, #40]
|
||
10185 .loc 1 5168 21
|
||
10186 0132 013B subs r3, r3, #1
|
||
10187 0134 9AB2 uxth r2, r3
|
||
10188 0136 FB68 ldr r3, [r7, #12]
|
||
10189 0138 1A85 strh r2, [r3, #40] @ movhi
|
||
5169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
10190 .loc 1 5169 11
|
||
10191 013a FB68 ldr r3, [r7, #12]
|
||
10192 013c 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10193 013e 9BB2 uxth r3, r3
|
||
10194 .loc 1 5169 22
|
||
10195 0140 013B subs r3, r3, #1
|
||
10196 0142 9AB2 uxth r2, r3
|
||
10197 0144 FB68 ldr r3, [r7, #12]
|
||
10198 0146 5A85 strh r2, [r3, #42] @ movhi
|
||
10199 .L485:
|
||
5170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \
|
||
10200 .loc 1 5172 14
|
||
10201 0148 FB68 ldr r3, [r7, #12]
|
||
10202 014a 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10203 014c 9BB2 uxth r3, r3
|
||
10204 .loc 1 5172 8
|
||
10205 014e 002B cmp r3, #0
|
||
10206 0150 4FD1 bne .L491
|
||
10207 .loc 1 5172 33 discriminator 1
|
||
10208 0152 7B69 ldr r3, [r7, #20]
|
||
10209 0154 13F5803F cmn r3, #65536
|
||
10210 0158 4BD0 beq .L491
|
||
5173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
|
||
5174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
|
||
5176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
|
||
10211 .loc 1 5176 7
|
||
10212 015a F868 ldr r0, [r7, #12]
|
||
10213 015c FFF7FEFF bl I2C_ITSlaveSeqCplt
|
||
5172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
|
||
10214 .loc 1 5172 8
|
||
10215 0160 47E0 b .L491
|
||
10216 .L484:
|
||
5177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \
|
||
10217 .loc 1 5179 13
|
||
10218 0162 3B69 ldr r3, [r7, #16]
|
||
10219 0164 DB08 lsrs r3, r3, #3
|
||
10220 0166 03F00103 and r3, r3, #1
|
||
ARM GAS /tmp/cc5G5cqz.s page 272
|
||
|
||
|
||
10221 .loc 1 5179 11
|
||
10222 016a 002B cmp r3, #0
|
||
10223 016c 0AD0 beq .L487
|
||
5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
|
||
10224 .loc 1 5180 13
|
||
10225 016e 7B68 ldr r3, [r7, #4]
|
||
10226 0170 DB08 lsrs r3, r3, #3
|
||
10227 0172 03F00103 and r3, r3, #1
|
||
5179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
|
||
10228 .loc 1 5179 65 discriminator 1
|
||
10229 0176 002B cmp r3, #0
|
||
10230 0178 04D0 beq .L487
|
||
5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags);
|
||
10231 .loc 1 5182 5
|
||
10232 017a 3969 ldr r1, [r7, #16]
|
||
10233 017c F868 ldr r0, [r7, #12]
|
||
10234 017e FFF7FEFF bl I2C_ITAddrCplt
|
||
10235 0182 37E0 b .L483
|
||
10236 .L487:
|
||
5183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
|
||
10237 .loc 1 5184 13
|
||
10238 0184 3B69 ldr r3, [r7, #16]
|
||
10239 0186 5B08 lsrs r3, r3, #1
|
||
10240 0188 03F00103 and r3, r3, #1
|
||
10241 .loc 1 5184 11
|
||
10242 018c 002B cmp r3, #0
|
||
10243 018e 31D0 beq .L483
|
||
5185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
|
||
10244 .loc 1 5185 13
|
||
10245 0190 7B68 ldr r3, [r7, #4]
|
||
10246 0192 5B08 lsrs r3, r3, #1
|
||
10247 0194 03F00103 and r3, r3, #1
|
||
5184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
|
||
10248 .loc 1 5184 65 discriminator 1
|
||
10249 0198 002B cmp r3, #0
|
||
10250 019a 2BD0 beq .L483
|
||
5186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */
|
||
5188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */
|
||
5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if all Data have already been sent */
|
||
5190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */
|
||
5191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
|
||
10251 .loc 1 5191 13
|
||
10252 019c FB68 ldr r3, [r7, #12]
|
||
10253 019e 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10254 01a0 9BB2 uxth r3, r3
|
||
10255 .loc 1 5191 8
|
||
10256 01a2 002B cmp r3, #0
|
||
10257 01a4 18D0 beq .L488
|
||
5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
|
||
5194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
|
||
10258 .loc 1 5194 35
|
||
10259 01a6 FB68 ldr r3, [r7, #12]
|
||
10260 01a8 5B6A ldr r3, [r3, #36]
|
||
ARM GAS /tmp/cc5G5cqz.s page 273
|
||
|
||
|
||
10261 .loc 1 5194 30
|
||
10262 01aa 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
10263 .loc 1 5194 11
|
||
10264 01ac FB68 ldr r3, [r7, #12]
|
||
10265 01ae 1B68 ldr r3, [r3]
|
||
10266 .loc 1 5194 28
|
||
10267 01b0 9A62 str r2, [r3, #40]
|
||
5195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
5197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
10268 .loc 1 5197 11
|
||
10269 01b2 FB68 ldr r3, [r7, #12]
|
||
10270 01b4 5B6A ldr r3, [r3, #36]
|
||
10271 .loc 1 5197 21
|
||
10272 01b6 5A1C adds r2, r3, #1
|
||
10273 01b8 FB68 ldr r3, [r7, #12]
|
||
10274 01ba 5A62 str r2, [r3, #36]
|
||
5198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
10275 .loc 1 5199 11
|
||
10276 01bc FB68 ldr r3, [r7, #12]
|
||
10277 01be 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10278 01c0 9BB2 uxth r3, r3
|
||
10279 .loc 1 5199 22
|
||
10280 01c2 013B subs r3, r3, #1
|
||
10281 01c4 9AB2 uxth r2, r3
|
||
10282 01c6 FB68 ldr r3, [r7, #12]
|
||
10283 01c8 5A85 strh r2, [r3, #42] @ movhi
|
||
5200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
10284 .loc 1 5200 11
|
||
10285 01ca FB68 ldr r3, [r7, #12]
|
||
10286 01cc 1B8D ldrh r3, [r3, #40]
|
||
10287 .loc 1 5200 21
|
||
10288 01ce 013B subs r3, r3, #1
|
||
10289 01d0 9AB2 uxth r2, r3
|
||
10290 01d2 FB68 ldr r3, [r7, #12]
|
||
10291 01d4 1A85 strh r2, [r3, #40] @ movhi
|
||
10292 01d6 0DE0 b .L483
|
||
10293 .L488:
|
||
5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
|
||
10294 .loc 1 5204 10
|
||
10295 01d8 7B69 ldr r3, [r7, #20]
|
||
10296 01da B3F1807F cmp r3, #16777216
|
||
10297 01de 02D0 beq .L489
|
||
10298 .loc 1 5204 42 discriminator 1
|
||
10299 01e0 7B69 ldr r3, [r7, #20]
|
||
10300 01e2 002B cmp r3, #0
|
||
10301 01e4 06D1 bne .L483
|
||
10302 .L489:
|
||
5205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
|
||
5207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
|
||
5208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
|
||
10303 .loc 1 5208 9
|
||
ARM GAS /tmp/cc5G5cqz.s page 274
|
||
|
||
|
||
10304 01e6 F868 ldr r0, [r7, #12]
|
||
10305 01e8 FFF7FEFF bl I2C_ITSlaveSeqCplt
|
||
10306 01ec 02E0 b .L483
|
||
10307 .L490:
|
||
5114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10308 .loc 1 5114 8
|
||
10309 01ee 00BF nop
|
||
10310 01f0 00E0 b .L483
|
||
10311 .L491:
|
||
5172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
|
||
10312 .loc 1 5172 8
|
||
10313 01f2 00BF nop
|
||
10314 .L483:
|
||
5209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
|
||
5215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
5218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
10315 .loc 1 5218 3
|
||
10316 01f4 FB68 ldr r3, [r7, #12]
|
||
10317 01f6 0022 movs r2, #0
|
||
10318 01f8 83F84020 strb r2, [r3, #64]
|
||
5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
10319 .loc 1 5220 10
|
||
10320 01fc 0023 movs r3, #0
|
||
10321 .L474:
|
||
5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
10322 .loc 1 5221 1
|
||
10323 01fe 1846 mov r0, r3
|
||
10324 0200 1837 adds r7, r7, #24
|
||
10325 .cfi_def_cfa_offset 8
|
||
10326 0202 BD46 mov sp, r7
|
||
10327 .cfi_def_cfa_register 13
|
||
10328 @ sp needed
|
||
10329 0204 80BD pop {r7, pc}
|
||
10330 .cfi_endproc
|
||
10331 .LFE181:
|
||
10333 .section .text.I2C_Master_ISR_DMA,"ax",%progbits
|
||
10334 .align 1
|
||
10335 .syntax unified
|
||
10336 .thumb
|
||
10337 .thumb_func
|
||
10339 I2C_Master_ISR_DMA:
|
||
10340 .LFB182:
|
||
5222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA.
|
||
5225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
5226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
|
||
5228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
|
||
ARM GAS /tmp/cc5G5cqz.s page 275
|
||
|
||
|
||
5229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
5230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
5231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
|
||
5232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
|
||
5233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10341 .loc 1 5233 1
|
||
10342 .cfi_startproc
|
||
10343 @ args = 0, pretend = 0, frame = 24
|
||
10344 @ frame_needed = 1, uses_anonymous_args = 0
|
||
10345 0000 80B5 push {r7, lr}
|
||
10346 .cfi_def_cfa_offset 8
|
||
10347 .cfi_offset 7, -8
|
||
10348 .cfi_offset 14, -4
|
||
10349 0002 88B0 sub sp, sp, #32
|
||
10350 .cfi_def_cfa_offset 40
|
||
10351 0004 02AF add r7, sp, #8
|
||
10352 .cfi_def_cfa 7, 32
|
||
10353 0006 F860 str r0, [r7, #12]
|
||
10354 0008 B960 str r1, [r7, #8]
|
||
10355 000a 7A60 str r2, [r7, #4]
|
||
5234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
|
||
5235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
|
||
5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
5238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
10356 .loc 1 5238 3
|
||
10357 000c FB68 ldr r3, [r7, #12]
|
||
10358 000e 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
10359 0012 012B cmp r3, #1
|
||
10360 0014 01D1 bne .L493
|
||
10361 .loc 1 5238 3 is_stmt 0 discriminator 1
|
||
10362 0016 0223 movs r3, #2
|
||
10363 .loc 1 5238 3
|
||
10364 0018 E1E0 b .L494
|
||
10365 .L493:
|
||
10366 .loc 1 5238 3 discriminator 2
|
||
10367 001a FB68 ldr r3, [r7, #12]
|
||
10368 001c 0122 movs r2, #1
|
||
10369 001e 83F84020 strb r2, [r3, #64]
|
||
5239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
|
||
10370 .loc 1 5240 8 is_stmt 1
|
||
10371 0022 BB68 ldr r3, [r7, #8]
|
||
10372 0024 1B09 lsrs r3, r3, #4
|
||
10373 0026 03F00103 and r3, r3, #1
|
||
10374 .loc 1 5240 6
|
||
10375 002a 002B cmp r3, #0
|
||
10376 002c 17D0 beq .L495
|
||
5241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
|
||
10377 .loc 1 5241 8
|
||
10378 002e 7B68 ldr r3, [r7, #4]
|
||
10379 0030 1B09 lsrs r3, r3, #4
|
||
10380 0032 03F00103 and r3, r3, #1
|
||
5240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
|
||
10381 .loc 1 5240 55 discriminator 1
|
||
10382 0036 002B cmp r3, #0
|
||
10383 0038 11D0 beq .L495
|
||
ARM GAS /tmp/cc5G5cqz.s page 276
|
||
|
||
|
||
5242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
|
||
5244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
10384 .loc 1 5244 5
|
||
10385 003a FB68 ldr r3, [r7, #12]
|
||
10386 003c 1B68 ldr r3, [r3]
|
||
10387 003e 1022 movs r2, #16
|
||
10388 0040 DA61 str r2, [r3, #28]
|
||
5245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
|
||
5247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
|
||
10389 .loc 1 5247 9
|
||
10390 0042 FB68 ldr r3, [r7, #12]
|
||
10391 0044 5B6C ldr r3, [r3, #68]
|
||
10392 .loc 1 5247 21
|
||
10393 0046 43F00402 orr r2, r3, #4
|
||
10394 004a FB68 ldr r3, [r7, #12]
|
||
10395 004c 5A64 str r2, [r3, #68]
|
||
5248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
|
||
5250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
|
||
5251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
|
||
5252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
|
||
10396 .loc 1 5252 5
|
||
10397 004e 2021 movs r1, #32
|
||
10398 0050 F868 ldr r0, [r7, #12]
|
||
10399 0052 FFF7FEFF bl I2C_Enable_IRQ
|
||
5253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
|
||
5255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
|
||
10400 .loc 1 5255 5
|
||
10401 0056 F868 ldr r0, [r7, #12]
|
||
10402 0058 FFF7FEFF bl I2C_Flush_TXDR
|
||
10403 005c BAE0 b .L496
|
||
10404 .L495:
|
||
5256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \
|
||
10405 .loc 1 5257 13
|
||
10406 005e BB68 ldr r3, [r7, #8]
|
||
10407 0060 DB09 lsrs r3, r3, #7
|
||
10408 0062 03F00103 and r3, r3, #1
|
||
10409 .loc 1 5257 11
|
||
10410 0066 002B cmp r3, #0
|
||
10411 0068 72D0 beq .L497
|
||
5258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
10412 .loc 1 5258 13
|
||
10413 006a 7B68 ldr r3, [r7, #4]
|
||
10414 006c 9B09 lsrs r3, r3, #6
|
||
10415 006e 03F00103 and r3, r3, #1
|
||
5257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
10416 .loc 1 5257 61 discriminator 1
|
||
10417 0072 002B cmp r3, #0
|
||
10418 0074 6CD0 beq .L497
|
||
5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC interrupt */
|
||
5261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI);
|
||
10419 .loc 1 5261 5
|
||
ARM GAS /tmp/cc5G5cqz.s page 277
|
||
|
||
|
||
10420 0076 FB68 ldr r3, [r7, #12]
|
||
10421 0078 1B68 ldr r3, [r3]
|
||
10422 007a 1A68 ldr r2, [r3]
|
||
10423 007c FB68 ldr r3, [r7, #12]
|
||
10424 007e 1B68 ldr r3, [r3]
|
||
10425 0080 22F04002 bic r2, r2, #64
|
||
10426 0084 1A60 str r2, [r3]
|
||
5262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
|
||
10427 .loc 1 5263 13
|
||
10428 0086 FB68 ldr r3, [r7, #12]
|
||
10429 0088 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10430 008a 9BB2 uxth r3, r3
|
||
10431 .loc 1 5263 8
|
||
10432 008c 002B cmp r3, #0
|
||
10433 008e 4ED0 beq .L498
|
||
5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Recover Slave address */
|
||
5266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
|
||
10434 .loc 1 5266 35
|
||
10435 0090 FB68 ldr r3, [r7, #12]
|
||
10436 0092 1B68 ldr r3, [r3]
|
||
10437 .loc 1 5266 45
|
||
10438 0094 5B68 ldr r3, [r3, #4]
|
||
10439 .loc 1 5266 20
|
||
10440 0096 9BB2 uxth r3, r3
|
||
10441 .loc 1 5266 18
|
||
10442 0098 C3F30903 ubfx r3, r3, #0, #10
|
||
10443 009c 7B82 strh r3, [r7, #18] @ movhi
|
||
5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
|
||
5269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
10444 .loc 1 5269 15
|
||
10445 009e FB68 ldr r3, [r7, #12]
|
||
10446 00a0 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10447 00a2 9BB2 uxth r3, r3
|
||
10448 .loc 1 5269 10
|
||
10449 00a4 FF2B cmp r3, #255
|
||
10450 00a6 06D9 bls .L499
|
||
5270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
10451 .loc 1 5271 24
|
||
10452 00a8 FB68 ldr r3, [r7, #12]
|
||
10453 00aa FF22 movs r2, #255
|
||
10454 00ac 1A85 strh r2, [r3, #40] @ movhi
|
||
5272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
|
||
10455 .loc 1 5272 18
|
||
10456 00ae 4FF08073 mov r3, #16777216
|
||
10457 00b2 7B61 str r3, [r7, #20]
|
||
10458 00b4 10E0 b .L500
|
||
10459 .L499:
|
||
5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
10460 .loc 1 5276 30
|
||
10461 00b6 FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 278
|
||
|
||
|
||
10462 00b8 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10463 00ba 9AB2 uxth r2, r3
|
||
10464 .loc 1 5276 24
|
||
10465 00bc FB68 ldr r3, [r7, #12]
|
||
10466 00be 1A85 strh r2, [r3, #40] @ movhi
|
||
5277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
|
||
10467 .loc 1 5277 17
|
||
10468 00c0 FB68 ldr r3, [r7, #12]
|
||
10469 00c2 DB6A ldr r3, [r3, #44]
|
||
10470 .loc 1 5277 12
|
||
10471 00c4 13F5803F cmn r3, #65536
|
||
10472 00c8 03D0 beq .L501
|
||
5278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
|
||
10473 .loc 1 5279 20
|
||
10474 00ca FB68 ldr r3, [r7, #12]
|
||
10475 00cc DB6A ldr r3, [r3, #44]
|
||
10476 00ce 7B61 str r3, [r7, #20]
|
||
10477 00d0 02E0 b .L500
|
||
10478 .L501:
|
||
5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
|
||
10479 .loc 1 5283 20
|
||
10480 00d2 4FF00073 mov r3, #33554432
|
||
10481 00d6 7B61 str r3, [r7, #20]
|
||
10482 .L500:
|
||
5284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */
|
||
5288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
|
||
10483 .loc 1 5288 57
|
||
10484 00d8 FB68 ldr r3, [r7, #12]
|
||
10485 00da 1B8D ldrh r3, [r3, #40]
|
||
10486 .loc 1 5288 7
|
||
10487 00dc DAB2 uxtb r2, r3
|
||
10488 00de 798A ldrh r1, [r7, #18]
|
||
10489 00e0 0023 movs r3, #0
|
||
10490 00e2 0093 str r3, [sp]
|
||
10491 00e4 7B69 ldr r3, [r7, #20]
|
||
10492 00e6 F868 ldr r0, [r7, #12]
|
||
10493 00e8 FFF7FEFF bl I2C_TransferConfig
|
||
5289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
|
||
5291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
|
||
10494 .loc 1 5291 11
|
||
10495 00ec FB68 ldr r3, [r7, #12]
|
||
10496 00ee 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10497 00f0 9AB2 uxth r2, r3
|
||
10498 .loc 1 5291 30
|
||
10499 00f2 FB68 ldr r3, [r7, #12]
|
||
10500 00f4 1B8D ldrh r3, [r3, #40]
|
||
10501 .loc 1 5291 23
|
||
10502 00f6 D31A subs r3, r2, r3
|
||
10503 00f8 9AB2 uxth r2, r3
|
||
ARM GAS /tmp/cc5G5cqz.s page 279
|
||
|
||
|
||
10504 00fa FB68 ldr r3, [r7, #12]
|
||
10505 00fc 5A85 strh r2, [r3, #42] @ movhi
|
||
5292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
|
||
5294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
|
||
10506 .loc 1 5294 15
|
||
10507 00fe FB68 ldr r3, [r7, #12]
|
||
10508 0100 93F84130 ldrb r3, [r3, #65]
|
||
10509 0104 DBB2 uxtb r3, r3
|
||
10510 .loc 1 5294 10
|
||
10511 0106 222B cmp r3, #34
|
||
10512 0108 08D1 bne .L502
|
||
5295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
|
||
10513 .loc 1 5296 13
|
||
10514 010a FB68 ldr r3, [r7, #12]
|
||
10515 010c 1B68 ldr r3, [r3]
|
||
10516 .loc 1 5296 23
|
||
10517 010e 1A68 ldr r2, [r3]
|
||
10518 .loc 1 5296 13
|
||
10519 0110 FB68 ldr r3, [r7, #12]
|
||
10520 0112 1B68 ldr r3, [r3]
|
||
10521 .loc 1 5296 29
|
||
10522 0114 42F40042 orr r2, r2, #32768
|
||
10523 0118 1A60 str r2, [r3]
|
||
5263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10524 .loc 1 5263 8
|
||
10525 011a 5BE0 b .L496
|
||
10526 .L502:
|
||
5297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
|
||
10527 .loc 1 5300 13
|
||
10528 011c FB68 ldr r3, [r7, #12]
|
||
10529 011e 1B68 ldr r3, [r3]
|
||
10530 .loc 1 5300 23
|
||
10531 0120 1A68 ldr r2, [r3]
|
||
10532 .loc 1 5300 13
|
||
10533 0122 FB68 ldr r3, [r7, #12]
|
||
10534 0124 1B68 ldr r3, [r3]
|
||
10535 .loc 1 5300 29
|
||
10536 0126 42F48042 orr r2, r2, #16384
|
||
10537 012a 1A60 str r2, [r3]
|
||
5263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10538 .loc 1 5263 8
|
||
10539 012c 52E0 b .L496
|
||
10540 .L498:
|
||
5301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
|
||
5306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
|
||
10541 .loc 1 5306 11
|
||
10542 012e FB68 ldr r3, [r7, #12]
|
||
10543 0130 1B68 ldr r3, [r3]
|
||
ARM GAS /tmp/cc5G5cqz.s page 280
|
||
|
||
|
||
10544 0132 5B68 ldr r3, [r3, #4]
|
||
10545 0134 03F00073 and r3, r3, #33554432
|
||
10546 .loc 1 5306 10
|
||
10547 0138 B3F1007F cmp r3, #33554432
|
||
10548 013c 03D0 beq .L504
|
||
5307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
|
||
5309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
|
||
10549 .loc 1 5309 9
|
||
10550 013e F868 ldr r0, [r7, #12]
|
||
10551 0140 FFF7FEFF bl I2C_ITMasterSeqCplt
|
||
5263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10552 .loc 1 5263 8
|
||
10553 0144 46E0 b .L496
|
||
10554 .L504:
|
||
5310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
|
||
5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
5315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
|
||
10555 .loc 1 5315 9
|
||
10556 0146 4021 movs r1, #64
|
||
10557 0148 F868 ldr r0, [r7, #12]
|
||
10558 014a FFF7FEFF bl I2C_ITError
|
||
5263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10559 .loc 1 5263 8
|
||
10560 014e 41E0 b .L496
|
||
10561 .L497:
|
||
5316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \
|
||
10562 .loc 1 5319 13
|
||
10563 0150 BB68 ldr r3, [r7, #8]
|
||
10564 0152 9B09 lsrs r3, r3, #6
|
||
10565 0154 03F00103 and r3, r3, #1
|
||
10566 .loc 1 5319 11
|
||
10567 0158 002B cmp r3, #0
|
||
10568 015a 29D0 beq .L505
|
||
5320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
10569 .loc 1 5320 13
|
||
10570 015c 7B68 ldr r3, [r7, #4]
|
||
10571 015e 9B09 lsrs r3, r3, #6
|
||
10572 0160 03F00103 and r3, r3, #1
|
||
5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
10573 .loc 1 5319 60 discriminator 1
|
||
10574 0164 002B cmp r3, #0
|
||
10575 0166 23D0 beq .L505
|
||
5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
|
||
10576 .loc 1 5322 13
|
||
10577 0168 FB68 ldr r3, [r7, #12]
|
||
10578 016a 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10579 016c 9BB2 uxth r3, r3
|
||
10580 .loc 1 5322 8
|
||
10581 016e 002B cmp r3, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 281
|
||
|
||
|
||
10582 0170 19D1 bne .L506
|
||
5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
|
||
10583 .loc 1 5324 11
|
||
10584 0172 FB68 ldr r3, [r7, #12]
|
||
10585 0174 1B68 ldr r3, [r3]
|
||
10586 0176 5B68 ldr r3, [r3, #4]
|
||
10587 0178 03F00073 and r3, r3, #33554432
|
||
10588 .loc 1 5324 10
|
||
10589 017c B3F1007F cmp r3, #33554432
|
||
10590 0180 27D0 beq .L509
|
||
5325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
|
||
5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
|
||
10591 .loc 1 5327 17
|
||
10592 0182 FB68 ldr r3, [r7, #12]
|
||
10593 0184 DB6A ldr r3, [r3, #44]
|
||
10594 .loc 1 5327 12
|
||
10595 0186 13F5803F cmn r3, #65536
|
||
10596 018a 08D1 bne .L508
|
||
5328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
|
||
5330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
|
||
10597 .loc 1 5330 15
|
||
10598 018c FB68 ldr r3, [r7, #12]
|
||
10599 018e 1B68 ldr r3, [r3]
|
||
10600 .loc 1 5330 25
|
||
10601 0190 5A68 ldr r2, [r3, #4]
|
||
10602 .loc 1 5330 15
|
||
10603 0192 FB68 ldr r3, [r7, #12]
|
||
10604 0194 1B68 ldr r3, [r3]
|
||
10605 .loc 1 5330 31
|
||
10606 0196 42F48042 orr r2, r2, #16384
|
||
10607 019a 5A60 str r2, [r3, #4]
|
||
5322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10608 .loc 1 5322 8
|
||
10609 019c 19E0 b .L509
|
||
10610 .L508:
|
||
5331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
|
||
5335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
|
||
10611 .loc 1 5335 11
|
||
10612 019e F868 ldr r0, [r7, #12]
|
||
10613 01a0 FFF7FEFF bl I2C_ITMasterSeqCplt
|
||
5322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10614 .loc 1 5322 8
|
||
10615 01a4 15E0 b .L509
|
||
10616 .L506:
|
||
5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
|
||
5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
ARM GAS /tmp/cc5G5cqz.s page 282
|
||
|
||
|
||
5343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
|
||
10617 .loc 1 5343 7
|
||
10618 01a6 4021 movs r1, #64
|
||
10619 01a8 F868 ldr r0, [r7, #12]
|
||
10620 01aa FFF7FEFF bl I2C_ITError
|
||
5322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10621 .loc 1 5322 8
|
||
10622 01ae 10E0 b .L509
|
||
10623 .L505:
|
||
5344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
|
||
10624 .loc 1 5346 13
|
||
10625 01b0 BB68 ldr r3, [r7, #8]
|
||
10626 01b2 5B09 lsrs r3, r3, #5
|
||
10627 01b4 03F00103 and r3, r3, #1
|
||
10628 .loc 1 5346 11
|
||
10629 01b8 002B cmp r3, #0
|
||
10630 01ba 0BD0 beq .L496
|
||
5347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
|
||
10631 .loc 1 5347 13
|
||
10632 01bc 7B68 ldr r3, [r7, #4]
|
||
10633 01be 5B09 lsrs r3, r3, #5
|
||
10634 01c0 03F00103 and r3, r3, #1
|
||
5346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
|
||
10635 .loc 1 5346 63 discriminator 1
|
||
10636 01c4 002B cmp r3, #0
|
||
10637 01c6 05D0 beq .L496
|
||
5348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
|
||
5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
|
||
10638 .loc 1 5350 5
|
||
10639 01c8 B968 ldr r1, [r7, #8]
|
||
10640 01ca F868 ldr r0, [r7, #12]
|
||
10641 01cc FFF7FEFF bl I2C_ITMasterCplt
|
||
10642 01d0 00E0 b .L496
|
||
10643 .L509:
|
||
5322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10644 .loc 1 5322 8
|
||
10645 01d2 00BF nop
|
||
10646 .L496:
|
||
5351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
|
||
5355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
5358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
10647 .loc 1 5358 3
|
||
10648 01d4 FB68 ldr r3, [r7, #12]
|
||
10649 01d6 0022 movs r2, #0
|
||
10650 01d8 83F84020 strb r2, [r3, #64]
|
||
5359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
10651 .loc 1 5360 10
|
||
10652 01dc 0023 movs r3, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 283
|
||
|
||
|
||
10653 .L494:
|
||
5361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
10654 .loc 1 5361 1
|
||
10655 01de 1846 mov r0, r3
|
||
10656 01e0 1837 adds r7, r7, #24
|
||
10657 .cfi_def_cfa_offset 8
|
||
10658 01e2 BD46 mov sp, r7
|
||
10659 .cfi_def_cfa_register 13
|
||
10660 @ sp needed
|
||
10661 01e4 80BD pop {r7, pc}
|
||
10662 .cfi_endproc
|
||
10663 .LFE182:
|
||
10665 .section .text.I2C_Mem_ISR_DMA,"ax",%progbits
|
||
10666 .align 1
|
||
10667 .syntax unified
|
||
10668 .thumb
|
||
10669 .thumb_func
|
||
10671 I2C_Mem_ISR_DMA:
|
||
10672 .LFB183:
|
||
5362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
5364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with DMA.
|
||
5365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
5366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
5367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
|
||
5368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
|
||
5369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
5370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
5371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
|
||
5372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
|
||
5373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10673 .loc 1 5373 1
|
||
10674 .cfi_startproc
|
||
10675 @ args = 0, pretend = 0, frame = 24
|
||
10676 @ frame_needed = 1, uses_anonymous_args = 0
|
||
10677 0000 80B5 push {r7, lr}
|
||
10678 .cfi_def_cfa_offset 8
|
||
10679 .cfi_offset 7, -8
|
||
10680 .cfi_offset 14, -4
|
||
10681 0002 88B0 sub sp, sp, #32
|
||
10682 .cfi_def_cfa_offset 40
|
||
10683 0004 02AF add r7, sp, #8
|
||
10684 .cfi_def_cfa 7, 32
|
||
10685 0006 F860 str r0, [r7, #12]
|
||
10686 0008 B960 str r1, [r7, #8]
|
||
10687 000a 7A60 str r2, [r7, #4]
|
||
5374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
|
||
10688 .loc 1 5374 12
|
||
10689 000c 8C4B ldr r3, .L528
|
||
10690 000e 7B61 str r3, [r7, #20]
|
||
5375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
|
||
5377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
10691 .loc 1 5377 3
|
||
10692 0010 FB68 ldr r3, [r7, #12]
|
||
10693 0012 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
10694 0016 012B cmp r3, #1
|
||
ARM GAS /tmp/cc5G5cqz.s page 284
|
||
|
||
|
||
10695 0018 01D1 bne .L511
|
||
10696 .loc 1 5377 3 is_stmt 0 discriminator 1
|
||
10697 001a 0223 movs r3, #2
|
||
10698 .loc 1 5377 3
|
||
10699 001c 0CE1 b .L512
|
||
10700 .L511:
|
||
10701 .loc 1 5377 3 discriminator 2
|
||
10702 001e FB68 ldr r3, [r7, #12]
|
||
10703 0020 0122 movs r2, #1
|
||
10704 0022 83F84020 strb r2, [r3, #64]
|
||
5378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
|
||
10705 .loc 1 5379 8 is_stmt 1
|
||
10706 0026 BB68 ldr r3, [r7, #8]
|
||
10707 0028 1B09 lsrs r3, r3, #4
|
||
10708 002a 03F00103 and r3, r3, #1
|
||
10709 .loc 1 5379 6
|
||
10710 002e 002B cmp r3, #0
|
||
10711 0030 17D0 beq .L513
|
||
5380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
|
||
10712 .loc 1 5380 8
|
||
10713 0032 7B68 ldr r3, [r7, #4]
|
||
10714 0034 1B09 lsrs r3, r3, #4
|
||
10715 0036 03F00103 and r3, r3, #1
|
||
5379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
|
||
10716 .loc 1 5379 55 discriminator 1
|
||
10717 003a 002B cmp r3, #0
|
||
10718 003c 11D0 beq .L513
|
||
5381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
|
||
5383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
10719 .loc 1 5383 5
|
||
10720 003e FB68 ldr r3, [r7, #12]
|
||
10721 0040 1B68 ldr r3, [r3]
|
||
10722 0042 1022 movs r2, #16
|
||
10723 0044 DA61 str r2, [r3, #28]
|
||
5384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
|
||
5386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
|
||
10724 .loc 1 5386 9
|
||
10725 0046 FB68 ldr r3, [r7, #12]
|
||
10726 0048 5B6C ldr r3, [r3, #68]
|
||
10727 .loc 1 5386 21
|
||
10728 004a 43F00402 orr r2, r3, #4
|
||
10729 004e FB68 ldr r3, [r7, #12]
|
||
10730 0050 5A64 str r2, [r3, #68]
|
||
5387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
|
||
5389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
|
||
5390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
|
||
5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
|
||
10731 .loc 1 5391 5
|
||
10732 0052 2021 movs r1, #32
|
||
10733 0054 F868 ldr r0, [r7, #12]
|
||
10734 0056 FFF7FEFF bl I2C_Enable_IRQ
|
||
5392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
|
||
ARM GAS /tmp/cc5G5cqz.s page 285
|
||
|
||
|
||
5394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
|
||
10735 .loc 1 5394 5
|
||
10736 005a F868 ldr r0, [r7, #12]
|
||
10737 005c FFF7FEFF bl I2C_Flush_TXDR
|
||
10738 0060 E5E0 b .L514
|
||
10739 .L513:
|
||
5395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TXIS) != RESET) && \
|
||
10740 .loc 1 5396 13
|
||
10741 0062 BB68 ldr r3, [r7, #8]
|
||
10742 0064 5B08 lsrs r3, r3, #1
|
||
10743 0066 03F00103 and r3, r3, #1
|
||
10744 .loc 1 5396 11
|
||
10745 006a 002B cmp r3, #0
|
||
10746 006c 0FD0 beq .L515
|
||
5397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
|
||
10747 .loc 1 5397 13
|
||
10748 006e 7B68 ldr r3, [r7, #4]
|
||
10749 0070 5B08 lsrs r3, r3, #1
|
||
10750 0072 03F00103 and r3, r3, #1
|
||
5396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
|
||
10751 .loc 1 5396 62 discriminator 1
|
||
10752 0076 002B cmp r3, #0
|
||
10753 0078 09D0 beq .L515
|
||
5398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write LSB part of Memory Address */
|
||
5400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress;
|
||
10754 .loc 1 5400 9
|
||
10755 007a FB68 ldr r3, [r7, #12]
|
||
10756 007c 1B68 ldr r3, [r3]
|
||
10757 .loc 1 5400 32
|
||
10758 007e FA68 ldr r2, [r7, #12]
|
||
10759 0080 126D ldr r2, [r2, #80]
|
||
10760 .loc 1 5400 26
|
||
10761 0082 9A62 str r2, [r3, #40]
|
||
5401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
|
||
5403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
|
||
10762 .loc 1 5403 22
|
||
10763 0084 FB68 ldr r3, [r7, #12]
|
||
10764 0086 4FF0FF32 mov r2, #-1
|
||
10765 008a 1A65 str r2, [r3, #80]
|
||
10766 008c CFE0 b .L514
|
||
10767 .L515:
|
||
5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \
|
||
10768 .loc 1 5405 13
|
||
10769 008e BB68 ldr r3, [r7, #8]
|
||
10770 0090 DB09 lsrs r3, r3, #7
|
||
10771 0092 03F00103 and r3, r3, #1
|
||
10772 .loc 1 5405 11
|
||
10773 0096 002B cmp r3, #0
|
||
10774 0098 5CD0 beq .L516
|
||
5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
10775 .loc 1 5406 13
|
||
10776 009a 7B68 ldr r3, [r7, #4]
|
||
10777 009c 9B09 lsrs r3, r3, #6
|
||
ARM GAS /tmp/cc5G5cqz.s page 286
|
||
|
||
|
||
10778 009e 03F00103 and r3, r3, #1
|
||
5405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
10779 .loc 1 5405 61 discriminator 1
|
||
10780 00a2 002B cmp r3, #0
|
||
10781 00a4 56D0 beq .L516
|
||
5407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable only Error interrupt */
|
||
5409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
|
||
10782 .loc 1 5409 5
|
||
10783 00a6 1021 movs r1, #16
|
||
10784 00a8 F868 ldr r0, [r7, #12]
|
||
10785 00aa FFF7FEFF bl I2C_Enable_IRQ
|
||
5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
|
||
10786 .loc 1 5411 13
|
||
10787 00ae FB68 ldr r3, [r7, #12]
|
||
10788 00b0 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10789 00b2 9BB2 uxth r3, r3
|
||
10790 .loc 1 5411 8
|
||
10791 00b4 002B cmp r3, #0
|
||
10792 00b6 48D0 beq .L517
|
||
5412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
|
||
5414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
10793 .loc 1 5414 15
|
||
10794 00b8 FB68 ldr r3, [r7, #12]
|
||
10795 00ba 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10796 00bc 9BB2 uxth r3, r3
|
||
10797 .loc 1 5414 10
|
||
10798 00be FF2B cmp r3, #255
|
||
10799 00c0 10D9 bls .L518
|
||
5415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
10800 .loc 1 5416 24
|
||
10801 00c2 FB68 ldr r3, [r7, #12]
|
||
10802 00c4 FF22 movs r2, #255
|
||
10803 00c6 1A85 strh r2, [r3, #40] @ movhi
|
||
5417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
|
||
10804 .loc 1 5417 48
|
||
10805 00c8 FB68 ldr r3, [r7, #12]
|
||
10806 00ca DB6C ldr r3, [r3, #76]
|
||
10807 .loc 1 5417 9
|
||
10808 00cc 99B2 uxth r1, r3
|
||
10809 .loc 1 5417 75
|
||
10810 00ce FB68 ldr r3, [r7, #12]
|
||
10811 00d0 1B8D ldrh r3, [r3, #40]
|
||
10812 .loc 1 5417 9
|
||
10813 00d2 DAB2 uxtb r2, r3
|
||
10814 00d4 0023 movs r3, #0
|
||
10815 00d6 0093 str r3, [sp]
|
||
10816 00d8 4FF08073 mov r3, #16777216
|
||
10817 00dc F868 ldr r0, [r7, #12]
|
||
10818 00de FFF7FEFF bl I2C_TransferConfig
|
||
10819 00e2 11E0 b .L519
|
||
10820 .L518:
|
||
5418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
|
||
5419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 287
|
||
|
||
|
||
5420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
10821 .loc 1 5422 30
|
||
10822 00e4 FB68 ldr r3, [r7, #12]
|
||
10823 00e6 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10824 00e8 9AB2 uxth r2, r3
|
||
10825 .loc 1 5422 24
|
||
10826 00ea FB68 ldr r3, [r7, #12]
|
||
10827 00ec 1A85 strh r2, [r3, #40] @ movhi
|
||
5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
|
||
10828 .loc 1 5423 48
|
||
10829 00ee FB68 ldr r3, [r7, #12]
|
||
10830 00f0 DB6C ldr r3, [r3, #76]
|
||
10831 .loc 1 5423 9
|
||
10832 00f2 99B2 uxth r1, r3
|
||
10833 .loc 1 5423 75
|
||
10834 00f4 FB68 ldr r3, [r7, #12]
|
||
10835 00f6 1B8D ldrh r3, [r3, #40]
|
||
10836 .loc 1 5423 9
|
||
10837 00f8 DAB2 uxtb r2, r3
|
||
10838 00fa 0023 movs r3, #0
|
||
10839 00fc 0093 str r3, [sp]
|
||
10840 00fe 4FF00073 mov r3, #33554432
|
||
10841 0102 F868 ldr r0, [r7, #12]
|
||
10842 0104 FFF7FEFF bl I2C_TransferConfig
|
||
10843 .L519:
|
||
5424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
|
||
5425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
|
||
5428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
|
||
10844 .loc 1 5428 11
|
||
10845 0108 FB68 ldr r3, [r7, #12]
|
||
10846 010a 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10847 010c 9AB2 uxth r2, r3
|
||
10848 .loc 1 5428 30
|
||
10849 010e FB68 ldr r3, [r7, #12]
|
||
10850 0110 1B8D ldrh r3, [r3, #40]
|
||
10851 .loc 1 5428 23
|
||
10852 0112 D31A subs r3, r2, r3
|
||
10853 0114 9AB2 uxth r2, r3
|
||
10854 0116 FB68 ldr r3, [r7, #12]
|
||
10855 0118 5A85 strh r2, [r3, #42] @ movhi
|
||
5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
|
||
5431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
|
||
10856 .loc 1 5431 15
|
||
10857 011a FB68 ldr r3, [r7, #12]
|
||
10858 011c 93F84130 ldrb r3, [r3, #65]
|
||
10859 0120 DBB2 uxtb r3, r3
|
||
10860 .loc 1 5431 10
|
||
10861 0122 222B cmp r3, #34
|
||
10862 0124 08D1 bne .L520
|
||
5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
|
||
10863 .loc 1 5433 13
|
||
ARM GAS /tmp/cc5G5cqz.s page 288
|
||
|
||
|
||
10864 0126 FB68 ldr r3, [r7, #12]
|
||
10865 0128 1B68 ldr r3, [r3]
|
||
10866 .loc 1 5433 23
|
||
10867 012a 1A68 ldr r2, [r3]
|
||
10868 .loc 1 5433 13
|
||
10869 012c FB68 ldr r3, [r7, #12]
|
||
10870 012e 1B68 ldr r3, [r3]
|
||
10871 .loc 1 5433 29
|
||
10872 0130 42F40042 orr r2, r2, #32768
|
||
10873 0134 1A60 str r2, [r3]
|
||
5411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10874 .loc 1 5411 8
|
||
10875 0136 7AE0 b .L514
|
||
10876 .L520:
|
||
5434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
|
||
10877 .loc 1 5437 13
|
||
10878 0138 FB68 ldr r3, [r7, #12]
|
||
10879 013a 1B68 ldr r3, [r3]
|
||
10880 .loc 1 5437 23
|
||
10881 013c 1A68 ldr r2, [r3]
|
||
10882 .loc 1 5437 13
|
||
10883 013e FB68 ldr r3, [r7, #12]
|
||
10884 0140 1B68 ldr r3, [r3]
|
||
10885 .loc 1 5437 29
|
||
10886 0142 42F48042 orr r2, r2, #16384
|
||
10887 0146 1A60 str r2, [r3]
|
||
5411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10888 .loc 1 5411 8
|
||
10889 0148 71E0 b .L514
|
||
10890 .L517:
|
||
5438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
|
||
5443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
5444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
|
||
10891 .loc 1 5444 7
|
||
10892 014a 4021 movs r1, #64
|
||
10893 014c F868 ldr r0, [r7, #12]
|
||
10894 014e FFF7FEFF bl I2C_ITError
|
||
5411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
10895 .loc 1 5411 8
|
||
10896 0152 6CE0 b .L514
|
||
10897 .L516:
|
||
5445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \
|
||
10898 .loc 1 5447 13
|
||
10899 0154 BB68 ldr r3, [r7, #8]
|
||
10900 0156 9B09 lsrs r3, r3, #6
|
||
10901 0158 03F00103 and r3, r3, #1
|
||
10902 .loc 1 5447 11
|
||
10903 015c 002B cmp r3, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 289
|
||
|
||
|
||
10904 015e 56D0 beq .L522
|
||
5448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
10905 .loc 1 5448 13
|
||
10906 0160 7B68 ldr r3, [r7, #4]
|
||
10907 0162 9B09 lsrs r3, r3, #6
|
||
10908 0164 03F00103 and r3, r3, #1
|
||
5447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
|
||
10909 .loc 1 5447 60 discriminator 1
|
||
10910 0168 002B cmp r3, #0
|
||
10911 016a 50D0 beq .L522
|
||
5449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
|
||
10912 .loc 1 5450 13
|
||
10913 016c FB68 ldr r3, [r7, #12]
|
||
10914 016e 93F84130 ldrb r3, [r3, #65]
|
||
10915 0172 DBB2 uxtb r3, r3
|
||
10916 .loc 1 5450 8
|
||
10917 0174 222B cmp r3, #34
|
||
10918 0176 01D1 bne .L523
|
||
5451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ;
|
||
10919 .loc 1 5452 17
|
||
10920 0178 324B ldr r3, .L528+4
|
||
10921 017a 7B61 str r3, [r7, #20]
|
||
10922 .L523:
|
||
5453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
10923 .loc 1 5455 13
|
||
10924 017c FB68 ldr r3, [r7, #12]
|
||
10925 017e 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10926 0180 9BB2 uxth r3, r3
|
||
10927 .loc 1 5455 8
|
||
10928 0182 FF2B cmp r3, #255
|
||
10929 0184 10D9 bls .L524
|
||
5456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
10930 .loc 1 5457 22
|
||
10931 0186 FB68 ldr r3, [r7, #12]
|
||
10932 0188 FF22 movs r2, #255
|
||
10933 018a 1A85 strh r2, [r3, #40] @ movhi
|
||
5458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
|
||
5460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
|
||
10934 .loc 1 5460 46
|
||
10935 018c FB68 ldr r3, [r7, #12]
|
||
10936 018e DB6C ldr r3, [r3, #76]
|
||
10937 .loc 1 5460 7
|
||
10938 0190 99B2 uxth r1, r3
|
||
10939 .loc 1 5460 73
|
||
10940 0192 FB68 ldr r3, [r7, #12]
|
||
10941 0194 1B8D ldrh r3, [r3, #40]
|
||
10942 .loc 1 5460 7
|
||
10943 0196 DAB2 uxtb r2, r3
|
||
10944 0198 7B69 ldr r3, [r7, #20]
|
||
10945 019a 0093 str r3, [sp]
|
||
10946 019c 4FF08073 mov r3, #16777216
|
||
ARM GAS /tmp/cc5G5cqz.s page 290
|
||
|
||
|
||
10947 01a0 F868 ldr r0, [r7, #12]
|
||
10948 01a2 FFF7FEFF bl I2C_TransferConfig
|
||
10949 01a6 11E0 b .L525
|
||
10950 .L524:
|
||
5461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
|
||
5462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
10951 .loc 1 5465 28
|
||
10952 01a8 FB68 ldr r3, [r7, #12]
|
||
10953 01aa 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10954 01ac 9AB2 uxth r2, r3
|
||
10955 .loc 1 5465 22
|
||
10956 01ae FB68 ldr r3, [r7, #12]
|
||
10957 01b0 1A85 strh r2, [r3, #40] @ movhi
|
||
5466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */
|
||
5468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
|
||
10958 .loc 1 5468 46
|
||
10959 01b2 FB68 ldr r3, [r7, #12]
|
||
10960 01b4 DB6C ldr r3, [r3, #76]
|
||
10961 .loc 1 5468 7
|
||
10962 01b6 99B2 uxth r1, r3
|
||
10963 .loc 1 5468 73
|
||
10964 01b8 FB68 ldr r3, [r7, #12]
|
||
10965 01ba 1B8D ldrh r3, [r3, #40]
|
||
10966 .loc 1 5468 7
|
||
10967 01bc DAB2 uxtb r2, r3
|
||
10968 01be 7B69 ldr r3, [r7, #20]
|
||
10969 01c0 0093 str r3, [sp]
|
||
10970 01c2 4FF00073 mov r3, #33554432
|
||
10971 01c6 F868 ldr r0, [r7, #12]
|
||
10972 01c8 FFF7FEFF bl I2C_TransferConfig
|
||
10973 .L525:
|
||
5469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
|
||
5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
|
||
5473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
|
||
10974 .loc 1 5473 9
|
||
10975 01cc FB68 ldr r3, [r7, #12]
|
||
10976 01ce 5B8D ldrh r3, [r3, #42] @ movhi
|
||
10977 01d0 9AB2 uxth r2, r3
|
||
10978 .loc 1 5473 28
|
||
10979 01d2 FB68 ldr r3, [r7, #12]
|
||
10980 01d4 1B8D ldrh r3, [r3, #40]
|
||
10981 .loc 1 5473 21
|
||
10982 01d6 D31A subs r3, r2, r3
|
||
10983 01d8 9AB2 uxth r2, r3
|
||
10984 01da FB68 ldr r3, [r7, #12]
|
||
10985 01dc 5A85 strh r2, [r3, #42] @ movhi
|
||
5474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
|
||
5476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
|
||
10986 .loc 1 5476 13
|
||
10987 01de FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 291
|
||
|
||
|
||
10988 01e0 93F84130 ldrb r3, [r3, #65]
|
||
10989 01e4 DBB2 uxtb r3, r3
|
||
10990 .loc 1 5476 8
|
||
10991 01e6 222B cmp r3, #34
|
||
10992 01e8 08D1 bne .L526
|
||
5477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
|
||
10993 .loc 1 5478 11
|
||
10994 01ea FB68 ldr r3, [r7, #12]
|
||
10995 01ec 1B68 ldr r3, [r3]
|
||
10996 .loc 1 5478 21
|
||
10997 01ee 1A68 ldr r2, [r3]
|
||
10998 .loc 1 5478 11
|
||
10999 01f0 FB68 ldr r3, [r7, #12]
|
||
11000 01f2 1B68 ldr r3, [r3]
|
||
11001 .loc 1 5478 27
|
||
11002 01f4 42F40042 orr r2, r2, #32768
|
||
11003 01f8 1A60 str r2, [r3]
|
||
5476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
11004 .loc 1 5476 8
|
||
11005 01fa 18E0 b .L514
|
||
11006 .L526:
|
||
5479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
|
||
11007 .loc 1 5482 11
|
||
11008 01fc FB68 ldr r3, [r7, #12]
|
||
11009 01fe 1B68 ldr r3, [r3]
|
||
11010 .loc 1 5482 21
|
||
11011 0200 1A68 ldr r2, [r3]
|
||
11012 .loc 1 5482 11
|
||
11013 0202 FB68 ldr r3, [r7, #12]
|
||
11014 0204 1B68 ldr r3, [r3]
|
||
11015 .loc 1 5482 27
|
||
11016 0206 42F48042 orr r2, r2, #16384
|
||
11017 020a 1A60 str r2, [r3]
|
||
5476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
11018 .loc 1 5476 8
|
||
11019 020c 0FE0 b .L514
|
||
11020 .L522:
|
||
5483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
|
||
11021 .loc 1 5485 13
|
||
11022 020e BB68 ldr r3, [r7, #8]
|
||
11023 0210 5B09 lsrs r3, r3, #5
|
||
11024 0212 03F00103 and r3, r3, #1
|
||
11025 .loc 1 5485 11
|
||
11026 0216 002B cmp r3, #0
|
||
11027 0218 09D0 beq .L514
|
||
5486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
|
||
11028 .loc 1 5486 13
|
||
11029 021a 7B68 ldr r3, [r7, #4]
|
||
11030 021c 5B09 lsrs r3, r3, #5
|
||
11031 021e 03F00103 and r3, r3, #1
|
||
5485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
|
||
ARM GAS /tmp/cc5G5cqz.s page 292
|
||
|
||
|
||
11032 .loc 1 5485 63 discriminator 1
|
||
11033 0222 002B cmp r3, #0
|
||
11034 0224 03D0 beq .L514
|
||
5487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
|
||
5489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
|
||
11035 .loc 1 5489 5
|
||
11036 0226 B968 ldr r1, [r7, #8]
|
||
11037 0228 F868 ldr r0, [r7, #12]
|
||
11038 022a FFF7FEFF bl I2C_ITMasterCplt
|
||
11039 .L514:
|
||
5490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
|
||
5494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
5497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
11040 .loc 1 5497 3
|
||
11041 022e FB68 ldr r3, [r7, #12]
|
||
11042 0230 0022 movs r2, #0
|
||
11043 0232 83F84020 strb r2, [r3, #64]
|
||
5498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
11044 .loc 1 5499 10
|
||
11045 0236 0023 movs r3, #0
|
||
11046 .L512:
|
||
5500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
11047 .loc 1 5500 1
|
||
11048 0238 1846 mov r0, r3
|
||
11049 023a 1837 adds r7, r7, #24
|
||
11050 .cfi_def_cfa_offset 8
|
||
11051 023c BD46 mov sp, r7
|
||
11052 .cfi_def_cfa_register 13
|
||
11053 @ sp needed
|
||
11054 023e 80BD pop {r7, pc}
|
||
11055 .L529:
|
||
11056 .align 2
|
||
11057 .L528:
|
||
11058 0240 00200080 .word -2147475456
|
||
11059 0244 00240080 .word -2147474432
|
||
11060 .cfi_endproc
|
||
11061 .LFE183:
|
||
11063 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits
|
||
11064 .align 1
|
||
11065 .syntax unified
|
||
11066 .thumb
|
||
11067 .thumb_func
|
||
11069 I2C_Slave_ISR_DMA:
|
||
11070 .LFB184:
|
||
5501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
5503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA.
|
||
5504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
5505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
5506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
|
||
ARM GAS /tmp/cc5G5cqz.s page 293
|
||
|
||
|
||
5507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
|
||
5508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
5509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
5510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
|
||
5511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
|
||
5512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
11071 .loc 1 5512 1
|
||
11072 .cfi_startproc
|
||
11073 @ args = 0, pretend = 0, frame = 32
|
||
11074 @ frame_needed = 1, uses_anonymous_args = 0
|
||
11075 0000 80B5 push {r7, lr}
|
||
11076 .cfi_def_cfa_offset 8
|
||
11077 .cfi_offset 7, -8
|
||
11078 .cfi_offset 14, -4
|
||
11079 0002 88B0 sub sp, sp, #32
|
||
11080 .cfi_def_cfa_offset 40
|
||
11081 0004 00AF add r7, sp, #0
|
||
11082 .cfi_def_cfa_register 7
|
||
11083 0006 F860 str r0, [r7, #12]
|
||
11084 0008 B960 str r1, [r7, #8]
|
||
11085 000a 7A60 str r2, [r7, #4]
|
||
5513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
|
||
11086 .loc 1 5513 12
|
||
11087 000c FB68 ldr r3, [r7, #12]
|
||
11088 000e DB6A ldr r3, [r3, #44]
|
||
11089 0010 BB61 str r3, [r7, #24]
|
||
5514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
|
||
11090 .loc 1 5514 12
|
||
11091 0012 0023 movs r3, #0
|
||
11092 0014 FB61 str r3, [r7, #28]
|
||
5515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
|
||
5516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */
|
||
5518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
|
||
11093 .loc 1 5518 3
|
||
11094 0016 FB68 ldr r3, [r7, #12]
|
||
11095 0018 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
|
||
11096 001c 012B cmp r3, #1
|
||
11097 001e 01D1 bne .L531
|
||
11098 .loc 1 5518 3 is_stmt 0 discriminator 1
|
||
11099 0020 0223 movs r3, #2
|
||
11100 .loc 1 5518 3
|
||
11101 0022 C9E0 b .L532
|
||
11102 .L531:
|
||
11103 .loc 1 5518 3 discriminator 2
|
||
11104 0024 FB68 ldr r3, [r7, #12]
|
||
11105 0026 0122 movs r2, #1
|
||
11106 0028 83F84020 strb r2, [r3, #64]
|
||
5519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if STOPF is set */
|
||
5521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
|
||
11107 .loc 1 5521 8 is_stmt 1
|
||
11108 002c BB68 ldr r3, [r7, #8]
|
||
11109 002e 5B09 lsrs r3, r3, #5
|
||
11110 0030 03F00103 and r3, r3, #1
|
||
11111 .loc 1 5521 6
|
||
11112 0034 002B cmp r3, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 294
|
||
|
||
|
||
11113 0036 09D0 beq .L533
|
||
5522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
|
||
11114 .loc 1 5522 8
|
||
11115 0038 7B68 ldr r3, [r7, #4]
|
||
11116 003a 5B09 lsrs r3, r3, #5
|
||
11117 003c 03F00103 and r3, r3, #1
|
||
5521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
|
||
11118 .loc 1 5521 58 discriminator 1
|
||
11119 0040 002B cmp r3, #0
|
||
11120 0042 03D0 beq .L533
|
||
5523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave complete process */
|
||
5525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags);
|
||
11121 .loc 1 5525 5
|
||
11122 0044 B968 ldr r1, [r7, #8]
|
||
11123 0046 F868 ldr r0, [r7, #12]
|
||
11124 0048 FFF7FEFF bl I2C_ITSlaveCplt
|
||
11125 .L533:
|
||
5526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
|
||
11126 .loc 1 5528 8
|
||
11127 004c BB68 ldr r3, [r7, #8]
|
||
11128 004e 1B09 lsrs r3, r3, #4
|
||
11129 0050 03F00103 and r3, r3, #1
|
||
11130 .loc 1 5528 6
|
||
11131 0054 002B cmp r3, #0
|
||
11132 0056 00F09A80 beq .L534
|
||
5529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
|
||
11133 .loc 1 5529 8
|
||
11134 005a 7B68 ldr r3, [r7, #4]
|
||
11135 005c 1B09 lsrs r3, r3, #4
|
||
11136 005e 03F00103 and r3, r3, #1
|
||
5528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
|
||
11137 .loc 1 5528 55 discriminator 1
|
||
11138 0062 002B cmp r3, #0
|
||
11139 0064 00F09380 beq .L534
|
||
5530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
|
||
5532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
|
||
5533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0 */
|
||
5534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */
|
||
5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) ||
|
||
11140 .loc 1 5535 10
|
||
11141 0068 7B68 ldr r3, [r7, #4]
|
||
11142 006a 9B0B lsrs r3, r3, #14
|
||
11143 006c 03F00103 and r3, r3, #1
|
||
11144 .loc 1 5535 8
|
||
11145 0070 002B cmp r3, #0
|
||
11146 0072 05D1 bne .L535
|
||
5536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
|
||
11147 .loc 1 5536 10
|
||
11148 0074 7B68 ldr r3, [r7, #4]
|
||
11149 0076 DB0B lsrs r3, r3, #15
|
||
11150 0078 03F00103 and r3, r3, #1
|
||
5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
|
||
11151 .loc 1 5535 68 discriminator 1
|
||
ARM GAS /tmp/cc5G5cqz.s page 295
|
||
|
||
|
||
11152 007c 002B cmp r3, #0
|
||
11153 007e 7FD0 beq .L536
|
||
11154 .L535:
|
||
5537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */
|
||
5539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
|
||
11155 .loc 1 5539 15
|
||
11156 0080 FB68 ldr r3, [r7, #12]
|
||
11157 0082 DB6B ldr r3, [r3, #60]
|
||
11158 .loc 1 5539 10
|
||
11159 0084 002B cmp r3, #0
|
||
11160 0086 0DD0 beq .L537
|
||
5540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)
|
||
11161 .loc 1 5541 13
|
||
11162 0088 7B68 ldr r3, [r7, #4]
|
||
11163 008a DB0B lsrs r3, r3, #15
|
||
11164 008c 03F00103 and r3, r3, #1
|
||
11165 .loc 1 5541 12
|
||
11166 0090 002B cmp r3, #0
|
||
11167 0092 07D0 beq .L537
|
||
5542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U)
|
||
11168 .loc 1 5543 15
|
||
11169 0094 FB68 ldr r3, [r7, #12]
|
||
11170 0096 DB6B ldr r3, [r3, #60]
|
||
11171 0098 1B68 ldr r3, [r3]
|
||
11172 009a 5B68 ldr r3, [r3, #4]
|
||
11173 .loc 1 5543 14
|
||
11174 009c 002B cmp r3, #0
|
||
11175 009e 01D1 bne .L537
|
||
5544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** treatdmanack = 1U;
|
||
11176 .loc 1 5545 26
|
||
11177 00a0 0123 movs r3, #1
|
||
11178 00a2 FB61 str r3, [r7, #28]
|
||
11179 .L537:
|
||
5546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */
|
||
5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
|
||
11180 .loc 1 5551 15
|
||
11181 00a4 FB68 ldr r3, [r7, #12]
|
||
11182 00a6 9B6B ldr r3, [r3, #56]
|
||
11183 .loc 1 5551 10
|
||
11184 00a8 002B cmp r3, #0
|
||
11185 00aa 0DD0 beq .L538
|
||
5552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET)
|
||
11186 .loc 1 5553 13
|
||
11187 00ac 7B68 ldr r3, [r7, #4]
|
||
11188 00ae 9B0B lsrs r3, r3, #14
|
||
11189 00b0 03F00103 and r3, r3, #1
|
||
11190 .loc 1 5553 12
|
||
11191 00b4 002B cmp r3, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 296
|
||
|
||
|
||
11192 00b6 07D0 beq .L538
|
||
5554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U)
|
||
11193 .loc 1 5555 15
|
||
11194 00b8 FB68 ldr r3, [r7, #12]
|
||
11195 00ba 9B6B ldr r3, [r3, #56]
|
||
11196 00bc 1B68 ldr r3, [r3]
|
||
11197 00be 5B68 ldr r3, [r3, #4]
|
||
11198 .loc 1 5555 14
|
||
11199 00c0 002B cmp r3, #0
|
||
11200 00c2 01D1 bne .L538
|
||
5556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** treatdmanack = 1U;
|
||
11201 .loc 1 5557 26
|
||
11202 00c4 0123 movs r3, #1
|
||
11203 00c6 FB61 str r3, [r7, #28]
|
||
11204 .L538:
|
||
5558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (treatdmanack == 1U)
|
||
11205 .loc 1 5562 10
|
||
11206 00c8 FB69 ldr r3, [r7, #28]
|
||
11207 00ca 012B cmp r3, #1
|
||
11208 00cc 28D1 bne .L539
|
||
5563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
|
||
11209 .loc 1 5564 18
|
||
11210 00ce FB68 ldr r3, [r7, #12]
|
||
11211 00d0 93F84130 ldrb r3, [r3, #65]
|
||
11212 00d4 DBB2 uxtb r3, r3
|
||
11213 .loc 1 5564 12
|
||
11214 00d6 282B cmp r3, #40
|
||
11215 00d8 08D1 bne .L540
|
||
11216 .loc 1 5564 51 discriminator 1
|
||
11217 00da BB69 ldr r3, [r7, #24]
|
||
11218 00dc B3F1007F cmp r3, #33554432
|
||
11219 00e0 04D1 bne .L540
|
||
5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
|
||
5566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
|
||
5567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
|
||
5569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags);
|
||
11220 .loc 1 5569 11
|
||
11221 00e2 B968 ldr r1, [r7, #8]
|
||
11222 00e4 F868 ldr r0, [r7, #12]
|
||
11223 00e6 FFF7FEFF bl I2C_ITListenCplt
|
||
11224 00ea 48E0 b .L543
|
||
11225 .L540:
|
||
5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM
|
||
11226 .loc 1 5571 23
|
||
11227 00ec FB68 ldr r3, [r7, #12]
|
||
11228 00ee 93F84130 ldrb r3, [r3, #65]
|
||
11229 00f2 DBB2 uxtb r3, r3
|
||
11230 .loc 1 5571 17
|
||
ARM GAS /tmp/cc5G5cqz.s page 297
|
||
|
||
|
||
11231 00f4 292B cmp r3, #41
|
||
11232 00f6 0ED1 bne .L542
|
||
11233 .loc 1 5571 64 discriminator 1
|
||
11234 00f8 BB69 ldr r3, [r7, #24]
|
||
11235 00fa 13F5803F cmn r3, #65536
|
||
11236 00fe 0AD0 beq .L542
|
||
5572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
|
||
5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
11237 .loc 1 5574 11
|
||
11238 0100 FB68 ldr r3, [r7, #12]
|
||
11239 0102 1B68 ldr r3, [r3]
|
||
11240 0104 1022 movs r2, #16
|
||
11241 0106 DA61 str r2, [r3, #28]
|
||
5575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
|
||
5577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
|
||
11242 .loc 1 5577 11
|
||
11243 0108 F868 ldr r0, [r7, #12]
|
||
11244 010a FFF7FEFF bl I2C_Flush_TXDR
|
||
5578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
|
||
5580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
|
||
5581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
|
||
11245 .loc 1 5581 11
|
||
11246 010e F868 ldr r0, [r7, #12]
|
||
11247 0110 FFF7FEFF bl I2C_ITSlaveSeqCplt
|
||
11248 0114 33E0 b .L543
|
||
11249 .L542:
|
||
5582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
|
||
5586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
11250 .loc 1 5586 11
|
||
11251 0116 FB68 ldr r3, [r7, #12]
|
||
11252 0118 1B68 ldr r3, [r3]
|
||
11253 011a 1022 movs r2, #16
|
||
11254 011c DA61 str r2, [r3, #28]
|
||
5562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
11255 .loc 1 5562 10
|
||
11256 011e 34E0 b .L551
|
||
11257 .L539:
|
||
5587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
|
||
5592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
|
||
5593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
11258 .loc 1 5593 9
|
||
11259 0120 FB68 ldr r3, [r7, #12]
|
||
11260 0122 1B68 ldr r3, [r3]
|
||
11261 0124 1022 movs r2, #16
|
||
11262 0126 DA61 str r2, [r3, #28]
|
||
5594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
|
||
ARM GAS /tmp/cc5G5cqz.s page 298
|
||
|
||
|
||
5596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
|
||
11263 .loc 1 5596 13
|
||
11264 0128 FB68 ldr r3, [r7, #12]
|
||
11265 012a 5B6C ldr r3, [r3, #68]
|
||
11266 .loc 1 5596 25
|
||
11267 012c 43F00402 orr r2, r3, #4
|
||
11268 0130 FB68 ldr r3, [r7, #12]
|
||
11269 0132 5A64 str r2, [r3, #68]
|
||
5597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */
|
||
5599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpstate = hi2c->State;
|
||
11270 .loc 1 5599 18
|
||
11271 0134 FB68 ldr r3, [r7, #12]
|
||
11272 0136 93F84130 ldrb r3, [r3, #65]
|
||
11273 013a FB75 strb r3, [r7, #23]
|
||
5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
|
||
11274 .loc 1 5601 12
|
||
11275 013c BB69 ldr r3, [r7, #24]
|
||
11276 013e 002B cmp r3, #0
|
||
11277 0140 03D0 beq .L544
|
||
11278 .loc 1 5601 45 discriminator 1
|
||
11279 0142 BB69 ldr r3, [r7, #24]
|
||
11280 0144 B3F1807F cmp r3, #16777216
|
||
11281 0148 1FD1 bne .L551
|
||
11282 .L544:
|
||
5602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
|
||
11283 .loc 1 5603 14
|
||
11284 014a FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
11285 014c 212B cmp r3, #33
|
||
11286 014e 02D0 beq .L545
|
||
11287 .loc 1 5603 51 discriminator 1
|
||
11288 0150 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
11289 0152 292B cmp r3, #41
|
||
11290 0154 03D1 bne .L546
|
||
11291 .L545:
|
||
5604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
|
||
11292 .loc 1 5605 33
|
||
11293 0156 FB68 ldr r3, [r7, #12]
|
||
11294 0158 2122 movs r2, #33
|
||
11295 015a 1A63 str r2, [r3, #48]
|
||
11296 015c 08E0 b .L547
|
||
11297 .L546:
|
||
5606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN
|
||
11298 .loc 1 5607 19
|
||
11299 015e FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
11300 0160 222B cmp r3, #34
|
||
11301 0162 02D0 beq .L548
|
||
11302 .loc 1 5607 56 discriminator 1
|
||
11303 0164 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
|
||
11304 0166 2A2B cmp r3, #42
|
||
11305 0168 02D1 bne .L547
|
||
11306 .L548:
|
||
5608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
ARM GAS /tmp/cc5G5cqz.s page 299
|
||
|
||
|
||
5609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
|
||
11307 .loc 1 5609 33
|
||
11308 016a FB68 ldr r3, [r7, #12]
|
||
11309 016c 2222 movs r2, #34
|
||
11310 016e 1A63 str r2, [r3, #48]
|
||
11311 .L547:
|
||
5610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
|
||
5614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
5617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
|
||
11312 .loc 1 5617 33
|
||
11313 0170 FB68 ldr r3, [r7, #12]
|
||
11314 0172 5B6C ldr r3, [r3, #68]
|
||
11315 .loc 1 5617 11
|
||
11316 0174 1946 mov r1, r3
|
||
11317 0176 F868 ldr r0, [r7, #12]
|
||
11318 0178 FFF7FEFF bl I2C_ITError
|
||
5562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
11319 .loc 1 5562 10
|
||
11320 017c 05E0 b .L551
|
||
11321 .L543:
|
||
11322 017e 04E0 b .L551
|
||
11323 .L536:
|
||
5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */
|
||
5624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
11324 .loc 1 5624 7
|
||
11325 0180 FB68 ldr r3, [r7, #12]
|
||
11326 0182 1B68 ldr r3, [r3]
|
||
11327 0184 1022 movs r2, #16
|
||
11328 0186 DA61 str r2, [r3, #28]
|
||
5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
|
||
11329 .loc 1 5535 8
|
||
11330 0188 11E0 b .L550
|
||
11331 .L551:
|
||
5562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
11332 .loc 1 5562 10
|
||
11333 018a 00BF nop
|
||
5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
|
||
11334 .loc 1 5535 8
|
||
11335 018c 0FE0 b .L550
|
||
11336 .L534:
|
||
5625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \
|
||
11337 .loc 1 5627 13
|
||
11338 018e BB68 ldr r3, [r7, #8]
|
||
11339 0190 DB08 lsrs r3, r3, #3
|
||
11340 0192 03F00103 and r3, r3, #1
|
||
ARM GAS /tmp/cc5G5cqz.s page 300
|
||
|
||
|
||
11341 .loc 1 5627 11
|
||
11342 0196 002B cmp r3, #0
|
||
11343 0198 09D0 beq .L550
|
||
5628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
|
||
11344 .loc 1 5628 13
|
||
11345 019a 7B68 ldr r3, [r7, #4]
|
||
11346 019c DB08 lsrs r3, r3, #3
|
||
11347 019e 03F00103 and r3, r3, #1
|
||
5627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
|
||
11348 .loc 1 5627 62 discriminator 1
|
||
11349 01a2 002B cmp r3, #0
|
||
11350 01a4 03D0 beq .L550
|
||
5629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags);
|
||
11351 .loc 1 5630 5
|
||
11352 01a6 B968 ldr r1, [r7, #8]
|
||
11353 01a8 F868 ldr r0, [r7, #12]
|
||
11354 01aa FFF7FEFF bl I2C_ITAddrCplt
|
||
11355 .L550:
|
||
5631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
|
||
5635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
5638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
11356 .loc 1 5638 3
|
||
11357 01ae FB68 ldr r3, [r7, #12]
|
||
11358 01b0 0022 movs r2, #0
|
||
11359 01b2 83F84020 strb r2, [r3, #64]
|
||
5639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
11360 .loc 1 5640 10
|
||
11361 01b6 0023 movs r3, #0
|
||
11362 .L532:
|
||
5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
11363 .loc 1 5641 1
|
||
11364 01b8 1846 mov r0, r3
|
||
11365 01ba 2037 adds r7, r7, #32
|
||
11366 .cfi_def_cfa_offset 8
|
||
11367 01bc BD46 mov sp, r7
|
||
11368 .cfi_def_cfa_register 13
|
||
11369 @ sp needed
|
||
11370 01be 80BD pop {r7, pc}
|
||
11371 .cfi_endproc
|
||
11372 .LFE184:
|
||
11374 .section .text.I2C_RequestMemoryWrite,"ax",%progbits
|
||
11375 .align 1
|
||
11376 .syntax unified
|
||
11377 .thumb
|
||
11378 .thumb_func
|
||
11380 I2C_RequestMemoryWrite:
|
||
11381 .LFB185:
|
||
5642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
5644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques
|
||
ARM GAS /tmp/cc5G5cqz.s page 301
|
||
|
||
|
||
5645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
5647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
5648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
|
||
5650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
|
||
5651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
|
||
5652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
|
||
5653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
5654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
5655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
|
||
5656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t
|
||
5657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
|
||
5658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
11382 .loc 1 5658 1
|
||
11383 .cfi_startproc
|
||
11384 @ args = 8, pretend = 0, frame = 16
|
||
11385 @ frame_needed = 1, uses_anonymous_args = 0
|
||
11386 0000 80B5 push {r7, lr}
|
||
11387 .cfi_def_cfa_offset 8
|
||
11388 .cfi_offset 7, -8
|
||
11389 .cfi_offset 14, -4
|
||
11390 0002 86B0 sub sp, sp, #24
|
||
11391 .cfi_def_cfa_offset 32
|
||
11392 0004 02AF add r7, sp, #8
|
||
11393 .cfi_def_cfa 7, 24
|
||
11394 0006 F860 str r0, [r7, #12]
|
||
11395 0008 0846 mov r0, r1
|
||
11396 000a 1146 mov r1, r2
|
||
11397 000c 1A46 mov r2, r3
|
||
11398 000e 0346 mov r3, r0 @ movhi
|
||
11399 0010 7B81 strh r3, [r7, #10] @ movhi
|
||
11400 0012 0B46 mov r3, r1 @ movhi
|
||
11401 0014 3B81 strh r3, [r7, #8] @ movhi
|
||
11402 0016 1346 mov r3, r2 @ movhi
|
||
11403 0018 FB80 strh r3, [r7, #6] @ movhi
|
||
5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
|
||
11404 .loc 1 5659 3
|
||
11405 001a FB88 ldrh r3, [r7, #6] @ movhi
|
||
11406 001c DAB2 uxtb r2, r3
|
||
11407 001e 7989 ldrh r1, [r7, #10]
|
||
11408 0020 204B ldr r3, .L559
|
||
11409 0022 0093 str r3, [sp]
|
||
11410 0024 4FF08073 mov r3, #16777216
|
||
11411 0028 F868 ldr r0, [r7, #12]
|
||
11412 002a FFF7FEFF bl I2C_TransferConfig
|
||
5660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
|
||
5662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
|
||
11413 .loc 1 5662 7
|
||
11414 002e FA69 ldr r2, [r7, #28]
|
||
11415 0030 B969 ldr r1, [r7, #24]
|
||
11416 0032 F868 ldr r0, [r7, #12]
|
||
11417 0034 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
|
||
11418 0038 0346 mov r3, r0
|
||
11419 .loc 1 5662 6 discriminator 1
|
||
11420 003a 002B cmp r3, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 302
|
||
|
||
|
||
11421 003c 01D0 beq .L553
|
||
5663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
11422 .loc 1 5664 12
|
||
11423 003e 0123 movs r3, #1
|
||
11424 0040 2CE0 b .L554
|
||
11425 .L553:
|
||
5665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
|
||
5668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
|
||
11426 .loc 1 5668 6
|
||
11427 0042 FB88 ldrh r3, [r7, #6]
|
||
11428 0044 012B cmp r3, #1
|
||
11429 0046 05D1 bne .L555
|
||
5669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Memory Address */
|
||
5671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
|
||
11430 .loc 1 5671 28
|
||
11431 0048 3B89 ldrh r3, [r7, #8] @ movhi
|
||
11432 004a DAB2 uxtb r2, r3
|
||
11433 .loc 1 5671 9
|
||
11434 004c FB68 ldr r3, [r7, #12]
|
||
11435 004e 1B68 ldr r3, [r3]
|
||
11436 .loc 1 5671 26
|
||
11437 0050 9A62 str r2, [r3, #40]
|
||
11438 0052 15E0 b .L556
|
||
11439 .L555:
|
||
5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
|
||
5674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send MSB of Memory Address */
|
||
5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
|
||
11440 .loc 1 5677 28
|
||
11441 0054 3B89 ldrh r3, [r7, #8]
|
||
11442 0056 1B0A lsrs r3, r3, #8
|
||
11443 0058 9BB2 uxth r3, r3
|
||
11444 005a DAB2 uxtb r2, r3
|
||
11445 .loc 1 5677 9
|
||
11446 005c FB68 ldr r3, [r7, #12]
|
||
11447 005e 1B68 ldr r3, [r3]
|
||
11448 .loc 1 5677 26
|
||
11449 0060 9A62 str r2, [r3, #40]
|
||
5678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
|
||
5680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
|
||
11450 .loc 1 5680 9
|
||
11451 0062 FA69 ldr r2, [r7, #28]
|
||
11452 0064 B969 ldr r1, [r7, #24]
|
||
11453 0066 F868 ldr r0, [r7, #12]
|
||
11454 0068 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
|
||
11455 006c 0346 mov r3, r0
|
||
11456 .loc 1 5680 8 discriminator 1
|
||
11457 006e 002B cmp r3, #0
|
||
11458 0070 01D0 beq .L557
|
||
5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
ARM GAS /tmp/cc5G5cqz.s page 303
|
||
|
||
|
||
5682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
11459 .loc 1 5682 14
|
||
11460 0072 0123 movs r3, #1
|
||
11461 0074 12E0 b .L554
|
||
11462 .L557:
|
||
5683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send LSB of Memory Address */
|
||
5686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
|
||
11463 .loc 1 5686 28
|
||
11464 0076 3B89 ldrh r3, [r7, #8] @ movhi
|
||
11465 0078 DAB2 uxtb r2, r3
|
||
11466 .loc 1 5686 9
|
||
11467 007a FB68 ldr r3, [r7, #12]
|
||
11468 007c 1B68 ldr r3, [r3]
|
||
11469 .loc 1 5686 26
|
||
11470 007e 9A62 str r2, [r3, #40]
|
||
11471 .L556:
|
||
5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
|
||
5690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK)
|
||
11472 .loc 1 5690 7
|
||
11473 0080 FB69 ldr r3, [r7, #28]
|
||
11474 0082 0093 str r3, [sp]
|
||
11475 0084 BB69 ldr r3, [r7, #24]
|
||
11476 0086 0022 movs r2, #0
|
||
11477 0088 8021 movs r1, #128
|
||
11478 008a F868 ldr r0, [r7, #12]
|
||
11479 008c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
11480 0090 0346 mov r3, r0
|
||
11481 .loc 1 5690 6 discriminator 1
|
||
11482 0092 002B cmp r3, #0
|
||
11483 0094 01D0 beq .L558
|
||
5691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
11484 .loc 1 5692 12
|
||
11485 0096 0123 movs r3, #1
|
||
11486 0098 00E0 b .L554
|
||
11487 .L558:
|
||
5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
11488 .loc 1 5695 10
|
||
11489 009a 0023 movs r3, #0
|
||
11490 .L554:
|
||
5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
11491 .loc 1 5696 1
|
||
11492 009c 1846 mov r0, r3
|
||
11493 009e 1037 adds r7, r7, #16
|
||
11494 .cfi_def_cfa_offset 8
|
||
11495 00a0 BD46 mov sp, r7
|
||
11496 .cfi_def_cfa_register 13
|
||
11497 @ sp needed
|
||
11498 00a2 80BD pop {r7, pc}
|
||
11499 .L560:
|
||
11500 .align 2
|
||
ARM GAS /tmp/cc5G5cqz.s page 304
|
||
|
||
|
||
11501 .L559:
|
||
11502 00a4 00200080 .word -2147475456
|
||
11503 .cfi_endproc
|
||
11504 .LFE185:
|
||
11506 .section .text.I2C_RequestMemoryRead,"ax",%progbits
|
||
11507 .align 1
|
||
11508 .syntax unified
|
||
11509 .thumb
|
||
11510 .thumb_func
|
||
11512 I2C_RequestMemoryRead:
|
||
11513 .LFB186:
|
||
5697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
5699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request
|
||
5700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
5701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
5702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
|
||
5703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
|
||
5704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
|
||
5705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
|
||
5706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
|
||
5707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
|
||
5708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
5709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
5710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
|
||
5711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T
|
||
5712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
|
||
5713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
11514 .loc 1 5713 1
|
||
11515 .cfi_startproc
|
||
11516 @ args = 8, pretend = 0, frame = 16
|
||
11517 @ frame_needed = 1, uses_anonymous_args = 0
|
||
11518 0000 80B5 push {r7, lr}
|
||
11519 .cfi_def_cfa_offset 8
|
||
11520 .cfi_offset 7, -8
|
||
11521 .cfi_offset 14, -4
|
||
11522 0002 86B0 sub sp, sp, #24
|
||
11523 .cfi_def_cfa_offset 32
|
||
11524 0004 02AF add r7, sp, #8
|
||
11525 .cfi_def_cfa 7, 24
|
||
11526 0006 F860 str r0, [r7, #12]
|
||
11527 0008 0846 mov r0, r1
|
||
11528 000a 1146 mov r1, r2
|
||
11529 000c 1A46 mov r2, r3
|
||
11530 000e 0346 mov r3, r0 @ movhi
|
||
11531 0010 7B81 strh r3, [r7, #10] @ movhi
|
||
11532 0012 0B46 mov r3, r1 @ movhi
|
||
11533 0014 3B81 strh r3, [r7, #8] @ movhi
|
||
11534 0016 1346 mov r3, r2 @ movhi
|
||
11535 0018 FB80 strh r3, [r7, #6] @ movhi
|
||
5714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
|
||
11536 .loc 1 5714 3
|
||
11537 001a FB88 ldrh r3, [r7, #6] @ movhi
|
||
11538 001c DAB2 uxtb r2, r3
|
||
11539 001e 7989 ldrh r1, [r7, #10]
|
||
11540 0020 204B ldr r3, .L568
|
||
11541 0022 0093 str r3, [sp]
|
||
ARM GAS /tmp/cc5G5cqz.s page 305
|
||
|
||
|
||
11542 0024 0023 movs r3, #0
|
||
11543 0026 F868 ldr r0, [r7, #12]
|
||
11544 0028 FFF7FEFF bl I2C_TransferConfig
|
||
5715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
|
||
5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
|
||
11545 .loc 1 5717 7
|
||
11546 002c FA69 ldr r2, [r7, #28]
|
||
11547 002e B969 ldr r1, [r7, #24]
|
||
11548 0030 F868 ldr r0, [r7, #12]
|
||
11549 0032 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
|
||
11550 0036 0346 mov r3, r0
|
||
11551 .loc 1 5717 6 discriminator 1
|
||
11552 0038 002B cmp r3, #0
|
||
11553 003a 01D0 beq .L562
|
||
5718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
11554 .loc 1 5719 12
|
||
11555 003c 0123 movs r3, #1
|
||
11556 003e 2CE0 b .L563
|
||
11557 .L562:
|
||
5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
|
||
5723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
|
||
11558 .loc 1 5723 6
|
||
11559 0040 FB88 ldrh r3, [r7, #6]
|
||
11560 0042 012B cmp r3, #1
|
||
11561 0044 05D1 bne .L564
|
||
5724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Memory Address */
|
||
5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
|
||
11562 .loc 1 5726 28
|
||
11563 0046 3B89 ldrh r3, [r7, #8] @ movhi
|
||
11564 0048 DAB2 uxtb r2, r3
|
||
11565 .loc 1 5726 9
|
||
11566 004a FB68 ldr r3, [r7, #12]
|
||
11567 004c 1B68 ldr r3, [r3]
|
||
11568 .loc 1 5726 26
|
||
11569 004e 9A62 str r2, [r3, #40]
|
||
11570 0050 15E0 b .L565
|
||
11571 .L564:
|
||
5727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
|
||
5729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send MSB of Memory Address */
|
||
5732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
|
||
11572 .loc 1 5732 28
|
||
11573 0052 3B89 ldrh r3, [r7, #8]
|
||
11574 0054 1B0A lsrs r3, r3, #8
|
||
11575 0056 9BB2 uxth r3, r3
|
||
11576 0058 DAB2 uxtb r2, r3
|
||
11577 .loc 1 5732 9
|
||
11578 005a FB68 ldr r3, [r7, #12]
|
||
11579 005c 1B68 ldr r3, [r3]
|
||
11580 .loc 1 5732 26
|
||
ARM GAS /tmp/cc5G5cqz.s page 306
|
||
|
||
|
||
11581 005e 9A62 str r2, [r3, #40]
|
||
5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
|
||
5735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
|
||
11582 .loc 1 5735 9
|
||
11583 0060 FA69 ldr r2, [r7, #28]
|
||
11584 0062 B969 ldr r1, [r7, #24]
|
||
11585 0064 F868 ldr r0, [r7, #12]
|
||
11586 0066 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
|
||
11587 006a 0346 mov r3, r0
|
||
11588 .loc 1 5735 8 discriminator 1
|
||
11589 006c 002B cmp r3, #0
|
||
11590 006e 01D0 beq .L566
|
||
5736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
11591 .loc 1 5737 14
|
||
11592 0070 0123 movs r3, #1
|
||
11593 0072 12E0 b .L563
|
||
11594 .L566:
|
||
5738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send LSB of Memory Address */
|
||
5741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
|
||
11595 .loc 1 5741 28
|
||
11596 0074 3B89 ldrh r3, [r7, #8] @ movhi
|
||
11597 0076 DAB2 uxtb r2, r3
|
||
11598 .loc 1 5741 9
|
||
11599 0078 FB68 ldr r3, [r7, #12]
|
||
11600 007a 1B68 ldr r3, [r3]
|
||
11601 .loc 1 5741 26
|
||
11602 007c 9A62 str r2, [r3, #40]
|
||
11603 .L565:
|
||
5742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TC flag is set */
|
||
5745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK)
|
||
11604 .loc 1 5745 7
|
||
11605 007e FB69 ldr r3, [r7, #28]
|
||
11606 0080 0093 str r3, [sp]
|
||
11607 0082 BB69 ldr r3, [r7, #24]
|
||
11608 0084 0022 movs r2, #0
|
||
11609 0086 4021 movs r1, #64
|
||
11610 0088 F868 ldr r0, [r7, #12]
|
||
11611 008a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
|
||
11612 008e 0346 mov r3, r0
|
||
11613 .loc 1 5745 6 discriminator 1
|
||
11614 0090 002B cmp r3, #0
|
||
11615 0092 01D0 beq .L567
|
||
5746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
11616 .loc 1 5747 12
|
||
11617 0094 0123 movs r3, #1
|
||
11618 0096 00E0 b .L563
|
||
11619 .L567:
|
||
5748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
ARM GAS /tmp/cc5G5cqz.s page 307
|
||
|
||
|
||
11620 .loc 1 5750 10
|
||
11621 0098 0023 movs r3, #0
|
||
11622 .L563:
|
||
5751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
11623 .loc 1 5751 1
|
||
11624 009a 1846 mov r0, r3
|
||
11625 009c 1037 adds r7, r7, #16
|
||
11626 .cfi_def_cfa_offset 8
|
||
11627 009e BD46 mov sp, r7
|
||
11628 .cfi_def_cfa_register 13
|
||
11629 @ sp needed
|
||
11630 00a0 80BD pop {r7, pc}
|
||
11631 .L569:
|
||
11632 00a2 00BF .align 2
|
||
11633 .L568:
|
||
11634 00a4 00200080 .word -2147475456
|
||
11635 .cfi_endproc
|
||
11636 .LFE186:
|
||
11638 .section .text.I2C_ITAddrCplt,"ax",%progbits
|
||
11639 .align 1
|
||
11640 .syntax unified
|
||
11641 .thumb
|
||
11642 .thumb_func
|
||
11644 I2C_ITAddrCplt:
|
||
11645 .LFB187:
|
||
5752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
5754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Address complete process callback.
|
||
5755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
|
||
5756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
|
||
5757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
5758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
5759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
|
||
5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
11646 .loc 1 5760 1
|
||
11647 .cfi_startproc
|
||
11648 @ args = 0, pretend = 0, frame = 16
|
||
11649 @ frame_needed = 1, uses_anonymous_args = 0
|
||
11650 0000 80B5 push {r7, lr}
|
||
11651 .cfi_def_cfa_offset 8
|
||
11652 .cfi_offset 7, -8
|
||
11653 .cfi_offset 14, -4
|
||
11654 0002 84B0 sub sp, sp, #16
|
||
11655 .cfi_def_cfa_offset 24
|
||
11656 0004 00AF add r7, sp, #0
|
||
11657 .cfi_def_cfa_register 7
|
||
11658 0006 7860 str r0, [r7, #4]
|
||
11659 0008 3960 str r1, [r7]
|
||
5761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection;
|
||
5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t slaveaddrcode;
|
||
5763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd1code;
|
||
5764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd2code;
|
||
5765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
|
||
5767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(ITFlags);
|
||
5768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */
|
||
ARM GAS /tmp/cc5G5cqz.s page 308
|
||
|
||
|
||
5770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
|
||
11660 .loc 1 5770 22
|
||
11661 000a 7B68 ldr r3, [r7, #4]
|
||
11662 000c 93F84130 ldrb r3, [r3, #65]
|
||
11663 0010 DBB2 uxtb r3, r3
|
||
11664 .loc 1 5770 30
|
||
11665 0012 03F02803 and r3, r3, #40
|
||
11666 .loc 1 5770 6
|
||
11667 0016 282B cmp r3, #40
|
||
11668 0018 6AD1 bne .L571
|
||
5771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c);
|
||
11669 .loc 1 5772 25
|
||
11670 001a 7B68 ldr r3, [r7, #4]
|
||
11671 001c 1B68 ldr r3, [r3]
|
||
11672 001e 9B69 ldr r3, [r3, #24]
|
||
11673 0020 1B0C lsrs r3, r3, #16
|
||
11674 0022 DBB2 uxtb r3, r3
|
||
11675 .loc 1 5772 23
|
||
11676 0024 03F00103 and r3, r3, #1
|
||
11677 0028 FB73 strb r3, [r7, #15]
|
||
5773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
|
||
11678 .loc 1 5773 25
|
||
11679 002a 7B68 ldr r3, [r7, #4]
|
||
11680 002c 1B68 ldr r3, [r3]
|
||
11681 002e 9B69 ldr r3, [r3, #24]
|
||
11682 0030 1B0C lsrs r3, r3, #16
|
||
11683 0032 9BB2 uxth r3, r3
|
||
11684 .loc 1 5773 23
|
||
11685 0034 03F0FE03 and r3, r3, #254
|
||
11686 0038 BB81 strh r3, [r7, #12] @ movhi
|
||
5774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
|
||
11687 .loc 1 5774 25
|
||
11688 003a 7B68 ldr r3, [r7, #4]
|
||
11689 003c 1B68 ldr r3, [r3]
|
||
11690 003e 9B68 ldr r3, [r3, #8]
|
||
11691 0040 9BB2 uxth r3, r3
|
||
11692 .loc 1 5774 23
|
||
11693 0042 C3F30903 ubfx r3, r3, #0, #10
|
||
11694 0046 7B81 strh r3, [r7, #10] @ movhi
|
||
5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
|
||
11695 .loc 1 5775 25
|
||
11696 0048 7B68 ldr r3, [r7, #4]
|
||
11697 004a 1B68 ldr r3, [r3]
|
||
11698 004c DB68 ldr r3, [r3, #12]
|
||
11699 004e 9BB2 uxth r3, r3
|
||
11700 .loc 1 5775 23
|
||
11701 0050 03F0FE03 and r3, r3, #254
|
||
11702 0054 3B81 strh r3, [r7, #8] @ movhi
|
||
5776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If 10bits addressing mode is selected */
|
||
5778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
|
||
11703 .loc 1 5778 19
|
||
11704 0056 7B68 ldr r3, [r7, #4]
|
||
11705 0058 DB68 ldr r3, [r3, #12]
|
||
11706 .loc 1 5778 8
|
||
11707 005a 022B cmp r3, #2
|
||
ARM GAS /tmp/cc5G5cqz.s page 309
|
||
|
||
|
||
11708 005c 38D1 bne .L572
|
||
5779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK))
|
||
11709 .loc 1 5780 44
|
||
11710 005e 7B89 ldrh r3, [r7, #10]
|
||
11711 0060 DB09 lsrs r3, r3, #7
|
||
11712 0062 9AB2 uxth r2, r3
|
||
11713 0064 BB89 ldrh r3, [r7, #12] @ movhi
|
||
11714 0066 5340 eors r3, r3, r2
|
||
11715 0068 9BB2 uxth r3, r3
|
||
11716 006a 03F00603 and r3, r3, #6
|
||
11717 .loc 1 5780 10
|
||
11718 006e 002B cmp r3, #0
|
||
11719 0070 1CD1 bne .L573
|
||
5781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = ownadd1code;
|
||
11720 .loc 1 5782 23
|
||
11721 0072 7B89 ldrh r3, [r7, #10] @ movhi
|
||
11722 0074 BB81 strh r3, [r7, #12] @ movhi
|
||
5783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount++;
|
||
11723 .loc 1 5783 13
|
||
11724 0076 7B68 ldr r3, [r7, #4]
|
||
11725 0078 9B6C ldr r3, [r3, #72]
|
||
11726 .loc 1 5783 29
|
||
11727 007a 5A1C adds r2, r3, #1
|
||
11728 007c 7B68 ldr r3, [r7, #4]
|
||
11729 007e 9A64 str r2, [r3, #72]
|
||
5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
|
||
11730 .loc 1 5784 17
|
||
11731 0080 7B68 ldr r3, [r7, #4]
|
||
11732 0082 9B6C ldr r3, [r3, #72]
|
||
11733 .loc 1 5784 12
|
||
11734 0084 022B cmp r3, #2
|
||
11735 0086 3BD1 bne .L575
|
||
5785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Address Event counter */
|
||
5787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount = 0U;
|
||
11736 .loc 1 5787 32
|
||
11737 0088 7B68 ldr r3, [r7, #4]
|
||
11738 008a 0022 movs r2, #0
|
||
11739 008c 9A64 str r2, [r3, #72]
|
||
5788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
|
||
5790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
|
||
11740 .loc 1 5790 11
|
||
11741 008e 7B68 ldr r3, [r7, #4]
|
||
11742 0090 1B68 ldr r3, [r3]
|
||
11743 0092 0822 movs r2, #8
|
||
11744 0094 DA61 str r2, [r3, #28]
|
||
5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
5793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
11745 .loc 1 5793 11
|
||
11746 0096 7B68 ldr r3, [r7, #4]
|
||
11747 0098 0022 movs r2, #0
|
||
11748 009a 83F84020 strb r2, [r3, #64]
|
||
5794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 310
|
||
|
||
|
||
5795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
|
||
5796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
5797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
|
||
5798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
5799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
|
||
11749 .loc 1 5799 11
|
||
11750 009e BA89 ldrh r2, [r7, #12]
|
||
11751 00a0 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
11752 00a2 1946 mov r1, r3
|
||
11753 00a4 7868 ldr r0, [r7, #4]
|
||
11754 00a6 FFF7FEFF bl HAL_I2C_AddrCallback
|
||
5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
5801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = ownadd2code;
|
||
5806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR Interrupts */
|
||
5808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
|
||
5809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
5811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
|
||
5814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
|
||
5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
5817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
|
||
5818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
5819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */
|
||
5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR Interrupts */
|
||
5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
|
||
5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
5828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
5829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
|
||
5831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
5832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
|
||
5833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
5834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
|
||
5835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
5836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Else clear address flag only */
|
||
5839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
|
||
5842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
|
||
5843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
5845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
ARM GAS /tmp/cc5G5cqz.s page 311
|
||
|
||
|
||
5846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
11755 .loc 1 5847 1
|
||
11756 00aa 29E0 b .L575
|
||
11757 .L573:
|
||
5805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
11758 .loc 1 5805 23
|
||
11759 00ac 3B89 ldrh r3, [r7, #8] @ movhi
|
||
11760 00ae BB81 strh r3, [r7, #12] @ movhi
|
||
5808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
11761 .loc 1 5808 9
|
||
11762 00b0 4FF40041 mov r1, #32768
|
||
11763 00b4 7868 ldr r0, [r7, #4]
|
||
11764 00b6 FFF7FEFF bl I2C_Disable_IRQ
|
||
5811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
11765 .loc 1 5811 9
|
||
11766 00ba 7B68 ldr r3, [r7, #4]
|
||
11767 00bc 0022 movs r2, #0
|
||
11768 00be 83F84020 strb r2, [r3, #64]
|
||
5817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
11769 .loc 1 5817 9
|
||
11770 00c2 BA89 ldrh r2, [r7, #12]
|
||
11771 00c4 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
11772 00c6 1946 mov r1, r3
|
||
11773 00c8 7868 ldr r0, [r7, #4]
|
||
11774 00ca FFF7FEFF bl HAL_I2C_AddrCallback
|
||
11775 .loc 1 5847 1
|
||
11776 00ce 17E0 b .L575
|
||
11777 .L572:
|
||
5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
11778 .loc 1 5825 7
|
||
11779 00d0 4FF40041 mov r1, #32768
|
||
11780 00d4 7868 ldr r0, [r7, #4]
|
||
11781 00d6 FFF7FEFF bl I2C_Disable_IRQ
|
||
5828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
11782 .loc 1 5828 7
|
||
11783 00da 7B68 ldr r3, [r7, #4]
|
||
11784 00dc 0022 movs r2, #0
|
||
11785 00de 83F84020 strb r2, [r3, #64]
|
||
5834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
11786 .loc 1 5834 7
|
||
11787 00e2 BA89 ldrh r2, [r7, #12]
|
||
11788 00e4 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
11789 00e6 1946 mov r1, r3
|
||
11790 00e8 7868 ldr r0, [r7, #4]
|
||
11791 00ea FFF7FEFF bl HAL_I2C_AddrCallback
|
||
11792 .loc 1 5847 1
|
||
11793 00ee 07E0 b .L575
|
||
11794 .L571:
|
||
5842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
11795 .loc 1 5842 5
|
||
11796 00f0 7B68 ldr r3, [r7, #4]
|
||
11797 00f2 1B68 ldr r3, [r3]
|
||
11798 00f4 0822 movs r2, #8
|
||
11799 00f6 DA61 str r2, [r3, #28]
|
||
5845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
11800 .loc 1 5845 5
|
||
ARM GAS /tmp/cc5G5cqz.s page 312
|
||
|
||
|
||
11801 00f8 7B68 ldr r3, [r7, #4]
|
||
11802 00fa 0022 movs r2, #0
|
||
11803 00fc 83F84020 strb r2, [r3, #64]
|
||
11804 .L575:
|
||
11805 .loc 1 5847 1
|
||
11806 0100 00BF nop
|
||
11807 0102 1037 adds r7, r7, #16
|
||
11808 .cfi_def_cfa_offset 8
|
||
11809 0104 BD46 mov sp, r7
|
||
11810 .cfi_def_cfa_register 13
|
||
11811 @ sp needed
|
||
11812 0106 80BD pop {r7, pc}
|
||
11813 .cfi_endproc
|
||
11814 .LFE187:
|
||
11816 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits
|
||
11817 .align 1
|
||
11818 .syntax unified
|
||
11819 .thumb
|
||
11820 .thumb_func
|
||
11822 I2C_ITMasterSeqCplt:
|
||
11823 .LFB188:
|
||
5848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
5850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Master sequential complete process.
|
||
5851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
|
||
5852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
5853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
5854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c)
|
||
5855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
11824 .loc 1 5855 1
|
||
11825 .cfi_startproc
|
||
11826 @ args = 0, pretend = 0, frame = 8
|
||
11827 @ frame_needed = 1, uses_anonymous_args = 0
|
||
11828 0000 80B5 push {r7, lr}
|
||
11829 .cfi_def_cfa_offset 8
|
||
11830 .cfi_offset 7, -8
|
||
11831 .cfi_offset 14, -4
|
||
11832 0002 82B0 sub sp, sp, #8
|
||
11833 .cfi_def_cfa_offset 16
|
||
11834 0004 00AF add r7, sp, #0
|
||
11835 .cfi_def_cfa_register 7
|
||
11836 0006 7860 str r0, [r7, #4]
|
||
5856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */
|
||
5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
11837 .loc 1 5857 14
|
||
11838 0008 7B68 ldr r3, [r7, #4]
|
||
11839 000a 0022 movs r2, #0
|
||
11840 000c 83F84220 strb r2, [r3, #66]
|
||
5858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */
|
||
5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */
|
||
5861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
|
||
11841 .loc 1 5861 11
|
||
11842 0010 7B68 ldr r3, [r7, #4]
|
||
11843 0012 93F84130 ldrb r3, [r3, #65]
|
||
11844 0016 DBB2 uxtb r3, r3
|
||
11845 .loc 1 5861 6
|
||
ARM GAS /tmp/cc5G5cqz.s page 313
|
||
|
||
|
||
11846 0018 212B cmp r3, #33
|
||
11847 001a 15D1 bne .L577
|
||
5862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
11848 .loc 1 5863 25
|
||
11849 001c 7B68 ldr r3, [r7, #4]
|
||
11850 001e 2022 movs r2, #32
|
||
11851 0020 83F84120 strb r2, [r3, #65]
|
||
5864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
|
||
11852 .loc 1 5864 25
|
||
11853 0024 7B68 ldr r3, [r7, #4]
|
||
11854 0026 1122 movs r2, #17
|
||
11855 0028 1A63 str r2, [r3, #48]
|
||
5865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
|
||
11856 .loc 1 5865 25
|
||
11857 002a 7B68 ldr r3, [r7, #4]
|
||
11858 002c 0022 movs r2, #0
|
||
11859 002e 5A63 str r2, [r3, #52]
|
||
5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
|
||
5868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
11860 .loc 1 5868 5
|
||
11861 0030 0121 movs r1, #1
|
||
11862 0032 7868 ldr r0, [r7, #4]
|
||
11863 0034 FFF7FEFF bl I2C_Disable_IRQ
|
||
5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
5871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
11864 .loc 1 5871 5
|
||
11865 0038 7B68 ldr r3, [r7, #4]
|
||
11866 003a 0022 movs r2, #0
|
||
11867 003c 83F84020 strb r2, [r3, #64]
|
||
5872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
5874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
|
||
5876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
5877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
|
||
11868 .loc 1 5877 5
|
||
11869 0040 7868 ldr r0, [r7, #4]
|
||
11870 0042 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
|
||
5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
5879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
|
||
5881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
|
||
5885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
|
||
5886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
|
||
5888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
|
||
5889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
5891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
5892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
ARM GAS /tmp/cc5G5cqz.s page 314
|
||
|
||
|
||
5894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
5895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
|
||
5896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
5897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
|
||
5898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
5899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
11871 .loc 1 5900 1
|
||
11872 0046 14E0 b .L579
|
||
11873 .L577:
|
||
5883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
|
||
11874 .loc 1 5883 25
|
||
11875 0048 7B68 ldr r3, [r7, #4]
|
||
11876 004a 2022 movs r2, #32
|
||
11877 004c 83F84120 strb r2, [r3, #65]
|
||
5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
|
||
11878 .loc 1 5884 25
|
||
11879 0050 7B68 ldr r3, [r7, #4]
|
||
11880 0052 1222 movs r2, #18
|
||
11881 0054 1A63 str r2, [r3, #48]
|
||
5885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
11882 .loc 1 5885 25
|
||
11883 0056 7B68 ldr r3, [r7, #4]
|
||
11884 0058 0022 movs r2, #0
|
||
11885 005a 5A63 str r2, [r3, #52]
|
||
5888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
11886 .loc 1 5888 5
|
||
11887 005c 0221 movs r1, #2
|
||
11888 005e 7868 ldr r0, [r7, #4]
|
||
11889 0060 FFF7FEFF bl I2C_Disable_IRQ
|
||
5891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
11890 .loc 1 5891 5
|
||
11891 0064 7B68 ldr r3, [r7, #4]
|
||
11892 0066 0022 movs r2, #0
|
||
11893 0068 83F84020 strb r2, [r3, #64]
|
||
5897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
11894 .loc 1 5897 5
|
||
11895 006c 7868 ldr r0, [r7, #4]
|
||
11896 006e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
|
||
11897 .L579:
|
||
11898 .loc 1 5900 1
|
||
11899 0072 00BF nop
|
||
11900 0074 0837 adds r7, r7, #8
|
||
11901 .cfi_def_cfa_offset 8
|
||
11902 0076 BD46 mov sp, r7
|
||
11903 .cfi_def_cfa_register 13
|
||
11904 @ sp needed
|
||
11905 0078 80BD pop {r7, pc}
|
||
11906 .cfi_endproc
|
||
11907 .LFE188:
|
||
11909 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits
|
||
11910 .align 1
|
||
11911 .syntax unified
|
||
11912 .thumb
|
||
11913 .thumb_func
|
||
11915 I2C_ITSlaveSeqCplt:
|
||
11916 .LFB189:
|
||
ARM GAS /tmp/cc5G5cqz.s page 315
|
||
|
||
|
||
5901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
5903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Slave sequential complete process.
|
||
5904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
|
||
5905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
5906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
5907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c)
|
||
5908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
11917 .loc 1 5908 1
|
||
11918 .cfi_startproc
|
||
11919 @ args = 0, pretend = 0, frame = 16
|
||
11920 @ frame_needed = 1, uses_anonymous_args = 0
|
||
11921 0000 80B5 push {r7, lr}
|
||
11922 .cfi_def_cfa_offset 8
|
||
11923 .cfi_offset 7, -8
|
||
11924 .cfi_offset 14, -4
|
||
11925 0002 84B0 sub sp, sp, #16
|
||
11926 .cfi_def_cfa_offset 24
|
||
11927 0004 00AF add r7, sp, #0
|
||
11928 .cfi_def_cfa_register 7
|
||
11929 0006 7860 str r0, [r7, #4]
|
||
5909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
|
||
11930 .loc 1 5909 26
|
||
11931 0008 7B68 ldr r3, [r7, #4]
|
||
11932 000a 1B68 ldr r3, [r3]
|
||
11933 .loc 1 5909 12
|
||
11934 000c 1B68 ldr r3, [r3]
|
||
11935 000e FB60 str r3, [r7, #12]
|
||
5910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */
|
||
5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
11936 .loc 1 5912 14
|
||
11937 0010 7B68 ldr r3, [r7, #4]
|
||
11938 0012 0022 movs r2, #0
|
||
11939 0014 83F84220 strb r2, [r3, #66]
|
||
5913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
|
||
5915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
|
||
11940 .loc 1 5915 7
|
||
11941 0018 FB68 ldr r3, [r7, #12]
|
||
11942 001a 9B0B lsrs r3, r3, #14
|
||
11943 001c 03F00103 and r3, r3, #1
|
||
11944 .loc 1 5915 6
|
||
11945 0020 002B cmp r3, #0
|
||
11946 0022 08D0 beq .L581
|
||
5916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
|
||
5918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
|
||
11947 .loc 1 5918 9
|
||
11948 0024 7B68 ldr r3, [r7, #4]
|
||
11949 0026 1B68 ldr r3, [r3]
|
||
11950 .loc 1 5918 19
|
||
11951 0028 1A68 ldr r2, [r3]
|
||
11952 .loc 1 5918 9
|
||
11953 002a 7B68 ldr r3, [r7, #4]
|
||
11954 002c 1B68 ldr r3, [r3]
|
||
11955 .loc 1 5918 25
|
||
ARM GAS /tmp/cc5G5cqz.s page 316
|
||
|
||
|
||
11956 002e 22F48042 bic r2, r2, #16384
|
||
11957 0032 1A60 str r2, [r3]
|
||
11958 0034 0DE0 b .L582
|
||
11959 .L581:
|
||
5919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
|
||
11960 .loc 1 5920 12
|
||
11961 0036 FB68 ldr r3, [r7, #12]
|
||
11962 0038 DB0B lsrs r3, r3, #15
|
||
11963 003a 03F00103 and r3, r3, #1
|
||
11964 .loc 1 5920 11
|
||
11965 003e 002B cmp r3, #0
|
||
11966 0040 07D0 beq .L582
|
||
5921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
|
||
5923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
|
||
11967 .loc 1 5923 9
|
||
11968 0042 7B68 ldr r3, [r7, #4]
|
||
11969 0044 1B68 ldr r3, [r3]
|
||
11970 .loc 1 5923 19
|
||
11971 0046 1A68 ldr r2, [r3]
|
||
11972 .loc 1 5923 9
|
||
11973 0048 7B68 ldr r3, [r7, #4]
|
||
11974 004a 1B68 ldr r3, [r3]
|
||
11975 .loc 1 5923 25
|
||
11976 004c 22F40042 bic r2, r2, #32768
|
||
11977 0050 1A60 str r2, [r3]
|
||
11978 .L582:
|
||
5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
|
||
5928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
|
||
11979 .loc 1 5930 11
|
||
11980 0052 7B68 ldr r3, [r7, #4]
|
||
11981 0054 93F84130 ldrb r3, [r3, #65]
|
||
11982 0058 DBB2 uxtb r3, r3
|
||
11983 .loc 1 5930 6
|
||
11984 005a 292B cmp r3, #41
|
||
11985 005c 12D1 bne .L583
|
||
5931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */
|
||
5933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
|
||
11986 .loc 1 5933 25
|
||
11987 005e 7B68 ldr r3, [r7, #4]
|
||
11988 0060 2822 movs r2, #40
|
||
11989 0062 83F84120 strb r2, [r3, #65]
|
||
5934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
|
||
11990 .loc 1 5934 25
|
||
11991 0066 7B68 ldr r3, [r7, #4]
|
||
11992 0068 2122 movs r2, #33
|
||
11993 006a 1A63 str r2, [r3, #48]
|
||
5935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
|
||
5937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
ARM GAS /tmp/cc5G5cqz.s page 317
|
||
|
||
|
||
11994 .loc 1 5937 5
|
||
11995 006c 0121 movs r1, #1
|
||
11996 006e 7868 ldr r0, [r7, #4]
|
||
11997 0070 FFF7FEFF bl I2C_Disable_IRQ
|
||
5938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
5940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
11998 .loc 1 5940 5
|
||
11999 0074 7B68 ldr r3, [r7, #4]
|
||
12000 0076 0022 movs r2, #0
|
||
12001 0078 83F84020 strb r2, [r3, #64]
|
||
5941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
5944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
|
||
5945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
|
||
12002 .loc 1 5946 5
|
||
12003 007c 7868 ldr r0, [r7, #4]
|
||
12004 007e FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
|
||
5947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
5948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
|
||
5951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */
|
||
5953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
|
||
5954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
|
||
5955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
|
||
5957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
|
||
5958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
5960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
5961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
5963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
5964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
|
||
5965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
5966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
|
||
5967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
5970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
|
||
5972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
12005 .loc 1 5973 1
|
||
12006 0082 17E0 b .L585
|
||
12007 .L583:
|
||
5950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12008 .loc 1 5950 16
|
||
12009 0084 7B68 ldr r3, [r7, #4]
|
||
12010 0086 93F84130 ldrb r3, [r3, #65]
|
||
12011 008a DBB2 uxtb r3, r3
|
||
5950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12012 .loc 1 5950 11
|
||
ARM GAS /tmp/cc5G5cqz.s page 318
|
||
|
||
|
||
12013 008c 2A2B cmp r3, #42
|
||
12014 008e 11D1 bne .L585
|
||
5953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
|
||
12015 .loc 1 5953 25
|
||
12016 0090 7B68 ldr r3, [r7, #4]
|
||
12017 0092 2822 movs r2, #40
|
||
12018 0094 83F84120 strb r2, [r3, #65]
|
||
5954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12019 .loc 1 5954 25
|
||
12020 0098 7B68 ldr r3, [r7, #4]
|
||
12021 009a 2222 movs r2, #34
|
||
12022 009c 1A63 str r2, [r3, #48]
|
||
5957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12023 .loc 1 5957 5
|
||
12024 009e 0221 movs r1, #2
|
||
12025 00a0 7868 ldr r0, [r7, #4]
|
||
12026 00a2 FFF7FEFF bl I2C_Disable_IRQ
|
||
5960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12027 .loc 1 5960 5
|
||
12028 00a6 7B68 ldr r3, [r7, #4]
|
||
12029 00a8 0022 movs r2, #0
|
||
12030 00aa 83F84020 strb r2, [r3, #64]
|
||
5966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
12031 .loc 1 5966 5
|
||
12032 00ae 7868 ldr r0, [r7, #4]
|
||
12033 00b0 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
|
||
12034 .L585:
|
||
12035 .loc 1 5973 1
|
||
12036 00b4 00BF nop
|
||
12037 00b6 1037 adds r7, r7, #16
|
||
12038 .cfi_def_cfa_offset 8
|
||
12039 00b8 BD46 mov sp, r7
|
||
12040 .cfi_def_cfa_register 13
|
||
12041 @ sp needed
|
||
12042 00ba 80BD pop {r7, pc}
|
||
12043 .cfi_endproc
|
||
12044 .LFE189:
|
||
12046 .section .text.I2C_ITMasterCplt,"ax",%progbits
|
||
12047 .align 1
|
||
12048 .syntax unified
|
||
12049 .thumb
|
||
12050 .thumb_func
|
||
12052 I2C_ITMasterCplt:
|
||
12053 .LFB190:
|
||
5974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Master complete process.
|
||
5977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
|
||
5978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
|
||
5979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
5980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
5981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
|
||
5982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12054 .loc 1 5982 1
|
||
12055 .cfi_startproc
|
||
12056 @ args = 0, pretend = 0, frame = 24
|
||
12057 @ frame_needed = 1, uses_anonymous_args = 0
|
||
ARM GAS /tmp/cc5G5cqz.s page 319
|
||
|
||
|
||
12058 0000 80B5 push {r7, lr}
|
||
12059 .cfi_def_cfa_offset 8
|
||
12060 .cfi_offset 7, -8
|
||
12061 .cfi_offset 14, -4
|
||
12062 0002 86B0 sub sp, sp, #24
|
||
12063 .cfi_def_cfa_offset 32
|
||
12064 0004 00AF add r7, sp, #0
|
||
12065 .cfi_def_cfa_register 7
|
||
12066 0006 7860 str r0, [r7, #4]
|
||
12067 0008 3960 str r1, [r7]
|
||
5983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
|
||
5984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
|
||
12068 .loc 1 5984 12
|
||
12069 000a 3B68 ldr r3, [r7]
|
||
12070 000c 7B61 str r3, [r7, #20]
|
||
5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t tmpreg;
|
||
5986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
|
||
5988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
12071 .loc 1 5988 3
|
||
12072 000e 7B68 ldr r3, [r7, #4]
|
||
12073 0010 1B68 ldr r3, [r3]
|
||
12074 0012 2022 movs r2, #32
|
||
12075 0014 DA61 str r2, [r3, #28]
|
||
5989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
5990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
|
||
5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
|
||
12076 .loc 1 5991 11
|
||
12077 0016 7B68 ldr r3, [r7, #4]
|
||
12078 0018 93F84130 ldrb r3, [r3, #65]
|
||
12079 001c DBB2 uxtb r3, r3
|
||
12080 .loc 1 5991 6
|
||
12081 001e 212B cmp r3, #33
|
||
12082 0020 07D1 bne .L587
|
||
5992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
5993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
|
||
12083 .loc 1 5993 5
|
||
12084 0022 0121 movs r1, #1
|
||
12085 0024 7868 ldr r0, [r7, #4]
|
||
12086 0026 FFF7FEFF bl I2C_Disable_IRQ
|
||
5994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
|
||
12087 .loc 1 5994 25
|
||
12088 002a 7B68 ldr r3, [r7, #4]
|
||
12089 002c 1122 movs r2, #17
|
||
12090 002e 1A63 str r2, [r3, #48]
|
||
12091 0030 0CE0 b .L588
|
||
12092 .L587:
|
||
5995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
5996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
|
||
12093 .loc 1 5996 16
|
||
12094 0032 7B68 ldr r3, [r7, #4]
|
||
12095 0034 93F84130 ldrb r3, [r3, #65]
|
||
12096 0038 DBB2 uxtb r3, r3
|
||
12097 .loc 1 5996 11
|
||
12098 003a 222B cmp r3, #34
|
||
12099 003c 06D1 bne .L588
|
||
5997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
ARM GAS /tmp/cc5G5cqz.s page 320
|
||
|
||
|
||
5998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
|
||
12100 .loc 1 5998 5
|
||
12101 003e 0221 movs r1, #2
|
||
12102 0040 7868 ldr r0, [r7, #4]
|
||
12103 0042 FFF7FEFF bl I2C_Disable_IRQ
|
||
5999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
|
||
12104 .loc 1 5999 25
|
||
12105 0046 7B68 ldr r3, [r7, #4]
|
||
12106 0048 1222 movs r2, #18
|
||
12107 004a 1A63 str r2, [r3, #48]
|
||
12108 .L588:
|
||
6000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
|
||
6004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
|
||
6007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
|
||
12109 .loc 1 6007 3
|
||
12110 004c 7B68 ldr r3, [r7, #4]
|
||
12111 004e 1B68 ldr r3, [r3]
|
||
12112 0050 5968 ldr r1, [r3, #4]
|
||
12113 0052 7B68 ldr r3, [r7, #4]
|
||
12114 0054 1A68 ldr r2, [r3]
|
||
12115 0056 4D4B ldr r3, .L598
|
||
12116 0058 0B40 ands r3, r3, r1
|
||
12117 005a 5360 str r3, [r2, #4]
|
||
6008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
|
||
6010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
|
||
12118 .loc 1 6010 23
|
||
12119 005c 7B68 ldr r3, [r7, #4]
|
||
12120 005e 0022 movs r2, #0
|
||
12121 0060 5A63 str r2, [r3, #52]
|
||
6011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
12122 .loc 1 6011 23
|
||
12123 0062 7B68 ldr r3, [r7, #4]
|
||
12124 0064 4A4A ldr r2, .L598+4
|
||
12125 0066 DA62 str r2, [r3, #44]
|
||
6012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET)
|
||
12126 .loc 1 6013 7
|
||
12127 0068 7B69 ldr r3, [r7, #20]
|
||
12128 006a 1B09 lsrs r3, r3, #4
|
||
12129 006c 03F00103 and r3, r3, #1
|
||
12130 .loc 1 6013 6
|
||
12131 0070 002B cmp r3, #0
|
||
12132 0072 09D0 beq .L589
|
||
6014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
|
||
6016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
12133 .loc 1 6016 5
|
||
12134 0074 7B68 ldr r3, [r7, #4]
|
||
12135 0076 1B68 ldr r3, [r3]
|
||
12136 0078 1022 movs r2, #16
|
||
12137 007a DA61 str r2, [r3, #28]
|
||
ARM GAS /tmp/cc5G5cqz.s page 321
|
||
|
||
|
||
6017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set acknowledge error code */
|
||
6019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
|
||
12138 .loc 1 6019 9
|
||
12139 007c 7B68 ldr r3, [r7, #4]
|
||
12140 007e 5B6C ldr r3, [r3, #68]
|
||
12141 .loc 1 6019 21
|
||
12142 0080 43F00402 orr r2, r3, #4
|
||
12143 0084 7B68 ldr r3, [r7, #4]
|
||
12144 0086 5A64 str r2, [r3, #68]
|
||
12145 .L589:
|
||
6020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Fetch Last receive data if any */
|
||
6023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET))
|
||
12146 .loc 1 6023 12
|
||
12147 0088 7B68 ldr r3, [r7, #4]
|
||
12148 008a 93F84130 ldrb r3, [r3, #65]
|
||
12149 008e DBB2 uxtb r3, r3
|
||
12150 .loc 1 6023 6
|
||
12151 0090 602B cmp r3, #96
|
||
12152 0092 0BD1 bne .L590
|
||
12153 .loc 1 6023 48 discriminator 1
|
||
12154 0094 7B69 ldr r3, [r7, #20]
|
||
12155 0096 9B08 lsrs r3, r3, #2
|
||
12156 0098 03F00103 and r3, r3, #1
|
||
12157 .loc 1 6023 44 discriminator 1
|
||
12158 009c 002B cmp r3, #0
|
||
12159 009e 05D0 beq .L590
|
||
6024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
|
||
6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR;
|
||
12160 .loc 1 6026 27
|
||
12161 00a0 7B68 ldr r3, [r7, #4]
|
||
12162 00a2 1B68 ldr r3, [r3]
|
||
12163 .loc 1 6026 37
|
||
12164 00a4 5B6A ldr r3, [r3, #36]
|
||
12165 .loc 1 6026 14
|
||
12166 00a6 DBB2 uxtb r3, r3
|
||
12167 .loc 1 6026 12
|
||
12168 00a8 FB60 str r3, [r7, #12]
|
||
6027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg);
|
||
12169 .loc 1 6027 5
|
||
12170 00aa FB68 ldr r3, [r7, #12]
|
||
12171 .L590:
|
||
6028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
|
||
6031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
|
||
12172 .loc 1 6031 3
|
||
12173 00ac 7868 ldr r0, [r7, #4]
|
||
12174 00ae FFF7FEFF bl I2C_Flush_TXDR
|
||
6032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
|
||
6034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
|
||
12175 .loc 1 6034 12
|
||
12176 00b2 7B68 ldr r3, [r7, #4]
|
||
ARM GAS /tmp/cc5G5cqz.s page 322
|
||
|
||
|
||
12177 00b4 5B6C ldr r3, [r3, #68]
|
||
12178 00b6 3B61 str r3, [r7, #16]
|
||
6035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE))
|
||
12179 .loc 1 6037 12
|
||
12180 00b8 7B68 ldr r3, [r7, #4]
|
||
12181 00ba 93F84130 ldrb r3, [r3, #65]
|
||
12182 00be DBB2 uxtb r3, r3
|
||
12183 .loc 1 6037 6
|
||
12184 00c0 602B cmp r3, #96
|
||
12185 00c2 02D0 beq .L591
|
||
12186 .loc 1 6037 44 discriminator 1
|
||
12187 00c4 3B69 ldr r3, [r7, #16]
|
||
12188 00c6 002B cmp r3, #0
|
||
12189 00c8 06D0 beq .L592
|
||
12190 .L591:
|
||
6038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
|
||
12191 .loc 1 6040 27
|
||
12192 00ca 7B68 ldr r3, [r7, #4]
|
||
12193 00cc 5B6C ldr r3, [r3, #68]
|
||
12194 .loc 1 6040 5
|
||
12195 00ce 1946 mov r1, r3
|
||
12196 00d0 7868 ldr r0, [r7, #4]
|
||
12197 00d2 FFF7FEFF bl I2C_ITError
|
||
6041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */
|
||
6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
|
||
6044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
6046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
|
||
6049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
6051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
6057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c);
|
||
6058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c);
|
||
6060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
6065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
ARM GAS /tmp/cc5G5cqz.s page 323
|
||
|
||
|
||
6071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
|
||
6072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
6073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
|
||
6074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
6075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
|
||
6078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
|
||
6079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
6081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
|
||
6084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
6086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
6092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c);
|
||
6093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
6094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c);
|
||
6095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
6096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
6100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
6106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
|
||
6107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
6108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
|
||
6109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
|
||
6115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
12198 .loc 1 6116 1
|
||
12199 00d6 54E0 b .L597
|
||
12200 .L592:
|
||
6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12201 .loc 1 6043 16
|
||
12202 00d8 7B68 ldr r3, [r7, #4]
|
||
12203 00da 93F84130 ldrb r3, [r3, #65]
|
||
12204 00de DBB2 uxtb r3, r3
|
||
6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12205 .loc 1 6043 11
|
||
12206 00e0 212B cmp r3, #33
|
||
ARM GAS /tmp/cc5G5cqz.s page 324
|
||
|
||
|
||
12207 00e2 24D1 bne .L594
|
||
6045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
12208 .loc 1 6045 17
|
||
12209 00e4 7B68 ldr r3, [r7, #4]
|
||
12210 00e6 2022 movs r2, #32
|
||
12211 00e8 83F84120 strb r2, [r3, #65]
|
||
6046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12212 .loc 1 6046 25
|
||
12213 00ec 7B68 ldr r3, [r7, #4]
|
||
12214 00ee 0022 movs r2, #0
|
||
12215 00f0 1A63 str r2, [r3, #48]
|
||
6048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12216 .loc 1 6048 13
|
||
12217 00f2 7B68 ldr r3, [r7, #4]
|
||
12218 00f4 93F84230 ldrb r3, [r3, #66]
|
||
12219 00f8 DBB2 uxtb r3, r3
|
||
6048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12220 .loc 1 6048 8
|
||
12221 00fa 402B cmp r3, #64
|
||
12222 00fc 0BD1 bne .L595
|
||
6050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12223 .loc 1 6050 18
|
||
12224 00fe 7B68 ldr r3, [r7, #4]
|
||
12225 0100 0022 movs r2, #0
|
||
12226 0102 83F84220 strb r2, [r3, #66]
|
||
6053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12227 .loc 1 6053 7
|
||
12228 0106 7B68 ldr r3, [r7, #4]
|
||
12229 0108 0022 movs r2, #0
|
||
12230 010a 83F84020 strb r2, [r3, #64]
|
||
6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
12231 .loc 1 6059 7
|
||
12232 010e 7868 ldr r0, [r7, #4]
|
||
12233 0110 FFF7FEFF bl HAL_I2C_MemTxCpltCallback
|
||
12234 .loc 1 6116 1
|
||
12235 0114 35E0 b .L597
|
||
12236 .L595:
|
||
6064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12237 .loc 1 6064 18
|
||
12238 0116 7B68 ldr r3, [r7, #4]
|
||
12239 0118 0022 movs r2, #0
|
||
12240 011a 83F84220 strb r2, [r3, #66]
|
||
6067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12241 .loc 1 6067 7
|
||
12242 011e 7B68 ldr r3, [r7, #4]
|
||
12243 0120 0022 movs r2, #0
|
||
12244 0122 83F84020 strb r2, [r3, #64]
|
||
6073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
12245 .loc 1 6073 7
|
||
12246 0126 7868 ldr r0, [r7, #4]
|
||
12247 0128 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
|
||
12248 .loc 1 6116 1
|
||
12249 012c 29E0 b .L597
|
||
12250 .L594:
|
||
6078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12251 .loc 1 6078 16
|
||
12252 012e 7B68 ldr r3, [r7, #4]
|
||
ARM GAS /tmp/cc5G5cqz.s page 325
|
||
|
||
|
||
12253 0130 93F84130 ldrb r3, [r3, #65]
|
||
12254 0134 DBB2 uxtb r3, r3
|
||
6078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12255 .loc 1 6078 11
|
||
12256 0136 222B cmp r3, #34
|
||
12257 0138 23D1 bne .L597
|
||
6080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
12258 .loc 1 6080 17
|
||
12259 013a 7B68 ldr r3, [r7, #4]
|
||
12260 013c 2022 movs r2, #32
|
||
12261 013e 83F84120 strb r2, [r3, #65]
|
||
6081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12262 .loc 1 6081 25
|
||
12263 0142 7B68 ldr r3, [r7, #4]
|
||
12264 0144 0022 movs r2, #0
|
||
12265 0146 1A63 str r2, [r3, #48]
|
||
6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12266 .loc 1 6083 13
|
||
12267 0148 7B68 ldr r3, [r7, #4]
|
||
12268 014a 93F84230 ldrb r3, [r3, #66]
|
||
12269 014e DBB2 uxtb r3, r3
|
||
6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12270 .loc 1 6083 8
|
||
12271 0150 402B cmp r3, #64
|
||
12272 0152 0BD1 bne .L596
|
||
6085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12273 .loc 1 6085 18
|
||
12274 0154 7B68 ldr r3, [r7, #4]
|
||
12275 0156 0022 movs r2, #0
|
||
12276 0158 83F84220 strb r2, [r3, #66]
|
||
6088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12277 .loc 1 6088 7
|
||
12278 015c 7B68 ldr r3, [r7, #4]
|
||
12279 015e 0022 movs r2, #0
|
||
12280 0160 83F84020 strb r2, [r3, #64]
|
||
6094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
12281 .loc 1 6094 7
|
||
12282 0164 7868 ldr r0, [r7, #4]
|
||
12283 0166 FFF7FEFF bl HAL_I2C_MemRxCpltCallback
|
||
12284 .loc 1 6116 1
|
||
12285 016a 0AE0 b .L597
|
||
12286 .L596:
|
||
6099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12287 .loc 1 6099 18
|
||
12288 016c 7B68 ldr r3, [r7, #4]
|
||
12289 016e 0022 movs r2, #0
|
||
12290 0170 83F84220 strb r2, [r3, #66]
|
||
6102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12291 .loc 1 6102 7
|
||
12292 0174 7B68 ldr r3, [r7, #4]
|
||
12293 0176 0022 movs r2, #0
|
||
12294 0178 83F84020 strb r2, [r3, #64]
|
||
6108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
12295 .loc 1 6108 7
|
||
12296 017c 7868 ldr r0, [r7, #4]
|
||
12297 017e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
|
||
12298 .L597:
|
||
ARM GAS /tmp/cc5G5cqz.s page 326
|
||
|
||
|
||
12299 .loc 1 6116 1
|
||
12300 0182 00BF nop
|
||
12301 0184 1837 adds r7, r7, #24
|
||
12302 .cfi_def_cfa_offset 8
|
||
12303 0186 BD46 mov sp, r7
|
||
12304 .cfi_def_cfa_register 13
|
||
12305 @ sp needed
|
||
12306 0188 80BD pop {r7, pc}
|
||
12307 .L599:
|
||
12308 018a 00BF .align 2
|
||
12309 .L598:
|
||
12310 018c 00E800FE .word -33495040
|
||
12311 0190 0000FFFF .word -65536
|
||
12312 .cfi_endproc
|
||
12313 .LFE190:
|
||
12315 .section .text.I2C_ITSlaveCplt,"ax",%progbits
|
||
12316 .align 1
|
||
12317 .syntax unified
|
||
12318 .thumb
|
||
12319 .thumb_func
|
||
12321 I2C_ITSlaveCplt:
|
||
12322 .LFB191:
|
||
6117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
6119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Slave complete process.
|
||
6120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
|
||
6121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
|
||
6122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
6123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
|
||
6125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12323 .loc 1 6125 1
|
||
12324 .cfi_startproc
|
||
12325 @ args = 0, pretend = 0, frame = 24
|
||
12326 @ frame_needed = 1, uses_anonymous_args = 0
|
||
12327 0000 80B5 push {r7, lr}
|
||
12328 .cfi_def_cfa_offset 8
|
||
12329 .cfi_offset 7, -8
|
||
12330 .cfi_offset 14, -4
|
||
12331 0002 86B0 sub sp, sp, #24
|
||
12332 .cfi_def_cfa_offset 32
|
||
12333 0004 00AF add r7, sp, #0
|
||
12334 .cfi_def_cfa_register 7
|
||
12335 0006 7860 str r0, [r7, #4]
|
||
12336 0008 3960 str r1, [r7]
|
||
6126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
|
||
12337 .loc 1 6126 26
|
||
12338 000a 7B68 ldr r3, [r7, #4]
|
||
12339 000c 1B68 ldr r3, [r3]
|
||
12340 .loc 1 6126 12
|
||
12341 000e 1B68 ldr r3, [r3]
|
||
12342 0010 3B61 str r3, [r7, #16]
|
||
6127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
|
||
12343 .loc 1 6127 12
|
||
12344 0012 3B68 ldr r3, [r7]
|
||
12345 0014 7B61 str r3, [r7, #20]
|
||
6128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
|
||
ARM GAS /tmp/cc5G5cqz.s page 327
|
||
|
||
|
||
12346 .loc 1 6128 24
|
||
12347 0016 7B68 ldr r3, [r7, #4]
|
||
12348 0018 93F84130 ldrb r3, [r3, #65]
|
||
12349 001c FB73 strb r3, [r7, #15]
|
||
6129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
|
||
6131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
12350 .loc 1 6131 3
|
||
12351 001e 7B68 ldr r3, [r7, #4]
|
||
12352 0020 1B68 ldr r3, [r3]
|
||
12353 0022 2022 movs r2, #32
|
||
12354 0024 DA61 str r2, [r3, #28]
|
||
6132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
|
||
6134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
|
||
12355 .loc 1 6134 6
|
||
12356 0026 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
12357 0028 212B cmp r3, #33
|
||
12358 002a 02D0 beq .L601
|
||
12359 .loc 1 6134 43 discriminator 1
|
||
12360 002c FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
12361 002e 292B cmp r3, #41
|
||
12362 0030 08D1 bne .L602
|
||
12363 .L601:
|
||
6135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
|
||
12364 .loc 1 6136 5
|
||
12365 0032 48F20101 movw r1, #32769
|
||
12366 0036 7868 ldr r0, [r7, #4]
|
||
12367 0038 FFF7FEFF bl I2C_Disable_IRQ
|
||
6137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
|
||
12368 .loc 1 6137 25
|
||
12369 003c 7B68 ldr r3, [r7, #4]
|
||
12370 003e 2122 movs r2, #33
|
||
12371 0040 1A63 str r2, [r3, #48]
|
||
12372 0042 0DE0 b .L603
|
||
12373 .L602:
|
||
6138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
|
||
12374 .loc 1 6139 11
|
||
12375 0044 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
12376 0046 222B cmp r3, #34
|
||
12377 0048 02D0 beq .L604
|
||
12378 .loc 1 6139 48 discriminator 1
|
||
12379 004a FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
12380 004c 2A2B cmp r3, #42
|
||
12381 004e 07D1 bne .L603
|
||
12382 .L604:
|
||
6140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
|
||
12383 .loc 1 6141 5
|
||
12384 0050 48F20201 movw r1, #32770
|
||
12385 0054 7868 ldr r0, [r7, #4]
|
||
12386 0056 FFF7FEFF bl I2C_Disable_IRQ
|
||
6142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
|
||
12387 .loc 1 6142 25
|
||
12388 005a 7B68 ldr r3, [r7, #4]
|
||
ARM GAS /tmp/cc5G5cqz.s page 328
|
||
|
||
|
||
12389 005c 2222 movs r2, #34
|
||
12390 005e 1A63 str r2, [r3, #48]
|
||
12391 .L603:
|
||
6143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
|
||
6147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
|
||
6150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
12392 .loc 1 6150 7
|
||
12393 0060 7B68 ldr r3, [r7, #4]
|
||
12394 0062 1B68 ldr r3, [r3]
|
||
12395 .loc 1 6150 17
|
||
12396 0064 5A68 ldr r2, [r3, #4]
|
||
12397 .loc 1 6150 7
|
||
12398 0066 7B68 ldr r3, [r7, #4]
|
||
12399 0068 1B68 ldr r3, [r3]
|
||
12400 .loc 1 6150 23
|
||
12401 006a 42F40042 orr r2, r2, #32768
|
||
12402 006e 5A60 str r2, [r3, #4]
|
||
6151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
|
||
6153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
|
||
12403 .loc 1 6153 3
|
||
12404 0070 7B68 ldr r3, [r7, #4]
|
||
12405 0072 1B68 ldr r3, [r3]
|
||
12406 0074 5968 ldr r1, [r3, #4]
|
||
12407 0076 7B68 ldr r3, [r7, #4]
|
||
12408 0078 1A68 ldr r2, [r3]
|
||
12409 007a 644B ldr r3, .L614
|
||
12410 007c 0B40 ands r3, r3, r1
|
||
12411 007e 5360 str r3, [r2, #4]
|
||
6154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
|
||
6156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
|
||
12412 .loc 1 6156 3
|
||
12413 0080 7868 ldr r0, [r7, #4]
|
||
12414 0082 FFF7FEFF bl I2C_Flush_TXDR
|
||
6157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
|
||
6159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
|
||
12415 .loc 1 6159 7
|
||
12416 0086 3B69 ldr r3, [r7, #16]
|
||
12417 0088 9B0B lsrs r3, r3, #14
|
||
12418 008a 03F00103 and r3, r3, #1
|
||
12419 .loc 1 6159 6
|
||
12420 008e 002B cmp r3, #0
|
||
12421 0090 13D0 beq .L605
|
||
6160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
|
||
6162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
|
||
12422 .loc 1 6162 9
|
||
12423 0092 7B68 ldr r3, [r7, #4]
|
||
12424 0094 1B68 ldr r3, [r3]
|
||
12425 .loc 1 6162 19
|
||
ARM GAS /tmp/cc5G5cqz.s page 329
|
||
|
||
|
||
12426 0096 1A68 ldr r2, [r3]
|
||
12427 .loc 1 6162 9
|
||
12428 0098 7B68 ldr r3, [r7, #4]
|
||
12429 009a 1B68 ldr r3, [r3]
|
||
12430 .loc 1 6162 25
|
||
12431 009c 22F48042 bic r2, r2, #16384
|
||
12432 00a0 1A60 str r2, [r3]
|
||
6163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
|
||
12433 .loc 1 6164 13
|
||
12434 00a2 7B68 ldr r3, [r7, #4]
|
||
12435 00a4 9B6B ldr r3, [r3, #56]
|
||
12436 .loc 1 6164 8
|
||
12437 00a6 002B cmp r3, #0
|
||
12438 00a8 20D0 beq .L606
|
||
6165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx);
|
||
12439 .loc 1 6166 35
|
||
12440 00aa 7B68 ldr r3, [r7, #4]
|
||
12441 00ac 9B6B ldr r3, [r3, #56]
|
||
12442 00ae 1B68 ldr r3, [r3]
|
||
12443 00b0 5B68 ldr r3, [r3, #4]
|
||
12444 .loc 1 6166 25
|
||
12445 00b2 9AB2 uxth r2, r3
|
||
12446 .loc 1 6166 23
|
||
12447 00b4 7B68 ldr r3, [r7, #4]
|
||
12448 00b6 5A85 strh r2, [r3, #42] @ movhi
|
||
12449 00b8 18E0 b .L606
|
||
12450 .L605:
|
||
6167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
|
||
12451 .loc 1 6169 12
|
||
12452 00ba 3B69 ldr r3, [r7, #16]
|
||
12453 00bc DB0B lsrs r3, r3, #15
|
||
12454 00be 03F00103 and r3, r3, #1
|
||
12455 .loc 1 6169 11
|
||
12456 00c2 002B cmp r3, #0
|
||
12457 00c4 12D0 beq .L606
|
||
6170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
|
||
6172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
|
||
12458 .loc 1 6172 9
|
||
12459 00c6 7B68 ldr r3, [r7, #4]
|
||
12460 00c8 1B68 ldr r3, [r3]
|
||
12461 .loc 1 6172 19
|
||
12462 00ca 1A68 ldr r2, [r3]
|
||
12463 .loc 1 6172 9
|
||
12464 00cc 7B68 ldr r3, [r7, #4]
|
||
12465 00ce 1B68 ldr r3, [r3]
|
||
12466 .loc 1 6172 25
|
||
12467 00d0 22F40042 bic r2, r2, #32768
|
||
12468 00d4 1A60 str r2, [r3]
|
||
6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
|
||
12469 .loc 1 6174 13
|
||
12470 00d6 7B68 ldr r3, [r7, #4]
|
||
ARM GAS /tmp/cc5G5cqz.s page 330
|
||
|
||
|
||
12471 00d8 DB6B ldr r3, [r3, #60]
|
||
12472 .loc 1 6174 8
|
||
12473 00da 002B cmp r3, #0
|
||
12474 00dc 06D0 beq .L606
|
||
6175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx);
|
||
12475 .loc 1 6176 35
|
||
12476 00de 7B68 ldr r3, [r7, #4]
|
||
12477 00e0 DB6B ldr r3, [r3, #60]
|
||
12478 00e2 1B68 ldr r3, [r3]
|
||
12479 00e4 5B68 ldr r3, [r3, #4]
|
||
12480 .loc 1 6176 25
|
||
12481 00e6 9AB2 uxth r2, r3
|
||
12482 .loc 1 6176 23
|
||
12483 00e8 7B68 ldr r3, [r7, #4]
|
||
12484 00ea 5A85 strh r2, [r3, #42] @ movhi
|
||
12485 .L606:
|
||
6177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
|
||
6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
|
||
6185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)
|
||
12486 .loc 1 6185 7
|
||
12487 00ec 7B69 ldr r3, [r7, #20]
|
||
12488 00ee 9B08 lsrs r3, r3, #2
|
||
12489 00f0 03F00103 and r3, r3, #1
|
||
12490 .loc 1 6185 6
|
||
12491 00f4 002B cmp r3, #0
|
||
12492 00f6 20D0 beq .L607
|
||
6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
|
||
6188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
|
||
12493 .loc 1 6188 16
|
||
12494 00f8 7B69 ldr r3, [r7, #20]
|
||
12495 00fa 23F00403 bic r3, r3, #4
|
||
12496 00fe 7B61 str r3, [r7, #20]
|
||
6189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
|
||
6191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
|
||
12497 .loc 1 6191 36
|
||
12498 0100 7B68 ldr r3, [r7, #4]
|
||
12499 0102 1B68 ldr r3, [r3]
|
||
12500 .loc 1 6191 46
|
||
12501 0104 5A6A ldr r2, [r3, #36]
|
||
12502 .loc 1 6191 10
|
||
12503 0106 7B68 ldr r3, [r7, #4]
|
||
12504 0108 5B6A ldr r3, [r3, #36]
|
||
12505 .loc 1 6191 23
|
||
12506 010a D2B2 uxtb r2, r2
|
||
12507 .loc 1 6191 21
|
||
12508 010c 1A70 strb r2, [r3]
|
||
6192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
ARM GAS /tmp/cc5G5cqz.s page 331
|
||
|
||
|
||
6194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
12509 .loc 1 6194 9
|
||
12510 010e 7B68 ldr r3, [r7, #4]
|
||
12511 0110 5B6A ldr r3, [r3, #36]
|
||
12512 .loc 1 6194 19
|
||
12513 0112 5A1C adds r2, r3, #1
|
||
12514 0114 7B68 ldr r3, [r7, #4]
|
||
12515 0116 5A62 str r2, [r3, #36]
|
||
6195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
|
||
12516 .loc 1 6196 14
|
||
12517 0118 7B68 ldr r3, [r7, #4]
|
||
12518 011a 1B8D ldrh r3, [r3, #40]
|
||
12519 .loc 1 6196 8
|
||
12520 011c 002B cmp r3, #0
|
||
12521 011e 0CD0 beq .L607
|
||
6197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
12522 .loc 1 6198 11
|
||
12523 0120 7B68 ldr r3, [r7, #4]
|
||
12524 0122 1B8D ldrh r3, [r3, #40]
|
||
12525 .loc 1 6198 21
|
||
12526 0124 013B subs r3, r3, #1
|
||
12527 0126 9AB2 uxth r2, r3
|
||
12528 0128 7B68 ldr r3, [r7, #4]
|
||
12529 012a 1A85 strh r2, [r3, #40] @ movhi
|
||
6199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
12530 .loc 1 6199 11
|
||
12531 012c 7B68 ldr r3, [r7, #4]
|
||
12532 012e 5B8D ldrh r3, [r3, #42] @ movhi
|
||
12533 0130 9BB2 uxth r3, r3
|
||
12534 .loc 1 6199 22
|
||
12535 0132 013B subs r3, r3, #1
|
||
12536 0134 9AB2 uxth r2, r3
|
||
12537 0136 7B68 ldr r3, [r7, #4]
|
||
12538 0138 5A85 strh r2, [r3, #42] @ movhi
|
||
12539 .L607:
|
||
6200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */
|
||
6204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
|
||
12540 .loc 1 6204 11
|
||
12541 013a 7B68 ldr r3, [r7, #4]
|
||
12542 013c 5B8D ldrh r3, [r3, #42] @ movhi
|
||
12543 013e 9BB2 uxth r3, r3
|
||
12544 .loc 1 6204 6
|
||
12545 0140 002B cmp r3, #0
|
||
12546 0142 05D0 beq .L608
|
||
6205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
|
||
6207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
|
||
12547 .loc 1 6207 9
|
||
12548 0144 7B68 ldr r3, [r7, #4]
|
||
12549 0146 5B6C ldr r3, [r3, #68]
|
||
12550 .loc 1 6207 21
|
||
12551 0148 43F00402 orr r2, r3, #4
|
||
ARM GAS /tmp/cc5G5cqz.s page 332
|
||
|
||
|
||
12552 014c 7B68 ldr r3, [r7, #4]
|
||
12553 014e 5A64 str r2, [r3, #68]
|
||
12554 .L608:
|
||
6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
12555 .loc 1 6210 14
|
||
12556 0150 7B68 ldr r3, [r7, #4]
|
||
12557 0152 0022 movs r2, #0
|
||
12558 0154 83F84220 strb r2, [r3, #66]
|
||
6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
|
||
12559 .loc 1 6211 17
|
||
12560 0158 7B68 ldr r3, [r7, #4]
|
||
12561 015a 0022 movs r2, #0
|
||
12562 015c 5A63 str r2, [r3, #52]
|
||
6212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE)
|
||
12563 .loc 1 6213 11
|
||
12564 015e 7B68 ldr r3, [r7, #4]
|
||
12565 0160 5B6C ldr r3, [r3, #68]
|
||
12566 .loc 1 6213 6
|
||
12567 0162 002B cmp r3, #0
|
||
12568 0164 10D0 beq .L609
|
||
6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
|
||
12569 .loc 1 6216 27
|
||
12570 0166 7B68 ldr r3, [r7, #4]
|
||
12571 0168 5B6C ldr r3, [r3, #68]
|
||
12572 .loc 1 6216 5
|
||
12573 016a 1946 mov r1, r3
|
||
12574 016c 7868 ldr r0, [r7, #4]
|
||
12575 016e FFF7FEFF bl I2C_ITError
|
||
6217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
|
||
6219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
|
||
12576 .loc 1 6219 13
|
||
12577 0172 7B68 ldr r3, [r7, #4]
|
||
12578 0174 93F84130 ldrb r3, [r3, #65]
|
||
12579 0178 DBB2 uxtb r3, r3
|
||
12580 .loc 1 6219 8
|
||
12581 017a 282B cmp r3, #40
|
||
12582 017c 41D1 bne .L613
|
||
6220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
|
||
6222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
|
||
12583 .loc 1 6222 7
|
||
12584 017e 7969 ldr r1, [r7, #20]
|
||
12585 0180 7868 ldr r0, [r7, #4]
|
||
12586 0182 FFF7FEFF bl I2C_ITListenCplt
|
||
6223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
|
||
6226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */
|
||
6228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
|
||
6229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 333
|
||
|
||
|
||
6230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
6231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
6232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
6233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
|
||
6238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
|
||
6240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
|
||
6242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
6243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
|
||
6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
6248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
6249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
6255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
|
||
6256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
6257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
|
||
6258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
6259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
6263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
6270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
|
||
6271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
6272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
|
||
6273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
6274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
12587 .loc 1 6275 1
|
||
12588 0186 3CE0 b .L613
|
||
12589 .L609:
|
||
6225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12590 .loc 1 6225 16
|
||
12591 0188 7B68 ldr r3, [r7, #4]
|
||
12592 018a DB6A ldr r3, [r3, #44]
|
||
6225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12593 .loc 1 6225 11
|
||
12594 018c 13F5803F cmn r3, #65536
|
||
12595 0190 14D0 beq .L611
|
||
ARM GAS /tmp/cc5G5cqz.s page 334
|
||
|
||
|
||
6228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12596 .loc 1 6228 5
|
||
12597 0192 7868 ldr r0, [r7, #4]
|
||
12598 0194 FFF7FEFF bl I2C_ITSlaveSeqCplt
|
||
6230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
12599 .loc 1 6230 23
|
||
12600 0198 7B68 ldr r3, [r7, #4]
|
||
12601 019a 1D4A ldr r2, .L614+4
|
||
12602 019c DA62 str r2, [r3, #44]
|
||
6231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
12603 .loc 1 6231 17
|
||
12604 019e 7B68 ldr r3, [r7, #4]
|
||
12605 01a0 2022 movs r2, #32
|
||
12606 01a2 83F84120 strb r2, [r3, #65]
|
||
6232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12607 .loc 1 6232 25
|
||
12608 01a6 7B68 ldr r3, [r7, #4]
|
||
12609 01a8 0022 movs r2, #0
|
||
12610 01aa 1A63 str r2, [r3, #48]
|
||
6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12611 .loc 1 6235 5
|
||
12612 01ac 7B68 ldr r3, [r7, #4]
|
||
12613 01ae 0022 movs r2, #0
|
||
12614 01b0 83F84020 strb r2, [r3, #64]
|
||
6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
12615 .loc 1 6241 5
|
||
12616 01b4 7868 ldr r0, [r7, #4]
|
||
12617 01b6 FFF7FEFF bl HAL_I2C_ListenCpltCallback
|
||
12618 .loc 1 6275 1
|
||
12619 01ba 22E0 b .L613
|
||
12620 .L611:
|
||
6245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12621 .loc 1 6245 16
|
||
12622 01bc 7B68 ldr r3, [r7, #4]
|
||
12623 01be 93F84130 ldrb r3, [r3, #65]
|
||
12624 01c2 DBB2 uxtb r3, r3
|
||
6245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12625 .loc 1 6245 11
|
||
12626 01c4 222B cmp r3, #34
|
||
12627 01c6 0ED1 bne .L612
|
||
6247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
12628 .loc 1 6247 17
|
||
12629 01c8 7B68 ldr r3, [r7, #4]
|
||
12630 01ca 2022 movs r2, #32
|
||
12631 01cc 83F84120 strb r2, [r3, #65]
|
||
6248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12632 .loc 1 6248 25
|
||
12633 01d0 7B68 ldr r3, [r7, #4]
|
||
12634 01d2 0022 movs r2, #0
|
||
12635 01d4 1A63 str r2, [r3, #48]
|
||
6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12636 .loc 1 6251 5
|
||
12637 01d6 7B68 ldr r3, [r7, #4]
|
||
12638 01d8 0022 movs r2, #0
|
||
12639 01da 83F84020 strb r2, [r3, #64]
|
||
6257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
12640 .loc 1 6257 5
|
||
ARM GAS /tmp/cc5G5cqz.s page 335
|
||
|
||
|
||
12641 01de 7868 ldr r0, [r7, #4]
|
||
12642 01e0 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
|
||
12643 .loc 1 6275 1
|
||
12644 01e4 0DE0 b .L613
|
||
12645 .L612:
|
||
6262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
12646 .loc 1 6262 17
|
||
12647 01e6 7B68 ldr r3, [r7, #4]
|
||
12648 01e8 2022 movs r2, #32
|
||
12649 01ea 83F84120 strb r2, [r3, #65]
|
||
6263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12650 .loc 1 6263 25
|
||
12651 01ee 7B68 ldr r3, [r7, #4]
|
||
12652 01f0 0022 movs r2, #0
|
||
12653 01f2 1A63 str r2, [r3, #48]
|
||
6266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
12654 .loc 1 6266 5
|
||
12655 01f4 7B68 ldr r3, [r7, #4]
|
||
12656 01f6 0022 movs r2, #0
|
||
12657 01f8 83F84020 strb r2, [r3, #64]
|
||
6272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
12658 .loc 1 6272 5
|
||
12659 01fc 7868 ldr r0, [r7, #4]
|
||
12660 01fe FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
|
||
12661 .L613:
|
||
12662 .loc 1 6275 1
|
||
12663 0202 00BF nop
|
||
12664 0204 1837 adds r7, r7, #24
|
||
12665 .cfi_def_cfa_offset 8
|
||
12666 0206 BD46 mov sp, r7
|
||
12667 .cfi_def_cfa_register 13
|
||
12668 @ sp needed
|
||
12669 0208 80BD pop {r7, pc}
|
||
12670 .L615:
|
||
12671 020a 00BF .align 2
|
||
12672 .L614:
|
||
12673 020c 00E800FE .word -33495040
|
||
12674 0210 0000FFFF .word -65536
|
||
12675 .cfi_endproc
|
||
12676 .LFE191:
|
||
12678 .section .text.I2C_ITListenCplt,"ax",%progbits
|
||
12679 .align 1
|
||
12680 .syntax unified
|
||
12681 .thumb
|
||
12682 .thumb_func
|
||
12684 I2C_ITListenCplt:
|
||
12685 .LFB192:
|
||
6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
6278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Listen complete process.
|
||
6279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
|
||
6280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
|
||
6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
6282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
|
||
6284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12686 .loc 1 6284 1
|
||
ARM GAS /tmp/cc5G5cqz.s page 336
|
||
|
||
|
||
12687 .cfi_startproc
|
||
12688 @ args = 0, pretend = 0, frame = 8
|
||
12689 @ frame_needed = 1, uses_anonymous_args = 0
|
||
12690 0000 80B5 push {r7, lr}
|
||
12691 .cfi_def_cfa_offset 8
|
||
12692 .cfi_offset 7, -8
|
||
12693 .cfi_offset 14, -4
|
||
12694 0002 82B0 sub sp, sp, #8
|
||
12695 .cfi_def_cfa_offset 16
|
||
12696 0004 00AF add r7, sp, #0
|
||
12697 .cfi_def_cfa_register 7
|
||
12698 0006 7860 str r0, [r7, #4]
|
||
12699 0008 3960 str r1, [r7]
|
||
6285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
|
||
6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
12700 .loc 1 6286 21
|
||
12701 000a 7B68 ldr r3, [r7, #4]
|
||
12702 000c 264A ldr r2, .L618
|
||
12703 000e DA62 str r2, [r3, #44]
|
||
6287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
12704 .loc 1 6287 23
|
||
12705 0010 7B68 ldr r3, [r7, #4]
|
||
12706 0012 0022 movs r2, #0
|
||
12707 0014 1A63 str r2, [r3, #48]
|
||
6288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
12708 .loc 1 6288 15
|
||
12709 0016 7B68 ldr r3, [r7, #4]
|
||
12710 0018 2022 movs r2, #32
|
||
12711 001a 83F84120 strb r2, [r3, #65]
|
||
6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
12712 .loc 1 6289 14
|
||
12713 001e 7B68 ldr r3, [r7, #4]
|
||
12714 0020 0022 movs r2, #0
|
||
12715 0022 83F84220 strb r2, [r3, #66]
|
||
6290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
|
||
12716 .loc 1 6290 17
|
||
12717 0026 7B68 ldr r3, [r7, #4]
|
||
12718 0028 0022 movs r2, #0
|
||
12719 002a 5A63 str r2, [r3, #52]
|
||
6291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
|
||
6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET)
|
||
12720 .loc 1 6293 7
|
||
12721 002c 3B68 ldr r3, [r7]
|
||
12722 002e 9B08 lsrs r3, r3, #2
|
||
12723 0030 03F00103 and r3, r3, #1
|
||
12724 .loc 1 6293 6
|
||
12725 0034 002B cmp r3, #0
|
||
12726 0036 22D0 beq .L617
|
||
6294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
|
||
6296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
|
||
12727 .loc 1 6296 36
|
||
12728 0038 7B68 ldr r3, [r7, #4]
|
||
12729 003a 1B68 ldr r3, [r3]
|
||
12730 .loc 1 6296 46
|
||
12731 003c 5A6A ldr r2, [r3, #36]
|
||
ARM GAS /tmp/cc5G5cqz.s page 337
|
||
|
||
|
||
12732 .loc 1 6296 10
|
||
12733 003e 7B68 ldr r3, [r7, #4]
|
||
12734 0040 5B6A ldr r3, [r3, #36]
|
||
12735 .loc 1 6296 23
|
||
12736 0042 D2B2 uxtb r2, r2
|
||
12737 .loc 1 6296 21
|
||
12738 0044 1A70 strb r2, [r3]
|
||
6297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
|
||
6299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
|
||
12739 .loc 1 6299 9
|
||
12740 0046 7B68 ldr r3, [r7, #4]
|
||
12741 0048 5B6A ldr r3, [r3, #36]
|
||
12742 .loc 1 6299 19
|
||
12743 004a 5A1C adds r2, r3, #1
|
||
12744 004c 7B68 ldr r3, [r7, #4]
|
||
12745 004e 5A62 str r2, [r3, #36]
|
||
6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
|
||
12746 .loc 1 6301 14
|
||
12747 0050 7B68 ldr r3, [r7, #4]
|
||
12748 0052 1B8D ldrh r3, [r3, #40]
|
||
12749 .loc 1 6301 8
|
||
12750 0054 002B cmp r3, #0
|
||
12751 0056 12D0 beq .L617
|
||
6302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
|
||
12752 .loc 1 6303 11
|
||
12753 0058 7B68 ldr r3, [r7, #4]
|
||
12754 005a 1B8D ldrh r3, [r3, #40]
|
||
12755 .loc 1 6303 21
|
||
12756 005c 013B subs r3, r3, #1
|
||
12757 005e 9AB2 uxth r2, r3
|
||
12758 0060 7B68 ldr r3, [r7, #4]
|
||
12759 0062 1A85 strh r2, [r3, #40] @ movhi
|
||
6304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
|
||
12760 .loc 1 6304 11
|
||
12761 0064 7B68 ldr r3, [r7, #4]
|
||
12762 0066 5B8D ldrh r3, [r3, #42] @ movhi
|
||
12763 0068 9BB2 uxth r3, r3
|
||
12764 .loc 1 6304 22
|
||
12765 006a 013B subs r3, r3, #1
|
||
12766 006c 9AB2 uxth r2, r3
|
||
12767 006e 7B68 ldr r3, [r7, #4]
|
||
12768 0070 5A85 strh r2, [r3, #42] @ movhi
|
||
6305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
|
||
6307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
|
||
12769 .loc 1 6307 11
|
||
12770 0072 7B68 ldr r3, [r7, #4]
|
||
12771 0074 5B6C ldr r3, [r3, #68]
|
||
12772 .loc 1 6307 23
|
||
12773 0076 43F00402 orr r2, r3, #4
|
||
12774 007a 7B68 ldr r3, [r7, #4]
|
||
12775 007c 5A64 str r2, [r3, #68]
|
||
12776 .L617:
|
||
6308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 338
|
||
|
||
|
||
6309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all Interrupts*/
|
||
6312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT);
|
||
12777 .loc 1 6312 3
|
||
12778 007e 48F20301 movw r1, #32771
|
||
12779 0082 7868 ldr r0, [r7, #4]
|
||
12780 0084 FFF7FEFF bl I2C_Disable_IRQ
|
||
6313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
|
||
6315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
12781 .loc 1 6315 3
|
||
12782 0088 7B68 ldr r3, [r7, #4]
|
||
12783 008a 1B68 ldr r3, [r3]
|
||
12784 008c 1022 movs r2, #16
|
||
12785 008e DA61 str r2, [r3, #28]
|
||
6316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
12786 .loc 1 6318 3
|
||
12787 0090 7B68 ldr r3, [r7, #4]
|
||
12788 0092 0022 movs r2, #0
|
||
12789 0094 83F84020 strb r2, [r3, #64]
|
||
6319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
|
||
6321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
6322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
|
||
6323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
6324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
|
||
12790 .loc 1 6324 3
|
||
12791 0098 7868 ldr r0, [r7, #4]
|
||
12792 009a FFF7FEFF bl HAL_I2C_ListenCpltCallback
|
||
6325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
6326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
12793 .loc 1 6326 1
|
||
12794 009e 00BF nop
|
||
12795 00a0 0837 adds r7, r7, #8
|
||
12796 .cfi_def_cfa_offset 8
|
||
12797 00a2 BD46 mov sp, r7
|
||
12798 .cfi_def_cfa_register 13
|
||
12799 @ sp needed
|
||
12800 00a4 80BD pop {r7, pc}
|
||
12801 .L619:
|
||
12802 00a6 00BF .align 2
|
||
12803 .L618:
|
||
12804 00a8 0000FFFF .word -65536
|
||
12805 .cfi_endproc
|
||
12806 .LFE192:
|
||
12808 .section .text.I2C_ITError,"ax",%progbits
|
||
12809 .align 1
|
||
12810 .syntax unified
|
||
12811 .thumb
|
||
12812 .thumb_func
|
||
12814 I2C_ITError:
|
||
12815 .LFB193:
|
||
6327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
ARM GAS /tmp/cc5G5cqz.s page 339
|
||
|
||
|
||
6329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C interrupts error process.
|
||
6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
|
||
6331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ErrorCode Error code to handle.
|
||
6332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
6333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode)
|
||
6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
12816 .loc 1 6335 1
|
||
12817 .cfi_startproc
|
||
12818 @ args = 0, pretend = 0, frame = 16
|
||
12819 @ frame_needed = 1, uses_anonymous_args = 0
|
||
12820 0000 80B5 push {r7, lr}
|
||
12821 .cfi_def_cfa_offset 8
|
||
12822 .cfi_offset 7, -8
|
||
12823 .cfi_offset 14, -4
|
||
12824 0002 84B0 sub sp, sp, #16
|
||
12825 .cfi_def_cfa_offset 24
|
||
12826 0004 00AF add r7, sp, #0
|
||
12827 .cfi_def_cfa_register 7
|
||
12828 0006 7860 str r0, [r7, #4]
|
||
12829 0008 3960 str r1, [r7]
|
||
6336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
|
||
12830 .loc 1 6336 24
|
||
12831 000a 7B68 ldr r3, [r7, #4]
|
||
12832 000c 93F84130 ldrb r3, [r3, #65]
|
||
12833 0010 FB73 strb r3, [r7, #15]
|
||
6337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmppreviousstate;
|
||
6339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
|
||
6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
12834 .loc 1 6341 23
|
||
12835 0012 7B68 ldr r3, [r7, #4]
|
||
12836 0014 0022 movs r2, #0
|
||
12837 0016 83F84220 strb r2, [r3, #66]
|
||
6342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
|
||
12838 .loc 1 6342 23
|
||
12839 001a 7B68 ldr r3, [r7, #4]
|
||
12840 001c 6D4A ldr r2, .L640
|
||
12841 001e DA62 str r2, [r3, #44]
|
||
6343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U;
|
||
12842 .loc 1 6343 23
|
||
12843 0020 7B68 ldr r3, [r7, #4]
|
||
12844 0022 0022 movs r2, #0
|
||
12845 0024 5A85 strh r2, [r3, #42] @ movhi
|
||
6344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set new error code */
|
||
6346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode;
|
||
12846 .loc 1 6346 7
|
||
12847 0026 7B68 ldr r3, [r7, #4]
|
||
12848 0028 5A6C ldr r2, [r3, #68]
|
||
12849 .loc 1 6346 19
|
||
12850 002a 3B68 ldr r3, [r7]
|
||
12851 002c 1A43 orrs r2, r2, r3
|
||
12852 002e 7B68 ldr r3, [r7, #4]
|
||
12853 0030 5A64 str r2, [r3, #68]
|
||
6347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 340
|
||
|
||
|
||
6348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
|
||
6349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) ||
|
||
12854 .loc 1 6349 6
|
||
12855 0032 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
12856 0034 282B cmp r3, #40
|
||
12857 0036 05D0 beq .L621
|
||
12858 .loc 1 6349 50 discriminator 1
|
||
12859 0038 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
12860 003a 292B cmp r3, #41
|
||
12861 003c 02D0 beq .L621
|
||
6350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
|
||
12862 .loc 1 6350 50
|
||
12863 003e FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
12864 0040 2A2B cmp r3, #42
|
||
12865 0042 0BD1 bne .L622
|
||
12866 .L621:
|
||
6351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
|
||
6352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */
|
||
6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT);
|
||
12867 .loc 1 6354 5
|
||
12868 0044 0321 movs r1, #3
|
||
12869 0046 7868 ldr r0, [r7, #4]
|
||
12870 0048 FFF7FEFF bl I2C_Disable_IRQ
|
||
6355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */
|
||
6357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
|
||
12871 .loc 1 6357 25
|
||
12872 004c 7B68 ldr r3, [r7, #4]
|
||
12873 004e 2822 movs r2, #40
|
||
12874 0050 83F84120 strb r2, [r3, #65]
|
||
6358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
|
||
12875 .loc 1 6358 25
|
||
12876 0054 7B68 ldr r3, [r7, #4]
|
||
12877 0056 604A ldr r2, .L640+4
|
||
12878 0058 5A63 str r2, [r3, #52]
|
||
12879 005a 30E0 b .L623
|
||
12880 .L622:
|
||
6359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all interrupts */
|
||
6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT);
|
||
12881 .loc 1 6363 5
|
||
12882 005c 48F20301 movw r1, #32771
|
||
12883 0060 7868 ldr r0, [r7, #4]
|
||
12884 0062 FFF7FEFF bl I2C_Disable_IRQ
|
||
6364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
|
||
6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
|
||
12885 .loc 1 6366 5
|
||
12886 0066 7868 ldr r0, [r7, #4]
|
||
12887 0068 FFF7FEFF bl I2C_Flush_TXDR
|
||
6367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */
|
||
6369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This change will be do later */
|
||
6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT)
|
||
ARM GAS /tmp/cc5G5cqz.s page 341
|
||
|
||
|
||
12888 .loc 1 6370 13
|
||
12889 006c 7B68 ldr r3, [r7, #4]
|
||
12890 006e 93F84130 ldrb r3, [r3, #65]
|
||
12891 0072 DBB2 uxtb r3, r3
|
||
12892 .loc 1 6370 8
|
||
12893 0074 602B cmp r3, #96
|
||
12894 0076 1FD0 beq .L624
|
||
6371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */
|
||
6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
12895 .loc 1 6373 27
|
||
12896 0078 7B68 ldr r3, [r7, #4]
|
||
12897 007a 2022 movs r2, #32
|
||
12898 007c 83F84120 strb r2, [r3, #65]
|
||
6374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a STOPF is detected */
|
||
6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET)
|
||
12899 .loc 1 6376 11
|
||
12900 0080 7B68 ldr r3, [r7, #4]
|
||
12901 0082 1B68 ldr r3, [r3]
|
||
12902 0084 9B69 ldr r3, [r3, #24]
|
||
12903 0086 03F02003 and r3, r3, #32
|
||
12904 .loc 1 6376 10
|
||
12905 008a 202B cmp r3, #32
|
||
12906 008c 14D1 bne .L624
|
||
6377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
|
||
12907 .loc 1 6378 13
|
||
12908 008e 7B68 ldr r3, [r7, #4]
|
||
12909 0090 1B68 ldr r3, [r3]
|
||
12910 0092 9B69 ldr r3, [r3, #24]
|
||
12911 0094 03F01003 and r3, r3, #16
|
||
12912 .loc 1 6378 12
|
||
12913 0098 102B cmp r3, #16
|
||
12914 009a 09D1 bne .L625
|
||
6379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
12915 .loc 1 6380 11
|
||
12916 009c 7B68 ldr r3, [r7, #4]
|
||
12917 009e 1B68 ldr r3, [r3]
|
||
12918 00a0 1022 movs r2, #16
|
||
12919 00a2 DA61 str r2, [r3, #28]
|
||
6381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
|
||
12920 .loc 1 6381 15
|
||
12921 00a4 7B68 ldr r3, [r7, #4]
|
||
12922 00a6 5B6C ldr r3, [r3, #68]
|
||
12923 .loc 1 6381 27
|
||
12924 00a8 43F00402 orr r2, r3, #4
|
||
12925 00ac 7B68 ldr r3, [r7, #4]
|
||
12926 00ae 5A64 str r2, [r3, #68]
|
||
12927 .L625:
|
||
6382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
|
||
6385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
12928 .loc 1 6385 9
|
||
12929 00b0 7B68 ldr r3, [r7, #4]
|
||
ARM GAS /tmp/cc5G5cqz.s page 342
|
||
|
||
|
||
12930 00b2 1B68 ldr r3, [r3]
|
||
12931 00b4 2022 movs r2, #32
|
||
12932 00b6 DA61 str r2, [r3, #28]
|
||
12933 .L624:
|
||
6386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
|
||
12934 .loc 1 6389 25
|
||
12935 00b8 7B68 ldr r3, [r7, #4]
|
||
12936 00ba 0022 movs r2, #0
|
||
12937 00bc 5A63 str r2, [r3, #52]
|
||
12938 .L623:
|
||
6390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX transfer if any */
|
||
6393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState;
|
||
12939 .loc 1 6393 20
|
||
12940 00be 7B68 ldr r3, [r7, #4]
|
||
12941 00c0 1B6B ldr r3, [r3, #48]
|
||
12942 00c2 BB60 str r3, [r7, #8]
|
||
6394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \
|
||
12943 .loc 1 6395 12
|
||
12944 00c4 7B68 ldr r3, [r7, #4]
|
||
12945 00c6 9B6B ldr r3, [r3, #56]
|
||
12946 .loc 1 6395 6
|
||
12947 00c8 002B cmp r3, #0
|
||
12948 00ca 39D0 beq .L626
|
||
12949 .loc 1 6395 30 discriminator 1
|
||
12950 00cc BB68 ldr r3, [r7, #8]
|
||
12951 00ce 112B cmp r3, #17
|
||
12952 00d0 02D0 beq .L627
|
||
12953 .loc 1 6395 81 discriminator 2
|
||
12954 00d2 BB68 ldr r3, [r7, #8]
|
||
12955 00d4 212B cmp r3, #33
|
||
12956 00d6 33D1 bne .L626
|
||
12957 .L627:
|
||
6396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
|
||
6397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
|
||
12958 .loc 1 6398 14
|
||
12959 00d8 7B68 ldr r3, [r7, #4]
|
||
12960 00da 1B68 ldr r3, [r3]
|
||
12961 .loc 1 6398 24
|
||
12962 00dc 1B68 ldr r3, [r3]
|
||
12963 .loc 1 6398 30
|
||
12964 00de 03F48043 and r3, r3, #16384
|
||
12965 .loc 1 6398 8
|
||
12966 00e2 B3F5804F cmp r3, #16384
|
||
12967 00e6 07D1 bne .L628
|
||
6399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
|
||
12968 .loc 1 6400 11
|
||
12969 00e8 7B68 ldr r3, [r7, #4]
|
||
12970 00ea 1B68 ldr r3, [r3]
|
||
12971 .loc 1 6400 21
|
||
ARM GAS /tmp/cc5G5cqz.s page 343
|
||
|
||
|
||
12972 00ec 1A68 ldr r2, [r3]
|
||
12973 .loc 1 6400 11
|
||
12974 00ee 7B68 ldr r3, [r7, #4]
|
||
12975 00f0 1B68 ldr r3, [r3]
|
||
12976 .loc 1 6400 27
|
||
12977 00f2 22F48042 bic r2, r2, #16384
|
||
12978 00f6 1A60 str r2, [r3]
|
||
12979 .L628:
|
||
6401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY)
|
||
12980 .loc 1 6403 9
|
||
12981 00f8 7B68 ldr r3, [r7, #4]
|
||
12982 00fa 9B6B ldr r3, [r3, #56]
|
||
12983 00fc 1846 mov r0, r3
|
||
12984 00fe FFF7FEFF bl HAL_DMA_GetState
|
||
12985 0102 0346 mov r3, r0
|
||
12986 .loc 1 6403 8 discriminator 1
|
||
12987 0104 012B cmp r3, #1
|
||
12988 0106 17D0 beq .L629
|
||
6404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
|
||
6406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
|
||
6407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
|
||
12989 .loc 1 6407 11
|
||
12990 0108 7B68 ldr r3, [r7, #4]
|
||
12991 010a 9B6B ldr r3, [r3, #56]
|
||
12992 .loc 1 6407 39
|
||
12993 010c 334A ldr r2, .L640+8
|
||
12994 010e 5A63 str r2, [r3, #52]
|
||
6408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
12995 .loc 1 6410 7
|
||
12996 0110 7B68 ldr r3, [r7, #4]
|
||
12997 0112 0022 movs r2, #0
|
||
12998 0114 83F84020 strb r2, [r3, #64]
|
||
6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
|
||
6413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
|
||
12999 .loc 1 6413 11
|
||
13000 0118 7B68 ldr r3, [r7, #4]
|
||
13001 011a 9B6B ldr r3, [r3, #56]
|
||
13002 011c 1846 mov r0, r3
|
||
13003 011e FFF7FEFF bl HAL_DMA_Abort_IT
|
||
13004 0122 0346 mov r3, r0
|
||
13005 .loc 1 6413 10 discriminator 1
|
||
13006 0124 002B cmp r3, #0
|
||
13007 0126 4DD0 beq .L637
|
||
6414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
|
||
6416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
|
||
13008 .loc 1 6416 13
|
||
13009 0128 7B68 ldr r3, [r7, #4]
|
||
13010 012a 9B6B ldr r3, [r3, #56]
|
||
13011 .loc 1 6416 21
|
||
13012 012c 5B6B ldr r3, [r3, #52]
|
||
ARM GAS /tmp/cc5G5cqz.s page 344
|
||
|
||
|
||
13013 .loc 1 6416 45
|
||
13014 012e 7A68 ldr r2, [r7, #4]
|
||
13015 0130 926B ldr r2, [r2, #56]
|
||
13016 .loc 1 6416 9
|
||
13017 0132 1046 mov r0, r2
|
||
13018 0134 9847 blx r3
|
||
13019 .LVL7:
|
||
6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13020 .loc 1 6403 8
|
||
13021 0136 45E0 b .L637
|
||
13022 .L629:
|
||
6417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
|
||
13023 .loc 1 6421 7
|
||
13024 0138 7868 ldr r0, [r7, #4]
|
||
13025 013a FFF7FEFF bl I2C_TreatErrorCallback
|
||
6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13026 .loc 1 6403 8
|
||
13027 013e 41E0 b .L637
|
||
13028 .L626:
|
||
6422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX transfer if any */
|
||
6425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \
|
||
13029 .loc 1 6425 17
|
||
13030 0140 7B68 ldr r3, [r7, #4]
|
||
13031 0142 DB6B ldr r3, [r3, #60]
|
||
13032 .loc 1 6425 11
|
||
13033 0144 002B cmp r3, #0
|
||
13034 0146 39D0 beq .L632
|
||
13035 .loc 1 6425 35 discriminator 1
|
||
13036 0148 BB68 ldr r3, [r7, #8]
|
||
13037 014a 122B cmp r3, #18
|
||
13038 014c 02D0 beq .L633
|
||
13039 .loc 1 6425 86 discriminator 2
|
||
13040 014e BB68 ldr r3, [r7, #8]
|
||
13041 0150 222B cmp r3, #34
|
||
13042 0152 33D1 bne .L632
|
||
13043 .L633:
|
||
6426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
|
||
6427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
|
||
13044 .loc 1 6428 14
|
||
13045 0154 7B68 ldr r3, [r7, #4]
|
||
13046 0156 1B68 ldr r3, [r3]
|
||
13047 .loc 1 6428 24
|
||
13048 0158 1B68 ldr r3, [r3]
|
||
13049 .loc 1 6428 30
|
||
13050 015a 03F40043 and r3, r3, #32768
|
||
13051 .loc 1 6428 8
|
||
13052 015e B3F5004F cmp r3, #32768
|
||
13053 0162 07D1 bne .L634
|
||
6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
|
||
ARM GAS /tmp/cc5G5cqz.s page 345
|
||
|
||
|
||
13054 .loc 1 6430 11
|
||
13055 0164 7B68 ldr r3, [r7, #4]
|
||
13056 0166 1B68 ldr r3, [r3]
|
||
13057 .loc 1 6430 21
|
||
13058 0168 1A68 ldr r2, [r3]
|
||
13059 .loc 1 6430 11
|
||
13060 016a 7B68 ldr r3, [r7, #4]
|
||
13061 016c 1B68 ldr r3, [r3]
|
||
13062 .loc 1 6430 27
|
||
13063 016e 22F40042 bic r2, r2, #32768
|
||
13064 0172 1A60 str r2, [r3]
|
||
13065 .L634:
|
||
6431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY)
|
||
13066 .loc 1 6433 9
|
||
13067 0174 7B68 ldr r3, [r7, #4]
|
||
13068 0176 DB6B ldr r3, [r3, #60]
|
||
13069 0178 1846 mov r0, r3
|
||
13070 017a FFF7FEFF bl HAL_DMA_GetState
|
||
13071 017e 0346 mov r3, r0
|
||
13072 .loc 1 6433 8 discriminator 1
|
||
13073 0180 012B cmp r3, #1
|
||
13074 0182 17D0 beq .L635
|
||
6434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
|
||
6436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
|
||
6437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
|
||
13075 .loc 1 6437 11
|
||
13076 0184 7B68 ldr r3, [r7, #4]
|
||
13077 0186 DB6B ldr r3, [r3, #60]
|
||
13078 .loc 1 6437 39
|
||
13079 0188 144A ldr r2, .L640+8
|
||
13080 018a 5A63 str r2, [r3, #52]
|
||
6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
13081 .loc 1 6440 7
|
||
13082 018c 7B68 ldr r3, [r7, #4]
|
||
13083 018e 0022 movs r2, #0
|
||
13084 0190 83F84020 strb r2, [r3, #64]
|
||
6441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
|
||
6443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
|
||
13085 .loc 1 6443 11
|
||
13086 0194 7B68 ldr r3, [r7, #4]
|
||
13087 0196 DB6B ldr r3, [r3, #60]
|
||
13088 0198 1846 mov r0, r3
|
||
13089 019a FFF7FEFF bl HAL_DMA_Abort_IT
|
||
13090 019e 0346 mov r3, r0
|
||
13091 .loc 1 6443 10 discriminator 1
|
||
13092 01a0 002B cmp r3, #0
|
||
13093 01a2 11D0 beq .L638
|
||
6444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */
|
||
6446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
|
||
13094 .loc 1 6446 13
|
||
ARM GAS /tmp/cc5G5cqz.s page 346
|
||
|
||
|
||
13095 01a4 7B68 ldr r3, [r7, #4]
|
||
13096 01a6 DB6B ldr r3, [r3, #60]
|
||
13097 .loc 1 6446 21
|
||
13098 01a8 5B6B ldr r3, [r3, #52]
|
||
13099 .loc 1 6446 45
|
||
13100 01aa 7A68 ldr r2, [r7, #4]
|
||
13101 01ac D26B ldr r2, [r2, #60]
|
||
13102 .loc 1 6446 9
|
||
13103 01ae 1046 mov r0, r2
|
||
13104 01b0 9847 blx r3
|
||
13105 .LVL8:
|
||
6433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13106 .loc 1 6433 8
|
||
13107 01b2 09E0 b .L638
|
||
13108 .L635:
|
||
6447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
|
||
13109 .loc 1 6451 7
|
||
13110 01b4 7868 ldr r0, [r7, #4]
|
||
13111 01b6 FFF7FEFF bl I2C_TreatErrorCallback
|
||
6433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13112 .loc 1 6433 8
|
||
13113 01ba 05E0 b .L638
|
||
13114 .L632:
|
||
6452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
|
||
13115 .loc 1 6456 5
|
||
13116 01bc 7868 ldr r0, [r7, #4]
|
||
13117 01be FFF7FEFF bl I2C_TreatErrorCallback
|
||
6457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13118 .loc 1 6458 1
|
||
13119 01c2 02E0 b .L639
|
||
13120 .L637:
|
||
6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13121 .loc 1 6403 8
|
||
13122 01c4 00BF nop
|
||
13123 01c6 00E0 b .L639
|
||
13124 .L638:
|
||
6433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13125 .loc 1 6433 8
|
||
13126 01c8 00BF nop
|
||
13127 .L639:
|
||
13128 .loc 1 6458 1
|
||
13129 01ca 00BF nop
|
||
13130 01cc 1037 adds r7, r7, #16
|
||
13131 .cfi_def_cfa_offset 8
|
||
13132 01ce BD46 mov sp, r7
|
||
13133 .cfi_def_cfa_register 13
|
||
13134 @ sp needed
|
||
13135 01d0 80BD pop {r7, pc}
|
||
ARM GAS /tmp/cc5G5cqz.s page 347
|
||
|
||
|
||
13136 .L641:
|
||
13137 01d2 00BF .align 2
|
||
13138 .L640:
|
||
13139 01d4 0000FFFF .word -65536
|
||
13140 01d8 00000000 .word I2C_Slave_ISR_IT
|
||
13141 01dc 00000000 .word I2C_DMAAbort
|
||
13142 .cfi_endproc
|
||
13143 .LFE193:
|
||
13145 .section .text.I2C_TreatErrorCallback,"ax",%progbits
|
||
13146 .align 1
|
||
13147 .syntax unified
|
||
13148 .thumb
|
||
13149 .thumb_func
|
||
13151 I2C_TreatErrorCallback:
|
||
13152 .LFB194:
|
||
6459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
6461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Error callback treatment.
|
||
6462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
|
||
6463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c)
|
||
6466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13153 .loc 1 6466 1
|
||
13154 .cfi_startproc
|
||
13155 @ args = 0, pretend = 0, frame = 8
|
||
13156 @ frame_needed = 1, uses_anonymous_args = 0
|
||
13157 0000 80B5 push {r7, lr}
|
||
13158 .cfi_def_cfa_offset 8
|
||
13159 .cfi_offset 7, -8
|
||
13160 .cfi_offset 14, -4
|
||
13161 0002 82B0 sub sp, sp, #8
|
||
13162 .cfi_def_cfa_offset 16
|
||
13163 0004 00AF add r7, sp, #0
|
||
13164 .cfi_def_cfa_register 7
|
||
13165 0006 7860 str r0, [r7, #4]
|
||
6467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
|
||
13166 .loc 1 6467 11
|
||
13167 0008 7B68 ldr r3, [r7, #4]
|
||
13168 000a 93F84130 ldrb r3, [r3, #65]
|
||
13169 000e DBB2 uxtb r3, r3
|
||
13170 .loc 1 6467 6
|
||
13171 0010 602B cmp r3, #96
|
||
13172 0012 0ED1 bne .L643
|
||
6468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
13173 .loc 1 6469 17
|
||
13174 0014 7B68 ldr r3, [r7, #4]
|
||
13175 0016 2022 movs r2, #32
|
||
13176 0018 83F84120 strb r2, [r3, #65]
|
||
6470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
13177 .loc 1 6470 25
|
||
13178 001c 7B68 ldr r3, [r7, #4]
|
||
13179 001e 0022 movs r2, #0
|
||
13180 0020 1A63 str r2, [r3, #48]
|
||
6471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
ARM GAS /tmp/cc5G5cqz.s page 348
|
||
|
||
|
||
6473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
13181 .loc 1 6473 5
|
||
13182 0022 7B68 ldr r3, [r7, #4]
|
||
13183 0024 0022 movs r2, #0
|
||
13184 0026 83F84020 strb r2, [r3, #64]
|
||
6474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c);
|
||
6478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
6479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c);
|
||
13185 .loc 1 6479 5
|
||
13186 002a 7868 ldr r0, [r7, #4]
|
||
13187 002c FFF7FEFF bl HAL_I2C_AbortCpltCallback
|
||
6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
6481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
|
||
6485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
6488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
|
||
6491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c);
|
||
6492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
|
||
6493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c);
|
||
6494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
6495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13188 .loc 1 6496 1
|
||
13189 0030 09E0 b .L645
|
||
13190 .L643:
|
||
6484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
13191 .loc 1 6484 25
|
||
13192 0032 7B68 ldr r3, [r7, #4]
|
||
13193 0034 0022 movs r2, #0
|
||
13194 0036 1A63 str r2, [r3, #48]
|
||
6487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
13195 .loc 1 6487 5
|
||
13196 0038 7B68 ldr r3, [r7, #4]
|
||
13197 003a 0022 movs r2, #0
|
||
13198 003c 83F84020 strb r2, [r3, #64]
|
||
6493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
|
||
13199 .loc 1 6493 5
|
||
13200 0040 7868 ldr r0, [r7, #4]
|
||
13201 0042 FFF7FEFF bl HAL_I2C_ErrorCallback
|
||
13202 .L645:
|
||
13203 .loc 1 6496 1
|
||
13204 0046 00BF nop
|
||
13205 0048 0837 adds r7, r7, #8
|
||
13206 .cfi_def_cfa_offset 8
|
||
13207 004a BD46 mov sp, r7
|
||
13208 .cfi_def_cfa_register 13
|
||
13209 @ sp needed
|
||
13210 004c 80BD pop {r7, pc}
|
||
ARM GAS /tmp/cc5G5cqz.s page 349
|
||
|
||
|
||
13211 .cfi_endproc
|
||
13212 .LFE194:
|
||
13214 .section .text.I2C_Flush_TXDR,"ax",%progbits
|
||
13215 .align 1
|
||
13216 .syntax unified
|
||
13217 .thumb
|
||
13218 .thumb_func
|
||
13220 I2C_Flush_TXDR:
|
||
13221 .LFB195:
|
||
6497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
6499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Tx data register flush process.
|
||
6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
|
||
6501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
6502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c)
|
||
6504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13222 .loc 1 6504 1
|
||
13223 .cfi_startproc
|
||
13224 @ args = 0, pretend = 0, frame = 8
|
||
13225 @ frame_needed = 1, uses_anonymous_args = 0
|
||
13226 @ link register save eliminated.
|
||
13227 0000 80B4 push {r7}
|
||
13228 .cfi_def_cfa_offset 4
|
||
13229 .cfi_offset 7, -4
|
||
13230 0002 83B0 sub sp, sp, #12
|
||
13231 .cfi_def_cfa_offset 16
|
||
13232 0004 00AF add r7, sp, #0
|
||
13233 .cfi_def_cfa_register 7
|
||
13234 0006 7860 str r0, [r7, #4]
|
||
6505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a pending TXIS flag is set */
|
||
6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */
|
||
6507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET)
|
||
13235 .loc 1 6507 7
|
||
13236 0008 7B68 ldr r3, [r7, #4]
|
||
13237 000a 1B68 ldr r3, [r3]
|
||
13238 000c 9B69 ldr r3, [r3, #24]
|
||
13239 000e 03F00203 and r3, r3, #2
|
||
13240 .loc 1 6507 6
|
||
13241 0012 022B cmp r3, #2
|
||
13242 0014 03D1 bne .L647
|
||
6508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U;
|
||
13243 .loc 1 6509 9
|
||
13244 0016 7B68 ldr r3, [r7, #4]
|
||
13245 0018 1B68 ldr r3, [r3]
|
||
13246 .loc 1 6509 26
|
||
13247 001a 0022 movs r2, #0
|
||
13248 001c 9A62 str r2, [r3, #40]
|
||
13249 .L647:
|
||
6510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register if not empty */
|
||
6513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)
|
||
13250 .loc 1 6513 7
|
||
13251 001e 7B68 ldr r3, [r7, #4]
|
||
13252 0020 1B68 ldr r3, [r3]
|
||
ARM GAS /tmp/cc5G5cqz.s page 350
|
||
|
||
|
||
13253 0022 9B69 ldr r3, [r3, #24]
|
||
13254 0024 03F00103 and r3, r3, #1
|
||
13255 .loc 1 6513 6
|
||
13256 0028 012B cmp r3, #1
|
||
13257 002a 07D0 beq .L649
|
||
6514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE);
|
||
13258 .loc 1 6515 5
|
||
13259 002c 7B68 ldr r3, [r7, #4]
|
||
13260 002e 1B68 ldr r3, [r3]
|
||
13261 0030 9A69 ldr r2, [r3, #24]
|
||
13262 0032 7B68 ldr r3, [r7, #4]
|
||
13263 0034 1B68 ldr r3, [r3]
|
||
13264 0036 42F00102 orr r2, r2, #1
|
||
13265 003a 9A61 str r2, [r3, #24]
|
||
13266 .L649:
|
||
6516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13267 .loc 1 6517 1
|
||
13268 003c 00BF nop
|
||
13269 003e 0C37 adds r7, r7, #12
|
||
13270 .cfi_def_cfa_offset 4
|
||
13271 0040 BD46 mov sp, r7
|
||
13272 .cfi_def_cfa_register 13
|
||
13273 @ sp needed
|
||
13274 0042 5DF8047B ldr r7, [sp], #4
|
||
13275 .cfi_restore 7
|
||
13276 .cfi_def_cfa_offset 0
|
||
13277 0046 7047 bx lr
|
||
13278 .cfi_endproc
|
||
13279 .LFE195:
|
||
13281 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits
|
||
13282 .align 1
|
||
13283 .syntax unified
|
||
13284 .thumb
|
||
13285 .thumb_func
|
||
13287 I2C_DMAMasterTransmitCplt:
|
||
13288 .LFB196:
|
||
6518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
6520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback.
|
||
6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
|
||
6522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
6523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma)
|
||
6525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13289 .loc 1 6525 1
|
||
13290 .cfi_startproc
|
||
13291 @ args = 0, pretend = 0, frame = 16
|
||
13292 @ frame_needed = 1, uses_anonymous_args = 0
|
||
13293 0000 80B5 push {r7, lr}
|
||
13294 .cfi_def_cfa_offset 8
|
||
13295 .cfi_offset 7, -8
|
||
13296 .cfi_offset 14, -4
|
||
13297 0002 84B0 sub sp, sp, #16
|
||
13298 .cfi_def_cfa_offset 24
|
||
13299 0004 00AF add r7, sp, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 351
|
||
|
||
|
||
13300 .cfi_def_cfa_register 7
|
||
13301 0006 7860 str r0, [r7, #4]
|
||
6526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
|
||
6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
|
||
13302 .loc 1 6527 22
|
||
13303 0008 7B68 ldr r3, [r7, #4]
|
||
13304 000a 5B6A ldr r3, [r3, #36]
|
||
13305 000c FB60 str r3, [r7, #12]
|
||
6528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
|
||
6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
|
||
13306 .loc 1 6530 7
|
||
13307 000e FB68 ldr r3, [r7, #12]
|
||
13308 0010 1B68 ldr r3, [r3]
|
||
13309 .loc 1 6530 17
|
||
13310 0012 1A68 ldr r2, [r3]
|
||
13311 .loc 1 6530 7
|
||
13312 0014 FB68 ldr r3, [r7, #12]
|
||
13313 0016 1B68 ldr r3, [r3]
|
||
13314 .loc 1 6530 23
|
||
13315 0018 22F48042 bic r2, r2, #16384
|
||
13316 001c 1A60 str r2, [r3]
|
||
6531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
|
||
6533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
|
||
13317 .loc 1 6533 11
|
||
13318 001e FB68 ldr r3, [r7, #12]
|
||
13319 0020 5B8D ldrh r3, [r3, #42] @ movhi
|
||
13320 0022 9BB2 uxth r3, r3
|
||
13321 .loc 1 6533 6
|
||
13322 0024 002B cmp r3, #0
|
||
13323 0026 04D1 bne .L651
|
||
6534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupt */
|
||
6536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
|
||
13324 .loc 1 6536 5
|
||
13325 0028 2021 movs r1, #32
|
||
13326 002a F868 ldr r0, [r7, #12]
|
||
13327 002c FFF7FEFF bl I2C_Enable_IRQ
|
||
6537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
|
||
6539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Buffer pointer */
|
||
6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
|
||
6543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the XferSize to transfer */
|
||
6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
6546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
6548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
6552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
|
||
ARM GAS /tmp/cc5G5cqz.s page 352
|
||
|
||
|
||
6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
|
||
6556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
6557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
|
||
6560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
|
||
6564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
|
||
6565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13328 .loc 1 6567 1
|
||
13329 0030 2DE0 b .L656
|
||
13330 .L651:
|
||
6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
13331 .loc 1 6542 9
|
||
13332 0032 FB68 ldr r3, [r7, #12]
|
||
13333 0034 5B6A ldr r3, [r3, #36]
|
||
6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
13334 .loc 1 6542 27
|
||
13335 0036 FA68 ldr r2, [r7, #12]
|
||
13336 0038 128D ldrh r2, [r2, #40]
|
||
6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
13337 .loc 1 6542 20
|
||
13338 003a 1A44 add r2, r2, r3
|
||
13339 003c FB68 ldr r3, [r7, #12]
|
||
13340 003e 5A62 str r2, [r3, #36]
|
||
6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13341 .loc 1 6545 13
|
||
13342 0040 FB68 ldr r3, [r7, #12]
|
||
13343 0042 5B8D ldrh r3, [r3, #42] @ movhi
|
||
13344 0044 9BB2 uxth r3, r3
|
||
6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13345 .loc 1 6545 8
|
||
13346 0046 FF2B cmp r3, #255
|
||
13347 0048 03D9 bls .L653
|
||
6547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13348 .loc 1 6547 22
|
||
13349 004a FB68 ldr r3, [r7, #12]
|
||
13350 004c FF22 movs r2, #255
|
||
13351 004e 1A85 strh r2, [r3, #40] @ movhi
|
||
13352 0050 04E0 b .L654
|
||
13353 .L653:
|
||
6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13354 .loc 1 6551 28
|
||
13355 0052 FB68 ldr r3, [r7, #12]
|
||
13356 0054 5B8D ldrh r3, [r3, #42] @ movhi
|
||
13357 0056 9AB2 uxth r2, r3
|
||
6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13358 .loc 1 6551 22
|
||
13359 0058 FB68 ldr r3, [r7, #12]
|
||
13360 005a 1A85 strh r2, [r3, #40] @ movhi
|
||
13361 .L654:
|
||
6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13362 .loc 1 6555 9
|
||
ARM GAS /tmp/cc5G5cqz.s page 353
|
||
|
||
|
||
13363 005c FB68 ldr r3, [r7, #12]
|
||
13364 005e 986B ldr r0, [r3, #56]
|
||
6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13365 .loc 1 6555 54
|
||
13366 0060 FB68 ldr r3, [r7, #12]
|
||
13367 0062 5B6A ldr r3, [r3, #36]
|
||
6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13368 .loc 1 6555 9
|
||
13369 0064 1946 mov r1, r3
|
||
6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13370 .loc 1 6555 81
|
||
13371 0066 FB68 ldr r3, [r7, #12]
|
||
13372 0068 1B68 ldr r3, [r3]
|
||
6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13373 .loc 1 6555 76
|
||
13374 006a 2833 adds r3, r3, #40
|
||
6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13375 .loc 1 6555 9
|
||
13376 006c 1A46 mov r2, r3
|
||
6556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13377 .loc 1 6556 30
|
||
13378 006e FB68 ldr r3, [r7, #12]
|
||
13379 0070 1B8D ldrh r3, [r3, #40]
|
||
6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13380 .loc 1 6555 9
|
||
13381 0072 FFF7FEFF bl HAL_DMA_Start_IT
|
||
13382 0076 0346 mov r3, r0
|
||
6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13383 .loc 1 6555 8 discriminator 1
|
||
13384 0078 002B cmp r3, #0
|
||
13385 007a 04D0 beq .L655
|
||
6559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13386 .loc 1 6559 7
|
||
13387 007c 1021 movs r1, #16
|
||
13388 007e F868 ldr r0, [r7, #12]
|
||
13389 0080 FFF7FEFF bl I2C_ITError
|
||
13390 .loc 1 6567 1
|
||
13391 0084 03E0 b .L656
|
||
13392 .L655:
|
||
6564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13393 .loc 1 6564 7
|
||
13394 0086 4021 movs r1, #64
|
||
13395 0088 F868 ldr r0, [r7, #12]
|
||
13396 008a FFF7FEFF bl I2C_Enable_IRQ
|
||
13397 .L656:
|
||
13398 .loc 1 6567 1
|
||
13399 008e 00BF nop
|
||
13400 0090 1037 adds r7, r7, #16
|
||
13401 .cfi_def_cfa_offset 8
|
||
13402 0092 BD46 mov sp, r7
|
||
13403 .cfi_def_cfa_register 13
|
||
13404 @ sp needed
|
||
13405 0094 80BD pop {r7, pc}
|
||
13406 .cfi_endproc
|
||
13407 .LFE196:
|
||
13409 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits
|
||
13410 .align 1
|
||
ARM GAS /tmp/cc5G5cqz.s page 354
|
||
|
||
|
||
13411 .syntax unified
|
||
13412 .thumb
|
||
13413 .thumb_func
|
||
13415 I2C_DMASlaveTransmitCplt:
|
||
13416 .LFB197:
|
||
6568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
6571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback.
|
||
6572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
|
||
6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
6574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma)
|
||
6576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13417 .loc 1 6576 1
|
||
13418 .cfi_startproc
|
||
13419 @ args = 0, pretend = 0, frame = 16
|
||
13420 @ frame_needed = 1, uses_anonymous_args = 0
|
||
13421 0000 80B5 push {r7, lr}
|
||
13422 .cfi_def_cfa_offset 8
|
||
13423 .cfi_offset 7, -8
|
||
13424 .cfi_offset 14, -4
|
||
13425 0002 84B0 sub sp, sp, #16
|
||
13426 .cfi_def_cfa_offset 24
|
||
13427 0004 00AF add r7, sp, #0
|
||
13428 .cfi_def_cfa_register 7
|
||
13429 0006 7860 str r0, [r7, #4]
|
||
6577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
|
||
6578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
|
||
13430 .loc 1 6578 22
|
||
13431 0008 7B68 ldr r3, [r7, #4]
|
||
13432 000a 5B6A ldr r3, [r3, #36]
|
||
13433 000c FB60 str r3, [r7, #12]
|
||
6579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
|
||
13434 .loc 1 6579 12
|
||
13435 000e FB68 ldr r3, [r7, #12]
|
||
13436 0010 DB6A ldr r3, [r3, #44]
|
||
13437 0012 BB60 str r3, [r7, #8]
|
||
6580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
|
||
13438 .loc 1 6581 6
|
||
13439 0014 BB68 ldr r3, [r7, #8]
|
||
13440 0016 B3F1807F cmp r3, #16777216
|
||
13441 001a 02D0 beq .L658
|
||
13442 .loc 1 6581 38 discriminator 1
|
||
13443 001c BB68 ldr r3, [r7, #8]
|
||
13444 001e 002B cmp r3, #0
|
||
13445 0020 0AD1 bne .L660
|
||
13446 .L658:
|
||
6582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
|
||
6584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
|
||
13447 .loc 1 6584 9
|
||
13448 0022 FB68 ldr r3, [r7, #12]
|
||
13449 0024 1B68 ldr r3, [r3]
|
||
13450 .loc 1 6584 19
|
||
13451 0026 1A68 ldr r2, [r3]
|
||
ARM GAS /tmp/cc5G5cqz.s page 355
|
||
|
||
|
||
13452 .loc 1 6584 9
|
||
13453 0028 FB68 ldr r3, [r7, #12]
|
||
13454 002a 1B68 ldr r3, [r3]
|
||
13455 .loc 1 6584 25
|
||
13456 002c 22F48042 bic r2, r2, #16384
|
||
13457 0030 1A60 str r2, [r3]
|
||
6585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
|
||
6587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
|
||
6588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
|
||
13458 .loc 1 6588 5
|
||
13459 0032 F868 ldr r0, [r7, #12]
|
||
13460 0034 FFF7FEFF bl I2C_ITSlaveSeqCplt
|
||
13461 .L660:
|
||
6589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
|
||
6593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */
|
||
6594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
|
||
6595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13462 .loc 1 6596 1
|
||
13463 0038 00BF nop
|
||
13464 003a 1037 adds r7, r7, #16
|
||
13465 .cfi_def_cfa_offset 8
|
||
13466 003c BD46 mov sp, r7
|
||
13467 .cfi_def_cfa_register 13
|
||
13468 @ sp needed
|
||
13469 003e 80BD pop {r7, pc}
|
||
13470 .cfi_endproc
|
||
13471 .LFE197:
|
||
13473 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits
|
||
13474 .align 1
|
||
13475 .syntax unified
|
||
13476 .thumb
|
||
13477 .thumb_func
|
||
13479 I2C_DMAMasterReceiveCplt:
|
||
13480 .LFB198:
|
||
6597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
6600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback.
|
||
6601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
|
||
6602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
6603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma)
|
||
6605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13481 .loc 1 6605 1
|
||
13482 .cfi_startproc
|
||
13483 @ args = 0, pretend = 0, frame = 16
|
||
13484 @ frame_needed = 1, uses_anonymous_args = 0
|
||
13485 0000 80B5 push {r7, lr}
|
||
13486 .cfi_def_cfa_offset 8
|
||
13487 .cfi_offset 7, -8
|
||
13488 .cfi_offset 14, -4
|
||
13489 0002 84B0 sub sp, sp, #16
|
||
ARM GAS /tmp/cc5G5cqz.s page 356
|
||
|
||
|
||
13490 .cfi_def_cfa_offset 24
|
||
13491 0004 00AF add r7, sp, #0
|
||
13492 .cfi_def_cfa_register 7
|
||
13493 0006 7860 str r0, [r7, #4]
|
||
6606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
|
||
6607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
|
||
13494 .loc 1 6607 22
|
||
13495 0008 7B68 ldr r3, [r7, #4]
|
||
13496 000a 5B6A ldr r3, [r3, #36]
|
||
13497 000c FB60 str r3, [r7, #12]
|
||
6608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
|
||
6610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
|
||
13498 .loc 1 6610 7
|
||
13499 000e FB68 ldr r3, [r7, #12]
|
||
13500 0010 1B68 ldr r3, [r3]
|
||
13501 .loc 1 6610 17
|
||
13502 0012 1A68 ldr r2, [r3]
|
||
13503 .loc 1 6610 7
|
||
13504 0014 FB68 ldr r3, [r7, #12]
|
||
13505 0016 1B68 ldr r3, [r3]
|
||
13506 .loc 1 6610 23
|
||
13507 0018 22F40042 bic r2, r2, #32768
|
||
13508 001c 1A60 str r2, [r3]
|
||
6611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
|
||
6613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
|
||
13509 .loc 1 6613 11
|
||
13510 001e FB68 ldr r3, [r7, #12]
|
||
13511 0020 5B8D ldrh r3, [r3, #42] @ movhi
|
||
13512 0022 9BB2 uxth r3, r3
|
||
13513 .loc 1 6613 6
|
||
13514 0024 002B cmp r3, #0
|
||
13515 0026 04D1 bne .L662
|
||
6614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupt */
|
||
6616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
|
||
13516 .loc 1 6616 5
|
||
13517 0028 2021 movs r1, #32
|
||
13518 002a F868 ldr r0, [r7, #12]
|
||
13519 002c FFF7FEFF bl I2C_Enable_IRQ
|
||
6617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
|
||
6619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Buffer pointer */
|
||
6622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
|
||
6623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the XferSize to transfer */
|
||
6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
|
||
6626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
|
||
6628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
|
||
6632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 357
|
||
|
||
|
||
6633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
|
||
6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr,
|
||
6636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
6637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
|
||
6640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
|
||
6644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
|
||
6645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13520 .loc 1 6647 1
|
||
13521 0030 2DE0 b .L667
|
||
13522 .L662:
|
||
6622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
13523 .loc 1 6622 9
|
||
13524 0032 FB68 ldr r3, [r7, #12]
|
||
13525 0034 5B6A ldr r3, [r3, #36]
|
||
6622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
13526 .loc 1 6622 27
|
||
13527 0036 FA68 ldr r2, [r7, #12]
|
||
13528 0038 128D ldrh r2, [r2, #40]
|
||
6622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
13529 .loc 1 6622 20
|
||
13530 003a 1A44 add r2, r2, r3
|
||
13531 003c FB68 ldr r3, [r7, #12]
|
||
13532 003e 5A62 str r2, [r3, #36]
|
||
6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13533 .loc 1 6625 13
|
||
13534 0040 FB68 ldr r3, [r7, #12]
|
||
13535 0042 5B8D ldrh r3, [r3, #42] @ movhi
|
||
13536 0044 9BB2 uxth r3, r3
|
||
6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13537 .loc 1 6625 8
|
||
13538 0046 FF2B cmp r3, #255
|
||
13539 0048 03D9 bls .L664
|
||
6627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13540 .loc 1 6627 22
|
||
13541 004a FB68 ldr r3, [r7, #12]
|
||
13542 004c FF22 movs r2, #255
|
||
13543 004e 1A85 strh r2, [r3, #40] @ movhi
|
||
13544 0050 04E0 b .L665
|
||
13545 .L664:
|
||
6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13546 .loc 1 6631 28
|
||
13547 0052 FB68 ldr r3, [r7, #12]
|
||
13548 0054 5B8D ldrh r3, [r3, #42] @ movhi
|
||
13549 0056 9AB2 uxth r2, r3
|
||
6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13550 .loc 1 6631 22
|
||
13551 0058 FB68 ldr r3, [r7, #12]
|
||
13552 005a 1A85 strh r2, [r3, #40] @ movhi
|
||
13553 .L665:
|
||
ARM GAS /tmp/cc5G5cqz.s page 358
|
||
|
||
|
||
6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13554 .loc 1 6635 9
|
||
13555 005c FB68 ldr r3, [r7, #12]
|
||
13556 005e D86B ldr r0, [r3, #60]
|
||
6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13557 .loc 1 6635 55
|
||
13558 0060 FB68 ldr r3, [r7, #12]
|
||
13559 0062 1B68 ldr r3, [r3]
|
||
6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13560 .loc 1 6635 50
|
||
13561 0064 2433 adds r3, r3, #36
|
||
6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13562 .loc 1 6635 9
|
||
13563 0066 1946 mov r1, r3
|
||
6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13564 .loc 1 6635 87
|
||
13565 0068 FB68 ldr r3, [r7, #12]
|
||
13566 006a 5B6A ldr r3, [r3, #36]
|
||
6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13567 .loc 1 6635 9
|
||
13568 006c 1A46 mov r2, r3
|
||
6636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13569 .loc 1 6636 30
|
||
13570 006e FB68 ldr r3, [r7, #12]
|
||
13571 0070 1B8D ldrh r3, [r3, #40]
|
||
6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13572 .loc 1 6635 9
|
||
13573 0072 FFF7FEFF bl HAL_DMA_Start_IT
|
||
13574 0076 0346 mov r3, r0
|
||
6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
|
||
13575 .loc 1 6635 8 discriminator 1
|
||
13576 0078 002B cmp r3, #0
|
||
13577 007a 04D0 beq .L666
|
||
6639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13578 .loc 1 6639 7
|
||
13579 007c 1021 movs r1, #16
|
||
13580 007e F868 ldr r0, [r7, #12]
|
||
13581 0080 FFF7FEFF bl I2C_ITError
|
||
13582 .loc 1 6647 1
|
||
13583 0084 03E0 b .L667
|
||
13584 .L666:
|
||
6644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13585 .loc 1 6644 7
|
||
13586 0086 4021 movs r1, #64
|
||
13587 0088 F868 ldr r0, [r7, #12]
|
||
13588 008a FFF7FEFF bl I2C_Enable_IRQ
|
||
13589 .L667:
|
||
13590 .loc 1 6647 1
|
||
13591 008e 00BF nop
|
||
13592 0090 1037 adds r7, r7, #16
|
||
13593 .cfi_def_cfa_offset 8
|
||
13594 0092 BD46 mov sp, r7
|
||
13595 .cfi_def_cfa_register 13
|
||
13596 @ sp needed
|
||
13597 0094 80BD pop {r7, pc}
|
||
13598 .cfi_endproc
|
||
13599 .LFE198:
|
||
ARM GAS /tmp/cc5G5cqz.s page 359
|
||
|
||
|
||
13601 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits
|
||
13602 .align 1
|
||
13603 .syntax unified
|
||
13604 .thumb
|
||
13605 .thumb_func
|
||
13607 I2C_DMASlaveReceiveCplt:
|
||
13608 .LFB199:
|
||
6648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
6651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback.
|
||
6652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
|
||
6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
6654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma)
|
||
6656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13609 .loc 1 6656 1
|
||
13610 .cfi_startproc
|
||
13611 @ args = 0, pretend = 0, frame = 16
|
||
13612 @ frame_needed = 1, uses_anonymous_args = 0
|
||
13613 0000 80B5 push {r7, lr}
|
||
13614 .cfi_def_cfa_offset 8
|
||
13615 .cfi_offset 7, -8
|
||
13616 .cfi_offset 14, -4
|
||
13617 0002 84B0 sub sp, sp, #16
|
||
13618 .cfi_def_cfa_offset 24
|
||
13619 0004 00AF add r7, sp, #0
|
||
13620 .cfi_def_cfa_register 7
|
||
13621 0006 7860 str r0, [r7, #4]
|
||
6657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
|
||
6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
|
||
13622 .loc 1 6658 22
|
||
13623 0008 7B68 ldr r3, [r7, #4]
|
||
13624 000a 5B6A ldr r3, [r3, #36]
|
||
13625 000c FB60 str r3, [r7, #12]
|
||
6659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
|
||
13626 .loc 1 6659 12
|
||
13627 000e FB68 ldr r3, [r7, #12]
|
||
13628 0010 DB6A ldr r3, [r3, #44]
|
||
13629 0012 BB60 str r3, [r7, #8]
|
||
6660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \
|
||
13630 .loc 1 6661 8
|
||
13631 0014 FB68 ldr r3, [r7, #12]
|
||
13632 0016 DB6B ldr r3, [r3, #60]
|
||
13633 0018 1B68 ldr r3, [r3]
|
||
13634 001a 5B68 ldr r3, [r3, #4]
|
||
13635 .loc 1 6661 6
|
||
13636 001c 002B cmp r3, #0
|
||
13637 001e 0ED1 bne .L670
|
||
13638 .loc 1 6661 53 discriminator 1
|
||
13639 0020 BB68 ldr r3, [r7, #8]
|
||
13640 0022 13F5803F cmn r3, #65536
|
||
13641 0026 0AD0 beq .L670
|
||
6662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
|
||
6663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
|
||
ARM GAS /tmp/cc5G5cqz.s page 360
|
||
|
||
|
||
6665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
|
||
13642 .loc 1 6665 9
|
||
13643 0028 FB68 ldr r3, [r7, #12]
|
||
13644 002a 1B68 ldr r3, [r3]
|
||
13645 .loc 1 6665 19
|
||
13646 002c 1A68 ldr r2, [r3]
|
||
13647 .loc 1 6665 9
|
||
13648 002e FB68 ldr r3, [r7, #12]
|
||
13649 0030 1B68 ldr r3, [r3]
|
||
13650 .loc 1 6665 25
|
||
13651 0032 22F40042 bic r2, r2, #32768
|
||
13652 0036 1A60 str r2, [r3]
|
||
6666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
|
||
6668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
|
||
13653 .loc 1 6668 5
|
||
13654 0038 F868 ldr r0, [r7, #12]
|
||
13655 003a FFF7FEFF bl I2C_ITSlaveSeqCplt
|
||
13656 .L670:
|
||
6669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
|
||
6673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */
|
||
6674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
|
||
6675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13657 .loc 1 6676 1
|
||
13658 003e 00BF nop
|
||
13659 0040 1037 adds r7, r7, #16
|
||
13660 .cfi_def_cfa_offset 8
|
||
13661 0042 BD46 mov sp, r7
|
||
13662 .cfi_def_cfa_register 13
|
||
13663 @ sp needed
|
||
13664 0044 80BD pop {r7, pc}
|
||
13665 .cfi_endproc
|
||
13666 .LFE199:
|
||
13668 .section .text.I2C_DMAError,"ax",%progbits
|
||
13669 .align 1
|
||
13670 .syntax unified
|
||
13671 .thumb
|
||
13672 .thumb_func
|
||
13674 I2C_DMAError:
|
||
13675 .LFB200:
|
||
6677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C communication error callback.
|
||
6681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
|
||
6682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma)
|
||
6685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13676 .loc 1 6685 1
|
||
13677 .cfi_startproc
|
||
13678 @ args = 0, pretend = 0, frame = 16
|
||
13679 @ frame_needed = 1, uses_anonymous_args = 0
|
||
ARM GAS /tmp/cc5G5cqz.s page 361
|
||
|
||
|
||
13680 0000 80B5 push {r7, lr}
|
||
13681 .cfi_def_cfa_offset 8
|
||
13682 .cfi_offset 7, -8
|
||
13683 .cfi_offset 14, -4
|
||
13684 0002 84B0 sub sp, sp, #16
|
||
13685 .cfi_def_cfa_offset 24
|
||
13686 0004 00AF add r7, sp, #0
|
||
13687 .cfi_def_cfa_register 7
|
||
13688 0006 7860 str r0, [r7, #4]
|
||
6686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
|
||
6687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
|
||
13689 .loc 1 6687 22
|
||
13690 0008 7B68 ldr r3, [r7, #4]
|
||
13691 000a 5B6A ldr r3, [r3, #36]
|
||
13692 000c FB60 str r3, [r7, #12]
|
||
6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Acknowledge */
|
||
6690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
|
||
13693 .loc 1 6690 7
|
||
13694 000e FB68 ldr r3, [r7, #12]
|
||
13695 0010 1B68 ldr r3, [r3]
|
||
13696 .loc 1 6690 17
|
||
13697 0012 5A68 ldr r2, [r3, #4]
|
||
13698 .loc 1 6690 7
|
||
13699 0014 FB68 ldr r3, [r7, #12]
|
||
13700 0016 1B68 ldr r3, [r3]
|
||
13701 .loc 1 6690 23
|
||
13702 0018 42F40042 orr r2, r2, #32768
|
||
13703 001c 5A60 str r2, [r3, #4]
|
||
6691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
|
||
6693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
|
||
13704 .loc 1 6693 3
|
||
13705 001e 1021 movs r1, #16
|
||
13706 0020 F868 ldr r0, [r7, #12]
|
||
13707 0022 FFF7FEFF bl I2C_ITError
|
||
6694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13708 .loc 1 6694 1
|
||
13709 0026 00BF nop
|
||
13710 0028 1037 adds r7, r7, #16
|
||
13711 .cfi_def_cfa_offset 8
|
||
13712 002a BD46 mov sp, r7
|
||
13713 .cfi_def_cfa_register 13
|
||
13714 @ sp needed
|
||
13715 002c 80BD pop {r7, pc}
|
||
13716 .cfi_endproc
|
||
13717 .LFE200:
|
||
13719 .section .text.I2C_DMAAbort,"ax",%progbits
|
||
13720 .align 1
|
||
13721 .syntax unified
|
||
13722 .thumb
|
||
13723 .thumb_func
|
||
13725 I2C_DMAAbort:
|
||
13726 .LFB201:
|
||
6695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
ARM GAS /tmp/cc5G5cqz.s page 362
|
||
|
||
|
||
6698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C communication abort callback
|
||
6699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure).
|
||
6700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle.
|
||
6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
6702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma)
|
||
6704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13727 .loc 1 6704 1
|
||
13728 .cfi_startproc
|
||
13729 @ args = 0, pretend = 0, frame = 16
|
||
13730 @ frame_needed = 1, uses_anonymous_args = 0
|
||
13731 0000 80B5 push {r7, lr}
|
||
13732 .cfi_def_cfa_offset 8
|
||
13733 .cfi_offset 7, -8
|
||
13734 .cfi_offset 14, -4
|
||
13735 0002 84B0 sub sp, sp, #16
|
||
13736 .cfi_def_cfa_offset 24
|
||
13737 0004 00AF add r7, sp, #0
|
||
13738 .cfi_def_cfa_register 7
|
||
13739 0006 7860 str r0, [r7, #4]
|
||
6705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
|
||
6706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
|
||
13740 .loc 1 6706 22
|
||
13741 0008 7B68 ldr r3, [r7, #4]
|
||
13742 000a 5B6A ldr r3, [r3, #36]
|
||
13743 000c FB60 str r3, [r7, #12]
|
||
6707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset AbortCpltCallback */
|
||
6709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
|
||
13744 .loc 1 6709 11
|
||
13745 000e FB68 ldr r3, [r7, #12]
|
||
13746 0010 9B6B ldr r3, [r3, #56]
|
||
13747 .loc 1 6709 6
|
||
13748 0012 002B cmp r3, #0
|
||
13749 0014 03D0 beq .L673
|
||
6710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
|
||
13750 .loc 1 6711 9
|
||
13751 0016 FB68 ldr r3, [r7, #12]
|
||
13752 0018 9B6B ldr r3, [r3, #56]
|
||
13753 .loc 1 6711 37
|
||
13754 001a 0022 movs r2, #0
|
||
13755 001c 5A63 str r2, [r3, #52]
|
||
13756 .L673:
|
||
6712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
|
||
13757 .loc 1 6713 11
|
||
13758 001e FB68 ldr r3, [r7, #12]
|
||
13759 0020 DB6B ldr r3, [r3, #60]
|
||
13760 .loc 1 6713 6
|
||
13761 0022 002B cmp r3, #0
|
||
13762 0024 03D0 beq .L674
|
||
6714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
|
||
13763 .loc 1 6715 9
|
||
13764 0026 FB68 ldr r3, [r7, #12]
|
||
13765 0028 DB6B ldr r3, [r3, #60]
|
||
ARM GAS /tmp/cc5G5cqz.s page 363
|
||
|
||
|
||
13766 .loc 1 6715 37
|
||
13767 002a 0022 movs r2, #0
|
||
13768 002c 5A63 str r2, [r3, #52]
|
||
13769 .L674:
|
||
6716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
|
||
13770 .loc 1 6718 3
|
||
13771 002e F868 ldr r0, [r7, #12]
|
||
13772 0030 FFF7FEFF bl I2C_TreatErrorCallback
|
||
6719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13773 .loc 1 6719 1
|
||
13774 0034 00BF nop
|
||
13775 0036 1037 adds r7, r7, #16
|
||
13776 .cfi_def_cfa_offset 8
|
||
13777 0038 BD46 mov sp, r7
|
||
13778 .cfi_def_cfa_register 13
|
||
13779 @ sp needed
|
||
13780 003a 80BD pop {r7, pc}
|
||
13781 .cfi_endproc
|
||
13782 .LFE201:
|
||
13784 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits
|
||
13785 .align 1
|
||
13786 .syntax unified
|
||
13787 .thumb
|
||
13788 .thumb_func
|
||
13790 I2C_WaitOnFlagUntilTimeout:
|
||
13791 .LFB202:
|
||
6720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
6723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. It waits
|
||
6724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * until a flag is no longer in the specified status.
|
||
6725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
6726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
6727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check.
|
||
6728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Status The actual Flag status (SET or RESET).
|
||
6729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
|
||
6730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
|
||
6731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
6732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
|
||
6734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart)
|
||
6735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13792 .loc 1 6735 1
|
||
13793 .cfi_startproc
|
||
13794 @ args = 4, pretend = 0, frame = 16
|
||
13795 @ frame_needed = 1, uses_anonymous_args = 0
|
||
13796 0000 80B5 push {r7, lr}
|
||
13797 .cfi_def_cfa_offset 8
|
||
13798 .cfi_offset 7, -8
|
||
13799 .cfi_offset 14, -4
|
||
13800 0002 84B0 sub sp, sp, #16
|
||
13801 .cfi_def_cfa_offset 24
|
||
13802 0004 00AF add r7, sp, #0
|
||
13803 .cfi_def_cfa_register 7
|
||
13804 0006 F860 str r0, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 364
|
||
|
||
|
||
13805 0008 B960 str r1, [r7, #8]
|
||
13806 000a 3B60 str r3, [r7]
|
||
13807 000c 1346 mov r3, r2
|
||
13808 000e FB71 strb r3, [r7, #7]
|
||
6736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
|
||
13809 .loc 1 6736 9
|
||
13810 0010 31E0 b .L677
|
||
13811 .L681:
|
||
6737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
|
||
6739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
|
||
13812 .loc 1 6739 8
|
||
13813 0012 3B68 ldr r3, [r7]
|
||
13814 0014 B3F1FF3F cmp r3, #-1
|
||
13815 0018 2DD0 beq .L677
|
||
6740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
|
||
13816 .loc 1 6741 13
|
||
13817 001a FFF7FEFF bl HAL_GetTick
|
||
13818 001e 0246 mov r2, r0
|
||
13819 .loc 1 6741 27 discriminator 1
|
||
13820 0020 BB69 ldr r3, [r7, #24]
|
||
13821 0022 D31A subs r3, r2, r3
|
||
13822 .loc 1 6741 10 discriminator 1
|
||
13823 0024 3A68 ldr r2, [r7]
|
||
13824 0026 9A42 cmp r2, r3
|
||
13825 0028 02D3 bcc .L678
|
||
13826 .loc 1 6741 51 discriminator 1
|
||
13827 002a 3B68 ldr r3, [r7]
|
||
13828 002c 002B cmp r3, #0
|
||
13829 002e 22D1 bne .L677
|
||
13830 .L678:
|
||
6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status))
|
||
13831 .loc 1 6743 14
|
||
13832 0030 FB68 ldr r3, [r7, #12]
|
||
13833 0032 1B68 ldr r3, [r3]
|
||
13834 0034 9A69 ldr r2, [r3, #24]
|
||
13835 0036 BB68 ldr r3, [r7, #8]
|
||
13836 0038 1340 ands r3, r3, r2
|
||
13837 003a BA68 ldr r2, [r7, #8]
|
||
13838 003c 9A42 cmp r2, r3
|
||
13839 003e 0CBF ite eq
|
||
13840 0040 0123 moveq r3, #1
|
||
13841 0042 0023 movne r3, #0
|
||
13842 0044 DBB2 uxtb r3, r3
|
||
13843 0046 1A46 mov r2, r3
|
||
13844 .loc 1 6743 45
|
||
13845 0048 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
|
||
13846 .loc 1 6743 12
|
||
13847 004a 9A42 cmp r2, r3
|
||
13848 004c 13D1 bne .L677
|
||
6744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
|
||
13849 .loc 1 6745 15
|
||
13850 004e FB68 ldr r3, [r7, #12]
|
||
13851 0050 5B6C ldr r3, [r3, #68]
|
||
ARM GAS /tmp/cc5G5cqz.s page 365
|
||
|
||
|
||
13852 .loc 1 6745 27
|
||
13853 0052 43F02002 orr r2, r3, #32
|
||
13854 0056 FB68 ldr r3, [r7, #12]
|
||
13855 0058 5A64 str r2, [r3, #68]
|
||
6746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
13856 .loc 1 6746 23
|
||
13857 005a FB68 ldr r3, [r7, #12]
|
||
13858 005c 2022 movs r2, #32
|
||
13859 005e 83F84120 strb r2, [r3, #65]
|
||
6747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
13860 .loc 1 6747 22
|
||
13861 0062 FB68 ldr r3, [r7, #12]
|
||
13862 0064 0022 movs r2, #0
|
||
13863 0066 83F84220 strb r2, [r3, #66]
|
||
6748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
13864 .loc 1 6750 11
|
||
13865 006a FB68 ldr r3, [r7, #12]
|
||
13866 006c 0022 movs r2, #0
|
||
13867 006e 83F84020 strb r2, [r3, #64]
|
||
6751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
13868 .loc 1 6751 18
|
||
13869 0072 0123 movs r3, #1
|
||
13870 0074 0FE0 b .L680
|
||
13871 .L677:
|
||
6736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13872 .loc 1 6736 10
|
||
13873 0076 FB68 ldr r3, [r7, #12]
|
||
13874 0078 1B68 ldr r3, [r3]
|
||
13875 007a 9A69 ldr r2, [r3, #24]
|
||
13876 007c BB68 ldr r3, [r7, #8]
|
||
13877 007e 1340 ands r3, r3, r2
|
||
13878 0080 BA68 ldr r2, [r7, #8]
|
||
13879 0082 9A42 cmp r2, r3
|
||
13880 0084 0CBF ite eq
|
||
13881 0086 0123 moveq r3, #1
|
||
13882 0088 0023 movne r3, #0
|
||
13883 008a DBB2 uxtb r3, r3
|
||
13884 008c 1A46 mov r2, r3
|
||
6736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13885 .loc 1 6736 41
|
||
13886 008e FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
|
||
13887 0090 9A42 cmp r2, r3
|
||
13888 0092 BED0 beq .L681
|
||
6752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
13889 .loc 1 6756 10
|
||
13890 0094 0023 movs r3, #0
|
||
13891 .L680:
|
||
6757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
13892 .loc 1 6757 1
|
||
13893 0096 1846 mov r0, r3
|
||
13894 0098 1037 adds r7, r7, #16
|
||
ARM GAS /tmp/cc5G5cqz.s page 366
|
||
|
||
|
||
13895 .cfi_def_cfa_offset 8
|
||
13896 009a BD46 mov sp, r7
|
||
13897 .cfi_def_cfa_register 13
|
||
13898 @ sp needed
|
||
13899 009c 80BD pop {r7, pc}
|
||
13900 .cfi_endproc
|
||
13901 .LFE202:
|
||
13903 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits
|
||
13904 .align 1
|
||
13905 .syntax unified
|
||
13906 .thumb
|
||
13907 .thumb_func
|
||
13909 I2C_WaitOnTXISFlagUntilTimeout:
|
||
13910 .LFB203:
|
||
6758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
6760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag.
|
||
6761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
6762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
6763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
|
||
6764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
|
||
6765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
6766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
|
||
6768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
|
||
6769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13911 .loc 1 6769 1
|
||
13912 .cfi_startproc
|
||
13913 @ args = 0, pretend = 0, frame = 16
|
||
13914 @ frame_needed = 1, uses_anonymous_args = 0
|
||
13915 0000 80B5 push {r7, lr}
|
||
13916 .cfi_def_cfa_offset 8
|
||
13917 .cfi_offset 7, -8
|
||
13918 .cfi_offset 14, -4
|
||
13919 0002 84B0 sub sp, sp, #16
|
||
13920 .cfi_def_cfa_offset 24
|
||
13921 0004 00AF add r7, sp, #0
|
||
13922 .cfi_def_cfa_register 7
|
||
13923 0006 F860 str r0, [r7, #12]
|
||
13924 0008 B960 str r1, [r7, #8]
|
||
13925 000a 7A60 str r2, [r7, #4]
|
||
6770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
|
||
13926 .loc 1 6770 9
|
||
13927 000c 33E0 b .L686
|
||
13928 .L689:
|
||
6771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
|
||
6773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
|
||
13929 .loc 1 6773 9
|
||
13930 000e 7A68 ldr r2, [r7, #4]
|
||
13931 0010 B968 ldr r1, [r7, #8]
|
||
13932 0012 F868 ldr r0, [r7, #12]
|
||
13933 0014 FFF7FEFF bl I2C_IsErrorOccurred
|
||
13934 0018 0346 mov r3, r0
|
||
13935 .loc 1 6773 8 discriminator 1
|
||
13936 001a 002B cmp r3, #0
|
||
13937 001c 01D0 beq .L684
|
||
ARM GAS /tmp/cc5G5cqz.s page 367
|
||
|
||
|
||
6774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
13938 .loc 1 6775 14
|
||
13939 001e 0123 movs r3, #1
|
||
13940 0020 31E0 b .L685
|
||
13941 .L684:
|
||
6776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
|
||
6779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
|
||
13942 .loc 1 6779 8
|
||
13943 0022 BB68 ldr r3, [r7, #8]
|
||
13944 0024 B3F1FF3F cmp r3, #-1
|
||
13945 0028 25D0 beq .L686
|
||
6780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
|
||
13946 .loc 1 6781 13
|
||
13947 002a FFF7FEFF bl HAL_GetTick
|
||
13948 002e 0246 mov r2, r0
|
||
13949 .loc 1 6781 27 discriminator 1
|
||
13950 0030 7B68 ldr r3, [r7, #4]
|
||
13951 0032 D31A subs r3, r2, r3
|
||
13952 .loc 1 6781 10 discriminator 1
|
||
13953 0034 BA68 ldr r2, [r7, #8]
|
||
13954 0036 9A42 cmp r2, r3
|
||
13955 0038 02D3 bcc .L687
|
||
13956 .loc 1 6781 51 discriminator 1
|
||
13957 003a BB68 ldr r3, [r7, #8]
|
||
13958 003c 002B cmp r3, #0
|
||
13959 003e 1AD1 bne .L686
|
||
13960 .L687:
|
||
6782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET))
|
||
13961 .loc 1 6783 14
|
||
13962 0040 FB68 ldr r3, [r7, #12]
|
||
13963 0042 1B68 ldr r3, [r3]
|
||
13964 0044 9B69 ldr r3, [r3, #24]
|
||
13965 0046 03F00203 and r3, r3, #2
|
||
13966 .loc 1 6783 12
|
||
13967 004a 022B cmp r3, #2
|
||
13968 004c 13D0 beq .L686
|
||
6784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
|
||
13969 .loc 1 6785 15
|
||
13970 004e FB68 ldr r3, [r7, #12]
|
||
13971 0050 5B6C ldr r3, [r3, #68]
|
||
13972 .loc 1 6785 27
|
||
13973 0052 43F02002 orr r2, r3, #32
|
||
13974 0056 FB68 ldr r3, [r7, #12]
|
||
13975 0058 5A64 str r2, [r3, #68]
|
||
6786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
13976 .loc 1 6786 23
|
||
13977 005a FB68 ldr r3, [r7, #12]
|
||
13978 005c 2022 movs r2, #32
|
||
13979 005e 83F84120 strb r2, [r3, #65]
|
||
6787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
13980 .loc 1 6787 22
|
||
ARM GAS /tmp/cc5G5cqz.s page 368
|
||
|
||
|
||
13981 0062 FB68 ldr r3, [r7, #12]
|
||
13982 0064 0022 movs r2, #0
|
||
13983 0066 83F84220 strb r2, [r3, #66]
|
||
6788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
13984 .loc 1 6790 11
|
||
13985 006a FB68 ldr r3, [r7, #12]
|
||
13986 006c 0022 movs r2, #0
|
||
13987 006e 83F84020 strb r2, [r3, #64]
|
||
6791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
13988 .loc 1 6792 18
|
||
13989 0072 0123 movs r3, #1
|
||
13990 0074 07E0 b .L685
|
||
13991 .L686:
|
||
6770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13992 .loc 1 6770 10
|
||
13993 0076 FB68 ldr r3, [r7, #12]
|
||
13994 0078 1B68 ldr r3, [r3]
|
||
13995 007a 9B69 ldr r3, [r3, #24]
|
||
13996 007c 03F00203 and r3, r3, #2
|
||
6770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
13997 .loc 1 6770 50
|
||
13998 0080 022B cmp r3, #2
|
||
13999 0082 C4D1 bne .L689
|
||
6793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
14000 .loc 1 6797 10
|
||
14001 0084 0023 movs r3, #0
|
||
14002 .L685:
|
||
6798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
14003 .loc 1 6798 1
|
||
14004 0086 1846 mov r0, r3
|
||
14005 0088 1037 adds r7, r7, #16
|
||
14006 .cfi_def_cfa_offset 8
|
||
14007 008a BD46 mov sp, r7
|
||
14008 .cfi_def_cfa_register 13
|
||
14009 @ sp needed
|
||
14010 008c 80BD pop {r7, pc}
|
||
14011 .cfi_endproc
|
||
14012 .LFE203:
|
||
14014 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits
|
||
14015 .align 1
|
||
14016 .syntax unified
|
||
14017 .thumb
|
||
14018 .thumb_func
|
||
14020 I2C_WaitOnSTOPFlagUntilTimeout:
|
||
14021 .LFB204:
|
||
6799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
6801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag.
|
||
6802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
6803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
ARM GAS /tmp/cc5G5cqz.s page 369
|
||
|
||
|
||
6804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
|
||
6805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
|
||
6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
6807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
|
||
6809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
|
||
6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14022 .loc 1 6810 1
|
||
14023 .cfi_startproc
|
||
14024 @ args = 0, pretend = 0, frame = 16
|
||
14025 @ frame_needed = 1, uses_anonymous_args = 0
|
||
14026 0000 80B5 push {r7, lr}
|
||
14027 .cfi_def_cfa_offset 8
|
||
14028 .cfi_offset 7, -8
|
||
14029 .cfi_offset 14, -4
|
||
14030 0002 84B0 sub sp, sp, #16
|
||
14031 .cfi_def_cfa_offset 24
|
||
14032 0004 00AF add r7, sp, #0
|
||
14033 .cfi_def_cfa_register 7
|
||
14034 0006 F860 str r0, [r7, #12]
|
||
14035 0008 B960 str r1, [r7, #8]
|
||
14036 000a 7A60 str r2, [r7, #4]
|
||
6811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
|
||
14037 .loc 1 6811 9
|
||
14038 000c 2FE0 b .L691
|
||
14039 .L696:
|
||
6812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
|
||
6814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
|
||
14040 .loc 1 6814 9
|
||
14041 000e 7A68 ldr r2, [r7, #4]
|
||
14042 0010 B968 ldr r1, [r7, #8]
|
||
14043 0012 F868 ldr r0, [r7, #12]
|
||
14044 0014 FFF7FEFF bl I2C_IsErrorOccurred
|
||
14045 0018 0346 mov r3, r0
|
||
14046 .loc 1 6814 8 discriminator 1
|
||
14047 001a 002B cmp r3, #0
|
||
14048 001c 01D0 beq .L692
|
||
6815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
14049 .loc 1 6816 14
|
||
14050 001e 0123 movs r3, #1
|
||
14051 0020 2DE0 b .L693
|
||
14052 .L692:
|
||
6817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
|
||
6820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
|
||
14053 .loc 1 6820 11
|
||
14054 0022 FFF7FEFF bl HAL_GetTick
|
||
14055 0026 0246 mov r2, r0
|
||
14056 .loc 1 6820 25 discriminator 1
|
||
14057 0028 7B68 ldr r3, [r7, #4]
|
||
14058 002a D31A subs r3, r2, r3
|
||
14059 .loc 1 6820 8 discriminator 1
|
||
14060 002c BA68 ldr r2, [r7, #8]
|
||
14061 002e 9A42 cmp r2, r3
|
||
ARM GAS /tmp/cc5G5cqz.s page 370
|
||
|
||
|
||
14062 0030 02D3 bcc .L694
|
||
14063 .loc 1 6820 49 discriminator 1
|
||
14064 0032 BB68 ldr r3, [r7, #8]
|
||
14065 0034 002B cmp r3, #0
|
||
14066 0036 1AD1 bne .L691
|
||
14067 .L694:
|
||
6821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET))
|
||
14068 .loc 1 6822 12
|
||
14069 0038 FB68 ldr r3, [r7, #12]
|
||
14070 003a 1B68 ldr r3, [r3]
|
||
14071 003c 9B69 ldr r3, [r3, #24]
|
||
14072 003e 03F02003 and r3, r3, #32
|
||
14073 .loc 1 6822 10
|
||
14074 0042 202B cmp r3, #32
|
||
14075 0044 13D0 beq .L691
|
||
6823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
|
||
14076 .loc 1 6824 13
|
||
14077 0046 FB68 ldr r3, [r7, #12]
|
||
14078 0048 5B6C ldr r3, [r3, #68]
|
||
14079 .loc 1 6824 25
|
||
14080 004a 43F02002 orr r2, r3, #32
|
||
14081 004e FB68 ldr r3, [r7, #12]
|
||
14082 0050 5A64 str r2, [r3, #68]
|
||
6825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
14083 .loc 1 6825 21
|
||
14084 0052 FB68 ldr r3, [r7, #12]
|
||
14085 0054 2022 movs r2, #32
|
||
14086 0056 83F84120 strb r2, [r3, #65]
|
||
6826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
14087 .loc 1 6826 20
|
||
14088 005a FB68 ldr r3, [r7, #12]
|
||
14089 005c 0022 movs r2, #0
|
||
14090 005e 83F84220 strb r2, [r3, #66]
|
||
6827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
14091 .loc 1 6829 9
|
||
14092 0062 FB68 ldr r3, [r7, #12]
|
||
14093 0064 0022 movs r2, #0
|
||
14094 0066 83F84020 strb r2, [r3, #64]
|
||
6830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
14095 .loc 1 6831 16
|
||
14096 006a 0123 movs r3, #1
|
||
14097 006c 07E0 b .L693
|
||
14098 .L691:
|
||
6811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14099 .loc 1 6811 10
|
||
14100 006e FB68 ldr r3, [r7, #12]
|
||
14101 0070 1B68 ldr r3, [r3]
|
||
14102 0072 9B69 ldr r3, [r3, #24]
|
||
14103 0074 03F02003 and r3, r3, #32
|
||
6811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14104 .loc 1 6811 51
|
||
14105 0078 202B cmp r3, #32
|
||
ARM GAS /tmp/cc5G5cqz.s page 371
|
||
|
||
|
||
14106 007a C8D1 bne .L696
|
||
6832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
14107 .loc 1 6835 10
|
||
14108 007c 0023 movs r3, #0
|
||
14109 .L693:
|
||
6836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
14110 .loc 1 6836 1
|
||
14111 007e 1846 mov r0, r3
|
||
14112 0080 1037 adds r7, r7, #16
|
||
14113 .cfi_def_cfa_offset 8
|
||
14114 0082 BD46 mov sp, r7
|
||
14115 .cfi_def_cfa_register 13
|
||
14116 @ sp needed
|
||
14117 0084 80BD pop {r7, pc}
|
||
14118 .cfi_endproc
|
||
14119 .LFE204:
|
||
14121 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits
|
||
14122 .align 1
|
||
14123 .syntax unified
|
||
14124 .thumb
|
||
14125 .thumb_func
|
||
14127 I2C_WaitOnRXNEFlagUntilTimeout:
|
||
14128 .LFB205:
|
||
6837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
6839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag.
|
||
6840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
6841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
6842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
|
||
6843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
|
||
6844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
6845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
|
||
6847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
|
||
6848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14129 .loc 1 6848 1
|
||
14130 .cfi_startproc
|
||
14131 @ args = 0, pretend = 0, frame = 16
|
||
14132 @ frame_needed = 1, uses_anonymous_args = 0
|
||
14133 0000 80B5 push {r7, lr}
|
||
14134 .cfi_def_cfa_offset 8
|
||
14135 .cfi_offset 7, -8
|
||
14136 .cfi_offset 14, -4
|
||
14137 0002 84B0 sub sp, sp, #16
|
||
14138 .cfi_def_cfa_offset 24
|
||
14139 0004 00AF add r7, sp, #0
|
||
14140 .cfi_def_cfa_register 7
|
||
14141 0006 F860 str r0, [r7, #12]
|
||
14142 0008 B960 str r1, [r7, #8]
|
||
14143 000a 7A60 str r2, [r7, #4]
|
||
6849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)
|
||
14144 .loc 1 6849 9
|
||
14145 000c 6BE0 b .L698
|
||
14146 .L707:
|
||
ARM GAS /tmp/cc5G5cqz.s page 372
|
||
|
||
|
||
6850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
|
||
6852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
|
||
14147 .loc 1 6852 9
|
||
14148 000e 7A68 ldr r2, [r7, #4]
|
||
14149 0010 B968 ldr r1, [r7, #8]
|
||
14150 0012 F868 ldr r0, [r7, #12]
|
||
14151 0014 FFF7FEFF bl I2C_IsErrorOccurred
|
||
14152 0018 0346 mov r3, r0
|
||
14153 .loc 1 6852 8 discriminator 1
|
||
14154 001a 002B cmp r3, #0
|
||
14155 001c 01D0 beq .L699
|
||
6853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
14156 .loc 1 6854 14
|
||
14157 001e 0123 movs r3, #1
|
||
14158 0020 69E0 b .L700
|
||
14159 .L699:
|
||
6855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a STOPF is detected */
|
||
6858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET)
|
||
14160 .loc 1 6858 9
|
||
14161 0022 FB68 ldr r3, [r7, #12]
|
||
14162 0024 1B68 ldr r3, [r3]
|
||
14163 0026 9B69 ldr r3, [r3, #24]
|
||
14164 0028 03F02003 and r3, r3, #32
|
||
14165 .loc 1 6858 8
|
||
14166 002c 202B cmp r3, #32
|
||
14167 002e 38D1 bne .L701
|
||
6859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an RXNE is pending */
|
||
6861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
|
||
6862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U))
|
||
14168 .loc 1 6862 12
|
||
14169 0030 FB68 ldr r3, [r7, #12]
|
||
14170 0032 1B68 ldr r3, [r3]
|
||
14171 0034 9B69 ldr r3, [r3, #24]
|
||
14172 0036 03F00403 and r3, r3, #4
|
||
14173 .loc 1 6862 10
|
||
14174 003a 042B cmp r3, #4
|
||
14175 003c 05D1 bne .L702
|
||
14176 .loc 1 6862 68 discriminator 1
|
||
14177 003e FB68 ldr r3, [r7, #12]
|
||
14178 0040 1B8D ldrh r3, [r3, #40]
|
||
14179 .loc 1 6862 60 discriminator 1
|
||
14180 0042 002B cmp r3, #0
|
||
14181 0044 01D0 beq .L702
|
||
6863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return HAL_OK */
|
||
6865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */
|
||
6866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
14182 .loc 1 6866 16
|
||
14183 0046 0023 movs r3, #0
|
||
14184 0048 55E0 b .L700
|
||
14185 .L702:
|
||
6867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 373
|
||
|
||
|
||
6868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
|
||
14186 .loc 1 6870 13
|
||
14187 004a FB68 ldr r3, [r7, #12]
|
||
14188 004c 1B68 ldr r3, [r3]
|
||
14189 004e 9B69 ldr r3, [r3, #24]
|
||
14190 0050 03F01003 and r3, r3, #16
|
||
14191 .loc 1 6870 12
|
||
14192 0054 102B cmp r3, #16
|
||
14193 0056 07D1 bne .L703
|
||
6871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
14194 .loc 1 6872 11
|
||
14195 0058 FB68 ldr r3, [r7, #12]
|
||
14196 005a 1B68 ldr r3, [r3]
|
||
14197 005c 1022 movs r2, #16
|
||
14198 005e DA61 str r2, [r3, #28]
|
||
6873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF;
|
||
14199 .loc 1 6873 27
|
||
14200 0060 FB68 ldr r3, [r7, #12]
|
||
14201 0062 0422 movs r2, #4
|
||
14202 0064 5A64 str r2, [r3, #68]
|
||
14203 0066 02E0 b .L704
|
||
14204 .L703:
|
||
6874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
6876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
|
||
14205 .loc 1 6877 27
|
||
14206 0068 FB68 ldr r3, [r7, #12]
|
||
14207 006a 0022 movs r2, #0
|
||
14208 006c 5A64 str r2, [r3, #68]
|
||
14209 .L704:
|
||
6878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
|
||
6881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
14210 .loc 1 6881 9
|
||
14211 006e FB68 ldr r3, [r7, #12]
|
||
14212 0070 1B68 ldr r3, [r3]
|
||
14213 0072 2022 movs r2, #32
|
||
14214 0074 DA61 str r2, [r3, #28]
|
||
6882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
|
||
6884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
|
||
14215 .loc 1 6884 9
|
||
14216 0076 FB68 ldr r3, [r7, #12]
|
||
14217 0078 1B68 ldr r3, [r3]
|
||
14218 007a 5968 ldr r1, [r3, #4]
|
||
14219 007c FB68 ldr r3, [r7, #12]
|
||
14220 007e 1A68 ldr r2, [r3]
|
||
14221 0080 1F4B ldr r3, .L708
|
||
14222 0082 0B40 ands r3, r3, r1
|
||
14223 0084 5360 str r3, [r2, #4]
|
||
6885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
ARM GAS /tmp/cc5G5cqz.s page 374
|
||
|
||
|
||
14224 .loc 1 6886 21
|
||
14225 0086 FB68 ldr r3, [r7, #12]
|
||
14226 0088 2022 movs r2, #32
|
||
14227 008a 83F84120 strb r2, [r3, #65]
|
||
6887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
14228 .loc 1 6887 20
|
||
14229 008e FB68 ldr r3, [r7, #12]
|
||
14230 0090 0022 movs r2, #0
|
||
14231 0092 83F84220 strb r2, [r3, #66]
|
||
6888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
14232 .loc 1 6890 9
|
||
14233 0096 FB68 ldr r3, [r7, #12]
|
||
14234 0098 0022 movs r2, #0
|
||
14235 009a 83F84020 strb r2, [r3, #64]
|
||
6891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
14236 .loc 1 6892 16
|
||
14237 009e 0123 movs r3, #1
|
||
14238 00a0 29E0 b .L700
|
||
14239 .L701:
|
||
6893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
|
||
6897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
|
||
14240 .loc 1 6897 11
|
||
14241 00a2 FFF7FEFF bl HAL_GetTick
|
||
14242 00a6 0246 mov r2, r0
|
||
14243 .loc 1 6897 25 discriminator 1
|
||
14244 00a8 7B68 ldr r3, [r7, #4]
|
||
14245 00aa D31A subs r3, r2, r3
|
||
14246 .loc 1 6897 8 discriminator 1
|
||
14247 00ac BA68 ldr r2, [r7, #8]
|
||
14248 00ae 9A42 cmp r2, r3
|
||
14249 00b0 02D3 bcc .L705
|
||
14250 .loc 1 6897 49 discriminator 1
|
||
14251 00b2 BB68 ldr r3, [r7, #8]
|
||
14252 00b4 002B cmp r3, #0
|
||
14253 00b6 16D1 bne .L698
|
||
14254 .L705:
|
||
6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET))
|
||
14255 .loc 1 6899 12
|
||
14256 00b8 FB68 ldr r3, [r7, #12]
|
||
14257 00ba 1B68 ldr r3, [r3]
|
||
14258 00bc 9B69 ldr r3, [r3, #24]
|
||
14259 00be 03F00403 and r3, r3, #4
|
||
14260 .loc 1 6899 10
|
||
14261 00c2 042B cmp r3, #4
|
||
14262 00c4 0FD0 beq .L698
|
||
6900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
|
||
14263 .loc 1 6901 13
|
||
14264 00c6 FB68 ldr r3, [r7, #12]
|
||
14265 00c8 5B6C ldr r3, [r3, #68]
|
||
ARM GAS /tmp/cc5G5cqz.s page 375
|
||
|
||
|
||
14266 .loc 1 6901 25
|
||
14267 00ca 43F02002 orr r2, r3, #32
|
||
14268 00ce FB68 ldr r3, [r7, #12]
|
||
14269 00d0 5A64 str r2, [r3, #68]
|
||
6902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
14270 .loc 1 6902 21
|
||
14271 00d2 FB68 ldr r3, [r7, #12]
|
||
14272 00d4 2022 movs r2, #32
|
||
14273 00d6 83F84120 strb r2, [r3, #65]
|
||
6903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
6905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
14274 .loc 1 6905 9
|
||
14275 00da FB68 ldr r3, [r7, #12]
|
||
14276 00dc 0022 movs r2, #0
|
||
14277 00de 83F84020 strb r2, [r3, #64]
|
||
6906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
|
||
14278 .loc 1 6907 16
|
||
14279 00e2 0123 movs r3, #1
|
||
14280 00e4 07E0 b .L700
|
||
14281 .L698:
|
||
6849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14282 .loc 1 6849 10
|
||
14283 00e6 FB68 ldr r3, [r7, #12]
|
||
14284 00e8 1B68 ldr r3, [r3]
|
||
14285 00ea 9B69 ldr r3, [r3, #24]
|
||
14286 00ec 03F00403 and r3, r3, #4
|
||
6849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14287 .loc 1 6849 50
|
||
14288 00f0 042B cmp r3, #4
|
||
14289 00f2 8CD1 bne .L707
|
||
6908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
|
||
14290 .loc 1 6911 10
|
||
14291 00f4 0023 movs r3, #0
|
||
14292 .L700:
|
||
6912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
14293 .loc 1 6912 1
|
||
14294 00f6 1846 mov r0, r3
|
||
14295 00f8 1037 adds r7, r7, #16
|
||
14296 .cfi_def_cfa_offset 8
|
||
14297 00fa BD46 mov sp, r7
|
||
14298 .cfi_def_cfa_register 13
|
||
14299 @ sp needed
|
||
14300 00fc 80BD pop {r7, pc}
|
||
14301 .L709:
|
||
14302 00fe 00BF .align 2
|
||
14303 .L708:
|
||
14304 0100 00E800FE .word -33495040
|
||
14305 .cfi_endproc
|
||
14306 .LFE205:
|
||
14308 .section .text.I2C_IsErrorOccurred,"ax",%progbits
|
||
14309 .align 1
|
||
14310 .syntax unified
|
||
ARM GAS /tmp/cc5G5cqz.s page 376
|
||
|
||
|
||
14311 .thumb
|
||
14312 .thumb_func
|
||
14314 I2C_IsErrorOccurred:
|
||
14315 .LFB206:
|
||
6913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
6915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles errors detection during an I2C Communication.
|
||
6916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
6917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
6918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
|
||
6919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
|
||
6920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
|
||
6921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
6922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Ti
|
||
6923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14316 .loc 1 6923 1
|
||
14317 .cfi_startproc
|
||
14318 @ args = 0, pretend = 0, frame = 40
|
||
14319 @ frame_needed = 1, uses_anonymous_args = 0
|
||
14320 0000 80B5 push {r7, lr}
|
||
14321 .cfi_def_cfa_offset 8
|
||
14322 .cfi_offset 7, -8
|
||
14323 .cfi_offset 14, -4
|
||
14324 0002 8AB0 sub sp, sp, #40
|
||
14325 .cfi_def_cfa_offset 48
|
||
14326 0004 00AF add r7, sp, #0
|
||
14327 .cfi_def_cfa_register 7
|
||
14328 0006 F860 str r0, [r7, #12]
|
||
14329 0008 B960 str r1, [r7, #8]
|
||
14330 000a 7A60 str r2, [r7, #4]
|
||
6924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
|
||
14331 .loc 1 6924 21
|
||
14332 000c 0023 movs r3, #0
|
||
14333 000e 87F82730 strb r3, [r7, #39]
|
||
6925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
|
||
14334 .loc 1 6925 27
|
||
14335 0012 FB68 ldr r3, [r7, #12]
|
||
14336 0014 1B68 ldr r3, [r3]
|
||
14337 .loc 1 6925 12
|
||
14338 0016 9B69 ldr r3, [r3, #24]
|
||
14339 0018 BB61 str r3, [r7, #24]
|
||
6926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t error_code = 0;
|
||
14340 .loc 1 6926 12
|
||
14341 001a 0023 movs r3, #0
|
||
14342 001c 3B62 str r3, [r7, #32]
|
||
6927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart = Tickstart;
|
||
14343 .loc 1 6927 12
|
||
14344 001e 7B68 ldr r3, [r7, #4]
|
||
14345 0020 FB61 str r3, [r7, #28]
|
||
6928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp1;
|
||
6929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2;
|
||
6930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF))
|
||
14346 .loc 1 6931 7
|
||
14347 0022 BB69 ldr r3, [r7, #24]
|
||
14348 0024 03F01003 and r3, r3, #16
|
||
14349 .loc 1 6931 6
|
||
ARM GAS /tmp/cc5G5cqz.s page 377
|
||
|
||
|
||
14350 0028 002B cmp r3, #0
|
||
14351 002a 68D0 beq .L711
|
||
6932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACKF Flag */
|
||
6934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
|
||
14352 .loc 1 6934 5
|
||
14353 002c FB68 ldr r3, [r7, #12]
|
||
14354 002e 1B68 ldr r3, [r3]
|
||
14355 0030 1022 movs r2, #16
|
||
14356 0032 DA61 str r2, [r3, #28]
|
||
6935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP Flag is set or timeout occurred */
|
||
6937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */
|
||
6938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK))
|
||
14357 .loc 1 6938 11
|
||
14358 0034 49E0 b .L713
|
||
14359 .L720:
|
||
6939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
|
||
6941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
|
||
14360 .loc 1 6941 10
|
||
14361 0036 BB68 ldr r3, [r7, #8]
|
||
14362 0038 B3F1FF3F cmp r3, #-1
|
||
14363 003c 45D0 beq .L713
|
||
6942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
|
||
14364 .loc 1 6943 15
|
||
14365 003e FFF7FEFF bl HAL_GetTick
|
||
14366 0042 0246 mov r2, r0
|
||
14367 .loc 1 6943 29 discriminator 1
|
||
14368 0044 FB69 ldr r3, [r7, #28]
|
||
14369 0046 D31A subs r3, r2, r3
|
||
14370 .loc 1 6943 12 discriminator 1
|
||
14371 0048 BA68 ldr r2, [r7, #8]
|
||
14372 004a 9A42 cmp r2, r3
|
||
14373 004c 02D3 bcc .L714
|
||
14374 .loc 1 6943 53 discriminator 1
|
||
14375 004e BB68 ldr r3, [r7, #8]
|
||
14376 0050 002B cmp r3, #0
|
||
14377 0052 3AD1 bne .L713
|
||
14378 .L714:
|
||
6944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP);
|
||
14379 .loc 1 6945 33
|
||
14380 0054 FB68 ldr r3, [r7, #12]
|
||
14381 0056 1B68 ldr r3, [r3]
|
||
14382 .loc 1 6945 43
|
||
14383 0058 5B68 ldr r3, [r3, #4]
|
||
14384 .loc 1 6945 16
|
||
14385 005a 03F48043 and r3, r3, #16384
|
||
14386 005e 7B61 str r3, [r7, #20]
|
||
6946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = hi2c->Mode;
|
||
14387 .loc 1 6946 16
|
||
14388 0060 FB68 ldr r3, [r7, #12]
|
||
14389 0062 93F84230 ldrb r3, [r3, #66]
|
||
14390 0066 FB74 strb r3, [r7, #19]
|
||
6947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
ARM GAS /tmp/cc5G5cqz.s page 378
|
||
|
||
|
||
6948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case of I2C still busy, try to regenerate a STOP manually */
|
||
6949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \
|
||
14391 .loc 1 6949 16
|
||
14392 0068 FB68 ldr r3, [r7, #12]
|
||
14393 006a 1B68 ldr r3, [r3]
|
||
14394 006c 9B69 ldr r3, [r3, #24]
|
||
14395 006e 03F40043 and r3, r3, #32768
|
||
14396 .loc 1 6949 14
|
||
14397 0072 B3F5004F cmp r3, #32768
|
||
14398 0076 21D1 bne .L717
|
||
14399 .loc 1 6949 66 discriminator 1
|
||
14400 0078 7B69 ldr r3, [r7, #20]
|
||
14401 007a B3F5804F cmp r3, #16384
|
||
14402 007e 1DD0 beq .L717
|
||
6950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
|
||
14403 .loc 1 6950 38
|
||
14404 0080 FB7C ldrb r3, [r7, #19] @ zero_extendqisi2
|
||
14405 0082 202B cmp r3, #32
|
||
14406 0084 1AD0 beq .L717
|
||
6951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE))
|
||
6952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
|
||
6954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
|
||
14407 .loc 1 6954 17
|
||
14408 0086 FB68 ldr r3, [r7, #12]
|
||
14409 0088 1B68 ldr r3, [r3]
|
||
14410 .loc 1 6954 27
|
||
14411 008a 5A68 ldr r2, [r3, #4]
|
||
14412 .loc 1 6954 17
|
||
14413 008c FB68 ldr r3, [r7, #12]
|
||
14414 008e 1B68 ldr r3, [r3]
|
||
14415 .loc 1 6954 33
|
||
14416 0090 42F48042 orr r2, r2, #16384
|
||
14417 0094 5A60 str r2, [r3, #4]
|
||
6955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Tick with new reference */
|
||
6957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
|
||
14418 .loc 1 6957 25
|
||
14419 0096 FFF7FEFF bl HAL_GetTick
|
||
14420 009a F861 str r0, [r7, #28]
|
||
6958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
|
||
14421 .loc 1 6960 17
|
||
14422 009c 0EE0 b .L717
|
||
14423 .L718:
|
||
6961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
|
||
6963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF)
|
||
14424 .loc 1 6963 18
|
||
14425 009e FFF7FEFF bl HAL_GetTick
|
||
14426 00a2 0246 mov r2, r0
|
||
14427 .loc 1 6963 32 discriminator 1
|
||
14428 00a4 FB69 ldr r3, [r7, #28]
|
||
14429 00a6 D31A subs r3, r2, r3
|
||
14430 .loc 1 6963 16 discriminator 1
|
||
14431 00a8 192B cmp r3, #25
|
||
ARM GAS /tmp/cc5G5cqz.s page 379
|
||
|
||
|
||
14432 00aa 07D9 bls .L717
|
||
6964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_TIMEOUT;
|
||
14433 .loc 1 6965 26
|
||
14434 00ac 3B6A ldr r3, [r7, #32]
|
||
14435 00ae 43F02003 orr r3, r3, #32
|
||
14436 00b2 3B62 str r3, [r7, #32]
|
||
6966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
|
||
14437 .loc 1 6967 22
|
||
14438 00b4 0123 movs r3, #1
|
||
14439 00b6 87F82730 strb r3, [r7, #39]
|
||
6968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
|
||
14440 .loc 1 6969 15
|
||
14441 00ba 06E0 b .L713
|
||
14442 .L717:
|
||
6960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14443 .loc 1 6960 18
|
||
14444 00bc FB68 ldr r3, [r7, #12]
|
||
14445 00be 1B68 ldr r3, [r3]
|
||
14446 00c0 9B69 ldr r3, [r3, #24]
|
||
14447 00c2 03F02003 and r3, r3, #32
|
||
6960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14448 .loc 1 6960 59
|
||
14449 00c6 202B cmp r3, #32
|
||
14450 00c8 E9D1 bne .L718
|
||
14451 .L713:
|
||
6938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14452 .loc 1 6938 13
|
||
14453 00ca FB68 ldr r3, [r7, #12]
|
||
14454 00cc 1B68 ldr r3, [r3]
|
||
14455 00ce 9B69 ldr r3, [r3, #24]
|
||
14456 00d0 03F02003 and r3, r3, #32
|
||
6938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14457 .loc 1 6938 64
|
||
14458 00d4 202B cmp r3, #32
|
||
14459 00d6 03D0 beq .L719
|
||
6938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14460 .loc 1 6938 64 is_stmt 0 discriminator 1
|
||
14461 00d8 97F82730 ldrb r3, [r7, #39] @ zero_extendqisi2
|
||
14462 00dc 002B cmp r3, #0
|
||
14463 00de AAD0 beq .L720
|
||
14464 .L719:
|
||
6970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case STOP Flag is detected, clear it */
|
||
6977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (status == HAL_OK)
|
||
14465 .loc 1 6977 8 is_stmt 1
|
||
14466 00e0 97F82730 ldrb r3, [r7, #39] @ zero_extendqisi2
|
||
14467 00e4 002B cmp r3, #0
|
||
14468 00e6 03D1 bne .L721
|
||
6978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
ARM GAS /tmp/cc5G5cqz.s page 380
|
||
|
||
|
||
6979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
|
||
6980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
|
||
14469 .loc 1 6980 7
|
||
14470 00e8 FB68 ldr r3, [r7, #12]
|
||
14471 00ea 1B68 ldr r3, [r3]
|
||
14472 00ec 2022 movs r2, #32
|
||
14473 00ee DA61 str r2, [r3, #28]
|
||
14474 .L721:
|
||
6981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_AF;
|
||
14475 .loc 1 6983 16
|
||
14476 00f0 3B6A ldr r3, [r7, #32]
|
||
14477 00f2 43F00403 orr r3, r3, #4
|
||
14478 00f6 3B62 str r3, [r7, #32]
|
||
6984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
|
||
14479 .loc 1 6985 12
|
||
14480 00f8 0123 movs r3, #1
|
||
14481 00fa 87F82730 strb r3, [r7, #39]
|
||
14482 .L711:
|
||
6986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
6987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Refresh Content of Status register */
|
||
6989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** itflag = hi2c->Instance->ISR;
|
||
14483 .loc 1 6989 16
|
||
14484 00fe FB68 ldr r3, [r7, #12]
|
||
14485 0100 1B68 ldr r3, [r3]
|
||
14486 .loc 1 6989 10
|
||
14487 0102 9B69 ldr r3, [r3, #24]
|
||
14488 0104 BB61 str r3, [r7, #24]
|
||
6990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Then verify if an additional errors occurs */
|
||
6992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a Bus error occurred */
|
||
6993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR))
|
||
14489 .loc 1 6993 7
|
||
14490 0106 BB69 ldr r3, [r7, #24]
|
||
14491 0108 03F48073 and r3, r3, #256
|
||
14492 .loc 1 6993 6
|
||
14493 010c 002B cmp r3, #0
|
||
14494 010e 0BD0 beq .L722
|
||
6994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
6995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR;
|
||
14495 .loc 1 6995 16
|
||
14496 0110 3B6A ldr r3, [r7, #32]
|
||
14497 0112 43F00103 orr r3, r3, #1
|
||
14498 0116 3B62 str r3, [r7, #32]
|
||
6996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
6997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear BERR flag */
|
||
6998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
|
||
14499 .loc 1 6998 5
|
||
14500 0118 FB68 ldr r3, [r7, #12]
|
||
14501 011a 1B68 ldr r3, [r3]
|
||
14502 011c 4FF48072 mov r2, #256
|
||
14503 0120 DA61 str r2, [r3, #28]
|
||
6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
|
||
ARM GAS /tmp/cc5G5cqz.s page 381
|
||
|
||
|
||
14504 .loc 1 7000 12
|
||
14505 0122 0123 movs r3, #1
|
||
14506 0124 87F82730 strb r3, [r7, #39]
|
||
14507 .L722:
|
||
7001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an Over-Run/Under-Run error occurred */
|
||
7004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR))
|
||
14508 .loc 1 7004 7
|
||
14509 0128 BB69 ldr r3, [r7, #24]
|
||
14510 012a 03F48063 and r3, r3, #1024
|
||
14511 .loc 1 7004 6
|
||
14512 012e 002B cmp r3, #0
|
||
14513 0130 0BD0 beq .L723
|
||
7005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_OVR;
|
||
14514 .loc 1 7006 16
|
||
14515 0132 3B6A ldr r3, [r7, #32]
|
||
14516 0134 43F00803 orr r3, r3, #8
|
||
14517 0138 3B62 str r3, [r7, #32]
|
||
7007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear OVR flag */
|
||
7009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
|
||
14518 .loc 1 7009 5
|
||
14519 013a FB68 ldr r3, [r7, #12]
|
||
14520 013c 1B68 ldr r3, [r3]
|
||
14521 013e 4FF48062 mov r2, #1024
|
||
14522 0142 DA61 str r2, [r3, #28]
|
||
7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
|
||
14523 .loc 1 7011 12
|
||
14524 0144 0123 movs r3, #1
|
||
14525 0146 87F82730 strb r3, [r7, #39]
|
||
14526 .L723:
|
||
7012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an Arbitration Loss error occurred */
|
||
7015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO))
|
||
14527 .loc 1 7015 7
|
||
14528 014a BB69 ldr r3, [r7, #24]
|
||
14529 014c 03F40073 and r3, r3, #512
|
||
14530 .loc 1 7015 6
|
||
14531 0150 002B cmp r3, #0
|
||
14532 0152 0BD0 beq .L724
|
||
7016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_ARLO;
|
||
14533 .loc 1 7017 16
|
||
14534 0154 3B6A ldr r3, [r7, #32]
|
||
14535 0156 43F00203 orr r3, r3, #2
|
||
14536 015a 3B62 str r3, [r7, #32]
|
||
7018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ARLO flag */
|
||
7020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
|
||
14537 .loc 1 7020 5
|
||
14538 015c FB68 ldr r3, [r7, #12]
|
||
14539 015e 1B68 ldr r3, [r3]
|
||
14540 0160 4FF40072 mov r2, #512
|
||
ARM GAS /tmp/cc5G5cqz.s page 382
|
||
|
||
|
||
14541 0164 DA61 str r2, [r3, #28]
|
||
7021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
|
||
14542 .loc 1 7022 12
|
||
14543 0166 0123 movs r3, #1
|
||
14544 0168 87F82730 strb r3, [r7, #39]
|
||
14545 .L724:
|
||
7023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (status != HAL_OK)
|
||
14546 .loc 1 7025 6
|
||
14547 016c 97F82730 ldrb r3, [r7, #39] @ zero_extendqisi2
|
||
14548 0170 002B cmp r3, #0
|
||
14549 0172 1CD0 beq .L725
|
||
7026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
|
||
7028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
|
||
14550 .loc 1 7028 5
|
||
14551 0174 F868 ldr r0, [r7, #12]
|
||
14552 0176 FFF7FEFF bl I2C_Flush_TXDR
|
||
7029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
|
||
7031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
|
||
14553 .loc 1 7031 5
|
||
14554 017a FB68 ldr r3, [r7, #12]
|
||
14555 017c 1B68 ldr r3, [r3]
|
||
14556 017e 5968 ldr r1, [r3, #4]
|
||
14557 0180 FB68 ldr r3, [r7, #12]
|
||
14558 0182 1A68 ldr r2, [r3]
|
||
14559 0184 0D4B ldr r3, .L727
|
||
14560 0186 0B40 ands r3, r3, r1
|
||
14561 0188 5360 str r3, [r2, #4]
|
||
7032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= error_code;
|
||
14562 .loc 1 7033 9
|
||
14563 018a FB68 ldr r3, [r7, #12]
|
||
14564 018c 5A6C ldr r2, [r3, #68]
|
||
14565 .loc 1 7033 21
|
||
14566 018e 3B6A ldr r3, [r7, #32]
|
||
14567 0190 1A43 orrs r2, r2, r3
|
||
14568 0192 FB68 ldr r3, [r7, #12]
|
||
14569 0194 5A64 str r2, [r3, #68]
|
||
7034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
|
||
14570 .loc 1 7034 17
|
||
14571 0196 FB68 ldr r3, [r7, #12]
|
||
14572 0198 2022 movs r2, #32
|
||
14573 019a 83F84120 strb r2, [r3, #65]
|
||
7035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
|
||
14574 .loc 1 7035 16
|
||
14575 019e FB68 ldr r3, [r7, #12]
|
||
14576 01a0 0022 movs r2, #0
|
||
14577 01a2 83F84220 strb r2, [r3, #66]
|
||
7036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
|
||
7038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
|
||
14578 .loc 1 7038 5
|
||
14579 01a6 FB68 ldr r3, [r7, #12]
|
||
ARM GAS /tmp/cc5G5cqz.s page 383
|
||
|
||
|
||
14580 01a8 0022 movs r2, #0
|
||
14581 01aa 83F84020 strb r2, [r3, #64]
|
||
14582 .L725:
|
||
7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
|
||
14583 .loc 1 7041 10
|
||
14584 01ae 97F82730 ldrb r3, [r7, #39] @ zero_extendqisi2
|
||
7042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
14585 .loc 1 7042 1
|
||
14586 01b2 1846 mov r0, r3
|
||
14587 01b4 2837 adds r7, r7, #40
|
||
14588 .cfi_def_cfa_offset 8
|
||
14589 01b6 BD46 mov sp, r7
|
||
14590 .cfi_def_cfa_register 13
|
||
14591 @ sp needed
|
||
14592 01b8 80BD pop {r7, pc}
|
||
14593 .L728:
|
||
14594 01ba 00BF .align 2
|
||
14595 .L727:
|
||
14596 01bc 00E800FE .word -33495040
|
||
14597 .cfi_endproc
|
||
14598 .LFE206:
|
||
14600 .section .text.I2C_TransferConfig,"ax",%progbits
|
||
14601 .align 1
|
||
14602 .syntax unified
|
||
14603 .thumb
|
||
14604 .thumb_func
|
||
14606 I2C_TransferConfig:
|
||
14607 .LFB207:
|
||
7043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
7045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar
|
||
7046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
|
||
7047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed.
|
||
7048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed.
|
||
7049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter must be a value between 0 and 255.
|
||
7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation.
|
||
7051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
|
||
7052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode .
|
||
7053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode.
|
||
7054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode.
|
||
7055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation.
|
||
7056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
|
||
7057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition.
|
||
7058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0).
|
||
7059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request.
|
||
7060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request.
|
||
7061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
7062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
7063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
|
||
7064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Request)
|
||
7065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14608 .loc 1 7065 1
|
||
14609 .cfi_startproc
|
||
14610 @ args = 4, pretend = 0, frame = 24
|
||
14611 @ frame_needed = 1, uses_anonymous_args = 0
|
||
ARM GAS /tmp/cc5G5cqz.s page 384
|
||
|
||
|
||
14612 @ link register save eliminated.
|
||
14613 0000 80B4 push {r7}
|
||
14614 .cfi_def_cfa_offset 4
|
||
14615 .cfi_offset 7, -4
|
||
14616 0002 87B0 sub sp, sp, #28
|
||
14617 .cfi_def_cfa_offset 32
|
||
14618 0004 00AF add r7, sp, #0
|
||
14619 .cfi_def_cfa_register 7
|
||
14620 0006 F860 str r0, [r7, #12]
|
||
14621 0008 7B60 str r3, [r7, #4]
|
||
14622 000a 0B46 mov r3, r1 @ movhi
|
||
14623 000c 7B81 strh r3, [r7, #10] @ movhi
|
||
14624 000e 1346 mov r3, r2
|
||
14625 0010 7B72 strb r3, [r7, #9]
|
||
7066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
|
||
7067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
|
||
7068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode));
|
||
7069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request));
|
||
7070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
|
||
7072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \
|
||
14626 .loc 1 7072 52
|
||
14627 0012 7B89 ldrh r3, [r7, #10]
|
||
14628 0014 C3F30902 ubfx r2, r3, #0, #10
|
||
7073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
|
||
14629 .loc 1 7073 32
|
||
14630 0018 7B7A ldrb r3, [r7, #9] @ zero_extendqisi2
|
||
14631 .loc 1 7073 47
|
||
14632 001a 1B04 lsls r3, r3, #16
|
||
14633 .loc 1 7073 70
|
||
14634 001c 03F47F03 and r3, r3, #16711680
|
||
7072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
|
||
14635 .loc 1 7072 68
|
||
14636 0020 1A43 orrs r2, r2, r3
|
||
14637 .loc 1 7073 88
|
||
14638 0022 7B68 ldr r3, [r7, #4]
|
||
14639 0024 1A43 orrs r2, r2, r3
|
||
7072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
|
||
14640 .loc 1 7072 19
|
||
14641 0026 3B6A ldr r3, [r7, #32]
|
||
14642 0028 1343 orrs r3, r3, r2
|
||
7072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
|
||
14643 .loc 1 7072 12
|
||
14644 002a 23F00043 bic r3, r3, #-2147483648
|
||
14645 002e 7B61 str r3, [r7, #20]
|
||
7074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U));
|
||
7075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* update CR2 register */
|
||
7077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, \
|
||
14646 .loc 1 7077 3
|
||
14647 0030 FB68 ldr r3, [r7, #12]
|
||
14648 0032 1B68 ldr r3, [r3]
|
||
14649 0034 5A68 ldr r2, [r3, #4]
|
||
14650 0036 3B6A ldr r3, [r7, #32]
|
||
14651 0038 5B0D lsrs r3, r3, #21
|
||
14652 003a 03F48061 and r1, r3, #1024
|
||
14653 003e 084B ldr r3, .L730
|
||
ARM GAS /tmp/cc5G5cqz.s page 385
|
||
|
||
|
||
14654 0040 0B43 orrs r3, r3, r1
|
||
14655 0042 DB43 mvns r3, r3
|
||
14656 0044 02EA0301 and r1, r2, r3
|
||
14657 0048 FB68 ldr r3, [r7, #12]
|
||
14658 004a 1B68 ldr r3, [r3]
|
||
14659 004c 7A69 ldr r2, [r7, #20]
|
||
14660 004e 0A43 orrs r2, r2, r1
|
||
14661 0050 5A60 str r2, [r3, #4]
|
||
7078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \
|
||
7079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \
|
||
7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), tmp);
|
||
7081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
14662 .loc 1 7081 1
|
||
14663 0052 00BF nop
|
||
14664 0054 1C37 adds r7, r7, #28
|
||
14665 .cfi_def_cfa_offset 4
|
||
14666 0056 BD46 mov sp, r7
|
||
14667 .cfi_def_cfa_register 13
|
||
14668 @ sp needed
|
||
14669 0058 5DF8047B ldr r7, [sp], #4
|
||
14670 .cfi_restore 7
|
||
14671 .cfi_def_cfa_offset 0
|
||
14672 005c 7047 bx lr
|
||
14673 .L731:
|
||
14674 005e 00BF .align 2
|
||
14675 .L730:
|
||
14676 0060 FF63FF03 .word 67068927
|
||
14677 .cfi_endproc
|
||
14678 .LFE207:
|
||
14680 .section .text.I2C_Enable_IRQ,"ax",%progbits
|
||
14681 .align 1
|
||
14682 .syntax unified
|
||
14683 .thumb
|
||
14684 .thumb_func
|
||
14686 I2C_Enable_IRQ:
|
||
14687 .LFB208:
|
||
7082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
7084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts.
|
||
7085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
7086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
7087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
|
||
7088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
7090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
|
||
7091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14688 .loc 1 7091 1
|
||
14689 .cfi_startproc
|
||
14690 @ args = 0, pretend = 0, frame = 16
|
||
14691 @ frame_needed = 1, uses_anonymous_args = 0
|
||
14692 @ link register save eliminated.
|
||
14693 0000 80B4 push {r7}
|
||
14694 .cfi_def_cfa_offset 4
|
||
14695 .cfi_offset 7, -4
|
||
14696 0002 85B0 sub sp, sp, #20
|
||
14697 .cfi_def_cfa_offset 24
|
||
14698 0004 00AF add r7, sp, #0
|
||
ARM GAS /tmp/cc5G5cqz.s page 386
|
||
|
||
|
||
14699 .cfi_def_cfa_register 7
|
||
14700 0006 7860 str r0, [r7, #4]
|
||
14701 0008 0B46 mov r3, r1
|
||
14702 000a 7B80 strh r3, [r7, #2] @ movhi
|
||
7092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpisr = 0U;
|
||
14703 .loc 1 7092 12
|
||
14704 000c 0023 movs r3, #0
|
||
14705 000e FB60 str r3, [r7, #12]
|
||
7093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Master_ISR_DMA) && \
|
||
14706 .loc 1 7094 12
|
||
14707 0010 7B68 ldr r3, [r7, #4]
|
||
14708 0012 5B6B ldr r3, [r3, #52]
|
||
14709 .loc 1 7094 6
|
||
14710 0014 3B4A ldr r2, .L745
|
||
14711 0016 9342 cmp r3, r2
|
||
14712 0018 32D0 beq .L733
|
||
7095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \
|
||
14713 .loc 1 7095 12
|
||
14714 001a 7B68 ldr r3, [r7, #4]
|
||
14715 001c 5B6B ldr r3, [r3, #52]
|
||
7094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \
|
||
14716 .loc 1 7094 45 discriminator 1
|
||
14717 001e 3A4A ldr r2, .L745+4
|
||
14718 0020 9342 cmp r3, r2
|
||
14719 0022 2DD0 beq .L733
|
||
7096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Mem_ISR_DMA))
|
||
14720 .loc 1 7096 12
|
||
14721 0024 7B68 ldr r3, [r7, #4]
|
||
14722 0026 5B6B ldr r3, [r3, #52]
|
||
7095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \
|
||
14723 .loc 1 7095 44
|
||
14724 0028 384A ldr r2, .L745+8
|
||
14725 002a 9342 cmp r3, r2
|
||
14726 002c 28D0 beq .L733
|
||
7097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
|
||
14727 .loc 1 7098 49
|
||
14728 002e B7F90230 ldrsh r3, [r7, #2]
|
||
14729 .loc 1 7098 8
|
||
14730 0032 002B cmp r3, #0
|
||
14731 0034 03DA bge .L734
|
||
7099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
|
||
7101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
|
||
14732 .loc 1 7101 14
|
||
14733 0036 FB68 ldr r3, [r7, #12]
|
||
14734 0038 43F0B803 orr r3, r3, #184
|
||
14735 003c FB60 str r3, [r7, #12]
|
||
14736 .L734:
|
||
7102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
|
||
14737 .loc 1 7104 27
|
||
14738 003e 7B88 ldrh r3, [r7, #2]
|
||
14739 0040 03F00103 and r3, r3, #1
|
||
14740 .loc 1 7104 8
|
||
ARM GAS /tmp/cc5G5cqz.s page 387
|
||
|
||
|
||
14741 0044 002B cmp r3, #0
|
||
14742 0046 03D0 beq .L735
|
||
7105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
|
||
7107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI;
|
||
14743 .loc 1 7107 14
|
||
14744 0048 FB68 ldr r3, [r7, #12]
|
||
14745 004a 43F0F203 orr r3, r3, #242
|
||
14746 004e FB60 str r3, [r7, #12]
|
||
14747 .L735:
|
||
7108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
|
||
14748 .loc 1 7110 27
|
||
14749 0050 7B88 ldrh r3, [r7, #2]
|
||
14750 0052 03F00203 and r3, r3, #2
|
||
14751 .loc 1 7110 8
|
||
14752 0056 002B cmp r3, #0
|
||
14753 0058 03D0 beq .L736
|
||
7111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
|
||
7113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI;
|
||
14754 .loc 1 7113 14
|
||
14755 005a FB68 ldr r3, [r7, #12]
|
||
14756 005c 43F0F403 orr r3, r3, #244
|
||
14757 0060 FB60 str r3, [r7, #12]
|
||
14758 .L736:
|
||
7114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
|
||
14759 .loc 1 7116 8
|
||
14760 0062 7B88 ldrh r3, [r7, #2]
|
||
14761 0064 102B cmp r3, #16
|
||
14762 0066 03D1 bne .L737
|
||
7117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
|
||
7119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
|
||
14763 .loc 1 7119 14
|
||
14764 0068 FB68 ldr r3, [r7, #12]
|
||
14765 006a 43F09003 orr r3, r3, #144
|
||
14766 006e FB60 str r3, [r7, #12]
|
||
14767 .L737:
|
||
7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
|
||
14768 .loc 1 7122 8
|
||
14769 0070 7B88 ldrh r3, [r7, #2]
|
||
14770 0072 202B cmp r3, #32
|
||
14771 0074 38D1 bne .L739
|
||
7123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
|
||
7125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
|
||
14772 .loc 1 7125 14
|
||
14773 0076 FB68 ldr r3, [r7, #12]
|
||
14774 0078 43F02003 orr r3, r3, #32
|
||
14775 007c FB60 str r3, [r7, #12]
|
||
7122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
ARM GAS /tmp/cc5G5cqz.s page 388
|
||
|
||
|
||
14776 .loc 1 7122 8
|
||
14777 007e 33E0 b .L739
|
||
14778 .L733:
|
||
7126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
7130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
|
||
14779 .loc 1 7131 49
|
||
14780 0080 B7F90230 ldrsh r3, [r7, #2]
|
||
14781 .loc 1 7131 8
|
||
14782 0084 002B cmp r3, #0
|
||
14783 0086 03DA bge .L740
|
||
7132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
|
||
7134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
|
||
14784 .loc 1 7134 14
|
||
14785 0088 FB68 ldr r3, [r7, #12]
|
||
14786 008a 43F0B803 orr r3, r3, #184
|
||
14787 008e FB60 str r3, [r7, #12]
|
||
14788 .L740:
|
||
7135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
|
||
14789 .loc 1 7137 27
|
||
14790 0090 7B88 ldrh r3, [r7, #2]
|
||
14791 0092 03F00103 and r3, r3, #1
|
||
14792 .loc 1 7137 8
|
||
14793 0096 002B cmp r3, #0
|
||
14794 0098 03D0 beq .L741
|
||
7138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
|
||
7140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI;
|
||
14795 .loc 1 7140 14
|
||
14796 009a FB68 ldr r3, [r7, #12]
|
||
14797 009c 43F0F203 orr r3, r3, #242
|
||
14798 00a0 FB60 str r3, [r7, #12]
|
||
14799 .L741:
|
||
7141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
|
||
14800 .loc 1 7143 27
|
||
14801 00a2 7B88 ldrh r3, [r7, #2]
|
||
14802 00a4 03F00203 and r3, r3, #2
|
||
14803 .loc 1 7143 8
|
||
14804 00a8 002B cmp r3, #0
|
||
14805 00aa 03D0 beq .L742
|
||
7144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
|
||
7146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI;
|
||
14806 .loc 1 7146 14
|
||
14807 00ac FB68 ldr r3, [r7, #12]
|
||
14808 00ae 43F0F403 orr r3, r3, #244
|
||
14809 00b2 FB60 str r3, [r7, #12]
|
||
14810 .L742:
|
||
7147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 389
|
||
|
||
|
||
7148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
|
||
14811 .loc 1 7149 8
|
||
14812 00b4 7B88 ldrh r3, [r7, #2]
|
||
14813 00b6 102B cmp r3, #16
|
||
14814 00b8 03D1 bne .L743
|
||
7150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
|
||
7152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
|
||
14815 .loc 1 7152 14
|
||
14816 00ba FB68 ldr r3, [r7, #12]
|
||
14817 00bc 43F09003 orr r3, r3, #144
|
||
14818 00c0 FB60 str r3, [r7, #12]
|
||
14819 .L743:
|
||
7153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
|
||
14820 .loc 1 7155 8
|
||
14821 00c2 7B88 ldrh r3, [r7, #2]
|
||
14822 00c4 202B cmp r3, #32
|
||
14823 00c6 03D1 bne .L744
|
||
7156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
|
||
7158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI);
|
||
14824 .loc 1 7158 14
|
||
14825 00c8 FB68 ldr r3, [r7, #12]
|
||
14826 00ca 43F06003 orr r3, r3, #96
|
||
14827 00ce FB60 str r3, [r7, #12]
|
||
14828 .L744:
|
||
7159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Mem_ISR_DMA) && (InterruptRequest == I2C_XFER_RELOAD_IT))
|
||
14829 .loc 1 7161 14
|
||
14830 00d0 7B68 ldr r3, [r7, #4]
|
||
14831 00d2 5B6B ldr r3, [r3, #52]
|
||
14832 .loc 1 7161 8
|
||
14833 00d4 0D4A ldr r2, .L745+8
|
||
14834 00d6 9342 cmp r3, r2
|
||
14835 00d8 06D0 beq .L739
|
||
14836 .loc 1 7161 44 discriminator 1
|
||
14837 00da 7B88 ldrh r3, [r7, #2]
|
||
14838 00dc 402B cmp r3, #64
|
||
14839 00de 03D1 bne .L739
|
||
7162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
|
||
7164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
|
||
14840 .loc 1 7164 14
|
||
14841 00e0 FB68 ldr r3, [r7, #12]
|
||
14842 00e2 43F04003 orr r3, r3, #64
|
||
14843 00e6 FB60 str r3, [r7, #12]
|
||
14844 .L739:
|
||
7165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable interrupts only at the end */
|
||
7169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */
|
||
7170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* all interrupts requested done */
|
||
ARM GAS /tmp/cc5G5cqz.s page 390
|
||
|
||
|
||
7171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr);
|
||
14845 .loc 1 7171 3
|
||
14846 00e8 7B68 ldr r3, [r7, #4]
|
||
14847 00ea 1B68 ldr r3, [r3]
|
||
14848 00ec 1968 ldr r1, [r3]
|
||
14849 00ee 7B68 ldr r3, [r7, #4]
|
||
14850 00f0 1B68 ldr r3, [r3]
|
||
14851 00f2 FA68 ldr r2, [r7, #12]
|
||
14852 00f4 0A43 orrs r2, r2, r1
|
||
14853 00f6 1A60 str r2, [r3]
|
||
7172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
14854 .loc 1 7172 1
|
||
14855 00f8 00BF nop
|
||
14856 00fa 1437 adds r7, r7, #20
|
||
14857 .cfi_def_cfa_offset 4
|
||
14858 00fc BD46 mov sp, r7
|
||
14859 .cfi_def_cfa_register 13
|
||
14860 @ sp needed
|
||
14861 00fe 5DF8047B ldr r7, [sp], #4
|
||
14862 .cfi_restore 7
|
||
14863 .cfi_def_cfa_offset 0
|
||
14864 0102 7047 bx lr
|
||
14865 .L746:
|
||
14866 .align 2
|
||
14867 .L745:
|
||
14868 0104 00000000 .word I2C_Master_ISR_DMA
|
||
14869 0108 00000000 .word I2C_Slave_ISR_DMA
|
||
14870 010c 00000000 .word I2C_Mem_ISR_DMA
|
||
14871 .cfi_endproc
|
||
14872 .LFE208:
|
||
14874 .section .text.I2C_Disable_IRQ,"ax",%progbits
|
||
14875 .align 1
|
||
14876 .syntax unified
|
||
14877 .thumb
|
||
14878 .thumb_func
|
||
14880 I2C_Disable_IRQ:
|
||
14881 .LFB209:
|
||
7173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
7175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts.
|
||
7176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
|
||
7177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
|
||
7178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
|
||
7179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
7180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
7181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
|
||
7182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
14882 .loc 1 7182 1
|
||
14883 .cfi_startproc
|
||
14884 @ args = 0, pretend = 0, frame = 16
|
||
14885 @ frame_needed = 1, uses_anonymous_args = 0
|
||
14886 @ link register save eliminated.
|
||
14887 0000 80B4 push {r7}
|
||
14888 .cfi_def_cfa_offset 4
|
||
14889 .cfi_offset 7, -4
|
||
14890 0002 85B0 sub sp, sp, #20
|
||
14891 .cfi_def_cfa_offset 24
|
||
ARM GAS /tmp/cc5G5cqz.s page 391
|
||
|
||
|
||
14892 0004 00AF add r7, sp, #0
|
||
14893 .cfi_def_cfa_register 7
|
||
14894 0006 7860 str r0, [r7, #4]
|
||
14895 0008 0B46 mov r3, r1
|
||
14896 000a 7B80 strh r3, [r7, #2] @ movhi
|
||
7183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpisr = 0U;
|
||
14897 .loc 1 7183 12
|
||
14898 000c 0023 movs r3, #0
|
||
14899 000e FB60 str r3, [r7, #12]
|
||
7184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
|
||
14900 .loc 1 7185 25
|
||
14901 0010 7B88 ldrh r3, [r7, #2]
|
||
14902 0012 03F00103 and r3, r3, #1
|
||
14903 .loc 1 7185 6
|
||
14904 0016 002B cmp r3, #0
|
||
14905 0018 0FD0 beq .L748
|
||
7186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC and TXI interrupts */
|
||
7188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI;
|
||
14906 .loc 1 7188 12
|
||
14907 001a FB68 ldr r3, [r7, #12]
|
||
14908 001c 43F04203 orr r3, r3, #66
|
||
14909 0020 FB60 str r3, [r7, #12]
|
||
7189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN)
|
||
14910 .loc 1 7190 24
|
||
14911 0022 7B68 ldr r3, [r7, #4]
|
||
14912 0024 93F84130 ldrb r3, [r3, #65]
|
||
14913 0028 DBB2 uxtb r3, r3
|
||
14914 .loc 1 7190 32
|
||
14915 002a 03F02803 and r3, r3, #40
|
||
14916 .loc 1 7190 8
|
||
14917 002e 282B cmp r3, #40
|
||
14918 0030 03D0 beq .L748
|
||
7191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
|
||
7193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
|
||
14919 .loc 1 7193 14
|
||
14920 0032 FB68 ldr r3, [r7, #12]
|
||
14921 0034 43F0B003 orr r3, r3, #176
|
||
14922 0038 FB60 str r3, [r7, #12]
|
||
14923 .L748:
|
||
7194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
|
||
14924 .loc 1 7197 25
|
||
14925 003a 7B88 ldrh r3, [r7, #2]
|
||
14926 003c 03F00203 and r3, r3, #2
|
||
14927 .loc 1 7197 6
|
||
14928 0040 002B cmp r3, #0
|
||
14929 0042 0FD0 beq .L749
|
||
7198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC and RXI interrupts */
|
||
7200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI;
|
||
14930 .loc 1 7200 12
|
||
ARM GAS /tmp/cc5G5cqz.s page 392
|
||
|
||
|
||
14931 0044 FB68 ldr r3, [r7, #12]
|
||
14932 0046 43F04403 orr r3, r3, #68
|
||
14933 004a FB60 str r3, [r7, #12]
|
||
7201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN)
|
||
14934 .loc 1 7202 24
|
||
14935 004c 7B68 ldr r3, [r7, #4]
|
||
14936 004e 93F84130 ldrb r3, [r3, #65]
|
||
14937 0052 DBB2 uxtb r3, r3
|
||
14938 .loc 1 7202 32
|
||
14939 0054 03F02803 and r3, r3, #40
|
||
14940 .loc 1 7202 8
|
||
14941 0058 282B cmp r3, #40
|
||
14942 005a 03D0 beq .L749
|
||
7203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
|
||
7205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
|
||
14943 .loc 1 7205 14
|
||
14944 005c FB68 ldr r3, [r7, #12]
|
||
14945 005e 43F0B003 orr r3, r3, #176
|
||
14946 0062 FB60 str r3, [r7, #12]
|
||
14947 .L749:
|
||
7206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
|
||
14948 .loc 1 7209 47
|
||
14949 0064 B7F90230 ldrsh r3, [r7, #2]
|
||
14950 .loc 1 7209 6
|
||
14951 0068 002B cmp r3, #0
|
||
14952 006a 03DA bge .L750
|
||
7210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */
|
||
7212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
|
||
14953 .loc 1 7212 12
|
||
14954 006c FB68 ldr r3, [r7, #12]
|
||
14955 006e 43F0B803 orr r3, r3, #184
|
||
14956 0072 FB60 str r3, [r7, #12]
|
||
14957 .L750:
|
||
7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
|
||
14958 .loc 1 7215 6
|
||
14959 0074 7B88 ldrh r3, [r7, #2]
|
||
14960 0076 102B cmp r3, #16
|
||
14961 0078 03D1 bne .L751
|
||
7216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
|
||
7218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
|
||
14962 .loc 1 7218 12
|
||
14963 007a FB68 ldr r3, [r7, #12]
|
||
14964 007c 43F09003 orr r3, r3, #144
|
||
14965 0080 FB60 str r3, [r7, #12]
|
||
14966 .L751:
|
||
7219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
|
||
ARM GAS /tmp/cc5G5cqz.s page 393
|
||
|
||
|
||
14967 .loc 1 7221 6
|
||
14968 0082 7B88 ldrh r3, [r7, #2]
|
||
14969 0084 202B cmp r3, #32
|
||
14970 0086 03D1 bne .L752
|
||
7222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
|
||
7224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
|
||
14971 .loc 1 7224 12
|
||
14972 0088 FB68 ldr r3, [r7, #12]
|
||
14973 008a 43F02003 orr r3, r3, #32
|
||
14974 008e FB60 str r3, [r7, #12]
|
||
14975 .L752:
|
||
7225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT)
|
||
14976 .loc 1 7227 6
|
||
14977 0090 7B88 ldrh r3, [r7, #2]
|
||
14978 0092 402B cmp r3, #64
|
||
14979 0094 03D1 bne .L753
|
||
7228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
|
||
7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
|
||
14980 .loc 1 7230 12
|
||
14981 0096 FB68 ldr r3, [r7, #12]
|
||
14982 0098 43F04003 orr r3, r3, #64
|
||
14983 009c FB60 str r3, [r7, #12]
|
||
14984 .L753:
|
||
7231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable interrupts only at the end */
|
||
7234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */
|
||
7235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* all disable interrupts request are not done */
|
||
7236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr);
|
||
14985 .loc 1 7236 3
|
||
14986 009e 7B68 ldr r3, [r7, #4]
|
||
14987 00a0 1B68 ldr r3, [r3]
|
||
14988 00a2 1968 ldr r1, [r3]
|
||
14989 00a4 FB68 ldr r3, [r7, #12]
|
||
14990 00a6 DA43 mvns r2, r3
|
||
14991 00a8 7B68 ldr r3, [r7, #4]
|
||
14992 00aa 1B68 ldr r3, [r3]
|
||
14993 00ac 0A40 ands r2, r2, r1
|
||
14994 00ae 1A60 str r2, [r3]
|
||
7237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
14995 .loc 1 7237 1
|
||
14996 00b0 00BF nop
|
||
14997 00b2 1437 adds r7, r7, #20
|
||
14998 .cfi_def_cfa_offset 4
|
||
14999 00b4 BD46 mov sp, r7
|
||
15000 .cfi_def_cfa_register 13
|
||
15001 @ sp needed
|
||
15002 00b6 5DF8047B ldr r7, [sp], #4
|
||
15003 .cfi_restore 7
|
||
15004 .cfi_def_cfa_offset 0
|
||
15005 00ba 7047 bx lr
|
||
15006 .cfi_endproc
|
||
15007 .LFE209:
|
||
ARM GAS /tmp/cc5G5cqz.s page 394
|
||
|
||
|
||
15009 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits
|
||
15010 .align 1
|
||
15011 .syntax unified
|
||
15012 .thumb
|
||
15013 .thumb_func
|
||
15015 I2C_ConvertOtherXferOptions:
|
||
15016 .LFB210:
|
||
7238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
|
||
7239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
|
||
7240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions.
|
||
7241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
|
||
7242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
|
||
7243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
|
||
7244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c)
|
||
7245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
15017 .loc 1 7245 1
|
||
15018 .cfi_startproc
|
||
15019 @ args = 0, pretend = 0, frame = 8
|
||
15020 @ frame_needed = 1, uses_anonymous_args = 0
|
||
15021 @ link register save eliminated.
|
||
15022 0000 80B4 push {r7}
|
||
15023 .cfi_def_cfa_offset 4
|
||
15024 .cfi_offset 7, -4
|
||
15025 0002 83B0 sub sp, sp, #12
|
||
15026 .cfi_def_cfa_offset 16
|
||
15027 0004 00AF add r7, sp, #0
|
||
15028 .cfi_def_cfa_register 7
|
||
15029 0006 7860 str r0, [r7, #4]
|
||
7246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */
|
||
7247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
|
||
7248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */
|
||
7249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME)
|
||
15030 .loc 1 7249 11
|
||
15031 0008 7B68 ldr r3, [r7, #4]
|
||
15032 000a DB6A ldr r3, [r3, #44]
|
||
15033 .loc 1 7249 6
|
||
15034 000c AA2B cmp r3, #170
|
||
15035 000e 03D1 bne .L755
|
||
7250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME;
|
||
15036 .loc 1 7251 23
|
||
15037 0010 7B68 ldr r3, [r7, #4]
|
||
15038 0012 0022 movs r2, #0
|
||
15039 0014 DA62 str r2, [r3, #44]
|
||
7252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */
|
||
7254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
|
||
7255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */
|
||
7256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */
|
||
7257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME)
|
||
7258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME;
|
||
7260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
7261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
|
||
7262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
7263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
|
||
7264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
ARM GAS /tmp/cc5G5cqz.s page 395
|
||
|
||
|
||
7265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
15040 .loc 1 7265 1
|
||
15041 0016 08E0 b .L757
|
||
15042 .L755:
|
||
7257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
15043 .loc 1 7257 16
|
||
15044 0018 7B68 ldr r3, [r7, #4]
|
||
15045 001a DB6A ldr r3, [r3, #44]
|
||
7257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
|
||
15046 .loc 1 7257 11
|
||
15047 001c B3F52A4F cmp r3, #43520
|
||
15048 0020 03D1 bne .L757
|
||
7259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
|
||
15049 .loc 1 7259 23
|
||
15050 0022 7B68 ldr r3, [r7, #4]
|
||
15051 0024 4FF00072 mov r2, #33554432
|
||
15052 0028 DA62 str r2, [r3, #44]
|
||
15053 .L757:
|
||
15054 .loc 1 7265 1
|
||
15055 002a 00BF nop
|
||
15056 002c 0C37 adds r7, r7, #12
|
||
15057 .cfi_def_cfa_offset 4
|
||
15058 002e BD46 mov sp, r7
|
||
15059 .cfi_def_cfa_register 13
|
||
15060 @ sp needed
|
||
15061 0030 5DF8047B ldr r7, [sp], #4
|
||
15062 .cfi_restore 7
|
||
15063 .cfi_def_cfa_offset 0
|
||
15064 0034 7047 bx lr
|
||
15065 .cfi_endproc
|
||
15066 .LFE210:
|
||
15068 .text
|
||
15069 .Letext0:
|
||
15070 .file 2 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl
|
||
15071 .file 3 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl
|
||
15072 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
|
||
15073 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
|
||
15074 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
|
||
15075 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
|
||
15076 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h"
|
||
15077 .file 9 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h"
|
||
ARM GAS /tmp/cc5G5cqz.s page 396
|
||
|
||
|
||
DEFINED SYMBOLS
|
||
*ABS*:00000000 stm32f3xx_hal_i2c.c
|
||
/tmp/cc5G5cqz.s:21 .text.HAL_I2C_Init:00000000 $t
|
||
/tmp/cc5G5cqz.s:27 .text.HAL_I2C_Init:00000000 HAL_I2C_Init
|
||
/tmp/cc5G5cqz.s:320 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit
|
||
/tmp/cc5G5cqz.s:235 .text.HAL_I2C_DeInit:00000000 $t
|
||
/tmp/cc5G5cqz.s:241 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit
|
||
/tmp/cc5G5cqz.s:356 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit
|
||
/tmp/cc5G5cqz.s:314 .text.HAL_I2C_MspInit:00000000 $t
|
||
/tmp/cc5G5cqz.s:350 .text.HAL_I2C_MspDeInit:00000000 $t
|
||
/tmp/cc5G5cqz.s:386 .text.HAL_I2C_Master_Transmit:00000000 $t
|
||
/tmp/cc5G5cqz.s:392 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit
|
||
/tmp/cc5G5cqz.s:13790 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout
|
||
/tmp/cc5G5cqz.s:14606 .text.I2C_TransferConfig:00000000 I2C_TransferConfig
|
||
/tmp/cc5G5cqz.s:13909 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout
|
||
/tmp/cc5G5cqz.s:14020 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout
|
||
/tmp/cc5G5cqz.s:705 .text.HAL_I2C_Master_Transmit:000001e0 $d
|
||
/tmp/cc5G5cqz.s:711 .text.HAL_I2C_Master_Receive:00000000 $t
|
||
/tmp/cc5G5cqz.s:717 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive
|
||
/tmp/cc5G5cqz.s:14127 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout
|
||
/tmp/cc5G5cqz.s:1032 .text.HAL_I2C_Master_Receive:000001e4 $d
|
||
/tmp/cc5G5cqz.s:1038 .text.HAL_I2C_Slave_Transmit:00000000 $t
|
||
/tmp/cc5G5cqz.s:1044 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit
|
||
/tmp/cc5G5cqz.s:13220 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR
|
||
/tmp/cc5G5cqz.s:1461 .text.HAL_I2C_Slave_Receive:00000000 $t
|
||
/tmp/cc5G5cqz.s:1467 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive
|
||
/tmp/cc5G5cqz.s:1839 .text.HAL_I2C_Master_Transmit_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:1845 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT
|
||
/tmp/cc5G5cqz.s:14686 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ
|
||
/tmp/cc5G5cqz.s:1991 .text.HAL_I2C_Master_Transmit_IT:000000d4 $d
|
||
/tmp/cc5G5cqz.s:9171 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT
|
||
/tmp/cc5G5cqz.s:1998 .text.HAL_I2C_Master_Receive_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:2004 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT
|
||
/tmp/cc5G5cqz.s:2150 .text.HAL_I2C_Master_Receive_IT:000000d4 $d
|
||
/tmp/cc5G5cqz.s:2157 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:2163 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT
|
||
/tmp/cc5G5cqz.s:2315 .text.HAL_I2C_Slave_Transmit_IT:000000d4 $d
|
||
/tmp/cc5G5cqz.s:9982 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT
|
||
/tmp/cc5G5cqz.s:2321 .text.HAL_I2C_Slave_Receive_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:2327 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT
|
||
/tmp/cc5G5cqz.s:2438 .text.HAL_I2C_Slave_Receive_IT:00000098 $d
|
||
/tmp/cc5G5cqz.s:2444 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t
|
||
/tmp/cc5G5cqz.s:2450 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA
|
||
/tmp/cc5G5cqz.s:2751 .text.HAL_I2C_Master_Transmit_DMA:000001c8 $d
|
||
/tmp/cc5G5cqz.s:10339 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA
|
||
/tmp/cc5G5cqz.s:13287 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt
|
||
/tmp/cc5G5cqz.s:13674 .text.I2C_DMAError:00000000 I2C_DMAError
|
||
/tmp/cc5G5cqz.s:2761 .text.HAL_I2C_Master_Receive_DMA:00000000 $t
|
||
/tmp/cc5G5cqz.s:2767 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA
|
||
/tmp/cc5G5cqz.s:3068 .text.HAL_I2C_Master_Receive_DMA:000001c8 $d
|
||
/tmp/cc5G5cqz.s:13479 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt
|
||
/tmp/cc5G5cqz.s:3078 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t
|
||
/tmp/cc5G5cqz.s:3084 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA
|
||
/tmp/cc5G5cqz.s:3397 .text.HAL_I2C_Slave_Transmit_DMA:000001c8 $d
|
||
/tmp/cc5G5cqz.s:11069 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA
|
||
/tmp/cc5G5cqz.s:13415 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt
|
||
/tmp/cc5G5cqz.s:3405 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t
|
||
ARM GAS /tmp/cc5G5cqz.s page 397
|
||
|
||
|
||
/tmp/cc5G5cqz.s:3411 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA
|
||
/tmp/cc5G5cqz.s:3650 .text.HAL_I2C_Slave_Receive_DMA:0000015c $d
|
||
/tmp/cc5G5cqz.s:13607 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt
|
||
/tmp/cc5G5cqz.s:3658 .text.HAL_I2C_Mem_Write:00000000 $t
|
||
/tmp/cc5G5cqz.s:3664 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write
|
||
/tmp/cc5G5cqz.s:11380 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite
|
||
/tmp/cc5G5cqz.s:4018 .text.HAL_I2C_Mem_Write:00000224 $d
|
||
/tmp/cc5G5cqz.s:4023 .text.HAL_I2C_Mem_Read:00000000 $t
|
||
/tmp/cc5G5cqz.s:4029 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read
|
||
/tmp/cc5G5cqz.s:11512 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead
|
||
/tmp/cc5G5cqz.s:4388 .text.HAL_I2C_Mem_Read:0000022c $d
|
||
/tmp/cc5G5cqz.s:4394 .text.HAL_I2C_Mem_Write_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:4400 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT
|
||
/tmp/cc5G5cqz.s:4577 .text.HAL_I2C_Mem_Write_IT:00000100 $d
|
||
/tmp/cc5G5cqz.s:9572 .text.I2C_Mem_ISR_IT:00000000 I2C_Mem_ISR_IT
|
||
/tmp/cc5G5cqz.s:4584 .text.HAL_I2C_Mem_Read_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:4590 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT
|
||
/tmp/cc5G5cqz.s:4767 .text.HAL_I2C_Mem_Read_IT:00000100 $d
|
||
/tmp/cc5G5cqz.s:4774 .text.HAL_I2C_Mem_Write_DMA:00000000 $t
|
||
/tmp/cc5G5cqz.s:4780 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA
|
||
/tmp/cc5G5cqz.s:5078 .text.HAL_I2C_Mem_Write_DMA:000001b8 $d
|
||
/tmp/cc5G5cqz.s:10671 .text.I2C_Mem_ISR_DMA:00000000 I2C_Mem_ISR_DMA
|
||
/tmp/cc5G5cqz.s:5087 .text.HAL_I2C_Mem_Read_DMA:00000000 $t
|
||
/tmp/cc5G5cqz.s:5093 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA
|
||
/tmp/cc5G5cqz.s:5391 .text.HAL_I2C_Mem_Read_DMA:000001b8 $d
|
||
/tmp/cc5G5cqz.s:5400 .text.HAL_I2C_IsDeviceReady:00000000 $t
|
||
/tmp/cc5G5cqz.s:5406 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady
|
||
/tmp/cc5G5cqz.s:5744 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:5750 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT
|
||
/tmp/cc5G5cqz.s:15015 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions
|
||
/tmp/cc5G5cqz.s:5934 .text.HAL_I2C_Master_Seq_Transmit_IT:00000100 $d
|
||
/tmp/cc5G5cqz.s:5940 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t
|
||
/tmp/cc5G5cqz.s:5946 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA
|
||
/tmp/cc5G5cqz.s:6285 .text.HAL_I2C_Master_Seq_Transmit_DMA:000001f4 $d
|
||
/tmp/cc5G5cqz.s:6294 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:6300 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT
|
||
/tmp/cc5G5cqz.s:6484 .text.HAL_I2C_Master_Seq_Receive_IT:00000100 $d
|
||
/tmp/cc5G5cqz.s:6490 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t
|
||
/tmp/cc5G5cqz.s:6496 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA
|
||
/tmp/cc5G5cqz.s:6835 .text.HAL_I2C_Master_Seq_Receive_DMA:000001f4 $d
|
||
/tmp/cc5G5cqz.s:6844 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:6850 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT
|
||
/tmp/cc5G5cqz.s:14880 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ
|
||
/tmp/cc5G5cqz.s:7084 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000015c $d
|
||
/tmp/cc5G5cqz.s:13725 .text.I2C_DMAAbort:00000000 I2C_DMAAbort
|
||
/tmp/cc5G5cqz.s:7090 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t
|
||
/tmp/cc5G5cqz.s:7096 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA
|
||
/tmp/cc5G5cqz.s:7522 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000027c $d
|
||
/tmp/cc5G5cqz.s:7530 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:7536 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT
|
||
/tmp/cc5G5cqz.s:7770 .text.HAL_I2C_Slave_Seq_Receive_IT:0000015c $d
|
||
/tmp/cc5G5cqz.s:7776 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t
|
||
/tmp/cc5G5cqz.s:7782 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA
|
||
/tmp/cc5G5cqz.s:8208 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000027c $d
|
||
/tmp/cc5G5cqz.s:8216 .text.HAL_I2C_EnableListen_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:8222 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT
|
||
/tmp/cc5G5cqz.s:8274 .text.HAL_I2C_EnableListen_IT:0000003c $d
|
||
ARM GAS /tmp/cc5G5cqz.s page 398
|
||
|
||
|
||
/tmp/cc5G5cqz.s:8279 .text.HAL_I2C_DisableListen_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:8285 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT
|
||
/tmp/cc5G5cqz.s:8361 .text.HAL_I2C_Master_Abort_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:8367 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT
|
||
/tmp/cc5G5cqz.s:8476 .text.HAL_I2C_Master_Abort_IT:0000009c $d
|
||
/tmp/cc5G5cqz.s:8481 .text.HAL_I2C_EV_IRQHandler:00000000 $t
|
||
/tmp/cc5G5cqz.s:8487 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler
|
||
/tmp/cc5G5cqz.s:8542 .text.HAL_I2C_ER_IRQHandler:00000000 $t
|
||
/tmp/cc5G5cqz.s:8548 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler
|
||
/tmp/cc5G5cqz.s:12814 .text.I2C_ITError:00000000 I2C_ITError
|
||
/tmp/cc5G5cqz.s:8683 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t
|
||
/tmp/cc5G5cqz.s:8689 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback
|
||
/tmp/cc5G5cqz.s:8719 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t
|
||
/tmp/cc5G5cqz.s:8725 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback
|
||
/tmp/cc5G5cqz.s:8755 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t
|
||
/tmp/cc5G5cqz.s:8761 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback
|
||
/tmp/cc5G5cqz.s:8791 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t
|
||
/tmp/cc5G5cqz.s:8797 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback
|
||
/tmp/cc5G5cqz.s:8827 .text.HAL_I2C_AddrCallback:00000000 $t
|
||
/tmp/cc5G5cqz.s:8833 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback
|
||
/tmp/cc5G5cqz.s:8867 .text.HAL_I2C_ListenCpltCallback:00000000 $t
|
||
/tmp/cc5G5cqz.s:8873 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback
|
||
/tmp/cc5G5cqz.s:8903 .text.HAL_I2C_MemTxCpltCallback:00000000 $t
|
||
/tmp/cc5G5cqz.s:8909 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback
|
||
/tmp/cc5G5cqz.s:8939 .text.HAL_I2C_MemRxCpltCallback:00000000 $t
|
||
/tmp/cc5G5cqz.s:8945 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback
|
||
/tmp/cc5G5cqz.s:8975 .text.HAL_I2C_ErrorCallback:00000000 $t
|
||
/tmp/cc5G5cqz.s:8981 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback
|
||
/tmp/cc5G5cqz.s:9011 .text.HAL_I2C_AbortCpltCallback:00000000 $t
|
||
/tmp/cc5G5cqz.s:9017 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback
|
||
/tmp/cc5G5cqz.s:9047 .text.HAL_I2C_GetState:00000000 $t
|
||
/tmp/cc5G5cqz.s:9053 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState
|
||
/tmp/cc5G5cqz.s:9087 .text.HAL_I2C_GetMode:00000000 $t
|
||
/tmp/cc5G5cqz.s:9093 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode
|
||
/tmp/cc5G5cqz.s:9127 .text.HAL_I2C_GetError:00000000 $t
|
||
/tmp/cc5G5cqz.s:9133 .text.HAL_I2C_GetError:00000000 HAL_I2C_GetError
|
||
/tmp/cc5G5cqz.s:9166 .text.I2C_Master_ISR_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:11822 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt
|
||
/tmp/cc5G5cqz.s:12052 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt
|
||
/tmp/cc5G5cqz.s:9567 .text.I2C_Mem_ISR_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:9971 .text.I2C_Mem_ISR_IT:0000024c $d
|
||
/tmp/cc5G5cqz.s:9977 .text.I2C_Slave_ISR_IT:00000000 $t
|
||
/tmp/cc5G5cqz.s:12321 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt
|
||
/tmp/cc5G5cqz.s:12684 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt
|
||
/tmp/cc5G5cqz.s:11915 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt
|
||
/tmp/cc5G5cqz.s:11644 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt
|
||
/tmp/cc5G5cqz.s:10334 .text.I2C_Master_ISR_DMA:00000000 $t
|
||
/tmp/cc5G5cqz.s:10666 .text.I2C_Mem_ISR_DMA:00000000 $t
|
||
/tmp/cc5G5cqz.s:11058 .text.I2C_Mem_ISR_DMA:00000240 $d
|
||
/tmp/cc5G5cqz.s:11064 .text.I2C_Slave_ISR_DMA:00000000 $t
|
||
/tmp/cc5G5cqz.s:11375 .text.I2C_RequestMemoryWrite:00000000 $t
|
||
/tmp/cc5G5cqz.s:11502 .text.I2C_RequestMemoryWrite:000000a4 $d
|
||
/tmp/cc5G5cqz.s:11507 .text.I2C_RequestMemoryRead:00000000 $t
|
||
/tmp/cc5G5cqz.s:11634 .text.I2C_RequestMemoryRead:000000a4 $d
|
||
/tmp/cc5G5cqz.s:11639 .text.I2C_ITAddrCplt:00000000 $t
|
||
/tmp/cc5G5cqz.s:11817 .text.I2C_ITMasterSeqCplt:00000000 $t
|
||
/tmp/cc5G5cqz.s:11910 .text.I2C_ITSlaveSeqCplt:00000000 $t
|
||
ARM GAS /tmp/cc5G5cqz.s page 399
|
||
|
||
|
||
/tmp/cc5G5cqz.s:12047 .text.I2C_ITMasterCplt:00000000 $t
|
||
/tmp/cc5G5cqz.s:12310 .text.I2C_ITMasterCplt:0000018c $d
|
||
/tmp/cc5G5cqz.s:12316 .text.I2C_ITSlaveCplt:00000000 $t
|
||
/tmp/cc5G5cqz.s:12673 .text.I2C_ITSlaveCplt:0000020c $d
|
||
/tmp/cc5G5cqz.s:12679 .text.I2C_ITListenCplt:00000000 $t
|
||
/tmp/cc5G5cqz.s:12804 .text.I2C_ITListenCplt:000000a8 $d
|
||
/tmp/cc5G5cqz.s:12809 .text.I2C_ITError:00000000 $t
|
||
/tmp/cc5G5cqz.s:13151 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback
|
||
/tmp/cc5G5cqz.s:13139 .text.I2C_ITError:000001d4 $d
|
||
/tmp/cc5G5cqz.s:13146 .text.I2C_TreatErrorCallback:00000000 $t
|
||
/tmp/cc5G5cqz.s:13215 .text.I2C_Flush_TXDR:00000000 $t
|
||
/tmp/cc5G5cqz.s:13282 .text.I2C_DMAMasterTransmitCplt:00000000 $t
|
||
/tmp/cc5G5cqz.s:13410 .text.I2C_DMASlaveTransmitCplt:00000000 $t
|
||
/tmp/cc5G5cqz.s:13474 .text.I2C_DMAMasterReceiveCplt:00000000 $t
|
||
/tmp/cc5G5cqz.s:13602 .text.I2C_DMASlaveReceiveCplt:00000000 $t
|
||
/tmp/cc5G5cqz.s:13669 .text.I2C_DMAError:00000000 $t
|
||
/tmp/cc5G5cqz.s:13720 .text.I2C_DMAAbort:00000000 $t
|
||
/tmp/cc5G5cqz.s:13785 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t
|
||
/tmp/cc5G5cqz.s:13904 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t
|
||
/tmp/cc5G5cqz.s:14314 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred
|
||
/tmp/cc5G5cqz.s:14015 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t
|
||
/tmp/cc5G5cqz.s:14122 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t
|
||
/tmp/cc5G5cqz.s:14304 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000100 $d
|
||
/tmp/cc5G5cqz.s:14309 .text.I2C_IsErrorOccurred:00000000 $t
|
||
/tmp/cc5G5cqz.s:14596 .text.I2C_IsErrorOccurred:000001bc $d
|
||
/tmp/cc5G5cqz.s:14601 .text.I2C_TransferConfig:00000000 $t
|
||
/tmp/cc5G5cqz.s:14676 .text.I2C_TransferConfig:00000060 $d
|
||
/tmp/cc5G5cqz.s:14681 .text.I2C_Enable_IRQ:00000000 $t
|
||
/tmp/cc5G5cqz.s:14868 .text.I2C_Enable_IRQ:00000104 $d
|
||
/tmp/cc5G5cqz.s:14875 .text.I2C_Disable_IRQ:00000000 $t
|
||
/tmp/cc5G5cqz.s:15010 .text.I2C_ConvertOtherXferOptions:00000000 $t
|
||
|
||
UNDEFINED SYMBOLS
|
||
HAL_GetTick
|
||
HAL_DMA_Start_IT
|
||
HAL_DMA_Abort_IT
|
||
HAL_DMA_GetState
|