ARM GAS /tmp/ccfpzjW9.s page 1
1 .cpu cortex-m4
2 .eabi_attribute 27, 1
3 .eabi_attribute 28, 1
4 .eabi_attribute 23, 1
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 2
9 .eabi_attribute 34, 1
10 .eabi_attribute 18, 4
11 .file "stm32g4xx_hal_opamp.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.HAL_OPAMP_MspInit,"ax",%progbits
16 .align 1
17 .p2align 2,,3
18 .weak HAL_OPAMP_MspInit
19 .syntax unified
20 .thumb
21 .thumb_func
22 .fpu fpv4-sp-d16
24 HAL_OPAMP_MspInit:
25 .LFB331:
26 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c"
1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ******************************************************************************
3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @file stm32g4xx_hal_opamp.c
4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @author MCD Application Team
5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief OPAMP HAL module driver.
6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * functionalities of the operational amplifiers (OPAMP1,...OPAMP6)
8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * peripheral:
9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * + OPAMP Configuration
10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * + OPAMP calibration
11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * Thanks to
12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * + Initialization/de-initialization functions
13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * + I/O operation functions
14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * + Peripheral Control functions
15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * + Peripheral State functions
16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** *
17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** @verbatim
18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ================================================================================
19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ##### OPAMP Peripheral Features #####
20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ================================================================================
21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** [..] The device integrates up to 6 operational amplifiers OPAMP1, OPAMP2,
23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP3, OPAMP4, OPAMP5 and OPAMP6:
24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) The OPAMP(s) provides several exclusive running modes.
26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Standalone mode
27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Programmable Gain Amplifier (PGA) mode (Resistor feedback output)
28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Follower mode
29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) The OPAMP(s) provide(s) calibration capabilities.
31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Calibration aims at correcting some offset for running mode.
32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) The OPAMP uses either factory calibration settings OR user defined
ARM GAS /tmp/ccfpzjW9.s page 2
33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** calibration (trimming) settings (i.e. trimming mode).
34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) The user defined settings can be figured out using self calibration
35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** handled by HAL_OPAMP_SelfCalibrate, HAL_OPAMPEx_SelfCalibrateAll
36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) HAL_OPAMP_SelfCalibrate:
37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Runs automatically the calibration in 2 steps.
38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (90% of VDDA for NMOS transistors, 10% of VDDA for PMOS transistors).
39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (As OPAMP is Rail-to-rail input/output, these 2 steps calibration is
40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** appropriate and enough in most cases).
41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Enables the user trimming mode
42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Updates the init structure with trimming values with fresh calibration
43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** results.
44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** The user may store the calibration results for larger
45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (ex monitoring the trimming as a function of temperature
46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** for instance)
47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) for STM32G4 devices having 6 OPAMPs
48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_OPAMPEx_SelfCalibrateAll
49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** runs calibration of 6 OPAMPs in parallel.
50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) For any running mode, an additional Timer-controlled Mux (multiplexer)
52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** mode can be set on top.
53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Timer-controlled Mux mode allows Automatic switching of inputs
54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** configuration (inverting and non inverting).
55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Hence on top of defaults (primary) inverting and non-inverting inputs,
56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** the user shall select secondary inverting and non inverting inputs.
57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) TIM1 OC6, TIM8 OC6 and TIM20 OC6 provides the alternate switching
58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** tempo between defaults (primary) and secondary inputs.
59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) These 3 timers (TIM1, TIM8 and TIM20) can be combined to design a more
60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** complex switching scheme. So that any of the selected channel can initiate
61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** the configuration switch.
62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) Running mode: Standalone mode
64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Gain is set externally (gain depends on external loads).
65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Follower mode also possible externally by connecting the inverting input to
66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** the output.
67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) Running mode: Follower mode
69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Inverting Input is not connected.
70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) Running mode: Programmable Gain Amplifier (PGA) mode
72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (Resistor feedback output)
73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) The OPAMP(s) output(s) can be internally connected to resistor feedback
74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** output.
75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) The OPAMP inverting input can be "not" connected, signal to amplify is
76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** connected to non inverting input and gain is positive (2,4,8,16,32 or 64)
77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) The OPAMP inverting input can be connected to VINM0:
78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** If signal is applied to non inverting input, gain is positive (2,4,8,16,32 or 64).
79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** If signal is applied to inverting input, gain is negative (-1,-3,-7,-15-,31 or -63).
80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** In both cases, the other input can be used as bias.
81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ##### How to use this driver #####
84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ================================================================================
85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** [..]
86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** *** High speed / normal power mode ***
88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ============================================
89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** [..] To run in high speed mode:
ARM GAS /tmp/ccfpzjW9.s page 3
90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) Configure the OPAMP using HAL_OPAMP_Init() function:
92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Select OPAMP_POWERMODE_HIGHSPEED
93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Otherwise select OPAMP_POWERMODE_NORMAL
94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** *** Calibration ***
96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ============================================
97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** [..] To run the OPAMP calibration self calibration:
98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) Start calibration using HAL_OPAMP_SelfCalibrate.
100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** Store the calibration results.
101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** *** Running mode ***
103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ============================================
104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** [..] To use the OPAMP, perform the following steps:
105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) Fill in the HAL_OPAMP_MspInit() to
107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Configure the OPAMP input AND output in analog mode using
108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_GPIO_Init() to map the OPAMP output to the GPIO pin.
109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) Registrate Callbacks
111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) The compilation define USE_HAL_OPAMP_REGISTER_CALLBACKS when set to 1
112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** allows the user to configure dynamically the driver callbacks.
113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Use Functions @ref HAL_OPAMP_RegisterCallback() to register a user callback,
115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** it allows to register following callbacks:
116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (+++) MspInitCallback : OPAMP MspInit.
117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (+++) MspDeInitCallback : OPAMP MspDeInit.
118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** This function takes as parameters the HAL peripheral handle, the Callback ID
119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** and a pointer to the user callback function.
120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Use function @ref HAL_OPAMP_UnRegisterCallback() to reset a callback to the default
122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** weak (surcharged) function. It allows to reset following callbacks:
123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (+++) MspInitCallback : OPAMP MspInit.
124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (+++) MspDeInitCallback : OPAMP MspDeInit.
125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (+++) All Callbacks
126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) Configure the OPAMP using HAL_OPAMP_Init() function:
128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Select the mode
129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Select the inverting input
130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Select the non-inverting input
131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Select if the internal output should be enabled/disabled (if enabled, regular I/O output
132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Select if the Timer controlled Mux is disabled or enabled and controlled by specified ti
133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) If the Timer controlled Mux mode is enabled, select the secondary inverting input
134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) If the Timer controlled Mux mode is enabled, Select the secondary non-inverting input
135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) If PGA mode is enabled, Select if inverting input is connected.
136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) If PGA mode is enabled, Select PGA gain to be used.
137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) Select either factory or user defined trimming mode.
138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) If the user defined trimming mode is enabled, select PMOS & NMOS trimming values
139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (typ. settings returned by HAL_OPAMP_SelfCalibrate function).
140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) Enable the OPAMP using HAL_OPAMP_Start() function.
142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) Disable the OPAMP using HAL_OPAMP_Stop() function.
144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) Lock the OPAMP in running mode using HAL_OPAMP_Lock() & HAL_OPAMP_TimerMuxLock functions.
146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** From then the configuration can only be modified
ARM GAS /tmp/ccfpzjW9.s page 4
147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) After HW reset
148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) OR thanks to HAL_OPAMP_MspDeInit called (user defined) from HAL_OPAMP_DeInit.
149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** *** Running mode: change of configuration while OPAMP ON ***
151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ============================================
152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** [..] To Re-configure OPAMP when OPAMP is ON (change on the fly)
153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) If needed, fill in the HAL_OPAMP_MspInit()
154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) This is the case for instance if you wish to use new OPAMP I/O
155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) Configure the OPAMP using HAL_OPAMP_Init() function:
157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) As in configure case, selects first the parameters you wish to modify.
158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) If OPAMP control register is locked, it is not possible to modify any values
159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** on the fly (even the timer controlled mux parameters).
160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (++) If OPAMP timer controlled mux mode register is locked, it is possible to modify any valu
161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** of the control register but none on the timer controlled mux mode one.
162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (#) Change from high speed mode to normal power mode (& vice versa) requires
164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** first HAL_OPAMP_DeInit() (force OPAMP OFF) and then HAL_OPAMP_Init().
165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** In other words, of OPAMP is ON, HAL_OPAMP_Init can NOT change power mode
166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** alone.
167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** @endverbatim
169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ******************************************************************************
170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @attention
171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** *
172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** *
© Copyright (c) 2019 STMicroelectronics.
173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * All rights reserved.
174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** *
175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * This software component is licensed by ST under BSD 3-Clause license,
176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * the "License"; You may not use this file except in compliance with the
177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * License. You may obtain a copy of the License at:
178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * opensource.org/licenses/BSD-3-Clause
179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** *
180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ******************************************************************************
181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /*
184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** Additional Tables:
185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** The OPAMPs non inverting input (both default and secondary) can be
186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** selected among the list shown by table below.
187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** The OPAMPs non inverting input (both default and secondary) can be
189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** selected among the list shown by table below.
190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** Table 1. OPAMPs inverting/non-inverting inputs for the STM32G4 devices:
192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** +--------------------------------------------------------------------------------------------+
193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | | | OPAMP1 | OPAMP2 | OPAMP3 | OPAMP4 | OPAMP5 | OPAMP6 |
194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** |-----------------|--------|----------|----------|----------|----------|----------|----------|
195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | | No conn| X | X | X | X | X | X |
196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | Inverting Input | VM0 | PA3 | PA5 | PB2 | PB10 | PB15 | PA1 |
197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | (1) | VM1 | PC5 | PC5 | PB10 | PD8 | PA3 | PB1 |
198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** |-----------------|--------|----------|----------|----------|----------|----------|----------|
199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | | VP0 | PA1 | PA7 | PB0 | PB13 | PB14 | PB12 |
200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | Non Inverting | VP1 | PA3 | PB14 | PB13 | PD11 | PD12 | PD9 |
201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | Input | VP2 | PA7 | PB0 | PA1 | PB11 | PC3 | PB13 |
202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | | VP3 | DAC3_CH1 | PD14 | DAC3_CH2 | DAC4_CH1 | DAC4_CH2 | DAC3_CH1 |
203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** +--------------------------------------------------------------------------------------------+
ARM GAS /tmp/ccfpzjW9.s page 5
204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (1): No connection in follower mode.
205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** Table 2. OPAMPs outputs for the STM32G4 devices:
207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** +--------------------------------------------------------------------------------+
208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | | | OPAMP1 | OPAMP2 | OPAMP3 | OPAMP4 | OPAMP5 | OPAMP6 |
209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** |-----------------|--------|--------|--------|--------|--------|--------|--------|
210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | Output | | PA2 | PA6 | PB1 | PB12 | PA8 | PB11 |
211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** |-----------------|--------|--------|--------|--------|--------|--------|--------+
212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | Internal output | | ADC1 | ADC2 | ADC2 | ADC5 | ADC5 | ADC4 |
213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | to ADCs | | CH13 | CH16 | CH18 | CH5 | CH3 | CH17 |
214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | | | | | ADC3 | | | |
215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | | | | | CH13 | | | |
216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** |-----------------|--------|--------|--------|--------|--------|--------|--------+
217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Includes ------------------------------------------------------------------*/
221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #include "stm32g4xx_hal.h"
222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /** @addtogroup STM32G4xx_HAL_Driver
224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @{
225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #ifdef HAL_OPAMP_MODULE_ENABLED
228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /** @defgroup OPAMP OPAMP
230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief OPAMP HAL module driver
231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @{
232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Private typedef -----------------------------------------------------------*/
235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Private define ------------------------------------------------------------*/
236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /** @defgroup OPAMP_Private_Define OPAMP Private Define
237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @{
238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* CSR register reset value */
240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #define OPAMP_CSR_RESET_VALUE (0x00000000UL)
241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* CSR register TRIM value upon reset are factory ones, filter them out from CSR register check */
242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #define OPAMP_CSR_RESET_CHECK_MASK (~(OPAMP_CSR_TRIMOFFSETN | OPAMP_CSR_TRIMOFFSETP))
243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* CSR init register Mask */
244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #define OPAMP_CSR_UPDATE_PARAMETERS_INIT_MASK (OPAMP_CSR_TRIMOFFSETN | OPAMP_CSR_TRIMOFFSETP \
245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | OPAMP_CSR_HIGHSPEEDEN | OPAMP_CSR_OPAMPINTEN \
246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | OPAMP_CSR_PGGAIN | OPAMP_CSR_VPSEL \
247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | OPAMP_CSR_VMSEL | OPAMP_CSR_FORCEVP)
248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* TCMR init register Mask */
249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #define OPAMP_TCMR_UPDATE_PARAMETERS_INIT_MASK (OPAMP_TCMR_T20CMEN | OPAMP_TCMR_T8CMEN \
250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | OPAMP_TCMR_T1CMEN | OPAMP_TCMR_VPSSEL \
251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** | OPAMP_TCMR_VMSSEL)
252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @}
254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Private macro -------------------------------------------------------------*/
257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Private variables ---------------------------------------------------------*/
258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Private function prototypes -----------------------------------------------*/
259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Exported functions ---------------------------------------------------------*/
260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
ARM GAS /tmp/ccfpzjW9.s page 6
261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /** @defgroup OPAMP_Exported_Functions OPAMP Exported Functions
262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @{
263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /** @defgroup OPAMP_Exported_Functions_Group1 Initialization and de-initialization functions
266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief Initialization and Configuration functions
267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** *
268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** @verbatim
269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ===============================================================================
270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ##### Initialization and de-initialization functions #####
271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ===============================================================================
272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** [..] This section provides functions allowing to:
273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** @endverbatim
275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @{
276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief Initializes the OPAMP according to the specified
280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * parameters in the OPAMP_InitTypeDef and initialize the associated handle.
281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @note If the selected opamp is locked, initialization can't be performed.
282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * To unlock the configuration, perform a system reset.
283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @param hopamp OPAMP handle
284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @retval HAL status
285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef HAL_OPAMP_Init(OPAMP_HandleTypeDef *hopamp)
287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the OPAMP handle allocation and lock status */
291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Init not allowed if calibration is ongoing */
292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp == NULL)
293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return HAL_ERROR;
295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else if (hopamp->State == HAL_OPAMP_STATE_BUSYLOCKED)
297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return HAL_ERROR;
299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else if (hopamp->State == HAL_OPAMP_STATE_CALIBBUSY)
301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return HAL_ERROR;
303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else
305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the parameter */
308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_ALL_INSTANCE(hopamp->Instance));
309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set OPAMP parameters */
311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_POWERMODE(hopamp->Init.PowerMode));
312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_FUNCTIONAL_NORMALMODE(hopamp->Init.Mode));
313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_NONINVERTING_INPUT(hopamp->Init.NonInvertingInput));
314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #if (USE_HAL_OPAMP_REGISTER_CALLBACKS == 1)
316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp->State == HAL_OPAMP_STATE_RESET)
317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
ARM GAS /tmp/ccfpzjW9.s page 7
318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp->MspInitCallback == NULL)
319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->MspInitCallback = HAL_OPAMP_MspInit;
321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #endif /* USE_HAL_OPAMP_REGISTER_CALLBACKS */
324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if ((hopamp->Init.Mode) == OPAMP_STANDALONE_MODE)
326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_INVERTING_INPUT(hopamp->Init.InvertingInput));
328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_FUNCTIONAL_STATE(hopamp->Init.InternalOutput));
330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_TIMERCONTROLLED_MUXMODE(hopamp->Init.TimerControlledMuxmode));
332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if ((hopamp->Init.TimerControlledMuxmode) != OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE)
334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_SEC_NONINVERTING_INPUT(hopamp->Init.NonInvertingInputSecondary));
336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_SEC_INVERTING_INPUT(hopamp->Init.InvertingInputSecondary));
337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if ((hopamp->Init.Mode) == OPAMP_PGA_MODE)
340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_PGACONNECT(hopamp->Init.PgaConnect));
342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_PGA_GAIN(hopamp->Init.PgaGain));
343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_TRIMMING(hopamp->Init.UserTrimming));
346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if ((hopamp->Init.UserTrimming) == OPAMP_TRIMMING_USER)
347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_TRIMMINGVALUE(hopamp->Init.TrimmingValueP));
349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_TRIMMINGVALUE(hopamp->Init.TrimmingValueN));
350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Init SYSCFG and the low level hardware to access opamp */
353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** __HAL_RCC_SYSCFG_CLK_ENABLE();
354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp->State == HAL_OPAMP_STATE_RESET)
356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Allocate lock resource and initialize it */
358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Lock = HAL_UNLOCKED;
359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #if (USE_HAL_OPAMP_REGISTER_CALLBACKS == 1)
362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->MspInitCallback(hopamp);
363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #else
364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Call MSP init function */
365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_OPAMP_MspInit(hopamp);
366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #endif /* USE_HAL_OPAMP_REGISTER_CALLBACKS */
367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set OPAMP parameters */
369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set bits according to hopamp->hopamp->Init.Mode value *
370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set bits according to hopamp->hopamp->Init.InvertingInput value *
371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set bits according to hopamp->hopamp->Init.NonInvertingInput value *
372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set bits according to hopamp->hopamp->Init.InternalOutput value *
373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set bits according to hopamp->hopamp->Init.TimerControlledMuxmode value *
374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set bits according to hopamp->hopamp->Init.InvertingInputSecondary value *
ARM GAS /tmp/ccfpzjW9.s page 8
375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set bits according to hopamp->hopamp->Init.NonInvertingInputSecondary value *
376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set bits according to hopamp->hopamp->Init.PgaConnect value *
377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set bits according to hopamp->hopamp->Init.PgaGain value *
378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set bits according to hopamp->hopamp->Init.UserTrimming value *
379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set bits according to hopamp->hopamp->Init.TrimmingValueP value *
380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set bits according to hopamp->hopamp->Init.TrimmingValueN value *
381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* check if OPAMP_PGA_MODE & in Follower mode */
384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* - InvertingInput */
385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* is Not Applicable */
386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if ((hopamp->Init.Mode == OPAMP_PGA_MODE) || (hopamp->Init.Mode == OPAMP_FOLLOWER_MODE))
388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Update User Trim config first to be able to modify trimming value afterwards */
390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR,
391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_USERTRIM,
392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.UserTrimming);
393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR,
394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_UPDATE_PARAMETERS_INIT_MASK,
395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.PowerMode |
396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.Mode |
397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.NonInvertingInput |
398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ((hopamp->Init.InternalOutput == ENABLE) ? OPAMP_CSR_OPAMPINTEN : 0UL) |
399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.PgaConnect |
400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.PgaGain |
401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (hopamp->Init.TrimmingValueP << OPAMP_INPUT_NONINVERTING) |
402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (hopamp->Init.TrimmingValueN << OPAMP_INPUT_INVERTING));
403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else /* OPAMP_STANDALONE_MODE */
405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Update User Trim config first to be able to modify trimming value afterwards */
407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR,
408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_USERTRIM,
409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.UserTrimming);
410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR,
411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_UPDATE_PARAMETERS_INIT_MASK,
412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.PowerMode |
413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.Mode |
414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.InvertingInput |
415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.NonInvertingInput |
416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ((hopamp->Init.InternalOutput == ENABLE) ? OPAMP_CSR_OPAMPINTEN : 0UL) |
417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.PgaConnect |
418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.PgaGain |
419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (hopamp->Init.TrimmingValueP << OPAMP_INPUT_NONINVERTING) |
420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** (hopamp->Init.TrimmingValueN << OPAMP_INPUT_INVERTING));
421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if ((READ_BIT(hopamp->Instance->TCMR, OPAMP_TCMR_LOCK)) == 0UL)
424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->TCMR,
426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_TCMR_UPDATE_PARAMETERS_INIT_MASK,
427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.TimerControlledMuxmode |
428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.InvertingInputSecondary |
429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.NonInvertingInputSecondary);
430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
ARM GAS /tmp/ccfpzjW9.s page 9
432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Update the OPAMP state*/
433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp->State == HAL_OPAMP_STATE_RESET)
434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* From RESET state to READY State */
436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->State = HAL_OPAMP_STATE_READY;
437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* else: remain in READY or BUSY state (no update) */
439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return status;
441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief DeInitializes the OPAMP peripheral
447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @note Deinitialization can't be performed if the OPAMP configuration is locked.
448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * To unlock the configuration, perform a system reset.
449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @param hopamp OPAMP handle
450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @retval HAL status
451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef HAL_OPAMP_DeInit(OPAMP_HandleTypeDef *hopamp)
453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the OPAMP handle allocation */
457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* DeInit not allowed if calibration is ongoing */
458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp == NULL)
459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else if (hopamp->State == HAL_OPAMP_STATE_CALIBBUSY)
463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else
467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the parameter */
469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_ALL_INSTANCE(hopamp->Instance));
470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set OPAMP_CSR register to reset value */
472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** WRITE_REG(hopamp->Instance->CSR, OPAMP_CSR_RESET_VALUE);
473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* DeInit the low level hardware: GPIO, CLOCK and NVIC */
475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* When OPAMP is locked, unlocking can be achieved thanks to */
476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* __HAL_RCC_SYSCFG_CLK_DISABLE() call within HAL_OPAMP_MspDeInit */
477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Note that __HAL_RCC_SYSCFG_CLK_DISABLE() also disables comparator */
478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #if (USE_HAL_OPAMP_REGISTER_CALLBACKS == 1)
480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp->MspDeInitCallback == NULL)
481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->MspDeInitCallback = HAL_OPAMP_MspDeInit;
483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* DeInit the low level hardware */
485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->MspDeInitCallback(hopamp);
486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #else
487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_OPAMP_MspDeInit(hopamp);
488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #endif /* USE_HAL_OPAMP_REGISTER_CALLBACKS */
ARM GAS /tmp/ccfpzjW9.s page 10
489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (OPAMP_CSR_RESET_VALUE == (hopamp->Instance->CSR & OPAMP_CSR_RESET_CHECK_MASK))
491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Update the OPAMP state */
493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->State = HAL_OPAMP_STATE_RESET;
494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else /* RESET STATE */
496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* DeInit not complete */
498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* It can be the case if OPAMP was formerly locked */
499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* The OPAMP state is NOT updated */
502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Process unlocked */
505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** __HAL_UNLOCK(hopamp);
506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return status;
509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief Initialize the OPAMP MSP.
513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @param hopamp OPAMP handle
514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @retval None
515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** __weak void HAL_OPAMP_MspInit(OPAMP_HandleTypeDef *hopamp)
517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
27 .loc 1 517 0
28 .cfi_startproc
29 @ args = 0, pretend = 0, frame = 0
30 @ frame_needed = 0, uses_anonymous_args = 0
31 @ link register save eliminated.
32 .LVL0:
518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Prevent unused argument(s) compilation warning */
519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** UNUSED(hopamp);
520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* NOTE : This function should not be modified, when the callback is needed,
522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** the HAL_OPAMP_MspInit could be implemented in the user file
523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Example */
526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
33 .loc 1 526 0
34 0000 7047 bx lr
35 .cfi_endproc
36 .LFE331:
38 0002 00BF .section .text.HAL_OPAMP_Init,"ax",%progbits
39 .align 1
40 .p2align 2,,3
41 .global HAL_OPAMP_Init
42 .syntax unified
43 .thumb
44 .thumb_func
45 .fpu fpv4-sp-d16
47 HAL_OPAMP_Init:
ARM GAS /tmp/ccfpzjW9.s page 11
48 .LFB329:
287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
49 .loc 1 287 0
50 .cfi_startproc
51 @ args = 0, pretend = 0, frame = 8
52 @ frame_needed = 0, uses_anonymous_args = 0
53 .LVL1:
292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
54 .loc 1 292 0
55 0000 0028 cmp r0, #0
56 0002 5CD0 beq .L13
296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
57 .loc 1 296 0
58 0004 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2
59 0008 052B cmp r3, #5
60 000a 58D0 beq .L13
300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
61 .loc 1 300 0
62 000c 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2
63 0010 022B cmp r3, #2
64 0012 54D0 beq .L13
65 .LBB2:
353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
66 .loc 1 353 0
67 0014 3A4B ldr r3, .L24
68 .LBE2:
287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
69 .loc 1 287 0
70 0016 70B5 push {r4, r5, r6, lr}
71 .LCFI0:
72 .cfi_def_cfa_offset 16
73 .cfi_offset 4, -16
74 .cfi_offset 5, -12
75 .cfi_offset 6, -8
76 .cfi_offset 14, -4
77 .LBB3:
353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
78 .loc 1 353 0
79 0018 1A6E ldr r2, [r3, #96]
80 001a 42F00102 orr r2, r2, #1
81 001e 1A66 str r2, [r3, #96]
82 0020 1B6E ldr r3, [r3, #96]
83 .LBE3:
287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
84 .loc 1 287 0
85 0022 82B0 sub sp, sp, #8
86 .LCFI1:
87 .cfi_def_cfa_offset 24
88 .LBB4:
353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
89 .loc 1 353 0
90 0024 03F00103 and r3, r3, #1
91 0028 0193 str r3, [sp, #4]
92 002a 019B ldr r3, [sp, #4]
93 .LBE4:
355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
94 .loc 1 355 0
ARM GAS /tmp/ccfpzjW9.s page 12
95 002c 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2
96 0030 03F0FF02 and r2, r3, #255
97 0034 002B cmp r3, #0
98 0036 44D0 beq .L22
99 .L5:
100 0038 0446 mov r4, r0
365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #endif /* USE_HAL_OPAMP_REGISTER_CALLBACKS */
101 .loc 1 365 0
102 003a FFF7FEFF bl HAL_OPAMP_MspInit
103 .LVL2:
387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
104 .loc 1 387 0
105 003e A368 ldr r3, [r4, #8]
106 0040 23F02002 bic r2, r3, #32
107 0044 402A cmp r2, #64
390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_USERTRIM,
108 .loc 1 390 0
109 0046 2268 ldr r2, [r4]
387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
110 .loc 1 387 0
111 0048 41D0 beq .L23
112 004a 6068 ldr r0, [r4, #4]
113 004c E668 ldr r6, [r4, #12]
407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_USERTRIM,
114 .loc 1 407 0
115 004e 1168 ldr r1, [r2]
116 0050 2569 ldr r5, [r4, #16]
117 0052 0343 orrs r3, r3, r0
118 0054 3343 orrs r3, r3, r6
119 0056 E06A ldr r0, [r4, #44]
410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_UPDATE_PARAMETERS_INIT_MASK,
120 .loc 1 410 0
121 0058 666A ldr r6, [r4, #36]
122 005a 2B43 orrs r3, r3, r5
407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_USERTRIM,
123 .loc 1 407 0
124 005c 21F01001 bic r1, r1, #16
125 0060 0143 orrs r1, r1, r0
410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_UPDATE_PARAMETERS_INIT_MASK,
126 .loc 1 410 0
127 0062 A56A ldr r5, [r4, #40]
407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_USERTRIM,
128 .loc 1 407 0
129 0064 1160 str r1, [r2]
410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_UPDATE_PARAMETERS_INIT_MASK,
130 .loc 1 410 0
131 0066 3343 orrs r3, r3, r6
132 0068 D4E90C60 ldrd r6, r0, [r4, #48]
133 006c 2B43 orrs r3, r3, r5
134 006e 2549 ldr r1, .L24+4
135 0070 1568 ldr r5, [r2]
136 0072 43EAC643 orr r3, r3, r6, lsl #19
137 0076 43EA0063 orr r3, r3, r0, lsl #24
138 007a 207D ldrb r0, [r4, #20] @ zero_extendqisi2
139 007c 2940 ands r1, r1, r5
140 .L21:
141 007e 0128 cmp r0, #1
ARM GAS /tmp/ccfpzjW9.s page 13
142 0080 43EA0103 orr r3, r3, r1
143 0084 14BF ite ne
144 0086 0021 movne r1, #0
145 0088 4FF48071 moveq r1, #256
146 008c 0B43 orrs r3, r3, r1
147 008e 1360 str r3, [r2]
423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
148 .loc 1 423 0
149 0090 9369 ldr r3, [r2, #24]
150 0092 002B cmp r3, #0
151 0094 09DB blt .L10
425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_TCMR_UPDATE_PARAMETERS_INIT_MASK,
152 .loc 1 425 0
153 0096 D4E90635 ldrd r3, r5, [r4, #24]
154 009a 206A ldr r0, [r4, #32]
155 009c 9169 ldr r1, [r2, #24]
156 009e 2B43 orrs r3, r3, r5
157 00a0 0343 orrs r3, r3, r0
158 00a2 21F03F01 bic r1, r1, #63
159 00a6 0B43 orrs r3, r3, r1
160 00a8 9361 str r3, [r2, #24]
161 .L10:
433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
162 .loc 1 433 0
163 00aa 94F83A30 ldrb r3, [r4, #58] @ zero_extendqisi2
164 00ae 03F0FF00 and r0, r3, #255
165 00b2 4BB9 cbnz r3, .L16
436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
166 .loc 1 436 0
167 00b4 0123 movs r3, #1
168 00b6 84F83A30 strb r3, [r4, #58]
442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
169 .loc 1 442 0
170 00ba 02B0 add sp, sp, #8
171 .LCFI2:
172 .cfi_def_cfa_offset 16
173 @ sp needed
174 00bc 70BD pop {r4, r5, r6, pc}
175 .LVL3:
176 .L13:
177 .LCFI3:
178 .cfi_def_cfa_offset 0
179 .cfi_restore 4
180 .cfi_restore 5
181 .cfi_restore 6
182 .cfi_restore 14
294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
183 .loc 1 294 0
184 00be 0120 movs r0, #1
185 .LVL4:
442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
186 .loc 1 442 0
187 00c0 7047 bx lr
188 .LVL5:
189 .L22:
190 .LCFI4:
191 .cfi_def_cfa_offset 24
ARM GAS /tmp/ccfpzjW9.s page 14
192 .cfi_offset 4, -16
193 .cfi_offset 5, -12
194 .cfi_offset 6, -8
195 .cfi_offset 14, -4
358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
196 .loc 1 358 0
197 00c2 80F83920 strb r2, [r0, #57]
198 00c6 B7E7 b .L5
199 .LVL6:
200 .L16:
440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
201 .loc 1 440 0
202 00c8 0020 movs r0, #0
442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
203 .loc 1 442 0
204 00ca 02B0 add sp, sp, #8
205 .LCFI5:
206 .cfi_remember_state
207 .cfi_def_cfa_offset 16
208 @ sp needed
209 00cc 70BD pop {r4, r5, r6, pc}
210 .LVL7:
211 .L23:
212 .LCFI6:
213 .cfi_restore_state
214 00ce 6668 ldr r6, [r4, #4]
390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_USERTRIM,
215 .loc 1 390 0
216 00d0 1168 ldr r1, [r2]
217 00d2 2069 ldr r0, [r4, #16]
218 00d4 E56A ldr r5, [r4, #44]
219 00d6 3343 orrs r3, r3, r6
220 00d8 0343 orrs r3, r3, r0
221 00da 21F01001 bic r1, r1, #16
393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_UPDATE_PARAMETERS_INIT_MASK,
222 .loc 1 393 0
223 00de 606A ldr r0, [r4, #36]
390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_USERTRIM,
224 .loc 1 390 0
225 00e0 2943 orrs r1, r1, r5
393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_UPDATE_PARAMETERS_INIT_MASK,
226 .loc 1 393 0
227 00e2 A56A ldr r5, [r4, #40]
390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_USERTRIM,
228 .loc 1 390 0
229 00e4 1160 str r1, [r2]
393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_CSR_UPDATE_PARAMETERS_INIT_MASK,
230 .loc 1 393 0
231 00e6 0343 orrs r3, r3, r0
232 00e8 206B ldr r0, [r4, #48]
233 00ea 1668 ldr r6, [r2]
234 00ec 0549 ldr r1, .L24+4
235 00ee 2B43 orrs r3, r3, r5
236 00f0 656B ldr r5, [r4, #52]
237 00f2 43EAC043 orr r3, r3, r0, lsl #19
238 00f6 3140 ands r1, r1, r6
239 00f8 207D ldrb r0, [r4, #20] @ zero_extendqisi2
ARM GAS /tmp/ccfpzjW9.s page 15
240 00fa 43EA0563 orr r3, r3, r5, lsl #24
241 00fe BEE7 b .L21
242 .L25:
243 .align 2
244 .L24:
245 0100 00100240 .word 1073876992
246 0104 113E00E0 .word -536855023
247 .cfi_endproc
248 .LFE329:
250 .section .text.HAL_OPAMP_MspDeInit,"ax",%progbits
251 .align 1
252 .p2align 2,,3
253 .weak HAL_OPAMP_MspDeInit
254 .syntax unified
255 .thumb
256 .thumb_func
257 .fpu fpv4-sp-d16
259 HAL_OPAMP_MspDeInit:
260 .LFB341:
261 .cfi_startproc
262 @ args = 0, pretend = 0, frame = 0
263 @ frame_needed = 0, uses_anonymous_args = 0
264 @ link register save eliminated.
265 0000 7047 bx lr
266 .cfi_endproc
267 .LFE341:
269 0002 00BF .section .text.HAL_OPAMP_DeInit,"ax",%progbits
270 .align 1
271 .p2align 2,,3
272 .global HAL_OPAMP_DeInit
273 .syntax unified
274 .thumb
275 .thumb_func
276 .fpu fpv4-sp-d16
278 HAL_OPAMP_DeInit:
279 .LFB330:
453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
280 .loc 1 453 0
281 .cfi_startproc
282 @ args = 0, pretend = 0, frame = 0
283 @ frame_needed = 0, uses_anonymous_args = 0
284 .LVL8:
458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
285 .loc 1 458 0
286 0000 C0B1 cbz r0, .L30
462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
287 .loc 1 462 0
288 0002 90F83A20 ldrb r2, [r0, #58] @ zero_extendqisi2
289 0006 022A cmp r2, #2
453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
290 .loc 1 453 0
291 0008 10B5 push {r4, lr}
292 .LCFI7:
293 .cfi_def_cfa_offset 8
294 .cfi_offset 4, -8
295 .cfi_offset 14, -4
296 000a 0446 mov r4, r0
ARM GAS /tmp/ccfpzjW9.s page 16
462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
297 .loc 1 462 0
298 000c 10D0 beq .L31
472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
299 .loc 1 472 0
300 000e 0368 ldr r3, [r0]
301 0010 0022 movs r2, #0
302 0012 1A60 str r2, [r3]
487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** #endif /* USE_HAL_OPAMP_REGISTER_CALLBACKS */
303 .loc 1 487 0
304 0014 FFF7FEFF bl HAL_OPAMP_MspDeInit
305 .LVL9:
490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
306 .loc 1 490 0
307 0018 2368 ldr r3, [r4]
308 001a 1868 ldr r0, [r3]
309 001c 20F0FF50 bic r0, r0, #534773760
310 0020 20F4C010 bic r0, r0, #1572864
311 0024 40B1 cbz r0, .L37
499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
312 .loc 1 499 0
313 0026 0120 movs r0, #1
314 .L29:
315 .LVL10:
505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
316 .loc 1 505 0
317 0028 0023 movs r3, #0
318 002a 84F83930 strb r3, [r4, #57]
509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
319 .loc 1 509 0
320 002e 10BD pop {r4, pc}
321 .LVL11:
322 .L31:
460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
323 .loc 1 460 0
324 0030 0120 movs r0, #1
325 .LVL12:
509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
326 .loc 1 509 0
327 0032 10BD pop {r4, pc}
328 .LVL13:
329 .L30:
330 .LCFI8:
331 .cfi_def_cfa_offset 0
332 .cfi_restore 4
333 .cfi_restore 14
460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
334 .loc 1 460 0
335 0034 0120 movs r0, #1
336 .LVL14:
509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
337 .loc 1 509 0
338 0036 7047 bx lr
339 .LVL15:
340 .L37:
341 .LCFI9:
342 .cfi_def_cfa_offset 8
ARM GAS /tmp/ccfpzjW9.s page 17
343 .cfi_offset 4, -8
344 .cfi_offset 14, -4
493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
345 .loc 1 493 0
346 0038 84F83A00 strb r0, [r4, #58]
347 003c F4E7 b .L29
348 .cfi_endproc
349 .LFE330:
351 003e 00BF .section .text.HAL_OPAMP_Start,"ax",%progbits
352 .align 1
353 .p2align 2,,3
354 .global HAL_OPAMP_Start
355 .syntax unified
356 .thumb
357 .thumb_func
358 .fpu fpv4-sp-d16
360 HAL_OPAMP_Start:
361 .LFB333:
527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief DeInitialize OPAMP MSP.
530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @param hopamp OPAMP handle
531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @retval None
532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** __weak void HAL_OPAMP_MspDeInit(OPAMP_HandleTypeDef *hopamp)
534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Prevent unused argument(s) compilation warning */
536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** UNUSED(hopamp);
537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* NOTE : This function should not be modified, when the callback is needed,
539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** the HAL_OPAMP_MspDeInit could be implemented in the user file
540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @}
546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /** @defgroup OPAMP_Exported_Functions_Group2 Input and Output operation functions
550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief Data transfers functions
551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** *
552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** @verbatim
553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ===============================================================================
554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ##### IO operation functions #####
555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ===============================================================================
556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** [..]
557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** This subsection provides a set of functions allowing to manage the OPAMP data
558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** transfers.
559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** @endverbatim
561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @{
562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief Start the opamp
ARM GAS /tmp/ccfpzjW9.s page 18
566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @param hopamp OPAMP handle
567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @retval HAL status
568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef HAL_OPAMP_Start(OPAMP_HandleTypeDef *hopamp)
571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
362 .loc 1 571 0
363 .cfi_startproc
364 @ args = 0, pretend = 0, frame = 0
365 @ frame_needed = 0, uses_anonymous_args = 0
366 @ link register save eliminated.
367 .LVL16:
572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the OPAMP handle allocation */
575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check if OPAMP locked */
576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp == NULL)
368 .loc 1 576 0
369 0000 40B1 cbz r0, .L42
577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else if (hopamp->State == HAL_OPAMP_STATE_BUSYLOCKED)
370 .loc 1 580 0
371 0002 90F83A20 ldrb r2, [r0, #58] @ zero_extendqisi2
372 0006 052A cmp r2, #5
373 0008 0346 mov r3, r0
374 000a 03D0 beq .L42
581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else
585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the parameter */
587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_ALL_INSTANCE(hopamp->Instance));
588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp->State == HAL_OPAMP_STATE_READY)
375 .loc 1 589 0
376 000c 90F83A20 ldrb r2, [r0, #58] @ zero_extendqisi2
377 0010 012A cmp r2, #1
378 0012 01D0 beq .L47
379 .L42:
578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
380 .loc 1 578 0
381 0014 0120 movs r0, #1
382 .LVL17:
590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Enable the selected opamp */
592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** SET_BIT(hopamp->Instance->CSR, OPAMP_CSR_OPAMPxEN);
593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Update the OPAMP state*/
595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* From HAL_OPAMP_STATE_READY to HAL_OPAMP_STATE_BUSY */
596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->State = HAL_OPAMP_STATE_BUSY;
597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else
599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
ARM GAS /tmp/ccfpzjW9.s page 19
601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return status;
606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
383 .loc 1 606 0
384 0016 7047 bx lr
385 .LVL18:
386 .L47:
592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
387 .loc 1 592 0
388 0018 0168 ldr r1, [r0]
389 001a 0A68 ldr r2, [r1]
571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
390 .loc 1 571 0
391 001c 10B4 push {r4}
392 .LCFI10:
393 .cfi_def_cfa_offset 4
394 .cfi_offset 4, -4
592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
395 .loc 1 592 0
396 001e 42F00102 orr r2, r2, #1
596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
397 .loc 1 596 0
398 0022 0424 movs r4, #4
592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
399 .loc 1 592 0
400 0024 0A60 str r2, [r1]
572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
401 .loc 1 572 0
402 0026 0020 movs r0, #0
403 .LVL19:
596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
404 .loc 1 596 0
405 0028 83F83A40 strb r4, [r3, #58]
406 .LVL20:
407 .loc 1 606 0
408 002c 5DF8044B ldr r4, [sp], #4
409 .LCFI11:
410 .cfi_restore 4
411 .cfi_def_cfa_offset 0
412 0030 7047 bx lr
413 .cfi_endproc
414 .LFE333:
416 0032 00BF .section .text.HAL_OPAMP_Stop,"ax",%progbits
417 .align 1
418 .p2align 2,,3
419 .global HAL_OPAMP_Stop
420 .syntax unified
421 .thumb
422 .thumb_func
423 .fpu fpv4-sp-d16
425 HAL_OPAMP_Stop:
426 .LFB334:
607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
ARM GAS /tmp/ccfpzjW9.s page 20
609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief Stop the opamp
610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @param hopamp OPAMP handle
611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @retval HAL status
612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef HAL_OPAMP_Stop(OPAMP_HandleTypeDef *hopamp)
614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
427 .loc 1 614 0
428 .cfi_startproc
429 @ args = 0, pretend = 0, frame = 0
430 @ frame_needed = 0, uses_anonymous_args = 0
431 @ link register save eliminated.
432 .LVL21:
615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the OPAMP handle allocation */
618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check if OPAMP locked */
619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check if OPAMP calibration ongoing */
620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp == NULL)
433 .loc 1 620 0
434 0000 60B1 cbz r0, .L53
621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else if (hopamp->State == HAL_OPAMP_STATE_BUSYLOCKED)
435 .loc 1 624 0
436 0002 90F83A20 ldrb r2, [r0, #58] @ zero_extendqisi2
437 0006 052A cmp r2, #5
438 0008 0346 mov r3, r0
439 000a 07D0 beq .L53
625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else if (hopamp->State == HAL_OPAMP_STATE_CALIBBUSY)
440 .loc 1 628 0
441 000c 90F83A20 ldrb r2, [r0, #58] @ zero_extendqisi2
442 0010 022A cmp r2, #2
443 0012 03D0 beq .L53
629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else
633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the parameter */
635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_ALL_INSTANCE(hopamp->Instance));
636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp->State == HAL_OPAMP_STATE_BUSY)
444 .loc 1 637 0
445 0014 90F83A20 ldrb r2, [r0, #58] @ zero_extendqisi2
446 0018 042A cmp r2, #4
447 001a 01D0 beq .L58
448 .L53:
622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
449 .loc 1 622 0
450 001c 0120 movs r0, #1
451 .LVL22:
638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Disable the selected opamp */
ARM GAS /tmp/ccfpzjW9.s page 21
640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** CLEAR_BIT(hopamp->Instance->CSR, OPAMP_CSR_OPAMPxEN);
641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Update the OPAMP state*/
643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* From HAL_OPAMP_STATE_BUSY to HAL_OPAMP_STATE_READY*/
644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->State = HAL_OPAMP_STATE_READY;
645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else
647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return status;
652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
452 .loc 1 652 0
453 001e 7047 bx lr
454 .LVL23:
455 .L58:
640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
456 .loc 1 640 0
457 0020 0168 ldr r1, [r0]
458 0022 0A68 ldr r2, [r1]
614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
459 .loc 1 614 0
460 0024 10B4 push {r4}
461 .LCFI12:
462 .cfi_def_cfa_offset 4
463 .cfi_offset 4, -4
640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
464 .loc 1 640 0
465 0026 22F00102 bic r2, r2, #1
644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
466 .loc 1 644 0
467 002a 0124 movs r4, #1
640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
468 .loc 1 640 0
469 002c 0A60 str r2, [r1]
615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
470 .loc 1 615 0
471 002e 0020 movs r0, #0
472 .LVL24:
644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
473 .loc 1 644 0
474 0030 83F83A40 strb r4, [r3, #58]
475 .LVL25:
476 .loc 1 652 0
477 0034 5DF8044B ldr r4, [sp], #4
478 .LCFI13:
479 .cfi_restore 4
480 .cfi_def_cfa_offset 0
481 0038 7047 bx lr
482 .cfi_endproc
483 .LFE334:
485 003a 00BF .section .text.HAL_OPAMP_SelfCalibrate,"ax",%progbits
486 .align 1
487 .p2align 2,,3
488 .global HAL_OPAMP_SelfCalibrate
489 .syntax unified
ARM GAS /tmp/ccfpzjW9.s page 22
490 .thumb
491 .thumb_func
492 .fpu fpv4-sp-d16
494 HAL_OPAMP_SelfCalibrate:
495 .LFB335:
653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief Run the self calibration of one OPAMP
656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @note Calibration is performed in the mode specified in OPAMP init
657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * structure (mode normal or high-speed).
658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @param hopamp handle
659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @retval Updated offset trimming values (PMOS & NMOS), user trimming is enabled
660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @retval HAL status
661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @note Calibration runs about 25 ms.
662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef HAL_OPAMP_SelfCalibrate(OPAMP_HandleTypeDef *hopamp)
665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
496 .loc 1 665 0
497 .cfi_startproc
498 @ args = 0, pretend = 0, frame = 0
499 @ frame_needed = 0, uses_anonymous_args = 0
500 .LVL26:
666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** uint32_t trimmingvaluen;
670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** uint32_t trimmingvaluep;
671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** uint32_t delta;
672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the OPAMP handle allocation */
674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check if OPAMP locked */
675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp == NULL)
501 .loc 1 675 0
502 0000 60B1 cbz r0, .L69
665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
503 .loc 1 665 0
504 0002 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr}
505 .LCFI14:
506 .cfi_def_cfa_offset 32
507 .cfi_offset 3, -32
508 .cfi_offset 4, -28
509 .cfi_offset 5, -24
510 .cfi_offset 6, -20
511 .cfi_offset 7, -16
512 .cfi_offset 8, -12
513 .cfi_offset 9, -8
514 .cfi_offset 14, -4
676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else if (hopamp->State == HAL_OPAMP_STATE_BUSYLOCKED)
515 .loc 1 679 0
516 0006 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2
517 000a 052B cmp r3, #5
518 000c 03D0 beq .L71
680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
ARM GAS /tmp/ccfpzjW9.s page 23
681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else
684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check if OPAMP in calibration mode and calibration not yet enable */
687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp->State == HAL_OPAMP_STATE_READY)
519 .loc 1 687 0
520 000e 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2
521 0012 012B cmp r3, #1
522 0014 04D0 beq .L84
523 .L71:
677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
524 .loc 1 677 0
525 0016 0120 movs r0, #1
526 .LVL27:
688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the parameter */
690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_ALL_INSTANCE(hopamp->Instance));
691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set Calibration mode */
693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Non-inverting input connected to calibration reference voltage. */
694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** SET_BIT(hopamp->Instance->CSR, OPAMP_CSR_FORCEVP);
695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* user trimming values are used for offset calibration */
697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** SET_BIT(hopamp->Instance->CSR, OPAMP_CSR_USERTRIM);
698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Enable calibration */
700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** SET_BIT(hopamp->Instance->CSR, OPAMP_CSR_CALON);
701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* 1st calibration - N */
703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Select 90% VREF */
704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_CALSEL, OPAMP_VREF_90VDDA);
705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Enable the selected opamp */
707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** SET_BIT(hopamp->Instance->CSR, OPAMP_CSR_OPAMPxEN);
708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Init trimming counter */
710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Medium value */
711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** trimmingvaluen = 16UL;
712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** delta = 8UL;
713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** while (delta != 0UL)
715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set candidate trimming */
717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_TRIMOFFSETN, trimmingvaluen << OPAMP_INPUT_INVE
718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* OFFTRIMmax delay 2 ms as per datasheet (electrical characteristics */
720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Offset trim time: during calibration, minimum time needed between */
721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* two steps to have 1 mV accuracy */
722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_Delay(2);
723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if ((hopamp->Instance->CSR & OPAMP_CSR_OUTCAL) != 0UL)
725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* OPAMP_CSR_OUTCAL is HIGH try higher trimming */
727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** trimmingvaluen += delta;
728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
ARM GAS /tmp/ccfpzjW9.s page 24
729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else
730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* OPAMP_CSR_OUTCAL is LOW try lower trimming */
732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** trimmingvaluen -= delta;
733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** delta >>= 1;
736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Still need to check if righ calibration is current value or un step below */
739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Indeed the first value that causes the OUTCAL bit to change from 1 to 0 */
740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_TRIMOFFSETN, trimmingvaluen << OPAMP_INPUT_INVERT
741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* OFFTRIMmax delay 2 ms as per datasheet (electrical characteristics */
743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Offset trim time: during calibration, minimum time needed between */
744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* two steps to have 1 mV accuracy */
745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_Delay(2);
746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if ((hopamp->Instance->CSR & OPAMP_CSR_OUTCAL) != 0UL)
748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* OPAMP_CSR_OUTCAL is actually one value more */
750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** trimmingvaluen++;
751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set right trimming */
752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_TRIMOFFSETN, trimmingvaluen << OPAMP_INPUT_INVE
753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* 2nd calibration - P */
756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Select 10% VREF */
757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_CALSEL, OPAMP_VREF_10VDDA);
758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Init trimming counter */
760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Medium value */
761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** trimmingvaluep = 16UL;
762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** delta = 8UL;
763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** while (delta != 0UL)
765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set candidate trimming */
767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_TRIMOFFSETP, trimmingvaluep << OPAMP_INPUT_NONI
768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* OFFTRIMmax delay 2 ms as per datasheet (electrical characteristics */
770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Offset trim time: during calibration, minimum time needed between */
771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* two steps to have 1 mV accuracy */
772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_Delay(2);
773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if ((hopamp->Instance->CSR & OPAMP_CSR_OUTCAL) != 0UL)
775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* OPAMP_CSR_OUTCAL is HIGH try higher trimming */
777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** trimmingvaluep += delta;
778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else
780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** trimmingvaluep -= delta;
782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** delta >>= 1;
785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
ARM GAS /tmp/ccfpzjW9.s page 25
786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Still need to check if righ calibration is current value or un step below */
788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Indeed the first value that causes the OUTCAL bit to change from 1 to 0U */
789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set candidate trimming */
790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_TRIMOFFSETP, trimmingvaluep << OPAMP_INPUT_NONINV
791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* OFFTRIMmax delay 2 ms as per datasheet (electrical characteristics */
793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Offset trim time: during calibration, minimum time needed between */
794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* two steps to have 1 mV accuracy */
795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_Delay(2);
796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if ((hopamp->Instance->CSR & OPAMP_CSR_OUTCAL) != 0UL)
798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* OPAMP_CSR_OUTCAL is actually one value more */
800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** trimmingvaluep++;
801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set right trimming */
802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_TRIMOFFSETP, trimmingvaluep << OPAMP_INPUT_NONI
803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Disable calibration */
806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** CLEAR_BIT(hopamp->Instance->CSR, OPAMP_CSR_CALON);
807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Disable the OPAMP */
809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** CLEAR_BIT(hopamp->Instance->CSR, OPAMP_CSR_OPAMPxEN);
810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set operating mode */
812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Non-inverting input connected to calibration reference voltage. */
813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** CLEAR_BIT(hopamp->Instance->CSR, OPAMP_CSR_FORCEVP);
814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Self calibration is successful */
816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Store calibration(user timing) results in init structure. */
817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Write calibration result N */
819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.TrimmingValueN = trimmingvaluen;
820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Write calibration result P */
822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.TrimmingValueP = trimmingvaluep;
823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Select user timing mode */
825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* And updated with calibrated settings */
826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->Init.UserTrimming = OPAMP_TRIMMING_USER;
827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_TRIMOFFSETP, trimmingvaluep << OPAMP_INPUT_NONINV
828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_TRIMOFFSETN, trimmingvaluen << OPAMP_INPUT_INVERT
829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else
832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* OPAMP can not be calibrated from this mode */
834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return status;
838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
527 .loc 1 838 0
528 0018 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
529 .LVL28:
530 .L69:
ARM GAS /tmp/ccfpzjW9.s page 26
531 .LCFI15:
532 .cfi_def_cfa_offset 0
533 .cfi_restore 3
534 .cfi_restore 4
535 .cfi_restore 5
536 .cfi_restore 6
537 .cfi_restore 7
538 .cfi_restore 8
539 .cfi_restore 9
540 .cfi_restore 14
677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
541 .loc 1 677 0
542 001c 0120 movs r0, #1
543 .LVL29:
544 .loc 1 838 0
545 001e 7047 bx lr
546 .LVL30:
547 .L84:
548 .LCFI16:
549 .cfi_def_cfa_offset 32
550 .cfi_offset 3, -32
551 .cfi_offset 4, -28
552 .cfi_offset 5, -24
553 .cfi_offset 6, -20
554 .cfi_offset 7, -16
555 .cfi_offset 8, -12
556 .cfi_offset 9, -8
557 .cfi_offset 14, -4
694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
558 .loc 1 694 0
559 0020 0368 ldr r3, [r0]
560 0022 1A68 ldr r2, [r3]
561 0024 42F00202 orr r2, r2, #2
562 0028 1A60 str r2, [r3]
697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
563 .loc 1 697 0
564 002a 1A68 ldr r2, [r3]
565 002c 42F01002 orr r2, r2, #16
566 0030 1A60 str r2, [r3]
700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
567 .loc 1 700 0
568 0032 1A68 ldr r2, [r3]
569 0034 42F40062 orr r2, r2, #2048
570 0038 1A60 str r2, [r3]
704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
571 .loc 1 704 0
572 003a 1A68 ldr r2, [r3]
573 003c 42F44052 orr r2, r2, #12288
574 0040 1A60 str r2, [r3]
707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
575 .loc 1 707 0
576 0042 1A68 ldr r2, [r3]
577 0044 42F00102 orr r2, r2, #1
578 0048 0446 mov r4, r0
579 004a 1A60 str r2, [r3]
580 .LVL31:
581 004c 0426 movs r6, #4
ARM GAS /tmp/ccfpzjW9.s page 27
712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
582 .loc 1 712 0
583 004e 0827 movs r7, #8
711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** delta = 8UL;
584 .loc 1 711 0
585 0050 1025 movs r5, #16
586 .LVL32:
587 .L63:
717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
588 .loc 1 717 0
589 0052 1A68 ldr r2, [r3]
590 0054 22F0F852 bic r2, r2, #520093696
591 0058 42EA0562 orr r2, r2, r5, lsl #24
592 005c 1A60 str r2, [r3]
722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
593 .loc 1 722 0
594 005e 0220 movs r0, #2
595 0060 FFF7FEFF bl HAL_Delay
596 .LVL33:
724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
597 .loc 1 724 0
598 0064 2368 ldr r3, [r4]
599 0066 1A68 ldr r2, [r3]
600 0068 5200 lsls r2, r2, #1
727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
601 .loc 1 727 0
602 006a 4CBF ite mi
603 006c ED19 addmi r5, r5, r7
604 .LVL34:
732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
605 .loc 1 732 0
606 006e ED1B subpl r5, r5, r7
607 .LVL35:
714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
608 .loc 1 714 0
609 0070 013E subs r6, r6, #1
735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
610 .loc 1 735 0
611 0072 4FEA5707 lsr r7, r7, #1
612 .LVL36:
714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
613 .loc 1 714 0
614 0076 ECD1 bne .L63
740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
615 .loc 1 740 0
616 0078 1A68 ldr r2, [r3]
617 007a 2E06 lsls r6, r5, #24
618 007c 22F0F852 bic r2, r2, #520093696
619 0080 3243 orrs r2, r2, r6
620 0082 1A60 str r2, [r3]
745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
621 .loc 1 745 0
622 0084 0220 movs r0, #2
623 0086 FFF7FEFF bl HAL_Delay
624 .LVL37:
747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
625 .loc 1 747 0
ARM GAS /tmp/ccfpzjW9.s page 28
626 008a 2268 ldr r2, [r4]
627 008c 1368 ldr r3, [r2]
628 008e 5800 lsls r0, r3, #1
629 0090 06D5 bpl .L64
752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
630 .loc 1 752 0
631 0092 1368 ldr r3, [r2]
750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set right trimming */
632 .loc 1 750 0
633 0094 0135 adds r5, r5, #1
634 .LVL38:
752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
635 .loc 1 752 0
636 0096 2E06 lsls r6, r5, #24
637 0098 23F0F853 bic r3, r3, #520093696
638 009c 3343 orrs r3, r3, r6
639 009e 1360 str r3, [r2]
640 .L64:
757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
641 .loc 1 757 0
642 00a0 1368 ldr r3, [r2]
643 00a2 23F44053 bic r3, r3, #12288
644 00a6 43F48053 orr r3, r3, #4096
645 00aa 1360 str r3, [r2]
646 .LVL39:
647 00ac 4FF00408 mov r8, #4
762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
648 .loc 1 762 0
649 00b0 4FF00809 mov r9, #8
761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** delta = 8UL;
650 .loc 1 761 0
651 00b4 1027 movs r7, #16
652 .LVL40:
653 .L67:
767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
654 .loc 1 767 0
655 00b6 1368 ldr r3, [r2]
656 00b8 23F47803 bic r3, r3, #16252928
657 00bc 43EAC743 orr r3, r3, r7, lsl #19
658 00c0 1360 str r3, [r2]
772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
659 .loc 1 772 0
660 00c2 0220 movs r0, #2
661 00c4 FFF7FEFF bl HAL_Delay
662 .LVL41:
774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
663 .loc 1 774 0
664 00c8 2268 ldr r2, [r4]
665 00ca 1368 ldr r3, [r2]
666 00cc 5900 lsls r1, r3, #1
777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
667 .loc 1 777 0
668 00ce 4CBF ite mi
669 00d0 4F44 addmi r7, r7, r9
670 .LVL42:
781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
671 .loc 1 781 0
ARM GAS /tmp/ccfpzjW9.s page 29
672 00d2 A7EB0907 subpl r7, r7, r9
673 .LVL43:
764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
674 .loc 1 764 0
675 00d6 B8F10108 subs r8, r8, #1
784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
676 .loc 1 784 0
677 00da 4FEA5909 lsr r9, r9, #1
678 .LVL44:
764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
679 .loc 1 764 0
680 00de EAD1 bne .L67
790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
681 .loc 1 790 0
682 00e0 1368 ldr r3, [r2]
683 00e2 4FEAC748 lsl r8, r7, #19
684 00e6 23F47803 bic r3, r3, #16252928
685 00ea 43EA0803 orr r3, r3, r8
686 00ee 1360 str r3, [r2]
795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
687 .loc 1 795 0
688 00f0 0220 movs r0, #2
689 00f2 FFF7FEFF bl HAL_Delay
690 .LVL45:
797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
691 .loc 1 797 0
692 00f6 2368 ldr r3, [r4]
693 00f8 1A68 ldr r2, [r3]
694 00fa 5200 lsls r2, r2, #1
695 00fc 08D5 bpl .L68
802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
696 .loc 1 802 0
697 00fe 1A68 ldr r2, [r3]
800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set right trimming */
698 .loc 1 800 0
699 0100 0137 adds r7, r7, #1
700 .LVL46:
802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
701 .loc 1 802 0
702 0102 4FEAC748 lsl r8, r7, #19
703 0106 22F47802 bic r2, r2, #16252928
704 010a 42EA0802 orr r2, r2, r8
705 010e 1A60 str r2, [r3]
706 .L68:
806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
707 .loc 1 806 0
708 0110 1A68 ldr r2, [r3]
709 0112 22F40062 bic r2, r2, #2048
710 0116 1A60 str r2, [r3]
809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
711 .loc 1 809 0
712 0118 1A68 ldr r2, [r3]
713 011a 22F00102 bic r2, r2, #1
714 011e 1A60 str r2, [r3]
813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
715 .loc 1 813 0
716 0120 1A68 ldr r2, [r3]
ARM GAS /tmp/ccfpzjW9.s page 30
717 0122 22F00202 bic r2, r2, #2
718 0126 1A60 str r2, [r3]
827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_TRIMOFFSETN, trimmingvaluen << OPAMP_INPUT_INVERT
719 .loc 1 827 0
720 0128 1A68 ldr r2, [r3]
819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
721 .loc 1 819 0
722 012a 6563 str r5, [r4, #52]
827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_TRIMOFFSETN, trimmingvaluen << OPAMP_INPUT_INVERT
723 .loc 1 827 0
724 012c 22F47802 bic r2, r2, #16252928
725 0130 42EA0802 orr r2, r2, r8
826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_TRIMOFFSETP, trimmingvaluep << OPAMP_INPUT_NONINV
726 .loc 1 826 0
727 0134 1021 movs r1, #16
728 0136 C4E90B17 strd r1, r7, [r4, #44]
827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_TRIMOFFSETN, trimmingvaluen << OPAMP_INPUT_INVERT
729 .loc 1 827 0
730 013a 1A60 str r2, [r3]
828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
731 .loc 1 828 0
732 013c 1A68 ldr r2, [r3]
733 013e 22F0F852 bic r2, r2, #520093696
734 0142 1643 orrs r6, r6, r2
735 0144 1E60 str r6, [r3]
667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
736 .loc 1 667 0
737 0146 0020 movs r0, #0
738 .LVL47:
739 .loc 1 838 0
740 0148 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
741 .cfi_endproc
742 .LFE335:
744 .section .text.HAL_OPAMP_Lock,"ax",%progbits
745 .align 1
746 .p2align 2,,3
747 .global HAL_OPAMP_Lock
748 .syntax unified
749 .thumb
750 .thumb_func
751 .fpu fpv4-sp-d16
753 HAL_OPAMP_Lock:
754 .LFB336:
839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @}
842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /** @defgroup OPAMP_Exported_Functions_Group3 Peripheral Control functions
845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief Peripheral Control functions
846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** *
847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** @verbatim
848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ===============================================================================
849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ##### Peripheral Control functions #####
850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ===============================================================================
851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** [..]
852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** This subsection provides a set of functions allowing to control the OPAMP data
ARM GAS /tmp/ccfpzjW9.s page 31
853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** transfers.
854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** @endverbatim
858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @{
859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief Lock the selected opamp configuration.
863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @param hopamp OPAMP handle
864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @retval HAL status
865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef HAL_OPAMP_Lock(OPAMP_HandleTypeDef *hopamp)
867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
755 .loc 1 867 0
756 .cfi_startproc
757 @ args = 0, pretend = 0, frame = 0
758 @ frame_needed = 0, uses_anonymous_args = 0
759 @ link register save eliminated.
760 .LVL48:
868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the OPAMP handle allocation */
871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check if OPAMP locked */
872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* OPAMP can be locked when enabled and running in normal mode */
873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* It is meaningless otherwise */
874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp == NULL)
761 .loc 1 874 0
762 0000 20B1 cbz r0, .L88
875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else if (hopamp->State != HAL_OPAMP_STATE_BUSY)
763 .loc 1 878 0
764 0002 90F83A20 ldrb r2, [r0, #58] @ zero_extendqisi2
765 0006 042A cmp r2, #4
766 0008 0346 mov r3, r0
767 000a 01D0 beq .L93
768 .L88:
876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
769 .loc 1 876 0
770 000c 0120 movs r0, #1
771 .LVL49:
879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else
883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the parameter */
885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_ALL_INSTANCE(hopamp->Instance));
886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Lock OPAMP */
888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** SET_BIT(hopamp->Instance->CSR, OPAMP_CSR_LOCK);
889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* OPAMP state changed to locked */
891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** hopamp->State = HAL_OPAMP_STATE_BUSYLOCKED;
ARM GAS /tmp/ccfpzjW9.s page 32
892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return status;
894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
772 .loc 1 894 0
773 000e 7047 bx lr
774 .LVL50:
775 .L93:
888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
776 .loc 1 888 0
777 0010 0168 ldr r1, [r0]
778 0012 0A68 ldr r2, [r1]
867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
779 .loc 1 867 0
780 0014 10B4 push {r4}
781 .LCFI17:
782 .cfi_def_cfa_offset 4
783 .cfi_offset 4, -4
888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
784 .loc 1 888 0
785 0016 42F00042 orr r2, r2, #-2147483648
891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
786 .loc 1 891 0
787 001a 0524 movs r4, #5
888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
788 .loc 1 888 0
789 001c 0A60 str r2, [r1]
868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
790 .loc 1 868 0
791 001e 0020 movs r0, #0
792 .LVL51:
891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
793 .loc 1 891 0
794 0020 83F83A40 strb r4, [r3, #58]
795 .LVL52:
796 .loc 1 894 0
797 0024 5DF8044B ldr r4, [sp], #4
798 .LCFI18:
799 .cfi_restore 4
800 .cfi_def_cfa_offset 0
801 0028 7047 bx lr
802 .cfi_endproc
803 .LFE336:
805 002a 00BF .section .text.HAL_OPAMP_LockTimerMux,"ax",%progbits
806 .align 1
807 .p2align 2,,3
808 .global HAL_OPAMP_LockTimerMux
809 .syntax unified
810 .thumb
811 .thumb_func
812 .fpu fpv4-sp-d16
814 HAL_OPAMP_LockTimerMux:
815 .LFB337:
895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @}
898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
ARM GAS /tmp/ccfpzjW9.s page 33
900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief Lock the selected opamp timer controlled mux configuration.
902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @param hopamp OPAMP handle
903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @retval HAL status
904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef HAL_OPAMP_LockTimerMux(OPAMP_HandleTypeDef *hopamp)
906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
816 .loc 1 906 0
817 .cfi_startproc
818 @ args = 0, pretend = 0, frame = 0
819 @ frame_needed = 0, uses_anonymous_args = 0
820 @ link register save eliminated.
821 .LVL53:
907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_StatusTypeDef status = HAL_OK;
908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the OPAMP handle allocation */
910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check if OPAMP timer controlled mux is locked */
911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* OPAMP timer controlled mux can be locked when enabled */
912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* It is meaningless otherwise */
913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp == NULL)
822 .loc 1 913 0
823 0000 60B1 cbz r0, .L98
914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else if (hopamp->State == HAL_OPAMP_STATE_RESET)
824 .loc 1 917 0
825 0002 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2
826 0006 4BB1 cbz r3, .L98
918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else if (READ_BIT(hopamp->Instance->TCMR, OPAMP_TCMR_LOCK) == OPAMP_TCMR_LOCK)
827 .loc 1 921 0
828 0008 0368 ldr r3, [r0]
829 000a 9A69 ldr r2, [r3, #24]
830 000c 002A cmp r2, #0
831 000e 05DB blt .L98
922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** status = HAL_ERROR;
924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else
926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the parameter */
928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_ALL_INSTANCE(hopamp->Instance));
929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Lock OPAMP */
931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** SET_BIT(hopamp->Instance->TCMR, OPAMP_TCMR_LOCK);
832 .loc 1 931 0
833 0010 9A69 ldr r2, [r3, #24]
834 0012 42F00042 orr r2, r2, #-2147483648
835 0016 9A61 str r2, [r3, #24]
907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
836 .loc 1 907 0
837 0018 0020 movs r0, #0
838 .LVL54:
839 001a 7047 bx lr
ARM GAS /tmp/ccfpzjW9.s page 34
840 .LVL55:
841 .L98:
915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
842 .loc 1 915 0
843 001c 0120 movs r0, #1
844 .LVL56:
932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return status;
934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
845 .loc 1 934 0
846 001e 7047 bx lr
847 .cfi_endproc
848 .LFE337:
850 .section .text.HAL_OPAMP_GetState,"ax",%progbits
851 .align 1
852 .p2align 2,,3
853 .global HAL_OPAMP_GetState
854 .syntax unified
855 .thumb
856 .thumb_func
857 .fpu fpv4-sp-d16
859 HAL_OPAMP_GetState:
860 .LFB338:
935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @}
938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /** @defgroup OPAMP_Exported_Functions_Group4 Peripheral State functions
941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief Peripheral State functions
942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** *
943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** @verbatim
944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ===============================================================================
945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ##### Peripheral State functions #####
946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** ===============================================================================
947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** [..]
948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** This subsection permit to get in run-time the status of the peripheral
949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** and the data flow.
950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** @endverbatim
952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @{
953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief Return the OPAMP state
957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @param hopamp OPAMP handle
958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @retval HAL state
959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** HAL_OPAMP_StateTypeDef HAL_OPAMP_GetState(OPAMP_HandleTypeDef *hopamp)
961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
861 .loc 1 961 0
862 .cfi_startproc
863 @ args = 0, pretend = 0, frame = 0
864 @ frame_needed = 0, uses_anonymous_args = 0
865 @ link register save eliminated.
866 .LVL57:
962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the OPAMP handle allocation */
ARM GAS /tmp/ccfpzjW9.s page 35
963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp == NULL)
867 .loc 1 963 0
868 0000 10B1 cbz r0, .L100
964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return HAL_OPAMP_STATE_RESET;
966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the parameter */
969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_ALL_INSTANCE(hopamp->Instance));
970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return hopamp->State;
869 .loc 1 971 0
870 0002 90F83A00 ldrb r0, [r0, #58] @ zero_extendqisi2
871 .LVL58:
872 0006 C0B2 uxtb r0, r0
873 .L100:
972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
874 .loc 1 972 0
875 0008 7047 bx lr
876 .cfi_endproc
877 .LFE338:
879 000a 00BF .section .text.HAL_OPAMP_GetTrimOffset,"ax",%progbits
880 .align 1
881 .p2align 2,,3
882 .global HAL_OPAMP_GetTrimOffset
883 .syntax unified
884 .thumb
885 .thumb_func
886 .fpu fpv4-sp-d16
888 HAL_OPAMP_GetTrimOffset:
889 .LFB339:
973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /**
975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @brief Return the OPAMP factory trimming value
976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @param hopamp OPAMP handle
977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @param trimmingoffset Trimming offset (P or N)
978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * @retval Trimming value (P or N): range: 0->31
979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * or OPAMP_FACTORYTRIMMING_DUMMY if trimming value is not available
980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** */
981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_TrimmingValueTypeDef HAL_OPAMP_GetTrimOffset(OPAMP_HandleTypeDef *hopamp, uint32_t trimmingof
983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
890 .loc 1 983 0
891 .cfi_startproc
892 @ args = 0, pretend = 0, frame = 0
893 @ frame_needed = 0, uses_anonymous_args = 0
894 @ link register save eliminated.
895 .LVL59:
984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** uint32_t oldusertrimming = 0UL;
985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** OPAMP_TrimmingValueTypeDef oldtrimmingvaluep = 0UL, oldtrimmingvaluen = 0UL, trimmingvalue;
986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the OPAMP handle allocation */
988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Value can be retrieved in HAL_OPAMP_STATE_READY state */
989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (hopamp == NULL)
896 .loc 1 989 0
897 0000 70B3 cbz r0, .L108
990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
ARM GAS /tmp/ccfpzjW9.s page 36
991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return OPAMP_FACTORYTRIMMING_DUMMY;
992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else if (hopamp->State != HAL_OPAMP_STATE_READY)
898 .loc 1 993 0
899 0002 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2
900 0006 012B cmp r3, #1
901 0008 2AD1 bne .L108
994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return OPAMP_FACTORYTRIMMING_DUMMY;
996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else
998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the parameter */
1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_ALL_INSTANCE(hopamp->Instance));
1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** assert_param(IS_OPAMP_FACTORYTRIMMING(trimmingoffset));
1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check the trimming mode */
1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if ((READ_BIT(hopamp->Instance->CSR, OPAMP_CSR_USERTRIM)) != 0UL)
902 .loc 1 1004 0
903 000a 0368 ldr r3, [r0]
904 000c 1A68 ldr r2, [r3]
905 000e 12F01002 ands r2, r2, #16
983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** uint32_t oldusertrimming = 0UL;
906 .loc 1 983 0
907 0012 30B4 push {r4, r5}
908 .LCFI19:
909 .cfi_def_cfa_offset 8
910 .cfi_offset 4, -8
911 .cfi_offset 5, -4
912 .loc 1 1004 0
913 0014 27D0 beq .L109
914 .LVL60:
1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* User trimming is used */
1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** oldusertrimming = OPAMP_TRIMMING_USER;
1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Store the TrimmingValueP & TrimmingValueN */
1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** oldtrimmingvaluep = (hopamp->Instance->CSR & OPAMP_CSR_TRIMOFFSETP) >> OPAMP_INPUT_NONINVERTI
915 .loc 1 1009 0
916 0016 1D68 ldr r5, [r3]
1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** oldtrimmingvaluen = (hopamp->Instance->CSR & OPAMP_CSR_TRIMOFFSETN) >> OPAMP_INPUT_INVERTING;
917 .loc 1 1010 0
918 0018 1C68 ldr r4, [r3]
1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** oldtrimmingvaluen = (hopamp->Instance->CSR & OPAMP_CSR_TRIMOFFSETN) >> OPAMP_INPUT_INVERTING;
919 .loc 1 1009 0
920 001a C5F3C445 ubfx r5, r5, #19, #5
921 .LVL61:
922 .loc 1 1010 0
923 001e C4F30464 ubfx r4, r4, #24, #5
924 .LVL62:
1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Store the TrimmingValueP & TrimmingValueN */
925 .loc 1 1007 0
926 0022 1022 movs r2, #16
927 .LVL63:
928 .L104:
1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Set factory timing mode */
ARM GAS /tmp/ccfpzjW9.s page 37
1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** CLEAR_BIT(hopamp->Instance->CSR, OPAMP_CSR_USERTRIM);
929 .loc 1 1014 0
930 0024 1868 ldr r0, [r3]
931 .LVL64:
932 0026 20F01000 bic r0, r0, #16
933 002a 1860 str r0, [r3]
1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Get factory trimming */
1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (trimmingoffset == OPAMP_FACTORYTRIMMING_P)
1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Return TrimOffsetP */
1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** trimmingvalue = ((hopamp->Instance->CSR & OPAMP_CSR_TRIMOFFSETP) >> OPAMP_INPUT_NONINVERTING)
934 .loc 1 1020 0
935 002c 1868 ldr r0, [r3]
1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
936 .loc 1 1017 0
937 002e 0129 cmp r1, #1
938 .loc 1 1020 0
939 0030 0CBF ite eq
940 0032 C0F3C440 ubfxeq r0, r0, #19, #5
941 .LVL65:
1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** else
1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Return TrimOffsetN */
1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** trimmingvalue = ((hopamp->Instance->CSR & OPAMP_CSR_TRIMOFFSETN) >> OPAMP_INPUT_INVERTING);
942 .loc 1 1025 0
943 0036 C0F30460 ubfxne r0, r0, #24, #5
944 .LVL66:
1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Restore user trimming configuration if it was formerly set */
1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Check if user trimming was used */
1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** if (oldusertrimming == OPAMP_TRIMMING_USER)
945 .loc 1 1030 0
946 003a 7AB1 cbz r2, .L102
1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** {
1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** /* Restore user trimming */
1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** SET_BIT(hopamp->Instance->CSR, OPAMP_CSR_USERTRIM);
947 .loc 1 1033 0
948 003c 1A68 ldr r2, [r3]
949 .LVL67:
950 003e 42F01002 orr r2, r2, #16
951 0042 1A60 str r2, [r3]
1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_TRIMOFFSETP, oldtrimmingvaluep << OPAMP_INPUT_NON
952 .loc 1 1034 0
953 0044 1A68 ldr r2, [r3]
954 0046 22F47802 bic r2, r2, #16252928
955 004a 42EAC545 orr r5, r2, r5, lsl #19
956 .LVL68:
957 004e 1D60 str r5, [r3]
1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_TRIMOFFSETN, oldtrimmingvaluen << OPAMP_INPUT_INV
958 .loc 1 1035 0
959 0050 1A68 ldr r2, [r3]
960 0052 22F0F852 bic r2, r2, #520093696
961 0056 42EA0464 orr r4, r2, r4, lsl #24
962 .LVL69:
ARM GAS /tmp/ccfpzjW9.s page 38
963 005a 1C60 str r4, [r3]
964 .L102:
1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** return trimmingvalue;
1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
965 .loc 1 1039 0
966 005c 30BC pop {r4, r5}
967 .LCFI20:
968 .cfi_restore 5
969 .cfi_restore 4
970 .cfi_def_cfa_offset 0
971 005e 7047 bx lr
972 .LVL70:
973 .L108:
991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** }
974 .loc 1 991 0
975 0060 4FF0FF30 mov r0, #-1
976 .LVL71:
977 .loc 1 1039 0
978 0064 7047 bx lr
979 .LVL72:
980 .L109:
981 .LCFI21:
982 .cfi_def_cfa_offset 8
983 .cfi_offset 4, -8
984 .cfi_offset 5, -4
985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c ****
985 .loc 1 985 0
986 0066 1446 mov r4, r2
987 0068 1546 mov r5, r2
988 006a DBE7 b .L104
989 .cfi_endproc
990 .LFE339:
992 .text
993 .Letext0:
994 .file 2 "/usr/include/newlib/machine/_default_types.h"
995 .file 3 "/usr/include/newlib/sys/_stdint.h"
996 .file 4 "Drivers/CMSIS/Include/core_cm4.h"
997 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h"
998 .file 6 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h"
999 .file 7 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h"
1000 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h"
1001 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h"
1002 .file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_opamp.h"
1003 .file 11 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h"
1004 .file 12 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h"
ARM GAS /tmp/ccfpzjW9.s page 39
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32g4xx_hal_opamp.c
/tmp/ccfpzjW9.s:16 .text.HAL_OPAMP_MspInit:0000000000000000 $t
/tmp/ccfpzjW9.s:24 .text.HAL_OPAMP_MspInit:0000000000000000 HAL_OPAMP_MspInit
/tmp/ccfpzjW9.s:39 .text.HAL_OPAMP_Init:0000000000000000 $t
/tmp/ccfpzjW9.s:47 .text.HAL_OPAMP_Init:0000000000000000 HAL_OPAMP_Init
/tmp/ccfpzjW9.s:245 .text.HAL_OPAMP_Init:0000000000000100 $d
/tmp/ccfpzjW9.s:251 .text.HAL_OPAMP_MspDeInit:0000000000000000 $t
/tmp/ccfpzjW9.s:259 .text.HAL_OPAMP_MspDeInit:0000000000000000 HAL_OPAMP_MspDeInit
/tmp/ccfpzjW9.s:270 .text.HAL_OPAMP_DeInit:0000000000000000 $t
/tmp/ccfpzjW9.s:278 .text.HAL_OPAMP_DeInit:0000000000000000 HAL_OPAMP_DeInit
/tmp/ccfpzjW9.s:352 .text.HAL_OPAMP_Start:0000000000000000 $t
/tmp/ccfpzjW9.s:360 .text.HAL_OPAMP_Start:0000000000000000 HAL_OPAMP_Start
/tmp/ccfpzjW9.s:417 .text.HAL_OPAMP_Stop:0000000000000000 $t
/tmp/ccfpzjW9.s:425 .text.HAL_OPAMP_Stop:0000000000000000 HAL_OPAMP_Stop
/tmp/ccfpzjW9.s:486 .text.HAL_OPAMP_SelfCalibrate:0000000000000000 $t
/tmp/ccfpzjW9.s:494 .text.HAL_OPAMP_SelfCalibrate:0000000000000000 HAL_OPAMP_SelfCalibrate
/tmp/ccfpzjW9.s:745 .text.HAL_OPAMP_Lock:0000000000000000 $t
/tmp/ccfpzjW9.s:753 .text.HAL_OPAMP_Lock:0000000000000000 HAL_OPAMP_Lock
/tmp/ccfpzjW9.s:806 .text.HAL_OPAMP_LockTimerMux:0000000000000000 $t
/tmp/ccfpzjW9.s:814 .text.HAL_OPAMP_LockTimerMux:0000000000000000 HAL_OPAMP_LockTimerMux
/tmp/ccfpzjW9.s:851 .text.HAL_OPAMP_GetState:0000000000000000 $t
/tmp/ccfpzjW9.s:859 .text.HAL_OPAMP_GetState:0000000000000000 HAL_OPAMP_GetState
/tmp/ccfpzjW9.s:880 .text.HAL_OPAMP_GetTrimOffset:0000000000000000 $t
/tmp/ccfpzjW9.s:888 .text.HAL_OPAMP_GetTrimOffset:0000000000000000 HAL_OPAMP_GetTrimOffset
UNDEFINED SYMBOLS
HAL_Delay