Files
bassofono/codice/build/stm32g4xx_hal_opamp.lst
2021-07-03 18:17:05 +02:00

2302 lines
151 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
ARM GAS /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 **** * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_opamp.c **** * All rights reserved.</center></h2>
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