ARM GAS /tmp/ccbNWEOT.s page 1 1 .cpu cortex-m0 2 .eabi_attribute 20, 1 3 .eabi_attribute 21, 1 4 .eabi_attribute 23, 3 5 .eabi_attribute 24, 1 6 .eabi_attribute 25, 1 7 .eabi_attribute 26, 1 8 .eabi_attribute 30, 1 9 .eabi_attribute 34, 0 10 .eabi_attribute 18, 4 11 .file "stm32f0xx_hal_adc.c" 12 .text 13 .Ltext0: 14 .cfi_sections .debug_frame 15 .section .text.ADC_ConversionStop,"ax",%progbits 16 .align 1 17 .syntax unified 18 .code 16 19 .thumb_func 20 .fpu softvfp 22 ADC_ConversionStop: 23 .LFB64: 24 .file 1 "Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c" 1:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 2:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ****************************************************************************** 3:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @file stm32f0xx_hal_adc.c 4:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @author MCD Application Team 5:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief This file provides firmware functions to manage the following 6:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * functionalities of the Analog to Digital Convertor (ADC) 7:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * peripheral: 8:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * ++ Initialization and Configuration of ADC 10:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * + Operation functions 11:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * ++ Start, stop, get result of conversions of regular 12:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * group, using 3 possible modes: polling, interruption or DMA. 13:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * + Control functions 14:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * ++ Channels configuration on regular group 15:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * ++ Analog Watchdog configuration 16:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * + State functions 17:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * ++ ADC state machine management 18:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * ++ Interrupts and flags management 19:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * Other functions (extended functions) are available in file 20:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * "stm32f0xx_hal_adc_ex.c". 21:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * 22:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** @verbatim 23:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ============================================================================== 24:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ##### ADC peripheral features ##### 25:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ============================================================================== 26:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 27:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) 12-bit, 10-bit, 8-bit or 6-bit configurable resolution 28:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 29:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Interrupt generation at the end of regular conversion and in case of 30:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** analog watchdog or overrun events. 31:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 32:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Single and continuous conversion modes. 33:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 34:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Scan mode for conversion of several channels sequentially. ARM GAS /tmp/ccbNWEOT.s page 2 35:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 36:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Data alignment with in-built data coherency. 37:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 38:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Programmable sampling time (common for all channels) 39:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 40:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) ADC conversion of regular group. 41:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 42:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) External trigger (timer or EXTI) with configurable polarity 43:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 44:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) DMA request generation for transfer of conversions data of regular group. 45:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 46:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) ADC calibration 47:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 48:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) ADC supply requirements: 2.4 V to 3.6 V at full speed and down to 1.8 V at 49:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** slower speed. 50:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 51:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) ADC input range: from Vref- (connected to Vssa) to Vref+ (connected to 52:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** Vdda or to an external voltage reference). 53:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 54:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 55:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ##### How to use this driver ##### 56:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ============================================================================== 57:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 58:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 59:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** *** Configuration of top level parameters related to ADC *** 60:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ============================================================ 61:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 62:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 63:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (#) Enable the ADC interface 64:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) As prerequisite, ADC clock must be configured at RCC top level. 65:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** Caution: On STM32F0, ADC clock frequency max is 14MHz (refer 66:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** to device datasheet). 67:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** Therefore, ADC clock prescaler must be configured in 68:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** function of ADC clock source frequency to remain below 69:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** this maximum frequency. 70:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 71:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) Two clock settings are mandatory: 72:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) ADC clock (core clock, also possibly conversion clock). 73:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 74:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) ADC clock (conversions clock). 75:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** Two possible clock sources: synchronous clock derived from APB clock 76:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** or asynchronous clock derived from ADC dedicated HSI RC oscillator 77:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 14MHz. 78:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** If asynchronous clock is selected, parameter "HSI14State" must be set either: 79:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** - to "...HSI14State = RCC_HSI14_ADC_CONTROL" to let the ADC control 80:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** the HSI14 oscillator enable/disable (if not used to supply the main 81:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** system clock): feature used if ADC mode LowPowerAutoPowerOff is 82:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** enabled. 83:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** - to "...HSI14State = RCC_HSI14_ON" to maintain the HSI14 oscillator 84:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** always enabled: can be used to supply the main system clock. 85:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 86:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) Example: 87:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** Into HAL_ADC_MspInit() (recommended code location) or with 88:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** other device clock parameters configuration: 89:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) __HAL_RCC_ADC1_CLK_ENABLE(); (mandatory) 90:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 91:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HI14 enable or let under control of ADC: (optional: if asynchronous clock ARM GAS /tmp/ccbNWEOT.s page 3 92:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) RCC_OscInitTypeDef RCC_OscInitStructure; 93:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) RCC_OscInitStructure.OscillatorType = RCC_OSCILLATORTYPE_HSI14; 94:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) RCC_OscInitStructure.HSI14CalibrationValue = RCC_HSI14CALIBRATION_DEFAULT; 95:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) RCC_OscInitStructure.HSI14State = RCC_HSI14_ADC_CONTROL; 96:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) RCC_OscInitStructure.PLL... (optional if used for system clock) 97:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) HAL_RCC_OscConfig(&RCC_OscInitStructure); 98:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 99:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) ADC clock source and clock prescaler are configured at ADC level with 100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** parameter "ClockPrescaler" using function HAL_ADC_Init(). 101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (#) ADC pins configuration 103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) Enable the clock for the ADC GPIOs 104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using macro __HAL_RCC_GPIOx_CLK_ENABLE() 105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) Configure these ADC pins in analog mode 106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_GPIO_Init() 107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (#) Optionally, in case of usage of ADC with interruptions: 109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) Configure the NVIC for ADC 110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_NVIC_EnableIRQ(ADCx_IRQn) 111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) Insert the ADC interruption handler function HAL_ADC_IRQHandler() 112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** into the function of corresponding ADC interruption vector 113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADCx_IRQHandler(). 114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (#) Optionally, in case of usage of DMA: 116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) Configure the DMA (DMA channel, mode normal or circular, ...) 117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_DMA_Init(). 118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) Configure the NVIC for DMA 119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_NVIC_EnableIRQ(DMAx_Channelx_IRQn) 120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) Insert the ADC interruption handler function HAL_ADC_IRQHandler() 121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** into the function of corresponding DMA interruption vector 122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** DMAx_Channelx_IRQHandler(). 123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** *** Configuration of ADC, group regular, channels parameters *** 125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ================================================================ 126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (#) Configure the ADC parameters (resolution, data alignment, ...) 129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** and regular group parameters (conversion trigger, sequencer, ...) 130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_ADC_Init(). 131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (#) Configure the channels for regular group parameters (channel number, 133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** channel rank into sequencer, ..., into regular group) 134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_ADC_ConfigChannel(). 135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (#) Optionally, configure the analog watchdog parameters (channels 137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** monitored, thresholds, ...) 138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_ADC_AnalogWDGConfig(). 139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** *** Execution of ADC conversions *** 141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ==================================== 142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (#) Optionally, perform an automatic ADC calibration to improve the 145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** conversion accuracy 146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_ADCEx_Calibration_Start(). 147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (#) ADC driver can be used among three modes: polling, interruption, ARM GAS /tmp/ccbNWEOT.s page 4 149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** transfer by DMA. 150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) ADC conversion by polling: 152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) Activate the ADC peripheral and start conversions 153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_ADC_Start() 154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) Wait for ADC conversion completion 155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_ADC_PollForConversion() 156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) Retrieve conversion results 157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_ADC_GetValue() 158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) Stop conversion and disable the ADC peripheral 159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_ADC_Stop() 160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) ADC conversion by interruption: 162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) Activate the ADC peripheral and start conversions 163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_ADC_Start_IT() 164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) Wait for ADC conversion completion by call of function 165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_ConvCpltCallback() 166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (this function must be implemented in user program) 167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) Retrieve conversion results 168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_ADC_GetValue() 169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) Stop conversion and disable the ADC peripheral 170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_ADC_Stop_IT() 171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) ADC conversion with transfer by DMA: 173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) Activate the ADC peripheral and start conversions 174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_ADC_Start_DMA() 175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) Wait for ADC conversion completion by call of function 176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_ConvCpltCallback() or HAL_ADC_ConvHalfCpltCallback() 177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (these functions must be implemented in user program) 178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) Conversion results are automatically transferred by DMA into 179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** destination variable address. 180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) Stop conversion and disable the ADC peripheral 181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_ADC_Stop_DMA() 182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (@) Callback functions must be implemented in user program: 186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+@) HAL_ADC_ErrorCallback() 187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+@) HAL_ADC_LevelOutOfWindowCallback() (callback of analog watchdog) 188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+@) HAL_ADC_ConvCpltCallback() 189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+@) HAL_ADC_ConvHalfCpltCallback 190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** *** Deinitialization of ADC *** 192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ============================================================ 193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (#) Disable the ADC interface 196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) ADC clock can be hard reset and disabled at RCC top level. 197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) Hard reset of ADC peripherals 198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using macro __ADCx_FORCE_RESET(), __ADCx_RELEASE_RESET(). 199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) ADC clock disable 200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using the equivalent macro/functions as configuration step. 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) Example: 202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** Into HAL_ADC_MspDeInit() (recommended code location) or with 203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** other device clock parameters configuration: 204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) RCC_OscInitStructure.OscillatorType = RCC_OSCILLATORTYPE_HSI14; 205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) RCC_OscInitStructure.HSI14State = RCC_HSI14_OFF; (if not used for system clock ARM GAS /tmp/ccbNWEOT.s page 5 206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+++) HAL_RCC_OscConfig(&RCC_OscInitStructure); 207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (#) ADC pins configuration 209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) Disable the clock for the ADC GPIOs 210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using macro __HAL_RCC_GPIOx_CLK_DISABLE() 211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (#) Optionally, in case of usage of ADC with interruptions: 213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) Disable the NVIC for ADC 214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_NVIC_DisableIRQ(ADCx_IRQn) 215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (#) Optionally, in case of usage of DMA: 217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) Deinitialize the DMA 218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_DMA_DeInit(). 219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (++) Disable the NVIC for DMA 220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using function HAL_NVIC_DisableIRQ(DMAx_Channelx_IRQn) 221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** *** Callback registration *** 225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ============================================= 226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** The compilation flag USE_HAL_ADC_REGISTER_CALLBACKS, when set to 1, 229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** allows the user to configure dynamically the driver callbacks. 230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** Use Functions @ref HAL_ADC_RegisterCallback() 231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** to register an interrupt callback. 232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** Function @ref HAL_ADC_RegisterCallback() allows to register following callbacks: 235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) ConvCpltCallback : ADC conversion complete callback 236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) ConvHalfCpltCallback : ADC conversion DMA half-transfer callback 237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) LevelOutOfWindowCallback : ADC analog watchdog 1 callback 238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) ErrorCallback : ADC error callback 239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) MspInitCallback : ADC Msp Init callback 240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) MspDeInitCallback : ADC Msp DeInit callback 241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** and a pointer to the user callback function. 243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** Use function @ref HAL_ADC_UnRegisterCallback to reset a callback to the default 246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** weak function. 247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** @ref HAL_ADC_UnRegisterCallback takes as parameters the HAL peripheral handle, 250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** and the Callback ID. 251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** This function allows to reset following callbacks: 252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) ConvCpltCallback : ADC conversion complete callback 253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) ConvHalfCpltCallback : ADC conversion DMA half-transfer callback 254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) LevelOutOfWindowCallback : ADC analog watchdog 1 callback 255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) ErrorCallback : ADC error callback 256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) MspInitCallback : ADC Msp Init callback 257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) MspDeInitCallback : ADC Msp DeInit callback 258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** By default, after the @ref HAL_ADC_Init() and when the state is @ref HAL_ADC_STATE_RESET 261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** all callbacks are set to the corresponding weak functions: 262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** examples @ref HAL_ADC_ConvCpltCallback(), @ref HAL_ADC_ErrorCallback(). ARM GAS /tmp/ccbNWEOT.s page 6 263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** Exception done for MspInit and MspDeInit functions that are 264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** reset to the legacy weak functions in the @ref HAL_ADC_Init()/ @ref HAL_ADC_DeInit() only when 265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** these callbacks are null (not registered beforehand). 266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** If MspInit or MspDeInit are not null, the @ref HAL_ADC_Init()/ @ref HAL_ADC_DeInit() 269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state. 270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** Callbacks can be registered/unregistered in @ref HAL_ADC_STATE_READY state only. 273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered 274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** in @ref HAL_ADC_STATE_READY or @ref HAL_ADC_STATE_RESET state, 275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. 276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** Then, the user first registers the MspInit/MspDeInit user callbacks 279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** using @ref HAL_ADC_RegisterCallback() before calling @ref HAL_ADC_DeInit() 280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** or @ref HAL_ADC_Init() function. 281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** When the compilation flag USE_HAL_ADC_REGISTER_CALLBACKS is set to 0 or 284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** not defined, the callback registration feature is not available and all callbacks 285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** are set to the corresponding weak functions. 286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** @endverbatim 288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ****************************************************************************** 289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @attention 290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * 291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** *

© Copyright (c) 2016 STMicroelectronics. 292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * All rights reserved.

293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * 294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * This software component is licensed by ST under BSD 3-Clause license, 295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * the "License"; You may not use this file except in compliance with the 296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * License. You may obtain a copy of the License at: 297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * opensource.org/licenses/BSD-3-Clause 298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * 299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ****************************************************************************** 300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Includes ------------------------------------------------------------------*/ 303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #include "stm32f0xx_hal.h" 304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** @addtogroup STM32F0xx_HAL_Driver 306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @{ 307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** @defgroup ADC ADC 310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief ADC HAL module driver 311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @{ 312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #ifdef HAL_ADC_MODULE_ENABLED 315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Private typedef -----------------------------------------------------------*/ 317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Private define ------------------------------------------------------------*/ 318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** @defgroup ADC_Private_Constants ADC Private Constants 319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @{ ARM GAS /tmp/ccbNWEOT.s page 7 320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Fixed timeout values for ADC calibration, enable settling time, disable */ 323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* settling time. */ 324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Values defined to be higher than worst cases: low clock frequency, */ 325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* maximum prescaler. */ 326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Ex of profile low frequency : Clock source at 0.1 MHz, ADC clock */ 327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* prescaler 4, sampling time 7.5 ADC clock cycles, resolution 12 bits. */ 328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Unit: ms */ 329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #define ADC_ENABLE_TIMEOUT ( 2U) 330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #define ADC_DISABLE_TIMEOUT ( 2U) 331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #define ADC_STOP_CONVERSION_TIMEOUT ( 2U) 332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Delay for ADC stabilization time. */ 334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Maximum delay is 1us (refer to device datasheet, parameter tSTAB). */ 335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Unit: us */ 336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #define ADC_STAB_DELAY_US ( 1U) 337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Delay for temperature sensor stabilization time. */ 339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Maximum delay is 10us (refer to device datasheet, parameter tSTART). */ 340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Unit: us */ 341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #define ADC_TEMPSENSOR_DELAY_US ( 10U) 342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @} 345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Private macro -------------------------------------------------------------*/ 348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Private variables ---------------------------------------------------------*/ 349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Private function prototypes -----------------------------------------------*/ 350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** @defgroup ADC_Private_Functions ADC Private Functions 351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @{ 352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** static HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef* hadc); 354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** static HAL_StatusTypeDef ADC_Disable(ADC_HandleTypeDef* hadc); 355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** static HAL_StatusTypeDef ADC_ConversionStop(ADC_HandleTypeDef* hadc); 356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** static void ADC_DMAConvCplt(DMA_HandleTypeDef *hdma); 357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** static void ADC_DMAHalfConvCplt(DMA_HandleTypeDef *hdma); 358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** static void ADC_DMAError(DMA_HandleTypeDef *hdma); 359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @} 361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Exported functions ---------------------------------------------------------*/ 364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** @defgroup ADC_Exported_Functions ADC Exported Functions 366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @{ 367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** @defgroup ADC_Exported_Functions_Group1 Initialization/de-initialization functions 370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Initialization and Configuration functions 371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * 372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** @verbatim 373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** =============================================================================== 374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ##### Initialization and de-initialization functions ##### 375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** =============================================================================== 376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] This section provides functions allowing to: ARM GAS /tmp/ccbNWEOT.s page 8 377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Initialize and configure the ADC. 378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) De-initialize the ADC 379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** @endverbatim 380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @{ 381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Initializes the ADC peripheral and regular group according to 385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * parameters specified in structure "ADC_InitTypeDef". 386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note As prerequisite, ADC clock must be configured at RCC top level 387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * depending on both possible clock sources: APB clock of HSI clock. 388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * See commented example code below that can be copied and uncommented 389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * into HAL_ADC_MspInit(). 390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note Possibility to update parameters on the fly: 391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * This function initializes the ADC MSP (HAL_ADC_MspInit()) only when 392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * coming from ADC state reset. Following calls to this function can 393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * be used to reconfigure some parameters of ADC_InitTypeDef 394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * structure on the fly, without modifying MSP configuration. If ADC 395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * MSP has to be modified again, HAL_ADC_DeInit() must be called 396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * before HAL_ADC_Init(). 397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * The setting of these parameters is conditioned to ADC state. 398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * For parameters constraints, see comments of structure 399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * "ADC_InitTypeDef". 400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note This function configures the ADC within 2 scopes: scope of entire 401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * ADC and scope of regular group. For parameters details, see comments 402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * of structure "ADC_InitTypeDef". 403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status 405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef* hadc) 407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t tmpCFGR1 = 0U; 410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check ADC handle */ 412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if(hadc == NULL) 413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_ERROR; 415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_CLOCKPRESCALER(hadc->Init.ClockPrescaler)); 420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_RESOLUTION(hadc->Init.Resolution)); 421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_DATA_ALIGN(hadc->Init.DataAlign)); 422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_SCAN_MODE(hadc->Init.ScanConvMode)); 423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); 424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DiscontinuousConvMode)); 425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_EXTTRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); 426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_EXTTRIG(hadc->Init.ExternalTrigConv)); 427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DMAContinuousRequests)); 428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_EOC_SELECTION(hadc->Init.EOCSelection)); 429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_OVERRUN(hadc->Init.Overrun)); 430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.LowPowerAutoWait)); 431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.LowPowerAutoPowerOff)); 432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* As prerequisite, into HAL_ADC_MspInit(), ADC clock must be configured */ ARM GAS /tmp/ccbNWEOT.s page 9 434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* at RCC top level depending on both possible clock sources: */ 435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* APB clock or HSI clock. */ 436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Refer to header of this file for more details on clock enabling procedure*/ 437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Actions performed only if ADC is coming from state reset: */ 439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - Initialization of ADC MSP */ 440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - ADC voltage regulator enable */ 441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (hadc->State == HAL_ADC_STATE_RESET) 442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Initialize ADC error code */ 444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CLEAR_ERRORCODE(hadc); 445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Allocate lock resource and initialize it */ 447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Lock = HAL_UNLOCKED; 448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Init the ADC Callback settings */ 451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ConvCpltCallback = HAL_ADC_ConvCpltCallback; /* Legacy weak 452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ConvHalfCpltCallback = HAL_ADC_ConvHalfCpltCallback; /* Legacy weak 453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->LevelOutOfWindowCallback = HAL_ADC_LevelOutOfWindowCallback; /* Legacy weak 454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ErrorCallback = HAL_ADC_ErrorCallback; /* Legacy weak 455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (hadc->MspInitCallback == NULL) 457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ 459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Init the low level hardware */ 462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->MspInitCallback(hadc); 463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #else 464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Init the low level hardware */ 465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_MspInit(hadc); 466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ 467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Configuration of ADC parameters if previous preliminary actions are */ 470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* correctly completed. */ 471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* and if there is no conversion on going on regular group (ADC can be */ 472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* enabled anyway, in case of call of this function to update a parameter */ 473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* on the fly). */ 474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL) && 475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (tmp_hal_status == HAL_OK) && 476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) ) 477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, 480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, 481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_BUSY_INTERNAL); 482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Parameters update conditioned to ADC state: */ 484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Parameters that can be updated only when ADC is disabled: */ 485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - ADC clock mode */ 486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - ADC clock prescaler */ 487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - ADC resolution */ 488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (ADC_IS_ENABLE(hadc) == RESET) 489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Some parameters of this register are not reset, since they are set */ ARM GAS /tmp/ccbNWEOT.s page 10 491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* by other functions and must be kept in case of usage of this */ 492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* function on the fly (update of a parameter of ADC_InitTypeDef */ 493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* without needing to reconfigure all other ADC groups/channels */ 494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* parameters): */ 495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - internal measurement paths: Vbat, temperature sensor, Vref */ 496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* (set into HAL_ADC_ConfigChannel() ) */ 497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Configuration of ADC resolution */ 499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** MODIFY_REG(hadc->Instance->CFGR1, 500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_RES , 501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Init.Resolution ); 502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Configuration of ADC clock mode: clock source AHB or HSI with */ 504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* selectable prescaler */ 505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** MODIFY_REG(hadc->Instance->CFGR2 , 506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR2_CKMODE , 507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Init.ClockPrescaler ); 508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Configuration of ADC: */ 511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - discontinuous mode */ 512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - LowPowerAutoWait mode */ 513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - LowPowerAutoPowerOff mode */ 514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - continuous conversion mode */ 515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - overrun */ 516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - external trigger to start conversion */ 517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - external trigger polarity */ 518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - data alignment */ 519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - resolution */ 520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - scan direction */ 521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - DMA continuous request */ 522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CFGR1 &= ~( ADC_CFGR1_DISCEN | 523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_AUTOFF | 524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_AUTDLY | 525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_CONT | 526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_OVRMOD | 527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_EXTSEL | 528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_EXTEN | 529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_ALIGN | 530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_SCANDIR | 531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_DMACFG ); 532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmpCFGR1 |= (ADC_CFGR1_AUTOWAIT((uint32_t)hadc->Init.LowPowerAutoWait) | 534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_AUTOOFF((uint32_t)hadc->Init.LowPowerAutoPowerOff) | 535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode) | 536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_OVERRUN(hadc->Init.Overrun) | 537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Init.DataAlign | 538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_SCANDIR(hadc->Init.ScanConvMode) | 539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_DMACONTREQ((uint32_t)hadc->Init.DMAContinuousRequests) ); 540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable discontinuous mode only if continuous mode is disabled */ 542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (hadc->Init.DiscontinuousConvMode == ENABLE) 543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (hadc->Init.ContinuousConvMode == DISABLE) 545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable the selected ADC group regular discontinuous mode */ 547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmpCFGR1 |= ADC_CFGR1_DISCEN; ARM GAS /tmp/ccbNWEOT.s page 11 548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ADC regular group discontinuous was intended to be enabled, */ 552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* but ADC regular group modes continuous and sequencer discontinuous */ 553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* cannot be enabled simultaneously. */ 554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine to error */ 556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); 557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to ADC IP internal error */ 559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); 560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable external trigger if trigger selection is different of software */ 564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* start. */ 565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Note: This configuration keeps the hardware feature of parameter */ 566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ExternalTrigConvEdge "trigger edge none" equivalent to */ 567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* software start. */ 568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) 569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmpCFGR1 |= ( hadc->Init.ExternalTrigConv | 571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Init.ExternalTrigConvEdge ); 572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC configuration register with previous settings */ 575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CFGR1 |= tmpCFGR1; 576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Channel sampling time configuration */ 578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Management of parameters "SamplingTimeCommon" and "SamplingTime" */ 579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* (obsolete): sampling time set in this function if parameter */ 580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* "SamplingTimeCommon" has been set to a valid sampling time. */ 581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Otherwise, sampling time is set into ADC channel initialization */ 582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* structure with parameter "SamplingTime" (obsolete). */ 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (IS_ADC_SAMPLE_TIME(hadc->Init.SamplingTimeCommon)) 584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Channel sampling time configuration */ 586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Clear the old sample time */ 587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->SMPR &= ~(ADC_SMPR_SMP); 588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set the new sample time */ 590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->SMPR |= ADC_SMPR_SET(hadc->Init.SamplingTimeCommon); 591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check back that ADC registers have effectively been configured to */ 594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ensure of no potential problem of ADC core IP clocking. */ 595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check through register CFGR1 (excluding analog watchdog configuration: */ 596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* set into separate dedicated function, and bits of ADC resolution set */ 597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* out of temporary variable 'tmpCFGR1'). */ 598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if ((hadc->Instance->CFGR1 & ~(ADC_CFGR1_AWDCH | ADC_CFGR1_AWDEN | ADC_CFGR1_AWDSGL | ADC_CFGR1 599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** == tmpCFGR1) 600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to none */ 602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CLEAR_ERRORCODE(hadc); 603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set the ADC state */ ARM GAS /tmp/ccbNWEOT.s page 12 605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, 606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_BUSY_INTERNAL, 607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_READY); 608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine to error */ 612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, 613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_BUSY_INTERNAL, 614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_ERROR_INTERNAL); 615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to ADC IP internal error */ 617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); 618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = HAL_ERROR; 620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine to error */ 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); 627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = HAL_ERROR; 629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return function status */ 632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return tmp_hal_status; 633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Deinitialize the ADC peripheral registers to their default reset 638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * values, with deinitialization of the ADC MSP. 639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note For devices with several ADCs: reset of ADC common registers is done 640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * only if all ADCs sharing the same common group are disabled. 641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * If this is not the case, reset of these common parameters reset is 642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * bypassed without error reporting: it can be the intended behaviour in 643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * case of reset of a single ADC while the other ADCs sharing the same 644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * common group is still running. 645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status 647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef* hadc) 649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check ADC handle */ 653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if(hadc == NULL) 654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_ERROR; 656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ ARM GAS /tmp/ccbNWEOT.s page 13 662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_BUSY_INTERNAL); 663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Stop potential conversion on going, on regular group */ 665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = ADC_ConversionStop(hadc); 666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable ADC peripheral if conversions are effectively stopped */ 668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) 669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable the ADC peripheral */ 671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = ADC_Disable(hadc); 672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check if ADC is effectively disabled */ 674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (tmp_hal_status != HAL_ERROR) 675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Change ADC state */ 677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->State = HAL_ADC_STATE_READY; 678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Configuration of ADC parameters if previous preliminary actions are */ 683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* correctly completed. */ 684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (tmp_hal_status != HAL_ERROR) 685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ========== Reset ADC registers ========== */ 688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Reset register IER */ 689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_AWD | ADC_IT_OVR | 690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_IT_EOS | ADC_IT_EOC | 691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_IT_EOSMP | ADC_IT_RDY ) ); 692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Reset register ISR */ 694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_AWD | ADC_FLAG_OVR | 695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_FLAG_EOS | ADC_FLAG_EOC | 696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_FLAG_EOSMP | ADC_FLAG_RDY ) ); 697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Reset register CR */ 699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Bits ADC_CR_ADCAL, ADC_CR_ADSTP, ADC_CR_ADSTART are in access mode */ 700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* "read-set": no direct reset applicable. */ 701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Reset register CFGR1 */ 703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CFGR1 &= ~(ADC_CFGR1_AWDCH | ADC_CFGR1_AWDEN | ADC_CFGR1_AWDSGL | ADC_CFGR1_ 704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_AUTOFF | ADC_CFGR1_WAIT | ADC_CFGR1_CONT | ADC_CFGR1_ 705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_EXTEN | ADC_CFGR1_EXTSEL | ADC_CFGR1_ALIGN | ADC_CFGR1_ 706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_SCANDIR | ADC_CFGR1_DMACFG | ADC_CFGR1_DMAEN 707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Reset register CFGR2 */ 709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Note: Update of ADC clock mode is conditioned to ADC state disabled: */ 710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* already done above. */ 711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CFGR2 &= ~ADC_CFGR2_CKMODE; 712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Reset register SMPR */ 714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->SMPR &= ~ADC_SMPR_SMP; 715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Reset register TR1 */ 717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->TR &= ~(ADC_TR_HT | ADC_TR_LT); 718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ARM GAS /tmp/ccbNWEOT.s page 14 719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Reset register CHSELR */ 720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CHSELR &= ~(ADC_CHSELR_CHSEL18 | ADC_CHSELR_CHSEL17 | ADC_CHSELR_CHSEL16 | 721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CHSELR_CHSEL15 | ADC_CHSELR_CHSEL14 | ADC_CHSELR_CHSEL13 | ADC_ 722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CHSELR_CHSEL11 | ADC_CHSELR_CHSEL10 | ADC_CHSELR_CHSEL9 | ADC_ 723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CHSELR_CHSEL7 | ADC_CHSELR_CHSEL6 | ADC_CHSELR_CHSEL5 | ADC_ 724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CHSELR_CHSEL3 | ADC_CHSELR_CHSEL2 | ADC_CHSELR_CHSEL1 | ADC_ 725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Reset register DR */ 727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* bits in access mode read only, no direct reset applicable*/ 728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Reset register CCR */ 730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC->CCR &= ~(ADC_CCR_ALL); 731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ========== Hard reset ADC peripheral ========== */ 733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Performs a global reset of the entire ADC peripheral: ADC state is */ 734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* forced to a similar state after device power-on. */ 735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If needed, copy-paste and uncomment the following reset code into */ 736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* function "void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)": */ 737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* */ 738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* __HAL_RCC_ADC1_FORCE_RESET() */ 739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* __HAL_RCC_ADC1_RELEASE_RESET() */ 740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (hadc->MspDeInitCallback == NULL) 743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ 745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* DeInit the low level hardware */ 748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->MspDeInitCallback(hadc); 749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #else 750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* DeInit the low level hardware */ 751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_MspDeInit(hadc); 752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ 753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to none */ 755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CLEAR_ERRORCODE(hadc); 756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->State = HAL_ADC_STATE_RESET; 759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process unlocked */ 762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_UNLOCK(hadc); 763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return function status */ 765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return tmp_hal_status; 766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Initializes the ADC MSP. 771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval None 773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __weak void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) 775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { ARM GAS /tmp/ccbNWEOT.s page 15 776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ 777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** UNUSED(hadc); 778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* NOTE : This function should not be modified. When the callback is needed, 780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** function HAL_ADC_MspInit must be implemented in the user file. 781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief DeInitializes the ADC MSP. 786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval None 788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __weak void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc) 790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ 792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** UNUSED(hadc); 793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* NOTE : This function should not be modified. When the callback is needed, 795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** function HAL_ADC_MspDeInit must be implemented in the user file. 796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Register a User ADC Callback 802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * To be used instead of the weak predefined callback 803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc Pointer to a ADC_HandleTypeDef structure that contains 804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * the configuration information for the specified ADC. 805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param CallbackID ID of the callback to be registered 806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * This parameter can be one of the following values: 807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_CONVERSION_COMPLETE_CB_ID ADC conversion complete callback ID 808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_CONVERSION_HALF_CB_ID ADC conversion complete callback ID 809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID ADC analog watchdog 1 callback ID 810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_ERROR_CB_ID ADC error callback ID 811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_INJ_CONVERSION_COMPLETE_CB_ID ADC group injected conversion complet 812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPINIT_CB_ID ADC Msp Init callback ID 813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPDEINIT_CB_ID ADC Msp DeInit callback ID 814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPINIT_CB_ID MspInit callback ID 815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPDEINIT_CB_ID MspDeInit callback ID 816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param pCallback pointer to the Callback function 817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status 818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_RegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef Callb 820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef status = HAL_OK; 822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (pCallback == NULL) 824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update the error code */ 826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; 827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_ERROR; 829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_READY) != 0) 832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { ARM GAS /tmp/ccbNWEOT.s page 16 833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** switch (CallbackID) 834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_CONVERSION_COMPLETE_CB_ID : 836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ConvCpltCallback = pCallback; 837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_CONVERSION_HALF_CB_ID : 840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ConvHalfCpltCallback = pCallback; 841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID : 844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->LevelOutOfWindowCallback = pCallback; 845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_ERROR_CB_ID : 848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ErrorCallback = pCallback; 849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_MSPINIT_CB_ID : 852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->MspInitCallback = pCallback; 853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_MSPDEINIT_CB_ID : 856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->MspDeInitCallback = pCallback; 857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** default : 860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update the error code */ 861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; 862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return error status */ 864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** status = HAL_ERROR; 865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else if (HAL_ADC_STATE_RESET == hadc->State) 869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** switch (CallbackID) 871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_MSPINIT_CB_ID : 873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->MspInitCallback = pCallback; 874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_MSPDEINIT_CB_ID : 877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->MspDeInitCallback = pCallback; 878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** default : 881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update the error code */ 882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; 883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return error status */ 885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** status = HAL_ERROR; 886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else ARM GAS /tmp/ccbNWEOT.s page 17 890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update the error code */ 892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; 893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return error status */ 895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** status = HAL_ERROR; 896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return status; 899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Unregister a ADC Callback 903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * ADC callback is redirected to the weak predefined callback 904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc Pointer to a ADC_HandleTypeDef structure that contains 905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * the configuration information for the specified ADC. 906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param CallbackID ID of the callback to be unregistered 907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * This parameter can be one of the following values: 908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_CONVERSION_COMPLETE_CB_ID ADC conversion complete callback ID 909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_CONVERSION_HALF_CB_ID ADC conversion complete callback ID 910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID ADC analog watchdog 1 callback ID 911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_ERROR_CB_ID ADC error callback ID 912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_INJ_CONVERSION_COMPLETE_CB_ID ADC group injected conversion complet 913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPINIT_CB_ID ADC Msp Init callback ID 914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPDEINIT_CB_ID ADC Msp DeInit callback ID 915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPINIT_CB_ID MspInit callback ID 916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg @ref HAL_ADC_MSPDEINIT_CB_ID MspDeInit callback ID 917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status 918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_UnRegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef Cal 920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef status = HAL_OK; 922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if ((hadc->State & HAL_ADC_STATE_READY) != 0) 924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** switch (CallbackID) 926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_CONVERSION_COMPLETE_CB_ID : 928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ConvCpltCallback = HAL_ADC_ConvCpltCallback; 929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_CONVERSION_HALF_CB_ID : 932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ConvHalfCpltCallback = HAL_ADC_ConvHalfCpltCallback; 933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID : 936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->LevelOutOfWindowCallback = HAL_ADC_LevelOutOfWindowCallback; 937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_ERROR_CB_ID : 940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ErrorCallback = HAL_ADC_ErrorCallback; 941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_MSPINIT_CB_ID : 944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ 945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ARM GAS /tmp/ccbNWEOT.s page 18 947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_MSPDEINIT_CB_ID : 948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ 949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** default : 952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update the error code */ 953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; 954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return error status */ 956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** status = HAL_ERROR; 957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else if (HAL_ADC_STATE_RESET == hadc->State) 961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** switch (CallbackID) 963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_MSPINIT_CB_ID : 965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit 966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case HAL_ADC_MSPDEINIT_CB_ID : 969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit 970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** default : 973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update the error code */ 974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; 975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return error status */ 977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** status = HAL_ERROR; 978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update the error code */ 984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; 985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return error status */ 987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** status = HAL_ERROR; 988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return status; 991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ 994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @} 997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** @defgroup ADC_Exported_Functions_Group2 IO operation functions 1000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief IO operation functions 1001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * 1002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** @verbatim 1003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** =============================================================================== ARM GAS /tmp/ccbNWEOT.s page 19 1004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ##### IO operation functions ##### 1005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** =============================================================================== 1006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] This section provides functions allowing to: 1007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Start conversion of regular group. 1008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Stop conversion of regular group. 1009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Poll for conversion complete on regular group. 1010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Poll for conversion event. 1011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Get result of regular channel conversion. 1012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Start conversion of regular group and enable interruptions. 1013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Stop conversion of regular group and disable interruptions. 1014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Handle ADC interrupt request 1015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Start conversion of regular group and enable DMA transfer. 1016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Stop conversion of regular group and disable ADC DMA transfer. 1017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** @endverbatim 1018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @{ 1019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Enables ADC, starts conversion of regular group. 1023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * Interruptions enabled in this function: None. 1024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 1025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status 1026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc) 1028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 1030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 1032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 1033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Perform ADC enable and conversion start if no conversion is on going */ 1035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) 1036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process locked */ 1038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_LOCK(hadc); 1039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable the ADC peripheral */ 1041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If low power mode AutoPowerOff is enabled, power-on/off phases are */ 1042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* performed automatically by hardware. */ 1043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (hadc->Init.LowPowerAutoPowerOff != ENABLE) 1044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = ADC_Enable(hadc); 1046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Start conversion if ADC is effectively enabled */ 1049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) 1050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 1052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - Clear state bitfield related to regular group conversion results */ 1053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - Set state bitfield related to regular operation */ 1054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, 1055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_A 1056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY); 1057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Reset ADC all error code fields */ 1059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CLEAR_ERRORCODE(hadc); 1060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ARM GAS /tmp/ccbNWEOT.s page 20 1061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process unlocked */ 1062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Unlock before starting ADC conversions: in case of potential */ 1063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* interruption, to let the process to ADC IRQ Handler. */ 1064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_UNLOCK(hadc); 1065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Clear regular group conversion flag and overrun flag */ 1067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* (To ensure of no unknown state from potential previous ADC */ 1068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* operations) */ 1069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); 1070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable conversion of regular group. */ 1072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If software start has been selected, conversion starts immediately. */ 1073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If external trigger has been selected, conversion will start at next */ 1074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* trigger event. */ 1075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CR |= ADC_CR_ADSTART; 1076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 1079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = HAL_BUSY; 1081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return function status */ 1084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return tmp_hal_status; 1085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Stop ADC conversion of regular group, disable ADC peripheral. 1089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 1090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status. 1091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef* hadc) 1093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 1095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 1097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 1098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process locked */ 1100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_LOCK(hadc); 1101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* 1. Stop potential conversion on going, on regular group */ 1103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = ADC_ConversionStop(hadc); 1104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable ADC peripheral if conversions are effectively stopped */ 1106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) 1107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* 2. Disable the ADC peripheral */ 1109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = ADC_Disable(hadc); 1110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check if ADC is effectively disabled */ 1112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) 1113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 1115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, 1116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, 1117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_READY); ARM GAS /tmp/ccbNWEOT.s page 21 1118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process unlocked */ 1122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_UNLOCK(hadc); 1123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return function status */ 1125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return tmp_hal_status; 1126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Wait for regular group conversion to be completed. 1130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note ADC conversion flags EOS (end of sequence) and EOC (end of 1131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * conversion) are cleared by this function, with an exception: 1132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * if low power feature "LowPowerAutoWait" is enabled, flags are 1133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * not cleared to not interfere with this feature until data register 1134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * is read using function HAL_ADC_GetValue(). 1135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note This function cannot be used in a particular setup: ADC configured 1136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * in DMA mode and polling for end of each conversion (ADC init 1137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * parameter "EOCSelection" set to ADC_EOC_SINGLE_CONV). 1138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * In this case, DMA resets the flag EOC and polling cannot be 1139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * performed on each conversion. Nevertheless, polling can still 1140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * be performed on the complete sequence (ADC init 1141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * parameter "EOCSelection" set to ADC_EOC_SEQ_CONV). 1142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 1143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param Timeout Timeout value in millisecond. 1144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status 1145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout) 1147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t tickstart; 1149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t tmp_Flag_EOC; 1150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 1152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 1153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If end of conversion selected to end of sequence */ 1155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (hadc->Init.EOCSelection == ADC_EOC_SEQ_CONV) 1156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_Flag_EOC = ADC_FLAG_EOS; 1158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If end of conversion selected to end of each conversion */ 1160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else /* ADC_EOC_SINGLE_CONV */ 1161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Verification that ADC configuration is compliant with polling for */ 1163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* each conversion: */ 1164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Particular case is ADC configured in DMA mode and ADC sequencer with */ 1165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* several ranks and polling for end of each conversion. */ 1166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* For code simplicity sake, this particular case is generalized to */ 1167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ADC configured in DMA mode and and polling for end of each conversion. */ 1168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (HAL_IS_BIT_SET(hadc->Instance->CFGR1, ADC_CFGR1_DMAEN)) 1169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine to error */ 1171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); 1172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process unlocked */ 1174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_UNLOCK(hadc); ARM GAS /tmp/ccbNWEOT.s page 22 1175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_ERROR; 1177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 1179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_Flag_EOC = (ADC_FLAG_EOC | ADC_FLAG_EOS); 1181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Get tick count */ 1185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tickstart = HAL_GetTick(); 1186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Wait until End of Conversion flag is raised */ 1188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** while(HAL_IS_BIT_CLR(hadc->Instance->ISR, tmp_Flag_EOC)) 1189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check if timeout is disabled (set to infinite wait) */ 1191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if(Timeout != HAL_MAX_DELAY) 1192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if((Timeout == 0) || ((HAL_GetTick()-tickstart) > Timeout)) 1194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine to timeout */ 1196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); 1197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process unlocked */ 1199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_UNLOCK(hadc); 1200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_TIMEOUT; 1202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine */ 1207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); 1208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Determine whether any further conversion upcoming on group regular */ 1210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* by external trigger, continuous mode or scan sequence on going. */ 1211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if(ADC_IS_SOFTWARE_START_REGULAR(hadc) && 1212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (hadc->Init.ContinuousConvMode == DISABLE) ) 1213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If End of Sequence is reached, disable interrupts */ 1215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if( __HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS) ) 1216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Allowed to modify bits ADC_IT_EOC/ADC_IT_EOS only if bit */ 1218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ADSTART==0 (no conversion on going) */ 1219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) 1220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable ADC end of single conversion interrupt on group regular */ 1222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Note: Overrun interrupt was enabled with EOC interrupt in */ 1223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* HAL_Start_IT(), but is not disabled here because can be used */ 1224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* by overrun IRQ process below. */ 1225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC | ADC_IT_EOS); 1226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 1228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, 1229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, 1230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_READY); 1231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } ARM GAS /tmp/ccbNWEOT.s page 23 1232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 1233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Change ADC state to error state */ 1235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); 1236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to ADC IP internal error */ 1238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); 1239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Clear end of conversion flag of regular group if low power feature */ 1244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* "LowPowerAutoWait " is disabled, to not interfere with this feature */ 1245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* until data register is read using function HAL_ADC_GetValue(). */ 1246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (hadc->Init.LowPowerAutoWait == DISABLE) 1247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Clear regular group conversion flag */ 1249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS)); 1250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return ADC state */ 1253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_OK; 1254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Poll for conversion event. 1258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 1259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param EventType the ADC event type. 1260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * This parameter can be one of the following values: 1261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg ADC_AWD_EVENT: ADC Analog watchdog event 1262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @arg ADC_OVR_EVENT: ADC Overrun event 1263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param Timeout Timeout value in millisecond. 1264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status 1265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef* hadc, uint32_t EventType, uint32_t Timeou 1267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t tickstart=0; 1269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 1271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 1272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_EVENT_TYPE(EventType)); 1273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Get tick count */ 1275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tickstart = HAL_GetTick(); 1276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check selected event flag */ 1278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** while(__HAL_ADC_GET_FLAG(hadc, EventType) == RESET) 1279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check if timeout is disabled (set to infinite wait) */ 1281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if(Timeout != HAL_MAX_DELAY) 1282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if((Timeout == 0U) || ((HAL_GetTick()-tickstart) > Timeout)) 1284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine to timeout */ 1286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); 1287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process unlocked */ ARM GAS /tmp/ccbNWEOT.s page 24 1289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_UNLOCK(hadc); 1290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_TIMEOUT; 1292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** switch(EventType) 1297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Analog watchdog (level out of window) event */ 1299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case ADC_AWD_EVENT: 1300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 1301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_AWD1); 1302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Clear ADC analog watchdog flag */ 1304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD); 1305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 1306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Overrun event */ 1308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** default: /* Case ADC_OVR_EVENT */ 1309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If overrun is set to overwrite previous data, overrun event is not */ 1310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* considered as an error. */ 1311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* (cf ref manual "Managing conversions without using the DMA and without */ 1312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* overrun ") */ 1313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (hadc->Init.Overrun == ADC_OVR_DATA_PRESERVED) 1314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 1316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_REG_OVR); 1317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to overrun */ 1319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_OVR); 1320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Clear ADC Overrun flag */ 1323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); 1324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 1325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return ADC state */ 1328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_OK; 1329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Enables ADC, starts conversion of regular group with interruption. 1333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * Interruptions enabled in this function: 1334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * - EOC (end of conversion of regular group) or EOS (end of 1335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * sequence of regular group) depending on ADC initialization 1336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * parameter "EOCSelection" 1337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * - overrun (if available) 1338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * Each of these interruptions has its dedicated callback function. 1339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 1340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status 1341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef* hadc) 1343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 1345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ARM GAS /tmp/ccbNWEOT.s page 25 1346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 1347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 1348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Perform ADC enable and conversion start if no conversion is on going */ 1350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) 1351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process locked */ 1353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_LOCK(hadc); 1354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable the ADC peripheral */ 1356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If low power mode AutoPowerOff is enabled, power-on/off phases are */ 1357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* performed automatically by hardware. */ 1358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (hadc->Init.LowPowerAutoPowerOff != ENABLE) 1359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = ADC_Enable(hadc); 1361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Start conversion if ADC is effectively enabled */ 1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) 1365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 1367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - Clear state bitfield related to regular group conversion results */ 1368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - Set state bitfield related to regular operation */ 1369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, 1370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_A 1371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY); 1372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Reset ADC all error code fields */ 1374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CLEAR_ERRORCODE(hadc); 1375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process unlocked */ 1377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Unlock before starting ADC conversions: in case of potential */ 1378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* interruption, to let the process to ADC IRQ Handler. */ 1379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_UNLOCK(hadc); 1380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Clear regular group conversion flag and overrun flag */ 1382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* (To ensure of no unknown state from potential previous ADC */ 1383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* operations) */ 1384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); 1385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable ADC end of conversion interrupt */ 1387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable ADC overrun interrupt */ 1388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** switch(hadc->Init.EOCSelection) 1389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** case ADC_EOC_SEQ_CONV: 1391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC); 1392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, (ADC_IT_EOS | ADC_IT_OVR)); 1393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 1394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* case ADC_EOC_SINGLE_CONV */ 1395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** default: 1396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_EOS | ADC_IT_OVR)); 1397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 1398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable conversion of regular group. */ 1401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If software start has been selected, conversion starts immediately. */ 1402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If external trigger has been selected, conversion will start at next */ ARM GAS /tmp/ccbNWEOT.s page 26 1403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* trigger event. */ 1404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CR |= ADC_CR_ADSTART; 1405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 1408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = HAL_BUSY; 1410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return function status */ 1413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return tmp_hal_status; 1414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Stop ADC conversion of regular group, disable interruption of 1419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * end-of-conversion, disable ADC peripheral. 1420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 1421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status. 1422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc) 1424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 1426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 1428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 1429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process locked */ 1431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_LOCK(hadc); 1432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* 1. Stop potential conversion on going, on regular group */ 1434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = ADC_ConversionStop(hadc); 1435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable ADC peripheral if conversions are effectively stopped */ 1437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) 1438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable ADC end of conversion interrupt for regular group */ 1440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable ADC overrun interrupt */ 1441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_EOS | ADC_IT_OVR)); 1442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* 2. Disable the ADC peripheral */ 1444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = ADC_Disable(hadc); 1445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check if ADC is effectively disabled */ 1447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) 1448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 1450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, 1451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, 1452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_READY); 1453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process unlocked */ 1457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_UNLOCK(hadc); 1458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return function status */ ARM GAS /tmp/ccbNWEOT.s page 27 1460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return tmp_hal_status; 1461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Enables ADC, starts conversion of regular group and transfers result 1465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * through DMA. 1466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * Interruptions enabled in this function: 1467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * - DMA transfer complete 1468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * - DMA half transfer 1469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * - overrun 1470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * Each of these interruptions has its dedicated callback function. 1471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 1472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param pData The destination Buffer address. 1473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param Length The length of data to be transferred from ADC peripheral to memory. 1474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval None 1475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length) 1477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 1479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 1481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 1482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Perform ADC enable and conversion start if no conversion is on going */ 1484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) 1485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process locked */ 1487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_LOCK(hadc); 1488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable the ADC peripheral */ 1490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If low power mode AutoPowerOff is enabled, power-on/off phases are */ 1491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* performed automatically by hardware. */ 1492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (hadc->Init.LowPowerAutoPowerOff != ENABLE) 1493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = ADC_Enable(hadc); 1495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Start conversion if ADC is effectively enabled */ 1498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) 1499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 1501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - Clear state bitfield related to regular group conversion results */ 1502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - Set state bitfield related to regular operation */ 1503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, 1504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_A 1505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY); 1506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Reset ADC all error code fields */ 1508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CLEAR_ERRORCODE(hadc); 1509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process unlocked */ 1511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Unlock before starting ADC conversions: in case of potential */ 1512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* interruption, to let the process to ADC IRQ Handler. */ 1513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_UNLOCK(hadc); 1514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set the DMA transfer complete callback */ 1516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->DMA_Handle->XferCpltCallback = ADC_DMAConvCplt; ARM GAS /tmp/ccbNWEOT.s page 28 1517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set the DMA half transfer complete callback */ 1519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->DMA_Handle->XferHalfCpltCallback = ADC_DMAHalfConvCplt; 1520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set the DMA error callback */ 1522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->DMA_Handle->XferErrorCallback = ADC_DMAError; 1523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Manage ADC and DMA start: ADC overrun interruption, DMA start, ADC */ 1526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* start (in case of SW start): */ 1527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Clear regular group conversion flag and overrun flag */ 1529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* (To ensure of no unknown state from potential previous ADC */ 1530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* operations) */ 1531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); 1532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable ADC overrun interrupt */ 1534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_OVR); 1535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable ADC DMA mode */ 1537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CFGR1 |= ADC_CFGR1_DMAEN; 1538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Start the DMA channel */ 1540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_DMA_Start_IT(hadc->DMA_Handle, (uint32_t)&hadc->Instance->DR, (uint32_t)pData, Length); 1541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable conversion of regular group. */ 1543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If software start has been selected, conversion starts immediately. */ 1544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If external trigger has been selected, conversion will start at next */ 1545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* trigger event. */ 1546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CR |= ADC_CR_ADSTART; 1547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 1550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = HAL_BUSY; 1552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return function status */ 1555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return tmp_hal_status; 1556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Stop ADC conversion of regular group, disable ADC DMA transfer, disable 1560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * ADC peripheral. 1561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * Each of these interruptions has its dedicated callback function. 1562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 1563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status. 1564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef* hadc) 1566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 1568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 1570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 1571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process locked */ 1573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_LOCK(hadc); ARM GAS /tmp/ccbNWEOT.s page 29 1574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* 1. Stop potential conversion on going, on regular group */ 1576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = ADC_ConversionStop(hadc); 1577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable ADC peripheral if conversions are effectively stopped */ 1579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) 1580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable ADC DMA (ADC DMA configuration ADC_CFGR_DMACFG is kept) */ 1582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CFGR1 &= ~ADC_CFGR1_DMAEN; 1583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable the DMA channel (in case of DMA in circular mode or stop while */ 1585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* while DMA transfer is on going) */ 1586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = HAL_DMA_Abort(hadc->DMA_Handle); 1587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check if DMA channel effectively disabled */ 1589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (tmp_hal_status != HAL_OK) 1590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine to error */ 1592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); 1593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable ADC overrun interrupt */ 1596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_OVR); 1597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* 2. Disable the ADC peripheral */ 1599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update "tmp_hal_status" only if DMA channel disabling passed, to keep */ 1600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* in memory a potential failing status. */ 1601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) 1602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = ADC_Disable(hadc); 1604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 1606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_Disable(hadc); 1608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check if ADC is effectively disabled */ 1611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (tmp_hal_status == HAL_OK) 1612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 1614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, 1615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, 1616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_READY); 1617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process unlocked */ 1622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_UNLOCK(hadc); 1623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return function status */ 1625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return tmp_hal_status; 1626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Get ADC regular group conversion result. 1630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note Reading register DR automatically clears ADC flag EOC ARM GAS /tmp/ccbNWEOT.s page 30 1631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * (ADC group regular end of unitary conversion). 1632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note This function does not clear ADC flag EOS 1633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * (ADC group regular end of sequence conversion). 1634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * Occurrence of flag EOS rising: 1635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * - If sequencer is composed of 1 rank, flag EOS is equivalent 1636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * to flag EOC. 1637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * - If sequencer is composed of several ranks, during the scan 1638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * sequence flag EOC only is raised, at the end of the scan sequence 1639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * both flags EOC and EOS are raised. 1640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * To clear this flag, either use function: 1641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * in programming model IT: @ref HAL_ADC_IRQHandler(), in programming 1642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * model polling: @ref HAL_ADC_PollForConversion() 1643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * or @ref __HAL_ADC_CLEAR_FLAG(&hadc, ADC_FLAG_EOS). 1644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 1645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval ADC group regular conversion data 1646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc) 1648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 1650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 1651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Note: EOC flag is not cleared here by software because automatically */ 1653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* cleared by hardware when reading register DR. */ 1654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return ADC converted value */ 1656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return hadc->Instance->DR; 1657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Handles ADC interrupt request. 1661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 1662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval None 1663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** void HAL_ADC_IRQHandler(ADC_HandleTypeDef* hadc) 1665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 1667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 1668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); 1669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_EOC_SELECTION(hadc->Init.EOCSelection)); 1670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ========== Check End of Conversion flag for regular group ========== */ 1672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if( (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOC) && __HAL_ADC_GET_IT_SOURCE(hadc, ADC_IT_EOC)) || 1673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS) && __HAL_ADC_GET_IT_SOURCE(hadc, ADC_IT_EOS)) ) 1674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update state machine on conversion status if not in error state */ 1676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL)) 1677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 1679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); 1680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Determine whether any further conversion upcoming on group regular */ 1683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* by external trigger, continuous mode or scan sequence on going. */ 1684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if(ADC_IS_SOFTWARE_START_REGULAR(hadc) && 1685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (hadc->Init.ContinuousConvMode == DISABLE) ) 1686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If End of Sequence is reached, disable interrupts */ ARM GAS /tmp/ccbNWEOT.s page 31 1688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if( __HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS) ) 1689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Allowed to modify bits ADC_IT_EOC/ADC_IT_EOS only if bit */ 1691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ADSTART==0 (no conversion on going) */ 1692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) 1693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable ADC end of single conversion interrupt on group regular */ 1695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Note: Overrun interrupt was enabled with EOC interrupt in */ 1696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* HAL_Start_IT(), but is not disabled here because can be used */ 1697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* by overrun IRQ process below. */ 1698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC | ADC_IT_EOS); 1699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 1701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, 1702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, 1703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_READY); 1704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 1706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Change ADC state to error state */ 1708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); 1709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to ADC IP internal error */ 1711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); 1712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Note: into callback, to determine if conversion has been triggered */ 1717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* from EOC or EOS, possibility to use: */ 1718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* " if( __HAL_ADC_GET_FLAG(&hadc, ADC_FLAG_EOS)) " */ 1719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 1720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ConvCpltCallback(hadc); 1721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #else 1722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_ConvCpltCallback(hadc); 1723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ 1724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Clear regular group conversion flag */ 1727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Note: in case of overrun set to ADC_OVR_DATA_PRESERVED, end of */ 1728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* conversion flags clear induces the release of the preserved data.*/ 1729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Therefore, if the preserved data value is needed, it must be */ 1730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* read preliminarily into HAL_ADC_ConvCpltCallback(). */ 1731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS) ); 1732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ========== Check Analog watchdog flags ========== */ 1735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if(__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_AWD) && __HAL_ADC_GET_IT_SOURCE(hadc, ADC_IT_AWD)) 1736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 1738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_AWD1); 1739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 1741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->LevelOutOfWindowCallback(hadc); 1742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #else 1743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_LevelOutOfWindowCallback(hadc); 1744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ ARM GAS /tmp/ccbNWEOT.s page 32 1745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Clear ADC Analog watchdog flag */ 1747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD); 1748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ========== Check Overrun flag ========== */ 1753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if(__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_OVR) && __HAL_ADC_GET_IT_SOURCE(hadc, ADC_IT_OVR)) 1754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If overrun is set to overwrite previous data (default setting), */ 1756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* overrun event is not considered as an error. */ 1757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* (cf ref manual "Managing conversions without using the DMA and without */ 1758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* overrun ") */ 1759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Exception for usage with DMA overrun event always considered as an */ 1760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* error. */ 1761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if ((hadc->Init.Overrun == ADC_OVR_DATA_PRESERVED) || 1762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_IS_BIT_SET(hadc->Instance->CFGR1, ADC_CFGR1_DMAEN) ) 1763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to overrun */ 1765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_OVR); 1766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Clear ADC overrun flag */ 1768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); 1769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 1771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ErrorCallback(hadc); 1772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #else 1773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_ErrorCallback(hadc); 1774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ 1775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Clear the Overrun flag */ 1778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); 1779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Conversion complete callback in non blocking mode 1786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 1787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval None 1788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __weak void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) 1790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ 1792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** UNUSED(hadc); 1793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* NOTE : This function should not be modified. When the callback is needed, 1795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** function HAL_ADC_ConvCpltCallback must be implemented in the user file. 1796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Conversion DMA half-transfer callback in non blocking mode 1801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle ARM GAS /tmp/ccbNWEOT.s page 33 1802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval None 1803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __weak void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef* hadc) 1805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ 1807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** UNUSED(hadc); 1808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* NOTE : This function should not be modified. When the callback is needed, 1810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** function HAL_ADC_ConvHalfCpltCallback must be implemented in the user file. 1811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Analog watchdog callback in non blocking mode. 1816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 1817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval None 1818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __weak void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef* hadc) 1820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ 1822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** UNUSED(hadc); 1823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* NOTE : This function should not be modified. When the callback is needed, 1825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** function HAL_ADC_LevelOoutOfWindowCallback must be implemented in the user file. 1826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief ADC error callback in non blocking mode 1831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * (ADC conversion with interruption or transfer by DMA) 1832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 1833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval None 1834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __weak void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc) 1836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ 1838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** UNUSED(hadc); 1839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* NOTE : This function should not be modified. When the callback is needed, 1841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** function HAL_ADC_ErrorCallback must be implemented in the user file. 1842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @} 1848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** @defgroup ADC_Exported_Functions_Group3 Peripheral Control functions 1851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Peripheral Control functions 1852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * 1853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** @verbatim 1854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** =============================================================================== 1855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ##### Peripheral Control functions ##### 1856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** =============================================================================== 1857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] This section provides functions allowing to: 1858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Configure channels on regular group ARM GAS /tmp/ccbNWEOT.s page 34 1859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Configure the analog watchdog 1860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** @endverbatim 1862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @{ 1863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 1866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Configures the the selected channel to be linked to the regular 1867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * group. 1868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note In case of usage of internal measurement channels: 1869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * VrefInt/Vbat/TempSensor. 1870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * Sampling time constraints must be respected (sampling time can be 1871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * adjusted in function of ADC clock frequency and sampling time 1872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * setting). 1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * Refer to device datasheet for timings values, parameters TS_vrefint, 1874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * TS_vbat, TS_temp (values rough order: 5us to 17us). 1875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * These internal paths can be be disabled using function 1876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * HAL_ADC_DeInit(). 1877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note Possibility to update parameters on the fly: 1878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * This function initializes channel into regular group, following 1879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * calls to this function can be used to reconfigure some parameters 1880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * of structure "ADC_ChannelConfTypeDef" on the fly, without reseting 1881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * the ADC. 1882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * The setting of these parameters is conditioned to ADC state. 1883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * For parameters constraints, see comments of structure 1884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * "ADC_ChannelConfTypeDef". 1885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 1886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param sConfig Structure of ADC channel for regular group. 1887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status 1888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 1889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef* hadc, ADC_ChannelConfTypeDef* sConfig) 1890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 1892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __IO uint32_t wait_loop_index = 0U; 1893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 1895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 1896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_CHANNEL(sConfig->Channel)); 1897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_RANK(sConfig->Rank)); 1898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (! IS_ADC_SAMPLE_TIME(hadc->Init.SamplingTimeCommon)) 1900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_SAMPLE_TIME(sConfig->SamplingTime)); 1902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process locked */ 1905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_LOCK(hadc); 1906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Parameters update conditioned to ADC state: */ 1908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Parameters that can be updated when ADC is disabled or enabled without */ 1909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* conversion on going on regular group: */ 1910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - Channel number */ 1911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - Channel sampling time */ 1912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - Management of internal measurement channels: VrefInt/TempSensor/Vbat */ 1913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) 1914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Configure channel: depending on rank setting, add it or remove it from */ ARM GAS /tmp/ccbNWEOT.s page 35 1916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ADC conversion sequencer. */ 1917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (sConfig->Rank != ADC_RANK_NONE) 1918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Regular sequence configuration */ 1920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set the channel selection register from the selected channel */ 1921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CHSELR |= ADC_CHSELR_CHANNEL(sConfig->Channel); 1922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Channel sampling time configuration */ 1924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Management of parameters "SamplingTimeCommon" and "SamplingTime" */ 1925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* (obsolete): sampling time set in this function with */ 1926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* parameter "SamplingTime" (obsolete) only if not already set into */ 1927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ADC initialization structure with parameter "SamplingTimeCommon". */ 1928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (! IS_ADC_SAMPLE_TIME(hadc->Init.SamplingTimeCommon)) 1929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Modify sampling time if needed (not needed in case of reoccurrence */ 1931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* for several channels programmed consecutively into the sequencer) */ 1932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (sConfig->SamplingTime != ADC_GET_SAMPLINGTIME(hadc)) 1933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Channel sampling time configuration */ 1935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Clear the old sample time */ 1936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->SMPR &= ~(ADC_SMPR_SMP); 1937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set the new sample time */ 1939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->SMPR |= ADC_SMPR_SET(sConfig->SamplingTime); 1940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Management of internal measurement channels: VrefInt/TempSensor/Vbat */ 1944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* internal measurement paths enable: If internal channel selected, */ 1945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* enable dedicated internal buffers and path. */ 1946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Note: these internal measurement paths can be disabled using */ 1947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* HAL_ADC_DeInit() or removing the channel from sequencer with */ 1948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* channel configuration parameter "Rank". */ 1949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if(ADC_IS_CHANNEL_INTERNAL(sConfig->Channel)) 1950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If Channel_16 is selected, enable Temp. sensor measurement path. */ 1952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If Channel_17 is selected, enable VREFINT measurement path. */ 1953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If Channel_18 is selected, enable VBAT measurement path. */ 1954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC->CCR |= ADC_CHANNEL_INTERNAL_PATH(sConfig->Channel); 1955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If Temp. sensor is selected, wait for stabilization delay */ 1957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (sConfig->Channel == ADC_CHANNEL_TEMPSENSOR) 1958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Delay for temperature sensor stabilization time */ 1960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Compute number of CPU cycles to wait for */ 1961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** wait_loop_index = (ADC_TEMPSENSOR_DELAY_US * (SystemCoreClock / 1000000U)); 1962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** while(wait_loop_index != 0U) 1963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** wait_loop_index--; 1965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 1970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Regular sequence configuration */ 1972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Reset the channel selection register from the selected channel */ ARM GAS /tmp/ccbNWEOT.s page 36 1973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CHSELR &= ~ADC_CHSELR_CHANNEL(sConfig->Channel); 1974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Management of internal measurement channels: VrefInt/TempSensor/Vbat */ 1976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* internal measurement paths disable: If internal channel selected, */ 1977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* disable dedicated internal buffers and path. */ 1978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if(ADC_IS_CHANNEL_INTERNAL(sConfig->Channel)) 1979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If Channel_16 is selected, disable Temp. sensor measurement path. */ 1981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If Channel_17 is selected, disable VREFINT measurement path. */ 1982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If Channel_18 is selected, disable VBAT measurement path. */ 1983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC->CCR &= ~ADC_CHANNEL_INTERNAL_PATH(sConfig->Channel); 1984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If a conversion is on going on regular group, no update on regular */ 1990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* channel could be done on neither of the channel configuration structure */ 1991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* parameters. */ 1992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 1993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine to error */ 1995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); 1996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = HAL_ERROR; 1998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process unlocked */ 2001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_UNLOCK(hadc); 2002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return function status */ 2004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return tmp_hal_status; 2005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 2009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Configures the analog watchdog. 2010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note Possibility to update parameters on the fly: 2011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * This function initializes the selected analog watchdog, following 2012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * calls to this function can be used to reconfigure some parameters 2013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * of structure "ADC_AnalogWDGConfTypeDef" on the fly, without reseting 2014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * the ADC. 2015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * The setting of these parameters is conditioned to ADC state. 2016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * For parameters constraints, see comments of structure 2017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * "ADC_AnalogWDGConfTypeDef". 2018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 2019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param AnalogWDGConfig Structure of ADC analog watchdog configuration 2020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status 2021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 2022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef* hadc, ADC_AnalogWDGConfTypeDef* Analog 2023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 2025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t tmpAWDHighThresholdShifted; 2027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t tmpAWDLowThresholdShifted; 2028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ ARM GAS /tmp/ccbNWEOT.s page 37 2030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 2031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ANALOG_WATCHDOG_MODE(AnalogWDGConfig->WatchdogMode)); 2032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_FUNCTIONAL_STATE(AnalogWDGConfig->ITMode)); 2033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Verify if threshold is within the selected ADC resolution */ 2035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_RANGE(ADC_GET_RESOLUTION(hadc), AnalogWDGConfig->HighThreshold)); 2036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_RANGE(ADC_GET_RESOLUTION(hadc), AnalogWDGConfig->LowThreshold)); 2037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if(AnalogWDGConfig->WatchdogMode == ADC_ANALOGWATCHDOG_SINGLE_REG) 2039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_CHANNEL(AnalogWDGConfig->Channel)); 2041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process locked */ 2044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_LOCK(hadc); 2045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Parameters update conditioned to ADC state: */ 2047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Parameters that can be updated when ADC is disabled or enabled without */ 2048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* conversion on going on regular group: */ 2049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - Analog watchdog channels */ 2050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - Analog watchdog thresholds */ 2051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) 2052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Configuration of analog watchdog: */ 2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - Set the analog watchdog enable mode: one or overall group of */ 2055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* channels. */ 2056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* - Set the Analog watchdog channel (is not used if watchdog */ 2057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* mode "all channels": ADC_CFGR_AWD1SGL=0). */ 2058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CFGR1 &= ~( ADC_CFGR1_AWDSGL | 2059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_AWDEN | 2060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_AWDCH ); 2061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CFGR1 |= ( AnalogWDGConfig->WatchdogMode | 2063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR_AWDCH(AnalogWDGConfig->Channel) ); 2064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Shift the offset in function of the selected ADC resolution: Thresholds*/ 2066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* have to be left-aligned on bit 11, the LSB (right bits) are set to 0 */ 2067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmpAWDHighThresholdShifted = ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->HighThre 2068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmpAWDLowThresholdShifted = ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->LowThres 2069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set the high and low thresholds */ 2071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->TR &= ~(ADC_TR_HT | ADC_TR_LT); 2072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->TR |= ( ADC_TRX_HIGHTHRESHOLD (tmpAWDHighThresholdShifted) | 2073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmpAWDLowThresholdShifted ); 2074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Clear the ADC Analog watchdog flag (in case of left enabled by */ 2076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* previous ADC operations) to be ready to use for HAL_ADC_IRQHandler() */ 2077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* or HAL_ADC_PollForEvent(). */ 2078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_CLEAR_FLAG(hadc, ADC_IT_AWD); 2079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Configure ADC Analog watchdog interrupt */ 2081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if(AnalogWDGConfig->ITMode == ENABLE) 2082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable the ADC Analog watchdog interrupt */ 2084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, ADC_IT_AWD); 2085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else ARM GAS /tmp/ccbNWEOT.s page 38 2087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable the ADC Analog watchdog interrupt */ 2089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_AWD); 2090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If a conversion is on going on regular group, no update could be done */ 2094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* on neither of the AWD configuration structure parameters. */ 2095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 2096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine to error */ 2098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); 2099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmp_hal_status = HAL_ERROR; 2101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Process unlocked */ 2105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_UNLOCK(hadc); 2106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return function status */ 2108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return tmp_hal_status; 2109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 2113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @} 2114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 2115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** @defgroup ADC_Exported_Functions_Group4 Peripheral State functions 2118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Peripheral State functions 2119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * 2120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** @verbatim 2121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** =============================================================================== 2122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ##### Peripheral State and Errors functions ##### 2123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** =============================================================================== 2124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** [..] 2125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** This subsection provides functions to get in run-time the status of the 2126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** peripheral. 2127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Check the ADC state 2128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (+) Check the ADC error code 2129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** @endverbatim 2131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @{ 2132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 2133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 2135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Return the ADC state 2136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note ADC state machine is managed by bitfields, ADC status must be 2137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * compared with states bits. 2138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * For example: 2139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * " if (HAL_IS_BIT_SET(HAL_ADC_GetState(hadc1), HAL_ADC_STATE_REG_BUSY)) " 2140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * " if (HAL_IS_BIT_SET(HAL_ADC_GetState(hadc1), HAL_ADC_STATE_AWD1) ) " 2141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 2142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL state 2143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ ARM GAS /tmp/ccbNWEOT.s page 39 2144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t HAL_ADC_GetState(ADC_HandleTypeDef* hadc) 2145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 2147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 2148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return ADC state */ 2150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return hadc->State; 2151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 2154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Return the ADC error code 2155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 2156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval ADC Error Code 2157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 2158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t HAL_ADC_GetError(ADC_HandleTypeDef *hadc) 2159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return hadc->ErrorCode; 2161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 2164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @} 2165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 2166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 2168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @} 2169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 2170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** @defgroup ADC_Private_Functions ADC Private Functions 2172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @{ 2173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 2174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 2176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Enable the selected ADC. 2177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note Prerequisite condition to use this function: ADC must be disabled 2178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * and voltage regulator must be enabled (done into HAL_ADC_Init()). 2179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note If low power mode AutoPowerOff is enabled, power-on/off phases are 2180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * performed automatically by hardware. 2181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * In this mode, this function is useless and must not be called because 2182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * flag ADC_FLAG_RDY is not usable. 2183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * Therefore, this function must be called under condition of 2184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * "if (hadc->Init.LowPowerAutoPowerOff != ENABLE)". 2185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 2186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status. 2187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 2188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** static HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef* hadc) 2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t tickstart = 0U; 2191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __IO uint32_t wait_loop_index = 0U; 2192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ADC enable and wait for ADC ready (in case of ADC is disabled or */ 2194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* enabling phase not yet completed: flag ADC ready not yet set). */ 2195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Timeout implemented to not be stuck if ADC cannot be enabled (possible */ 2196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* causes: ADC clock not running, ...). */ 2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (ADC_IS_ENABLE(hadc) == RESET) 2198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check if conditions to enable the ADC are fulfilled */ 2200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (ADC_ENABLING_CONDITIONS(hadc) == RESET) ARM GAS /tmp/ccbNWEOT.s page 40 2201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine to error */ 2203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); 2204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to ADC IP internal error */ 2206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); 2207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_ERROR; 2209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Enable the ADC peripheral */ 2212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_ENABLE(hadc); 2213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Delay for ADC stabilization time */ 2215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Compute number of CPU cycles to wait for */ 2216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** wait_loop_index = (ADC_STAB_DELAY_US * (SystemCoreClock / 1000000U)); 2217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** while(wait_loop_index != 0U) 2218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** wait_loop_index--; 2220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Get tick count */ 2223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tickstart = HAL_GetTick(); 2224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Wait for ADC effectively enabled */ 2226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** while(__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_RDY) == RESET) 2227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if((HAL_GetTick() - tickstart) > ADC_ENABLE_TIMEOUT) 2229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine to error */ 2231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); 2232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to ADC IP internal error */ 2234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); 2235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_ERROR; 2237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return HAL status */ 2243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_OK; 2244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 2247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Disable the selected ADC. 2248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note Prerequisite condition to use this function: ADC conversions must be 2249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * stopped. 2250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 2251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status. 2252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 2253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** static HAL_StatusTypeDef ADC_Disable(ADC_HandleTypeDef* hadc) 2254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t tickstart = 0U; 2256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Verification if ADC is not already disabled: */ ARM GAS /tmp/ccbNWEOT.s page 41 2258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Note: forbidden to disable ADC (set bit ADC_CR_ADDIS) if ADC is already */ 2259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* disabled. */ 2260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (ADC_IS_ENABLE(hadc) != RESET) 2261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check if conditions to disable the ADC are fulfilled */ 2263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (ADC_DISABLING_CONDITIONS(hadc) != RESET) 2264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable the ADC peripheral */ 2266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_DISABLE(hadc); 2267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 2269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine to error */ 2271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); 2272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to ADC IP internal error */ 2274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); 2275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_ERROR; 2277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Wait for ADC effectively disabled */ 2280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Get tick count */ 2281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tickstart = HAL_GetTick(); 2282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** while(HAL_IS_BIT_SET(hadc->Instance->CR, ADC_CR_ADEN)) 2284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if((HAL_GetTick() - tickstart) > ADC_DISABLE_TIMEOUT) 2286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine to error */ 2288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); 2289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to ADC IP internal error */ 2291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); 2292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_ERROR; 2294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return HAL status */ 2299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_OK; 2300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 2304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief Stop ADC conversion. 2305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @note Prerequisite condition to use this function: ADC conversions must be 2306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * stopped to disable the ADC. 2307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hadc ADC handle 2308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval HAL status. 2309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 2310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** static HAL_StatusTypeDef ADC_ConversionStop(ADC_HandleTypeDef* hadc) 2311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 25 .loc 1 2311 0 26 .cfi_startproc 27 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccbNWEOT.s page 42 28 @ frame_needed = 0, uses_anonymous_args = 0 29 .LVL0: 30 0000 70B5 push {r4, r5, r6, lr} 31 .LCFI0: 32 .cfi_def_cfa_offset 16 33 .cfi_offset 4, -16 34 .cfi_offset 5, -12 35 .cfi_offset 6, -8 36 .cfi_offset 14, -4 37 0002 0400 movs r4, r0 38 .LVL1: 2312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t tickstart = 0U; 2313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 2315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); 2316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Verification if ADC is not already stopped on regular group to bypass */ 2318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* this function if not needed. */ 2319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc)) 39 .loc 1 2319 0 40 0004 0368 ldr r3, [r0] 41 0006 9A68 ldr r2, [r3, #8] 42 0008 5207 lsls r2, r2, #29 43 000a 21D5 bpl .L6 2320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Stop potential conversion on going on regular group */ 2323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Software is allowed to set ADSTP only when ADSTART=1 and ADDIS=0 */ 2324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (HAL_IS_BIT_SET(hadc->Instance->CR, ADC_CR_ADSTART) && 44 .loc 1 2324 0 45 000c 9A68 ldr r2, [r3, #8] 46 000e 5207 lsls r2, r2, #29 47 0010 06D5 bpl .L3 2325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_IS_BIT_CLR(hadc->Instance->CR, ADC_CR_ADDIS) ) 48 .loc 1 2325 0 discriminator 1 49 0012 9A68 ldr r2, [r3, #8] 2324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_IS_BIT_CLR(hadc->Instance->CR, ADC_CR_ADDIS) ) 50 .loc 1 2324 0 discriminator 1 51 0014 9207 lsls r2, r2, #30 52 0016 03D4 bmi .L3 2326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Stop conversions on regular group */ 2328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->CR |= ADC_CR_ADSTP; 53 .loc 1 2328 0 54 0018 9A68 ldr r2, [r3, #8] 55 001a 1021 movs r1, #16 56 001c 0A43 orrs r2, r1 57 001e 9A60 str r2, [r3, #8] 58 .L3: 2329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Wait for conversion effectively stopped */ 2332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Get tick count */ 2333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tickstart = HAL_GetTick(); 59 .loc 1 2333 0 60 0020 FFF7FEFF bl HAL_GetTick 61 .LVL2: ARM GAS /tmp/ccbNWEOT.s page 43 62 0024 0500 movs r5, r0 63 .LVL3: 64 .L4: 2334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** while((hadc->Instance->CR & ADC_CR_ADSTART) != RESET) 65 .loc 1 2335 0 66 0026 2368 ldr r3, [r4] 67 0028 9B68 ldr r3, [r3, #8] 68 002a 5B07 lsls r3, r3, #29 69 002c 0ED5 bpl .L7 2336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if((HAL_GetTick() - tickstart) > ADC_STOP_CONVERSION_TIMEOUT) 70 .loc 1 2337 0 71 002e FFF7FEFF bl HAL_GetTick 72 .LVL4: 73 0032 401B subs r0, r0, r5 74 0034 0228 cmp r0, #2 75 0036 F6D9 bls .L4 2338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update ADC state machine to error */ 2340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); 76 .loc 1 2340 0 77 0038 A36B ldr r3, [r4, #56] 78 003a 1022 movs r2, #16 79 003c 1343 orrs r3, r2 80 003e A363 str r3, [r4, #56] 2341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to ADC IP internal error */ 2343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); 81 .loc 1 2343 0 82 0040 E36B ldr r3, [r4, #60] 83 0042 0F3A subs r2, r2, #15 84 0044 1343 orrs r3, r2 85 0046 E363 str r3, [r4, #60] 2344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_ERROR; 86 .loc 1 2345 0 87 0048 0120 movs r0, #1 88 004a 02E0 b .L2 89 .L7: 2346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Return HAL status */ 2352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return HAL_OK; 90 .loc 1 2352 0 91 004c 0020 movs r0, #0 92 004e 00E0 b .L2 93 .LVL5: 94 .L6: 95 0050 0020 movs r0, #0 96 .LVL6: 97 .L2: 2353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 98 .loc 1 2353 0 ARM GAS /tmp/ccbNWEOT.s page 44 99 @ sp needed 100 .LVL7: 101 0052 70BD pop {r4, r5, r6, pc} 102 .cfi_endproc 103 .LFE64: 105 .section .text.ADC_Disable,"ax",%progbits 106 .align 1 107 .syntax unified 108 .code 16 109 .thumb_func 110 .fpu softvfp 112 ADC_Disable: 113 .LFB63: 2254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t tickstart = 0U; 114 .loc 1 2254 0 115 .cfi_startproc 116 @ args = 0, pretend = 0, frame = 0 117 @ frame_needed = 0, uses_anonymous_args = 0 118 .LVL8: 119 0000 70B5 push {r4, r5, r6, lr} 120 .LCFI1: 121 .cfi_def_cfa_offset 16 122 .cfi_offset 4, -16 123 .cfi_offset 5, -12 124 .cfi_offset 6, -8 125 .cfi_offset 14, -4 126 0002 0400 movs r4, r0 127 .LVL9: 2260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 128 .loc 1 2260 0 129 0004 0268 ldr r2, [r0] 130 0006 9168 ldr r1, [r2, #8] 131 0008 0323 movs r3, #3 132 000a 0B40 ands r3, r1 133 000c 012B cmp r3, #1 134 000e 01D0 beq .L16 2299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 135 .loc 1 2299 0 136 0010 0020 movs r0, #0 137 .LVL10: 138 .L9: 2300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 139 .loc 1 2300 0 140 @ sp needed 141 .LVL11: 142 0012 70BD pop {r4, r5, r6, pc} 143 .LVL12: 144 .L16: 2260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 145 .loc 1 2260 0 discriminator 1 146 0014 1368 ldr r3, [r2] 147 0016 DB07 lsls r3, r3, #31 148 0018 02D4 bmi .L10 2260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 149 .loc 1 2260 0 is_stmt 0 discriminator 4 150 001a D368 ldr r3, [r2, #12] 151 001c 1B04 lsls r3, r3, #16 ARM GAS /tmp/ccbNWEOT.s page 45 152 001e 2DD5 bpl .L15 153 .L10: 2263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 154 .loc 1 2263 0 is_stmt 1 155 0020 9168 ldr r1, [r2, #8] 156 0022 0523 movs r3, #5 157 0024 0B40 ands r3, r1 158 0026 012B cmp r3, #1 159 0028 09D0 beq .L17 2271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 160 .loc 1 2271 0 161 002a A36B ldr r3, [r4, #56] 162 002c 1022 movs r2, #16 163 002e 1343 orrs r3, r2 164 0030 A363 str r3, [r4, #56] 2274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 165 .loc 1 2274 0 166 0032 E36B ldr r3, [r4, #60] 167 0034 0F3A subs r2, r2, #15 168 0036 1343 orrs r3, r2 169 0038 E363 str r3, [r4, #60] 2276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 170 .loc 1 2276 0 171 003a 0120 movs r0, #1 172 .LVL13: 173 003c E9E7 b .L9 174 .LVL14: 175 .L17: 2266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 176 .loc 1 2266 0 177 003e 9368 ldr r3, [r2, #8] 178 0040 0221 movs r1, #2 179 0042 0B43 orrs r3, r1 180 0044 9360 str r3, [r2, #8] 181 0046 2368 ldr r3, [r4] 182 0048 0322 movs r2, #3 183 004a 1A60 str r2, [r3] 2281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 184 .loc 1 2281 0 185 004c FFF7FEFF bl HAL_GetTick 186 .LVL15: 187 0050 0500 movs r5, r0 188 .LVL16: 189 .L12: 2283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 190 .loc 1 2283 0 191 0052 2368 ldr r3, [r4] 192 0054 9B68 ldr r3, [r3, #8] 193 0056 DB07 lsls r3, r3, #31 194 0058 0ED5 bpl .L18 2285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 195 .loc 1 2285 0 196 005a FFF7FEFF bl HAL_GetTick 197 .LVL17: 198 005e 401B subs r0, r0, r5 199 0060 0228 cmp r0, #2 200 0062 F6D9 bls .L12 ARM GAS /tmp/ccbNWEOT.s page 46 2288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 201 .loc 1 2288 0 202 0064 A36B ldr r3, [r4, #56] 203 0066 1022 movs r2, #16 204 0068 1343 orrs r3, r2 205 006a A363 str r3, [r4, #56] 2291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 206 .loc 1 2291 0 207 006c E36B ldr r3, [r4, #60] 208 006e 0F3A subs r2, r2, #15 209 0070 1343 orrs r3, r2 210 0072 E363 str r3, [r4, #60] 2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 211 .loc 1 2293 0 212 0074 0120 movs r0, #1 213 0076 CCE7 b .L9 214 .L18: 2299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 215 .loc 1 2299 0 216 0078 0020 movs r0, #0 217 007a CAE7 b .L9 218 .LVL18: 219 .L15: 220 007c 0020 movs r0, #0 221 .LVL19: 222 007e C8E7 b .L9 223 .cfi_endproc 224 .LFE63: 226 .global __aeabi_uidiv 227 .section .text.ADC_Enable,"ax",%progbits 228 .align 1 229 .syntax unified 230 .code 16 231 .thumb_func 232 .fpu softvfp 234 ADC_Enable: 235 .LFB62: 2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t tickstart = 0U; 236 .loc 1 2189 0 237 .cfi_startproc 238 @ args = 0, pretend = 0, frame = 8 239 @ frame_needed = 0, uses_anonymous_args = 0 240 .LVL20: 241 0000 30B5 push {r4, r5, lr} 242 .LCFI2: 243 .cfi_def_cfa_offset 12 244 .cfi_offset 4, -12 245 .cfi_offset 5, -8 246 .cfi_offset 14, -4 247 0002 83B0 sub sp, sp, #12 248 .LCFI3: 249 .cfi_def_cfa_offset 24 250 0004 0400 movs r4, r0 251 .LVL21: 2191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 252 .loc 1 2191 0 253 0006 0023 movs r3, #0 ARM GAS /tmp/ccbNWEOT.s page 47 254 0008 0193 str r3, [sp, #4] 2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 255 .loc 1 2197 0 256 000a 0368 ldr r3, [r0] 257 000c 9968 ldr r1, [r3, #8] 258 000e 0322 movs r2, #3 259 0010 0A40 ands r2, r1 260 0012 012A cmp r2, #1 261 0014 0ED0 beq .L29 262 .L20: 2200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 263 .loc 1 2200 0 264 0016 9968 ldr r1, [r3, #8] 265 0018 204A ldr r2, .L32 266 001a 1142 tst r1, r2 267 001c 12D1 bne .L30 2212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 268 .loc 1 2212 0 269 001e 9A68 ldr r2, [r3, #8] 270 0020 0121 movs r1, #1 271 0022 0A43 orrs r2, r1 272 0024 9A60 str r2, [r3, #8] 2216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** while(wait_loop_index != 0U) 273 .loc 1 2216 0 274 0026 1E4B ldr r3, .L32+4 275 0028 1868 ldr r0, [r3] 276 .LVL22: 277 002a 1E49 ldr r1, .L32+8 278 002c FFF7FEFF bl __aeabi_uidiv 279 .LVL23: 280 0030 0190 str r0, [sp, #4] 2217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 281 .loc 1 2217 0 282 0032 15E0 b .L23 283 .LVL24: 284 .L29: 2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 285 .loc 1 2197 0 discriminator 1 286 0034 1A68 ldr r2, [r3] 287 0036 D207 lsls r2, r2, #31 288 0038 2DD4 bmi .L27 2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 289 .loc 1 2197 0 is_stmt 0 discriminator 4 290 003a DA68 ldr r2, [r3, #12] 291 003c 1204 lsls r2, r2, #16 292 003e EAD5 bpl .L20 2243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 293 .loc 1 2243 0 is_stmt 1 294 0040 0020 movs r0, #0 295 .LVL25: 296 0042 08E0 b .L21 297 .LVL26: 298 .L30: 2203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 299 .loc 1 2203 0 300 0044 A36B ldr r3, [r4, #56] 301 0046 1022 movs r2, #16 ARM GAS /tmp/ccbNWEOT.s page 48 302 0048 1343 orrs r3, r2 303 004a A363 str r3, [r4, #56] 2206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 304 .loc 1 2206 0 305 004c E36B ldr r3, [r4, #60] 306 004e 0F3A subs r2, r2, #15 307 0050 1343 orrs r3, r2 308 0052 E363 str r3, [r4, #60] 2208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 309 .loc 1 2208 0 310 0054 0120 movs r0, #1 311 .LVL27: 312 .L21: 2244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 313 .loc 1 2244 0 314 0056 03B0 add sp, sp, #12 315 @ sp needed 316 .LVL28: 317 0058 30BD pop {r4, r5, pc} 318 .LVL29: 319 .L24: 2219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 320 .loc 1 2219 0 321 005a 019B ldr r3, [sp, #4] 322 005c 013B subs r3, r3, #1 323 005e 0193 str r3, [sp, #4] 324 .L23: 2217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 325 .loc 1 2217 0 326 0060 019B ldr r3, [sp, #4] 327 0062 002B cmp r3, #0 328 0064 F9D1 bne .L24 2223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 329 .loc 1 2223 0 330 0066 FFF7FEFF bl HAL_GetTick 331 .LVL30: 332 006a 0500 movs r5, r0 333 .LVL31: 334 .L25: 2226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 335 .loc 1 2226 0 336 006c 2368 ldr r3, [r4] 337 006e 1B68 ldr r3, [r3] 338 0070 DB07 lsls r3, r3, #31 339 0072 0ED4 bmi .L31 2228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 340 .loc 1 2228 0 341 0074 FFF7FEFF bl HAL_GetTick 342 .LVL32: 343 0078 401B subs r0, r0, r5 344 007a 0228 cmp r0, #2 345 007c F6D9 bls .L25 2231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 346 .loc 1 2231 0 347 007e A36B ldr r3, [r4, #56] 348 0080 1022 movs r2, #16 349 0082 1343 orrs r3, r2 ARM GAS /tmp/ccbNWEOT.s page 49 350 0084 A363 str r3, [r4, #56] 2234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 351 .loc 1 2234 0 352 0086 E36B ldr r3, [r4, #60] 353 0088 0F3A subs r2, r2, #15 354 008a 1343 orrs r3, r2 355 008c E363 str r3, [r4, #60] 2236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 356 .loc 1 2236 0 357 008e 0120 movs r0, #1 358 0090 E1E7 b .L21 359 .L31: 2243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 360 .loc 1 2243 0 361 0092 0020 movs r0, #0 362 0094 DFE7 b .L21 363 .LVL33: 364 .L27: 365 0096 0020 movs r0, #0 366 .LVL34: 367 0098 DDE7 b .L21 368 .L33: 369 009a C046 .align 2 370 .L32: 371 009c 17000080 .word -2147483625 372 00a0 00000000 .word SystemCoreClock 373 00a4 40420F00 .word 1000000 374 .cfi_endproc 375 .LFE62: 377 .section .text.HAL_ADC_MspInit,"ax",%progbits 378 .align 1 379 .weak HAL_ADC_MspInit 380 .syntax unified 381 .code 16 382 .thumb_func 383 .fpu softvfp 385 HAL_ADC_MspInit: 386 .LFB42: 775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ 387 .loc 1 775 0 388 .cfi_startproc 389 @ args = 0, pretend = 0, frame = 0 390 @ frame_needed = 0, uses_anonymous_args = 0 391 @ link register save eliminated. 392 .LVL35: 782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 393 .loc 1 782 0 394 @ sp needed 395 0000 7047 bx lr 396 .cfi_endproc 397 .LFE42: 399 .section .text.HAL_ADC_Init,"ax",%progbits 400 .align 1 401 .global HAL_ADC_Init 402 .syntax unified 403 .code 16 404 .thumb_func ARM GAS /tmp/ccbNWEOT.s page 50 405 .fpu softvfp 407 HAL_ADC_Init: 408 .LFB40: 407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 409 .loc 1 407 0 410 .cfi_startproc 411 @ args = 0, pretend = 0, frame = 0 412 @ frame_needed = 0, uses_anonymous_args = 0 413 .LVL36: 414 0000 70B5 push {r4, r5, r6, lr} 415 .LCFI4: 416 .cfi_def_cfa_offset 16 417 .cfi_offset 4, -16 418 .cfi_offset 5, -12 419 .cfi_offset 6, -8 420 .cfi_offset 14, -4 421 0002 041E subs r4, r0, #0 422 .LVL37: 412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 423 .loc 1 412 0 424 0004 00D1 bne .LCB388 425 0006 B1E0 b .L49 @long jump 426 .LCB388: 441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 427 .loc 1 441 0 428 0008 836B ldr r3, [r0, #56] 429 000a 002B cmp r3, #0 430 000c 7ED0 beq .L51 431 .LVL38: 432 .L37: 474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (tmp_hal_status == HAL_OK) && 433 .loc 1 474 0 434 000e A36B ldr r3, [r4, #56] 435 0010 DB06 lsls r3, r3, #27 436 0012 00D5 bpl .LCB398 437 0014 A4E0 b .L38 @long jump 438 .LCB398: 476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 439 .loc 1 476 0 440 0016 2168 ldr r1, [r4] 441 0018 8B68 ldr r3, [r1, #8] 442 001a 0422 movs r2, #4 443 001c 1A40 ands r2, r3 475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) ) 444 .loc 1 475 0 445 001e 00D0 beq .LCB404 446 0020 9EE0 b .L38 @long jump 447 .LCB404: 479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, 448 .loc 1 479 0 449 0022 A36B ldr r3, [r4, #56] 450 0024 5248 ldr r0, .L56 451 0026 0340 ands r3, r0 452 0028 0630 adds r0, r0, #6 453 002a FF30 adds r0, r0, #255 454 002c 0343 orrs r3, r0 455 002e A363 str r3, [r4, #56] ARM GAS /tmp/ccbNWEOT.s page 51 488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 456 .loc 1 488 0 457 0030 8868 ldr r0, [r1, #8] 458 0032 0323 movs r3, #3 459 0034 0340 ands r3, r0 460 0036 012B cmp r3, #1 461 0038 6ED0 beq .L52 462 .L39: 499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_RES , 463 .loc 1 499 0 464 003a CB68 ldr r3, [r1, #12] 465 003c 1820 movs r0, #24 466 003e 8343 bics r3, r0 467 0040 A068 ldr r0, [r4, #8] 468 0042 0343 orrs r3, r0 469 0044 CB60 str r3, [r1, #12] 505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR2_CKMODE , 470 .loc 1 505 0 471 0046 2168 ldr r1, [r4] 472 0048 0B69 ldr r3, [r1, #16] 473 004a 9B00 lsls r3, r3, #2 474 004c 9B08 lsrs r3, r3, #2 475 004e 6068 ldr r0, [r4, #4] 476 0050 0343 orrs r3, r0 477 0052 0B61 str r3, [r1, #16] 478 .L40: 522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_AUTOFF | 479 .loc 1 522 0 480 0054 2168 ldr r1, [r4] 481 0056 CB68 ldr r3, [r1, #12] 482 0058 4648 ldr r0, .L56+4 483 005a 0340 ands r3, r0 484 005c CB60 str r3, [r1, #12] 533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_AUTOOFF((uint32_t)hadc->Init.LowPowerAutoPowerOff) | 485 .loc 1 533 0 486 005e 237E ldrb r3, [r4, #24] 487 0060 9B03 lsls r3, r3, #14 534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode) | 488 .loc 1 534 0 489 0062 617E ldrb r1, [r4, #25] 490 0064 C903 lsls r1, r1, #15 533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_AUTOOFF((uint32_t)hadc->Init.LowPowerAutoPowerOff) | 491 .loc 1 533 0 492 0066 0B43 orrs r3, r1 535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_OVERRUN(hadc->Init.Overrun) | 493 .loc 1 535 0 494 0068 A17E ldrb r1, [r4, #26] 495 006a 4803 lsls r0, r1, #13 534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode) | 496 .loc 1 534 0 497 006c 0343 orrs r3, r0 536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Init.DataAlign | 498 .loc 1 536 0 499 006e A06A ldr r0, [r4, #40] 500 0070 0128 cmp r0, #1 501 0072 58D0 beq .L50 502 0074 8020 movs r0, #128 ARM GAS /tmp/ccbNWEOT.s page 52 503 0076 4001 lsls r0, r0, #5 504 .L41: 535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_OVERRUN(hadc->Init.Overrun) | 505 .loc 1 535 0 506 0078 0343 orrs r3, r0 536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Init.DataAlign | 507 .loc 1 536 0 508 007a E068 ldr r0, [r4, #12] 509 007c 0343 orrs r3, r0 538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_DMACONTREQ((uint32_t)hadc->Init.DMAContinuousRequests) ); 510 .loc 1 538 0 511 007e 2069 ldr r0, [r4, #16] 512 0080 0228 cmp r0, #2 513 0082 52D0 beq .L53 514 .L42: 537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_SCANDIR(hadc->Init.ScanConvMode) | 515 .loc 1 537 0 516 0084 1343 orrs r3, r2 539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 517 .loc 1 539 0 518 0086 2422 movs r2, #36 519 0088 A25C ldrb r2, [r4, r2] 520 008a 5200 lsls r2, r2, #1 538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_DMACONTREQ((uint32_t)hadc->Init.DMAContinuousRequests) ); 521 .loc 1 538 0 522 008c 1343 orrs r3, r2 523 .LVL39: 542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 524 .loc 1 542 0 525 008e E27E ldrb r2, [r4, #27] 526 0090 012A cmp r2, #1 527 0092 4CD0 beq .L54 528 .L43: 568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 529 .loc 1 568 0 530 0094 E269 ldr r2, [r4, #28] 531 0096 C221 movs r1, #194 532 0098 FF31 adds r1, r1, #255 533 009a 8A42 cmp r2, r1 534 009c 02D0 beq .L45 570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Init.ExternalTrigConvEdge ); 535 .loc 1 570 0 536 009e 216A ldr r1, [r4, #32] 537 00a0 0A43 orrs r2, r1 538 00a2 1343 orrs r3, r2 539 .LVL40: 540 .L45: 575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 541 .loc 1 575 0 542 00a4 2168 ldr r1, [r4] 543 00a6 CA68 ldr r2, [r1, #12] 544 00a8 1A43 orrs r2, r3 545 00aa CA60 str r2, [r1, #12] 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 546 .loc 1 583 0 547 00ac E26A ldr r2, [r4, #44] 548 00ae 8021 movs r1, #128 ARM GAS /tmp/ccbNWEOT.s page 53 549 00b0 4905 lsls r1, r1, #21 550 00b2 8A42 cmp r2, r1 551 00b4 0DD0 beq .L46 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 552 .loc 1 583 0 is_stmt 0 discriminator 1 553 00b6 012A cmp r2, #1 554 00b8 0BD0 beq .L46 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 555 .loc 1 583 0 discriminator 2 556 00ba 022A cmp r2, #2 557 00bc 09D0 beq .L46 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 558 .loc 1 583 0 discriminator 3 559 00be 032A cmp r2, #3 560 00c0 07D0 beq .L46 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 561 .loc 1 583 0 discriminator 4 562 00c2 042A cmp r2, #4 563 00c4 05D0 beq .L46 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 564 .loc 1 583 0 discriminator 5 565 00c6 052A cmp r2, #5 566 00c8 03D0 beq .L46 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 567 .loc 1 583 0 discriminator 6 568 00ca 062A cmp r2, #6 569 00cc 01D0 beq .L46 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 570 .loc 1 583 0 discriminator 7 571 00ce 072A cmp r2, #7 572 00d0 0AD1 bne .L47 573 .L46: 587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 574 .loc 1 587 0 is_stmt 1 575 00d2 2068 ldr r0, [r4] 576 00d4 4169 ldr r1, [r0, #20] 577 00d6 0722 movs r2, #7 578 00d8 9143 bics r1, r2 579 00da 4161 str r1, [r0, #20] 590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 580 .loc 1 590 0 581 00dc 2068 ldr r0, [r4] 582 00de 4169 ldr r1, [r0, #20] 583 00e0 E56A ldr r5, [r4, #44] 584 00e2 2A40 ands r2, r5 585 00e4 0A43 orrs r2, r1 586 00e6 4261 str r2, [r0, #20] 587 .L47: 598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** == tmpCFGR1) 588 .loc 1 598 0 589 00e8 2268 ldr r2, [r4] 590 00ea D268 ldr r2, [r2, #12] 591 00ec 2249 ldr r1, .L56+8 592 00ee 0A40 ands r2, r1 593 00f0 9A42 cmp r2, r3 594 00f2 2BD0 beq .L55 612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_BUSY_INTERNAL, ARM GAS /tmp/ccbNWEOT.s page 54 595 .loc 1 612 0 596 00f4 A36B ldr r3, [r4, #56] 597 .LVL41: 598 00f6 1222 movs r2, #18 599 00f8 9343 bics r3, r2 600 00fa 023A subs r2, r2, #2 601 00fc 1343 orrs r3, r2 602 00fe A363 str r3, [r4, #56] 617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 603 .loc 1 617 0 604 0100 E36B ldr r3, [r4, #60] 605 0102 0F3A subs r2, r2, #15 606 0104 1343 orrs r3, r2 607 0106 E363 str r3, [r4, #60] 608 .LVL42: 619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 609 .loc 1 619 0 610 0108 0120 movs r0, #1 611 010a 2EE0 b .L36 612 .LVL43: 613 .L51: 444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 614 .loc 1 444 0 615 010c C363 str r3, [r0, #60] 447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 616 .loc 1 447 0 617 010e 3422 movs r2, #52 618 0110 8354 strb r3, [r0, r2] 465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ 619 .loc 1 465 0 620 0112 FFF7FEFF bl HAL_ADC_MspInit 621 .LVL44: 622 0116 7AE7 b .L37 623 .L52: 488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 624 .loc 1 488 0 discriminator 1 625 0118 0B68 ldr r3, [r1] 626 011a DB07 lsls r3, r3, #31 627 011c 9AD4 bmi .L40 488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 628 .loc 1 488 0 is_stmt 0 discriminator 4 629 011e CB68 ldr r3, [r1, #12] 630 0120 1B04 lsls r3, r3, #16 631 0122 97D4 bmi .L40 632 0124 89E7 b .L39 633 .L50: 536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Init.DataAlign | 634 .loc 1 536 0 is_stmt 1 635 0126 1000 movs r0, r2 636 0128 A6E7 b .L41 637 .L53: 538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_DMACONTREQ((uint32_t)hadc->Init.DMAContinuousRequests) ); 638 .loc 1 538 0 639 012a 0422 movs r2, #4 640 012c AAE7 b .L42 641 .LVL45: 642 .L54: ARM GAS /tmp/ccbNWEOT.s page 55 544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 643 .loc 1 544 0 644 012e 0029 cmp r1, #0 645 0130 03D1 bne .L44 547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 646 .loc 1 547 0 647 0132 8022 movs r2, #128 648 0134 5202 lsls r2, r2, #9 649 0136 1343 orrs r3, r2 650 .LVL46: 651 0138 ACE7 b .L43 652 .L44: 556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 653 .loc 1 556 0 654 013a A26B ldr r2, [r4, #56] 655 013c 2021 movs r1, #32 656 013e 0A43 orrs r2, r1 657 0140 A263 str r2, [r4, #56] 559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 658 .loc 1 559 0 659 0142 E26B ldr r2, [r4, #60] 660 0144 1F39 subs r1, r1, #31 661 0146 0A43 orrs r2, r1 662 0148 E263 str r2, [r4, #60] 663 014a A3E7 b .L43 664 .L55: 602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 665 .loc 1 602 0 666 014c 0023 movs r3, #0 667 .LVL47: 668 014e E363 str r3, [r4, #60] 605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_BUSY_INTERNAL, 669 .loc 1 605 0 670 0150 A36B ldr r3, [r4, #56] 671 0152 0322 movs r2, #3 672 0154 9343 bics r3, r2 673 0156 023A subs r2, r2, #2 674 0158 1343 orrs r3, r2 675 015a A363 str r3, [r4, #56] 408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t tmpCFGR1 = 0U; 676 .loc 1 408 0 677 015c 0020 movs r0, #0 678 015e 04E0 b .L36 679 .LVL48: 680 .L38: 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 681 .loc 1 626 0 682 0160 A36B ldr r3, [r4, #56] 683 0162 1022 movs r2, #16 684 0164 1343 orrs r3, r2 685 0166 A363 str r3, [r4, #56] 686 .LVL49: 628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 687 .loc 1 628 0 688 0168 0120 movs r0, #1 689 .LVL50: 690 .L36: ARM GAS /tmp/ccbNWEOT.s page 56 633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 691 .loc 1 633 0 692 @ sp needed 693 .LVL51: 694 016a 70BD pop {r4, r5, r6, pc} 695 .LVL52: 696 .L49: 414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 697 .loc 1 414 0 698 016c 0120 movs r0, #1 699 .LVL53: 700 016e FCE7 b .L36 701 .L57: 702 .align 2 703 .L56: 704 0170 FDFEFFFF .word -259 705 0174 1902FEFF .word -130535 706 0178 E7FF3F83 .word -2092957721 707 .cfi_endproc 708 .LFE40: 710 .section .text.HAL_ADC_MspDeInit,"ax",%progbits 711 .align 1 712 .weak HAL_ADC_MspDeInit 713 .syntax unified 714 .code 16 715 .thumb_func 716 .fpu softvfp 718 HAL_ADC_MspDeInit: 719 .LFB43: 790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ 720 .loc 1 790 0 721 .cfi_startproc 722 @ args = 0, pretend = 0, frame = 0 723 @ frame_needed = 0, uses_anonymous_args = 0 724 @ link register save eliminated. 725 .LVL54: 797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 726 .loc 1 797 0 727 @ sp needed 728 0000 7047 bx lr 729 .cfi_endproc 730 .LFE43: 732 .section .text.HAL_ADC_DeInit,"ax",%progbits 733 .align 1 734 .global HAL_ADC_DeInit 735 .syntax unified 736 .code 16 737 .thumb_func 738 .fpu softvfp 740 HAL_ADC_DeInit: 741 .LFB41: 649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 742 .loc 1 649 0 743 .cfi_startproc 744 @ args = 0, pretend = 0, frame = 0 745 @ frame_needed = 0, uses_anonymous_args = 0 746 .LVL55: ARM GAS /tmp/ccbNWEOT.s page 57 747 0000 70B5 push {r4, r5, r6, lr} 748 .LCFI5: 749 .cfi_def_cfa_offset 16 750 .cfi_offset 4, -16 751 .cfi_offset 5, -12 752 .cfi_offset 6, -8 753 .cfi_offset 14, -4 754 0002 041E subs r4, r0, #0 755 .LVL56: 653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 756 .loc 1 653 0 757 0004 43D0 beq .L63 662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 758 .loc 1 662 0 759 0006 836B ldr r3, [r0, #56] 760 0008 0222 movs r2, #2 761 000a 1343 orrs r3, r2 762 000c 8363 str r3, [r0, #56] 665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 763 .loc 1 665 0 764 000e FFF7FEFF bl ADC_ConversionStop 765 .LVL57: 766 0012 051E subs r5, r0, #0 767 .LVL58: 668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 768 .loc 1 668 0 769 0014 06D0 beq .L64 770 .LVL59: 771 .L61: 684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 772 .loc 1 684 0 773 0016 012D cmp r5, #1 774 0018 0DD1 bne .L65 775 .L62: 762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 776 .loc 1 762 0 777 001a 3423 movs r3, #52 778 001c 0022 movs r2, #0 779 001e E254 strb r2, [r4, r3] 780 .LVL60: 781 .L60: 766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 782 .loc 1 766 0 783 0020 2800 movs r0, r5 784 @ sp needed 785 .LVL61: 786 0022 70BD pop {r4, r5, r6, pc} 787 .LVL62: 788 .L64: 671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 789 .loc 1 671 0 790 0024 2000 movs r0, r4 791 .LVL63: 792 0026 FFF7FEFF bl ADC_Disable 793 .LVL64: 794 002a 0500 movs r5, r0 795 .LVL65: ARM GAS /tmp/ccbNWEOT.s page 58 674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 796 .loc 1 674 0 797 002c 0128 cmp r0, #1 798 002e F2D0 beq .L61 677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 799 .loc 1 677 0 800 0030 0123 movs r3, #1 801 0032 A363 str r3, [r4, #56] 802 0034 EFE7 b .L61 803 .LVL66: 804 .L65: 689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_IT_EOS | ADC_IT_EOC | 805 .loc 1 689 0 806 0036 2168 ldr r1, [r4] 807 0038 4B68 ldr r3, [r1, #4] 808 003a 9F22 movs r2, #159 809 003c 9343 bics r3, r2 810 003e 4B60 str r3, [r1, #4] 694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_FLAG_EOS | ADC_FLAG_EOC | 811 .loc 1 694 0 812 0040 2368 ldr r3, [r4] 813 0042 1A60 str r2, [r3] 703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_AUTOFF | ADC_CFGR1_WAIT | ADC_CFGR1_CONT | ADC_CFGR1_ 814 .loc 1 703 0 815 0044 2268 ldr r2, [r4] 816 0046 D368 ldr r3, [r2, #12] 817 0048 1249 ldr r1, .L66 818 004a 0B40 ands r3, r1 819 004c D360 str r3, [r2, #12] 711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 820 .loc 1 711 0 821 004e 2268 ldr r2, [r4] 822 0050 1369 ldr r3, [r2, #16] 823 0052 9B00 lsls r3, r3, #2 824 0054 9B08 lsrs r3, r3, #2 825 0056 1361 str r3, [r2, #16] 714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 826 .loc 1 714 0 827 0058 2268 ldr r2, [r4] 828 005a 5369 ldr r3, [r2, #20] 829 005c 0721 movs r1, #7 830 005e 8B43 bics r3, r1 831 0060 5361 str r3, [r2, #20] 717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 832 .loc 1 717 0 833 0062 2268 ldr r2, [r4] 834 0064 136A ldr r3, [r2, #32] 835 0066 0C49 ldr r1, .L66+4 836 0068 0B40 ands r3, r1 837 006a 1362 str r3, [r2, #32] 720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CHSELR_CHSEL15 | ADC_CHSELR_CHSEL14 | ADC_CHSELR_CHSEL13 | ADC_ 838 .loc 1 720 0 839 006c 2268 ldr r2, [r4] 840 006e 936A ldr r3, [r2, #40] 841 0070 DB0C lsrs r3, r3, #19 842 0072 DB04 lsls r3, r3, #19 843 0074 9362 str r3, [r2, #40] ARM GAS /tmp/ccbNWEOT.s page 59 730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 844 .loc 1 730 0 845 0076 094A ldr r2, .L66+8 846 0078 1368 ldr r3, [r2] 847 007a 0949 ldr r1, .L66+12 848 007c 0B40 ands r3, r1 849 007e 1360 str r3, [r2] 751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ 850 .loc 1 751 0 851 0080 2000 movs r0, r4 852 0082 FFF7FEFF bl HAL_ADC_MspDeInit 853 .LVL67: 755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 854 .loc 1 755 0 855 0086 0023 movs r3, #0 856 0088 E363 str r3, [r4, #60] 758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 857 .loc 1 758 0 858 008a A363 str r3, [r4, #56] 859 008c C5E7 b .L62 860 .LVL68: 861 .L63: 655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 862 .loc 1 655 0 863 008e 0125 movs r5, #1 864 0090 C6E7 b .L60 865 .L67: 866 0092 C046 .align 2 867 .L66: 868 0094 00023E83 .word -2093088256 869 0098 00F000F0 .word -268374016 870 009c 08270140 .word 1073817352 871 00a0 FFFF3FFE .word -29360129 872 .cfi_endproc 873 .LFE41: 875 .section .text.HAL_ADC_Start,"ax",%progbits 876 .align 1 877 .global HAL_ADC_Start 878 .syntax unified 879 .code 16 880 .thumb_func 881 .fpu softvfp 883 HAL_ADC_Start: 884 .LFB44: 1028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 885 .loc 1 1028 0 886 .cfi_startproc 887 @ args = 0, pretend = 0, frame = 0 888 @ frame_needed = 0, uses_anonymous_args = 0 889 .LVL69: 890 0000 10B5 push {r4, lr} 891 .LCFI6: 892 .cfi_def_cfa_offset 8 893 .cfi_offset 4, -8 894 .cfi_offset 14, -4 895 0002 0400 movs r4, r0 896 .LVL70: ARM GAS /tmp/ccbNWEOT.s page 60 1035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 897 .loc 1 1035 0 898 0004 0368 ldr r3, [r0] 899 0006 9B68 ldr r3, [r3, #8] 900 0008 5B07 lsls r3, r3, #29 901 000a 23D4 bmi .L71 1038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 902 .loc 1 1038 0 903 000c 3423 movs r3, #52 904 000e C35C ldrb r3, [r0, r3] 905 0010 012B cmp r3, #1 906 0012 21D0 beq .L72 1038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 907 .loc 1 1038 0 is_stmt 0 discriminator 2 908 0014 3423 movs r3, #52 909 0016 0122 movs r2, #1 910 0018 C254 strb r2, [r0, r3] 1043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 911 .loc 1 1043 0 is_stmt 1 discriminator 2 912 001a 437E ldrb r3, [r0, #25] 913 001c 012B cmp r3, #1 914 001e 14D1 bne .L74 1029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 915 .loc 1 1029 0 916 0020 0020 movs r0, #0 917 .LVL71: 918 .L70: 1054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_A 919 .loc 1 1054 0 920 0022 A36B ldr r3, [r4, #56] 921 0024 0D4A ldr r2, .L75 922 0026 1A40 ands r2, r3 923 0028 8023 movs r3, #128 924 002a 5B00 lsls r3, r3, #1 925 002c 1343 orrs r3, r2 926 002e A363 str r3, [r4, #56] 1059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 927 .loc 1 1059 0 928 0030 0023 movs r3, #0 929 0032 E363 str r3, [r4, #60] 1064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 930 .loc 1 1064 0 931 0034 3422 movs r2, #52 932 0036 A354 strb r3, [r4, r2] 1069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 933 .loc 1 1069 0 934 0038 2368 ldr r3, [r4] 935 003a 183A subs r2, r2, #24 936 003c 1A60 str r2, [r3] 1075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 937 .loc 1 1075 0 938 003e 2268 ldr r2, [r4] 939 0040 9368 ldr r3, [r2, #8] 940 0042 0421 movs r1, #4 941 0044 0B43 orrs r3, r1 942 0046 9360 str r3, [r2, #8] 943 .L69: ARM GAS /tmp/ccbNWEOT.s page 61 1085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 944 .loc 1 1085 0 945 @ sp needed 946 .LVL72: 947 0048 10BD pop {r4, pc} 948 .LVL73: 949 .L74: 1045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 950 .loc 1 1045 0 951 004a FFF7FEFF bl ADC_Enable 952 .LVL74: 1049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 953 .loc 1 1049 0 954 004e 0028 cmp r0, #0 955 0050 E7D0 beq .L70 956 0052 F9E7 b .L69 957 .LVL75: 958 .L71: 1080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 959 .loc 1 1080 0 960 0054 0220 movs r0, #2 961 .LVL76: 962 0056 F7E7 b .L69 963 .LVL77: 964 .L72: 1038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 965 .loc 1 1038 0 966 0058 0220 movs r0, #2 967 .LVL78: 968 005a F5E7 b .L69 969 .L76: 970 .align 2 971 .L75: 972 005c FEF0FFFF .word -3842 973 .cfi_endproc 974 .LFE44: 976 .section .text.HAL_ADC_Stop,"ax",%progbits 977 .align 1 978 .global HAL_ADC_Stop 979 .syntax unified 980 .code 16 981 .thumb_func 982 .fpu softvfp 984 HAL_ADC_Stop: 985 .LFB45: 1093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 986 .loc 1 1093 0 987 .cfi_startproc 988 @ args = 0, pretend = 0, frame = 0 989 @ frame_needed = 0, uses_anonymous_args = 0 990 .LVL79: 991 0000 10B5 push {r4, lr} 992 .LCFI7: 993 .cfi_def_cfa_offset 8 994 .cfi_offset 4, -8 995 .cfi_offset 14, -4 996 0002 0400 movs r4, r0 ARM GAS /tmp/ccbNWEOT.s page 62 997 .LVL80: 1100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 998 .loc 1 1100 0 999 0004 3423 movs r3, #52 1000 0006 C35C ldrb r3, [r0, r3] 1001 0008 012B cmp r3, #1 1002 000a 17D0 beq .L80 1100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1003 .loc 1 1100 0 is_stmt 0 discriminator 2 1004 000c 3423 movs r3, #52 1005 000e 0122 movs r2, #1 1006 0010 C254 strb r2, [r0, r3] 1103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1007 .loc 1 1103 0 is_stmt 1 discriminator 2 1008 0012 FFF7FEFF bl ADC_ConversionStop 1009 .LVL81: 1106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1010 .loc 1 1106 0 discriminator 2 1011 0016 0028 cmp r0, #0 1012 0018 03D0 beq .L81 1013 .LVL82: 1014 .L79: 1122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1015 .loc 1 1122 0 1016 001a 3423 movs r3, #52 1017 001c 0022 movs r2, #0 1018 001e E254 strb r2, [r4, r3] 1019 .LVL83: 1020 .L78: 1126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1021 .loc 1 1126 0 1022 @ sp needed 1023 .LVL84: 1024 0020 10BD pop {r4, pc} 1025 .LVL85: 1026 .L81: 1109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1027 .loc 1 1109 0 1028 0022 2000 movs r0, r4 1029 .LVL86: 1030 0024 FFF7FEFF bl ADC_Disable 1031 .LVL87: 1112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1032 .loc 1 1112 0 1033 0028 0028 cmp r0, #0 1034 002a F6D1 bne .L79 1115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, 1035 .loc 1 1115 0 1036 002c A36B ldr r3, [r4, #56] 1037 002e 044A ldr r2, .L82 1038 0030 1340 ands r3, r2 1039 0032 0432 adds r2, r2, #4 1040 0034 FF32 adds r2, r2, #255 1041 0036 1343 orrs r3, r2 1042 0038 A363 str r3, [r4, #56] 1043 003a EEE7 b .L79 1044 .LVL88: ARM GAS /tmp/ccbNWEOT.s page 63 1045 .L80: 1100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1046 .loc 1 1100 0 1047 003c 0220 movs r0, #2 1048 .LVL89: 1049 003e EFE7 b .L78 1050 .L83: 1051 .align 2 1052 .L82: 1053 0040 FEFEFFFF .word -258 1054 .cfi_endproc 1055 .LFE45: 1057 .section .text.HAL_ADC_PollForConversion,"ax",%progbits 1058 .align 1 1059 .global HAL_ADC_PollForConversion 1060 .syntax unified 1061 .code 16 1062 .thumb_func 1063 .fpu softvfp 1065 HAL_ADC_PollForConversion: 1066 .LFB46: 1147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t tickstart; 1067 .loc 1 1147 0 1068 .cfi_startproc 1069 @ args = 0, pretend = 0, frame = 0 1070 @ frame_needed = 0, uses_anonymous_args = 0 1071 .LVL90: 1072 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 1073 .LCFI8: 1074 .cfi_def_cfa_offset 24 1075 .cfi_offset 3, -24 1076 .cfi_offset 4, -20 1077 .cfi_offset 5, -16 1078 .cfi_offset 6, -12 1079 .cfi_offset 7, -8 1080 .cfi_offset 14, -4 1081 0002 0400 movs r4, r0 1082 0004 0D00 movs r5, r1 1155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1083 .loc 1 1155 0 1084 0006 4369 ldr r3, [r0, #20] 1085 0008 082B cmp r3, #8 1086 000a 26D0 beq .L93 1168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1087 .loc 1 1168 0 1088 000c 0368 ldr r3, [r0] 1089 000e DB68 ldr r3, [r3, #12] 1090 0010 DB07 lsls r3, r3, #31 1091 0012 19D4 bmi .L96 1180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1092 .loc 1 1180 0 1093 0014 0C26 movs r6, #12 1094 .L85: 1095 .LVL91: 1185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1096 .loc 1 1185 0 1097 0016 FFF7FEFF bl HAL_GetTick ARM GAS /tmp/ccbNWEOT.s page 64 1098 .LVL92: 1099 001a 0700 movs r7, r0 1100 .LVL93: 1101 .L88: 1188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1102 .loc 1 1188 0 1103 001c 2368 ldr r3, [r4] 1104 001e 1A68 ldr r2, [r3] 1105 0020 1642 tst r6, r2 1106 0022 1CD1 bne .L97 1191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1107 .loc 1 1191 0 1108 0024 6B1C adds r3, r5, #1 1109 0026 F9D0 beq .L88 1193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1110 .loc 1 1193 0 1111 0028 002D cmp r5, #0 1112 002a 04D0 beq .L89 1193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1113 .loc 1 1193 0 is_stmt 0 discriminator 1 1114 002c FFF7FEFF bl HAL_GetTick 1115 .LVL94: 1116 0030 C01B subs r0, r0, r7 1117 0032 A842 cmp r0, r5 1118 0034 F2D9 bls .L88 1119 .L89: 1196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1120 .loc 1 1196 0 is_stmt 1 1121 0036 A36B ldr r3, [r4, #56] 1122 0038 0422 movs r2, #4 1123 003a 1343 orrs r3, r2 1124 003c A363 str r3, [r4, #56] 1199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1125 .loc 1 1199 0 1126 003e 3423 movs r3, #52 1127 0040 0022 movs r2, #0 1128 0042 E254 strb r2, [r4, r3] 1201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1129 .loc 1 1201 0 1130 0044 0320 movs r0, #3 1131 0046 07E0 b .L86 1132 .LVL95: 1133 .L96: 1171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1134 .loc 1 1171 0 1135 0048 836B ldr r3, [r0, #56] 1136 004a 2022 movs r2, #32 1137 004c 1343 orrs r3, r2 1138 004e 8363 str r3, [r0, #56] 1174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1139 .loc 1 1174 0 1140 0050 3423 movs r3, #52 1141 0052 0022 movs r2, #0 1142 0054 C254 strb r2, [r0, r3] 1176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1143 .loc 1 1176 0 1144 0056 0120 movs r0, #1 ARM GAS /tmp/ccbNWEOT.s page 65 1145 .LVL96: 1146 .L86: 1254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1147 .loc 1 1254 0 1148 @ sp needed 1149 .LVL97: 1150 .LVL98: 1151 0058 F8BD pop {r3, r4, r5, r6, r7, pc} 1152 .LVL99: 1153 .L93: 1157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1154 .loc 1 1157 0 1155 005a 0826 movs r6, #8 1156 005c DBE7 b .L85 1157 .LVL100: 1158 .L97: 1207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1159 .loc 1 1207 0 1160 005e A16B ldr r1, [r4, #56] 1161 0060 8022 movs r2, #128 1162 0062 9200 lsls r2, r2, #2 1163 0064 0A43 orrs r2, r1 1164 0066 A263 str r2, [r4, #56] 1211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (hadc->Init.ContinuousConvMode == DISABLE) ) 1165 .loc 1 1211 0 1166 0068 D968 ldr r1, [r3, #12] 1167 006a C022 movs r2, #192 1168 006c 1201 lsls r2, r2, #4 1169 006e 1142 tst r1, r2 1170 0070 13D1 bne .L91 1212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1171 .loc 1 1212 0 discriminator 1 1172 0072 A27E ldrb r2, [r4, #26] 1211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (hadc->Init.ContinuousConvMode == DISABLE) ) 1173 .loc 1 1211 0 discriminator 1 1174 0074 002A cmp r2, #0 1175 0076 10D1 bne .L91 1215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1176 .loc 1 1215 0 1177 0078 1A68 ldr r2, [r3] 1178 007a 1207 lsls r2, r2, #28 1179 007c 0DD5 bpl .L91 1219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1180 .loc 1 1219 0 1181 007e 9A68 ldr r2, [r3, #8] 1182 0080 5207 lsls r2, r2, #29 1183 0082 12D4 bmi .L92 1225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1184 .loc 1 1225 0 1185 0084 5A68 ldr r2, [r3, #4] 1186 0086 0C21 movs r1, #12 1187 0088 8A43 bics r2, r1 1188 008a 5A60 str r2, [r3, #4] 1228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, 1189 .loc 1 1228 0 1190 008c A36B ldr r3, [r4, #56] 1191 008e 0C4A ldr r2, .L98 ARM GAS /tmp/ccbNWEOT.s page 66 1192 0090 1340 ands r3, r2 1193 0092 0432 adds r2, r2, #4 1194 0094 FF32 adds r2, r2, #255 1195 0096 1343 orrs r3, r2 1196 0098 A363 str r3, [r4, #56] 1197 .L91: 1246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1198 .loc 1 1246 0 1199 009a 237E ldrb r3, [r4, #24] 1200 009c 002B cmp r3, #0 1201 009e 0DD1 bne .L95 1249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1202 .loc 1 1249 0 1203 00a0 2368 ldr r3, [r4] 1204 00a2 0C22 movs r2, #12 1205 00a4 1A60 str r2, [r3] 1253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1206 .loc 1 1253 0 1207 00a6 0020 movs r0, #0 1208 00a8 D6E7 b .L86 1209 .L92: 1235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1210 .loc 1 1235 0 1211 00aa A36B ldr r3, [r4, #56] 1212 00ac 2022 movs r2, #32 1213 00ae 1343 orrs r3, r2 1214 00b0 A363 str r3, [r4, #56] 1238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1215 .loc 1 1238 0 1216 00b2 E36B ldr r3, [r4, #60] 1217 00b4 1F3A subs r2, r2, #31 1218 00b6 1343 orrs r3, r2 1219 00b8 E363 str r3, [r4, #60] 1220 00ba EEE7 b .L91 1221 .L95: 1253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1222 .loc 1 1253 0 1223 00bc 0020 movs r0, #0 1224 00be CBE7 b .L86 1225 .L99: 1226 .align 2 1227 .L98: 1228 00c0 FEFEFFFF .word -258 1229 .cfi_endproc 1230 .LFE46: 1232 .section .text.HAL_ADC_PollForEvent,"ax",%progbits 1233 .align 1 1234 .global HAL_ADC_PollForEvent 1235 .syntax unified 1236 .code 16 1237 .thumb_func 1238 .fpu softvfp 1240 HAL_ADC_PollForEvent: 1241 .LFB47: 1267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** uint32_t tickstart=0; 1242 .loc 1 1267 0 1243 .cfi_startproc ARM GAS /tmp/ccbNWEOT.s page 67 1244 @ args = 0, pretend = 0, frame = 0 1245 @ frame_needed = 0, uses_anonymous_args = 0 1246 .LVL101: 1247 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 1248 .LCFI9: 1249 .cfi_def_cfa_offset 24 1250 .cfi_offset 3, -24 1251 .cfi_offset 4, -20 1252 .cfi_offset 5, -16 1253 .cfi_offset 6, -12 1254 .cfi_offset 7, -8 1255 .cfi_offset 14, -4 1256 0002 0500 movs r5, r0 1257 0004 0C00 movs r4, r1 1258 0006 1600 movs r6, r2 1259 .LVL102: 1275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1260 .loc 1 1275 0 1261 0008 FFF7FEFF bl HAL_GetTick 1262 .LVL103: 1263 000c 0700 movs r7, r0 1264 .LVL104: 1265 .L102: 1278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1266 .loc 1 1278 0 1267 000e 2A68 ldr r2, [r5] 1268 0010 1368 ldr r3, [r2] 1269 0012 2340 ands r3, r4 1270 0014 A342 cmp r3, r4 1271 0016 11D0 beq .L110 1281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1272 .loc 1 1281 0 1273 0018 731C adds r3, r6, #1 1274 001a F8D0 beq .L102 1283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1275 .loc 1 1283 0 1276 001c 002E cmp r6, #0 1277 001e 04D0 beq .L103 1283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1278 .loc 1 1283 0 is_stmt 0 discriminator 1 1279 0020 FFF7FEFF bl HAL_GetTick 1280 .LVL105: 1281 0024 C01B subs r0, r0, r7 1282 0026 B042 cmp r0, r6 1283 0028 F1D9 bls .L102 1284 .L103: 1286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1285 .loc 1 1286 0 is_stmt 1 1286 002a AB6B ldr r3, [r5, #56] 1287 002c 0422 movs r2, #4 1288 002e 1343 orrs r3, r2 1289 0030 AB63 str r3, [r5, #56] 1289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1290 .loc 1 1289 0 1291 0032 3423 movs r3, #52 1292 0034 0022 movs r2, #0 1293 0036 EA54 strb r2, [r5, r3] ARM GAS /tmp/ccbNWEOT.s page 68 1291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1294 .loc 1 1291 0 1295 0038 0320 movs r0, #3 1296 003a 07E0 b .L104 1297 .L110: 1296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1298 .loc 1 1296 0 1299 003c 802C cmp r4, #128 1300 003e 06D0 beq .L111 1313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1301 .loc 1 1313 0 1302 0040 AB6A ldr r3, [r5, #40] 1303 0042 012B cmp r3, #1 1304 0044 0CD0 beq .L112 1305 .L108: 1323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 1306 .loc 1 1323 0 1307 0046 1023 movs r3, #16 1308 0048 1360 str r3, [r2] 1328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1309 .loc 1 1328 0 1310 004a 0020 movs r0, #0 1311 .L104: 1329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1312 .loc 1 1329 0 1313 @ sp needed 1314 .LVL106: 1315 .LVL107: 1316 .LVL108: 1317 .LVL109: 1318 004c F8BD pop {r3, r4, r5, r6, r7, pc} 1319 .LVL110: 1320 .L111: 1301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1321 .loc 1 1301 0 1322 004e A96B ldr r1, [r5, #56] 1323 0050 8023 movs r3, #128 1324 0052 5B02 lsls r3, r3, #9 1325 0054 0B43 orrs r3, r1 1326 0056 AB63 str r3, [r5, #56] 1304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 1327 .loc 1 1304 0 1328 0058 8023 movs r3, #128 1329 005a 1360 str r3, [r2] 1328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1330 .loc 1 1328 0 1331 005c 0020 movs r0, #0 1305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1332 .loc 1 1305 0 1333 005e F5E7 b .L104 1334 .L112: 1316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1335 .loc 1 1316 0 1336 0060 A96B ldr r1, [r5, #56] 1337 0062 8023 movs r3, #128 1338 0064 DB00 lsls r3, r3, #3 1339 0066 0B43 orrs r3, r1 ARM GAS /tmp/ccbNWEOT.s page 69 1340 0068 AB63 str r3, [r5, #56] 1319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1341 .loc 1 1319 0 1342 006a EB6B ldr r3, [r5, #60] 1343 006c 0221 movs r1, #2 1344 006e 0B43 orrs r3, r1 1345 0070 EB63 str r3, [r5, #60] 1346 0072 E8E7 b .L108 1347 .cfi_endproc 1348 .LFE47: 1350 .section .text.HAL_ADC_Start_IT,"ax",%progbits 1351 .align 1 1352 .global HAL_ADC_Start_IT 1353 .syntax unified 1354 .code 16 1355 .thumb_func 1356 .fpu softvfp 1358 HAL_ADC_Start_IT: 1359 .LFB48: 1343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 1360 .loc 1 1343 0 1361 .cfi_startproc 1362 @ args = 0, pretend = 0, frame = 0 1363 @ frame_needed = 0, uses_anonymous_args = 0 1364 .LVL111: 1365 0000 10B5 push {r4, lr} 1366 .LCFI10: 1367 .cfi_def_cfa_offset 8 1368 .cfi_offset 4, -8 1369 .cfi_offset 14, -4 1370 0002 0400 movs r4, r0 1371 .LVL112: 1350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1372 .loc 1 1350 0 1373 0004 0368 ldr r3, [r0] 1374 0006 9B68 ldr r3, [r3, #8] 1375 0008 5B07 lsls r3, r3, #29 1376 000a 36D4 bmi .L119 1353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1377 .loc 1 1353 0 1378 000c 3423 movs r3, #52 1379 000e C35C ldrb r3, [r0, r3] 1380 0010 012B cmp r3, #1 1381 0012 34D0 beq .L120 1353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1382 .loc 1 1353 0 is_stmt 0 discriminator 2 1383 0014 3423 movs r3, #52 1384 0016 0122 movs r2, #1 1385 0018 C254 strb r2, [r0, r3] 1358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1386 .loc 1 1358 0 is_stmt 1 discriminator 2 1387 001a 437E ldrb r3, [r0, #25] 1388 001c 012B cmp r3, #1 1389 001e 21D1 bne .L123 1344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1390 .loc 1 1344 0 1391 0020 0020 movs r0, #0 ARM GAS /tmp/ccbNWEOT.s page 70 1392 .LVL113: 1393 .L115: 1369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_A 1394 .loc 1 1369 0 1395 0022 A36B ldr r3, [r4, #56] 1396 0024 174A ldr r2, .L124 1397 0026 1A40 ands r2, r3 1398 0028 8023 movs r3, #128 1399 002a 5B00 lsls r3, r3, #1 1400 002c 1343 orrs r3, r2 1401 002e A363 str r3, [r4, #56] 1374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1402 .loc 1 1374 0 1403 0030 0023 movs r3, #0 1404 0032 E363 str r3, [r4, #60] 1379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1405 .loc 1 1379 0 1406 0034 3422 movs r2, #52 1407 0036 A354 strb r3, [r4, r2] 1384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1408 .loc 1 1384 0 1409 0038 2368 ldr r3, [r4] 1410 003a 183A subs r2, r2, #24 1411 003c 1A60 str r2, [r3] 1388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1412 .loc 1 1388 0 1413 003e 6369 ldr r3, [r4, #20] 1414 0040 082B cmp r3, #8 1415 0042 14D1 bne .L122 1391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_ENABLE_IT(hadc, (ADC_IT_EOS | ADC_IT_OVR)); 1416 .loc 1 1391 0 1417 0044 2268 ldr r2, [r4] 1418 0046 5368 ldr r3, [r2, #4] 1419 0048 0421 movs r1, #4 1420 004a 8B43 bics r3, r1 1421 004c 5360 str r3, [r2, #4] 1392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 1422 .loc 1 1392 0 1423 004e 2268 ldr r2, [r4] 1424 0050 5368 ldr r3, [r2, #4] 1425 0052 1431 adds r1, r1, #20 1426 0054 0B43 orrs r3, r1 1427 0056 5360 str r3, [r2, #4] 1428 .L118: 1404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1429 .loc 1 1404 0 1430 0058 2268 ldr r2, [r4] 1431 005a 9368 ldr r3, [r2, #8] 1432 005c 0421 movs r1, #4 1433 005e 0B43 orrs r3, r1 1434 0060 9360 str r3, [r2, #8] 1435 .L114: 1414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1436 .loc 1 1414 0 1437 @ sp needed 1438 .LVL114: 1439 0062 10BD pop {r4, pc} ARM GAS /tmp/ccbNWEOT.s page 71 1440 .LVL115: 1441 .L123: 1360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1442 .loc 1 1360 0 1443 0064 FFF7FEFF bl ADC_Enable 1444 .LVL116: 1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1445 .loc 1 1364 0 1446 0068 0028 cmp r0, #0 1447 006a DAD0 beq .L115 1448 006c F9E7 b .L114 1449 .LVL117: 1450 .L122: 1396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** break; 1451 .loc 1 1396 0 1452 006e 2268 ldr r2, [r4] 1453 0070 5368 ldr r3, [r2, #4] 1454 0072 1C21 movs r1, #28 1455 0074 0B43 orrs r3, r1 1456 0076 5360 str r3, [r2, #4] 1397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1457 .loc 1 1397 0 1458 0078 EEE7 b .L118 1459 .LVL118: 1460 .L119: 1409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1461 .loc 1 1409 0 1462 007a 0220 movs r0, #2 1463 .LVL119: 1464 007c F1E7 b .L114 1465 .LVL120: 1466 .L120: 1353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1467 .loc 1 1353 0 1468 007e 0220 movs r0, #2 1469 .LVL121: 1470 0080 EFE7 b .L114 1471 .L125: 1472 0082 C046 .align 2 1473 .L124: 1474 0084 FEF0FFFF .word -3842 1475 .cfi_endproc 1476 .LFE48: 1478 .section .text.HAL_ADC_Stop_IT,"ax",%progbits 1479 .align 1 1480 .global HAL_ADC_Stop_IT 1481 .syntax unified 1482 .code 16 1483 .thumb_func 1484 .fpu softvfp 1486 HAL_ADC_Stop_IT: 1487 .LFB49: 1424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 1488 .loc 1 1424 0 1489 .cfi_startproc 1490 @ args = 0, pretend = 0, frame = 0 1491 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccbNWEOT.s page 72 1492 .LVL122: 1493 0000 10B5 push {r4, lr} 1494 .LCFI11: 1495 .cfi_def_cfa_offset 8 1496 .cfi_offset 4, -8 1497 .cfi_offset 14, -4 1498 0002 0400 movs r4, r0 1499 .LVL123: 1431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1500 .loc 1 1431 0 1501 0004 3423 movs r3, #52 1502 0006 C35C ldrb r3, [r0, r3] 1503 0008 012B cmp r3, #1 1504 000a 1CD0 beq .L129 1431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1505 .loc 1 1431 0 is_stmt 0 discriminator 2 1506 000c 3423 movs r3, #52 1507 000e 0122 movs r2, #1 1508 0010 C254 strb r2, [r0, r3] 1434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1509 .loc 1 1434 0 is_stmt 1 discriminator 2 1510 0012 FFF7FEFF bl ADC_ConversionStop 1511 .LVL124: 1437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1512 .loc 1 1437 0 discriminator 2 1513 0016 0028 cmp r0, #0 1514 0018 03D0 beq .L130 1515 .LVL125: 1516 .L128: 1457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1517 .loc 1 1457 0 1518 001a 3423 movs r3, #52 1519 001c 0022 movs r2, #0 1520 001e E254 strb r2, [r4, r3] 1521 .LVL126: 1522 .L127: 1461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1523 .loc 1 1461 0 1524 @ sp needed 1525 .LVL127: 1526 0020 10BD pop {r4, pc} 1527 .LVL128: 1528 .L130: 1441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1529 .loc 1 1441 0 1530 0022 2268 ldr r2, [r4] 1531 0024 5368 ldr r3, [r2, #4] 1532 0026 1C21 movs r1, #28 1533 0028 8B43 bics r3, r1 1534 002a 5360 str r3, [r2, #4] 1444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1535 .loc 1 1444 0 1536 002c 2000 movs r0, r4 1537 .LVL129: 1538 002e FFF7FEFF bl ADC_Disable 1539 .LVL130: 1447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { ARM GAS /tmp/ccbNWEOT.s page 73 1540 .loc 1 1447 0 1541 0032 0028 cmp r0, #0 1542 0034 F1D1 bne .L128 1450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, 1543 .loc 1 1450 0 1544 0036 A36B ldr r3, [r4, #56] 1545 0038 044A ldr r2, .L131 1546 003a 1340 ands r3, r2 1547 003c 0432 adds r2, r2, #4 1548 003e FF32 adds r2, r2, #255 1549 0040 1343 orrs r3, r2 1550 0042 A363 str r3, [r4, #56] 1551 0044 E9E7 b .L128 1552 .LVL131: 1553 .L129: 1431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1554 .loc 1 1431 0 1555 0046 0220 movs r0, #2 1556 .LVL132: 1557 0048 EAE7 b .L127 1558 .L132: 1559 004a C046 .align 2 1560 .L131: 1561 004c FEFEFFFF .word -258 1562 .cfi_endproc 1563 .LFE49: 1565 .section .text.HAL_ADC_Start_DMA,"ax",%progbits 1566 .align 1 1567 .global HAL_ADC_Start_DMA 1568 .syntax unified 1569 .code 16 1570 .thumb_func 1571 .fpu softvfp 1573 HAL_ADC_Start_DMA: 1574 .LFB50: 1477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 1575 .loc 1 1477 0 1576 .cfi_startproc 1577 @ args = 0, pretend = 0, frame = 0 1578 @ frame_needed = 0, uses_anonymous_args = 0 1579 .LVL133: 1580 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 1581 .LCFI12: 1582 .cfi_def_cfa_offset 24 1583 .cfi_offset 3, -24 1584 .cfi_offset 4, -20 1585 .cfi_offset 5, -16 1586 .cfi_offset 6, -12 1587 .cfi_offset 7, -8 1588 .cfi_offset 14, -4 1589 0002 0400 movs r4, r0 1590 0004 0E00 movs r6, r1 1591 0006 1700 movs r7, r2 1592 .LVL134: 1484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1593 .loc 1 1484 0 1594 0008 0368 ldr r3, [r0] ARM GAS /tmp/ccbNWEOT.s page 74 1595 000a 9B68 ldr r3, [r3, #8] 1596 000c 5B07 lsls r3, r3, #29 1597 000e 3ED4 bmi .L136 1487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1598 .loc 1 1487 0 1599 0010 3423 movs r3, #52 1600 0012 C35C ldrb r3, [r0, r3] 1601 0014 012B cmp r3, #1 1602 0016 3CD0 beq .L137 1487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1603 .loc 1 1487 0 is_stmt 0 discriminator 2 1604 0018 3423 movs r3, #52 1605 001a 0122 movs r2, #1 1606 .LVL135: 1607 001c C254 strb r2, [r0, r3] 1492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1608 .loc 1 1492 0 is_stmt 1 discriminator 2 1609 001e 437E ldrb r3, [r0, #25] 1610 0020 012B cmp r3, #1 1611 0022 32D0 beq .L138 1494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1612 .loc 1 1494 0 1613 0024 FFF7FEFF bl ADC_Enable 1614 .LVL136: 1615 0028 051E subs r5, r0, #0 1616 .LVL137: 1498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1617 .loc 1 1498 0 1618 002a 2CD1 bne .L134 1619 .LVL138: 1620 .L135: 1503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR | HAL_A 1621 .loc 1 1503 0 1622 002c A36B ldr r3, [r4, #56] 1623 002e 1A4A ldr r2, .L139 1624 0030 1A40 ands r2, r3 1625 0032 8023 movs r3, #128 1626 0034 5B00 lsls r3, r3, #1 1627 0036 1343 orrs r3, r2 1628 0038 A363 str r3, [r4, #56] 1508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1629 .loc 1 1508 0 1630 003a 0023 movs r3, #0 1631 003c E363 str r3, [r4, #60] 1513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1632 .loc 1 1513 0 1633 003e 3422 movs r2, #52 1634 0040 A354 strb r3, [r4, r2] 1516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1635 .loc 1 1516 0 1636 0042 236B ldr r3, [r4, #48] 1637 0044 154A ldr r2, .L139+4 1638 0046 9A62 str r2, [r3, #40] 1519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1639 .loc 1 1519 0 1640 0048 236B ldr r3, [r4, #48] 1641 004a 154A ldr r2, .L139+8 ARM GAS /tmp/ccbNWEOT.s page 75 1642 004c DA62 str r2, [r3, #44] 1522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1643 .loc 1 1522 0 1644 004e 236B ldr r3, [r4, #48] 1645 0050 144A ldr r2, .L139+12 1646 0052 1A63 str r2, [r3, #48] 1531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1647 .loc 1 1531 0 1648 0054 2368 ldr r3, [r4] 1649 0056 1C22 movs r2, #28 1650 0058 1A60 str r2, [r3] 1534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1651 .loc 1 1534 0 1652 005a 2268 ldr r2, [r4] 1653 005c 5368 ldr r3, [r2, #4] 1654 005e 1021 movs r1, #16 1655 0060 0B43 orrs r3, r1 1656 0062 5360 str r3, [r2, #4] 1537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1657 .loc 1 1537 0 1658 0064 2268 ldr r2, [r4] 1659 0066 D368 ldr r3, [r2, #12] 1660 0068 0F39 subs r1, r1, #15 1661 006a 0B43 orrs r3, r1 1662 006c D360 str r3, [r2, #12] 1540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1663 .loc 1 1540 0 1664 006e 2168 ldr r1, [r4] 1665 0070 4031 adds r1, r1, #64 1666 0072 3B00 movs r3, r7 1667 0074 3200 movs r2, r6 1668 0076 206B ldr r0, [r4, #48] 1669 0078 FFF7FEFF bl HAL_DMA_Start_IT 1670 .LVL139: 1546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1671 .loc 1 1546 0 1672 007c 2268 ldr r2, [r4] 1673 007e 9368 ldr r3, [r2, #8] 1674 0080 0421 movs r1, #4 1675 0082 0B43 orrs r3, r1 1676 0084 9360 str r3, [r2, #8] 1677 .L134: 1556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1678 .loc 1 1556 0 1679 0086 2800 movs r0, r5 1680 @ sp needed 1681 .LVL140: 1682 .LVL141: 1683 .LVL142: 1684 0088 F8BD pop {r3, r4, r5, r6, r7, pc} 1685 .LVL143: 1686 .L138: 1478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1687 .loc 1 1478 0 1688 008a 0025 movs r5, #0 1689 008c CEE7 b .L135 1690 .LVL144: ARM GAS /tmp/ccbNWEOT.s page 76 1691 .L136: 1551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1692 .loc 1 1551 0 1693 008e 0225 movs r5, #2 1694 0090 F9E7 b .L134 1695 .L137: 1487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1696 .loc 1 1487 0 1697 0092 0225 movs r5, #2 1698 0094 F7E7 b .L134 1699 .L140: 1700 0096 C046 .align 2 1701 .L139: 1702 0098 FEF0FFFF .word -3842 1703 009c 00000000 .word ADC_DMAConvCplt 1704 00a0 00000000 .word ADC_DMAHalfConvCplt 1705 00a4 00000000 .word ADC_DMAError 1706 .cfi_endproc 1707 .LFE50: 1709 .section .text.HAL_ADC_Stop_DMA,"ax",%progbits 1710 .align 1 1711 .global HAL_ADC_Stop_DMA 1712 .syntax unified 1713 .code 16 1714 .thumb_func 1715 .fpu softvfp 1717 HAL_ADC_Stop_DMA: 1718 .LFB51: 1566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 1719 .loc 1 1566 0 1720 .cfi_startproc 1721 @ args = 0, pretend = 0, frame = 0 1722 @ frame_needed = 0, uses_anonymous_args = 0 1723 .LVL145: 1724 0000 70B5 push {r4, r5, r6, lr} 1725 .LCFI13: 1726 .cfi_def_cfa_offset 16 1727 .cfi_offset 4, -16 1728 .cfi_offset 5, -12 1729 .cfi_offset 6, -8 1730 .cfi_offset 14, -4 1731 0002 0500 movs r5, r0 1732 .LVL146: 1573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1733 .loc 1 1573 0 1734 0004 3423 movs r3, #52 1735 0006 C35C ldrb r3, [r0, r3] 1736 0008 012B cmp r3, #1 1737 000a 32D0 beq .L147 1573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1738 .loc 1 1573 0 is_stmt 0 discriminator 2 1739 000c 3423 movs r3, #52 1740 000e 0122 movs r2, #1 1741 0010 C254 strb r2, [r0, r3] 1576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1742 .loc 1 1576 0 is_stmt 1 discriminator 2 1743 0012 FFF7FEFF bl ADC_ConversionStop ARM GAS /tmp/ccbNWEOT.s page 77 1744 .LVL147: 1745 0016 041E subs r4, r0, #0 1746 .LVL148: 1579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1747 .loc 1 1579 0 discriminator 2 1748 0018 04D0 beq .L148 1749 .LVL149: 1750 .L143: 1622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1751 .loc 1 1622 0 1752 001a 3423 movs r3, #52 1753 001c 0022 movs r2, #0 1754 001e EA54 strb r2, [r5, r3] 1755 .LVL150: 1756 .L142: 1626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1757 .loc 1 1626 0 1758 0020 2000 movs r0, r4 1759 @ sp needed 1760 .LVL151: 1761 0022 70BD pop {r4, r5, r6, pc} 1762 .LVL152: 1763 .L148: 1582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1764 .loc 1 1582 0 1765 0024 2A68 ldr r2, [r5] 1766 0026 D368 ldr r3, [r2, #12] 1767 0028 0121 movs r1, #1 1768 002a 8B43 bics r3, r1 1769 002c D360 str r3, [r2, #12] 1586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1770 .loc 1 1586 0 1771 002e 286B ldr r0, [r5, #48] 1772 .LVL153: 1773 0030 FFF7FEFF bl HAL_DMA_Abort 1774 .LVL154: 1775 0034 041E subs r4, r0, #0 1776 .LVL155: 1589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1777 .loc 1 1589 0 1778 0036 03D0 beq .L144 1592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1779 .loc 1 1592 0 1780 0038 AB6B ldr r3, [r5, #56] 1781 003a 4022 movs r2, #64 1782 003c 1343 orrs r3, r2 1783 003e AB63 str r3, [r5, #56] 1784 .L144: 1596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1785 .loc 1 1596 0 1786 0040 2A68 ldr r2, [r5] 1787 0042 5368 ldr r3, [r2, #4] 1788 0044 1021 movs r1, #16 1789 0046 8B43 bics r3, r1 1790 0048 5360 str r3, [r2, #4] 1601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1791 .loc 1 1601 0 ARM GAS /tmp/ccbNWEOT.s page 78 1792 004a 002C cmp r4, #0 1793 004c 0DD1 bne .L145 1603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1794 .loc 1 1603 0 1795 004e 2800 movs r0, r5 1796 .LVL156: 1797 0050 FFF7FEFF bl ADC_Disable 1798 .LVL157: 1799 0054 0400 movs r4, r0 1800 .LVL158: 1801 .L146: 1611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1802 .loc 1 1611 0 1803 0056 002C cmp r4, #0 1804 0058 DFD1 bne .L143 1614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, 1805 .loc 1 1614 0 1806 005a AB6B ldr r3, [r5, #56] 1807 005c 064A ldr r2, .L149 1808 005e 1340 ands r3, r2 1809 0060 0432 adds r2, r2, #4 1810 0062 FF32 adds r2, r2, #255 1811 0064 1343 orrs r3, r2 1812 0066 AB63 str r3, [r5, #56] 1813 0068 D7E7 b .L143 1814 .LVL159: 1815 .L145: 1607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1816 .loc 1 1607 0 1817 006a 2800 movs r0, r5 1818 .LVL160: 1819 006c FFF7FEFF bl ADC_Disable 1820 .LVL161: 1821 0070 F1E7 b .L146 1822 .LVL162: 1823 .L147: 1573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1824 .loc 1 1573 0 1825 0072 0224 movs r4, #2 1826 0074 D4E7 b .L142 1827 .L150: 1828 0076 C046 .align 2 1829 .L149: 1830 0078 FEFEFFFF .word -258 1831 .cfi_endproc 1832 .LFE51: 1834 .section .text.HAL_ADC_GetValue,"ax",%progbits 1835 .align 1 1836 .global HAL_ADC_GetValue 1837 .syntax unified 1838 .code 16 1839 .thumb_func 1840 .fpu softvfp 1842 HAL_ADC_GetValue: 1843 .LFB52: 1648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 1844 .loc 1 1648 0 ARM GAS /tmp/ccbNWEOT.s page 79 1845 .cfi_startproc 1846 @ args = 0, pretend = 0, frame = 0 1847 @ frame_needed = 0, uses_anonymous_args = 0 1848 @ link register save eliminated. 1849 .LVL163: 1656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1850 .loc 1 1656 0 1851 0000 0368 ldr r3, [r0] 1852 0002 186C ldr r0, [r3, #64] 1853 .LVL164: 1657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1854 .loc 1 1657 0 1855 @ sp needed 1856 0004 7047 bx lr 1857 .cfi_endproc 1858 .LFE52: 1860 .section .text.HAL_ADC_ConvCpltCallback,"ax",%progbits 1861 .align 1 1862 .weak HAL_ADC_ConvCpltCallback 1863 .syntax unified 1864 .code 16 1865 .thumb_func 1866 .fpu softvfp 1868 HAL_ADC_ConvCpltCallback: 1869 .LFB54: 1790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ 1870 .loc 1 1790 0 1871 .cfi_startproc 1872 @ args = 0, pretend = 0, frame = 0 1873 @ frame_needed = 0, uses_anonymous_args = 0 1874 @ link register save eliminated. 1875 .LVL165: 1797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1876 .loc 1 1797 0 1877 @ sp needed 1878 0000 7047 bx lr 1879 .cfi_endproc 1880 .LFE54: 1882 .section .text.ADC_DMAConvCplt,"ax",%progbits 1883 .align 1 1884 .syntax unified 1885 .code 16 1886 .thumb_func 1887 .fpu softvfp 1889 ADC_DMAConvCplt: 1890 .LFB65: 2354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 2357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief DMA transfer complete callback. 2358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hdma pointer to DMA handle. 2359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval None 2360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 2361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** static void ADC_DMAConvCplt(DMA_HandleTypeDef *hdma) 2362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1891 .loc 1 2362 0 1892 .cfi_startproc ARM GAS /tmp/ccbNWEOT.s page 80 1893 @ args = 0, pretend = 0, frame = 0 1894 @ frame_needed = 0, uses_anonymous_args = 0 1895 .LVL166: 1896 0000 10B5 push {r4, lr} 1897 .LCFI14: 1898 .cfi_def_cfa_offset 8 1899 .cfi_offset 4, -8 1900 .cfi_offset 14, -4 2363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Retrieve ADC handle corresponding to current DMA handle */ 2364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_HandleTypeDef* hadc = ( ADC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent; 1901 .loc 1 2364 0 1902 0002 436A ldr r3, [r0, #36] 1903 .LVL167: 2365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Update state machine on conversion status if not in error state */ 2367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL | HAL_ADC_STATE_ERROR_DMA)) 1904 .loc 1 2367 0 1905 0004 9A6B ldr r2, [r3, #56] 1906 0006 5021 movs r1, #80 1907 0008 1142 tst r1, r2 1908 000a 03D0 beq .L158 2368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 2370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); 2371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Determine whether any further conversion upcoming on group regular */ 2373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* by external trigger, continuous mode or scan sequence on going. */ 2374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if(ADC_IS_SOFTWARE_START_REGULAR(hadc) && 2375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (hadc->Init.ContinuousConvMode == DISABLE) ) 2376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* If End of Sequence is reached, disable interrupts */ 2378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if( __HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS) ) 2379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Allowed to modify bits ADC_IT_EOC/ADC_IT_EOS only if bit */ 2381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* ADSTART==0 (no conversion on going) */ 2382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) 2383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Disable ADC end of single conversion interrupt on group regular */ 2385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Note: Overrun interrupt was enabled with EOC interrupt in */ 2386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* HAL_Start_IT(), but is not disabled here because can be used */ 2387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* by overrun IRQ process below. */ 2388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC | ADC_IT_EOS); 2389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 2391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_STATE_CLR_SET(hadc->State, 2392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, 2393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_READY); 2394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 2396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Change ADC state to error state */ 2398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); 2399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to ADC IP internal error */ 2401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); 2402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } ARM GAS /tmp/ccbNWEOT.s page 81 2404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Conversion complete callback */ 2407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 2408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ConvCpltCallback(hadc); 2409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #else 2410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_ConvCpltCallback(hadc); 2411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ 2412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** else 2414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Call DMA error callback */ 2416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->DMA_Handle->XferErrorCallback(hdma); 1909 .loc 1 2416 0 1910 000c 1B6B ldr r3, [r3, #48] 1911 .LVL168: 1912 000e 1B6B ldr r3, [r3, #48] 1913 0010 9847 blx r3 1914 .LVL169: 1915 .L153: 2417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1916 .loc 1 2419 0 1917 @ sp needed 1918 0012 10BD pop {r4, pc} 1919 .LVL170: 1920 .L158: 2370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1921 .loc 1 2370 0 1922 0014 996B ldr r1, [r3, #56] 1923 0016 8022 movs r2, #128 1924 0018 9200 lsls r2, r2, #2 1925 001a 0A43 orrs r2, r1 1926 001c 9A63 str r2, [r3, #56] 2374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (hadc->Init.ContinuousConvMode == DISABLE) ) 1927 .loc 1 2374 0 1928 001e 1A68 ldr r2, [r3] 1929 0020 D068 ldr r0, [r2, #12] 1930 .LVL171: 1931 0022 C021 movs r1, #192 1932 0024 0901 lsls r1, r1, #4 1933 0026 0842 tst r0, r1 1934 0028 13D1 bne .L155 2375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1935 .loc 1 2375 0 discriminator 1 1936 002a 997E ldrb r1, [r3, #26] 2374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (hadc->Init.ContinuousConvMode == DISABLE) ) 1937 .loc 1 2374 0 discriminator 1 1938 002c 0029 cmp r1, #0 1939 002e 10D1 bne .L155 2378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 1940 .loc 1 2378 0 1941 0030 1168 ldr r1, [r2] 1942 0032 0907 lsls r1, r1, #28 1943 0034 0DD5 bpl .L155 2382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { ARM GAS /tmp/ccbNWEOT.s page 82 1944 .loc 1 2382 0 1945 0036 9168 ldr r1, [r2, #8] 1946 0038 4907 lsls r1, r1, #29 1947 003a 0ED4 bmi .L156 2388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1948 .loc 1 2388 0 1949 003c 5168 ldr r1, [r2, #4] 1950 003e 0C20 movs r0, #12 1951 0040 8143 bics r1, r0 1952 0042 5160 str r1, [r2, #4] 2391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, 1953 .loc 1 2391 0 1954 0044 9A6B ldr r2, [r3, #56] 1955 0046 0949 ldr r1, .L159 1956 0048 0A40 ands r2, r1 1957 004a 0431 adds r1, r1, #4 1958 004c FF31 adds r1, r1, #255 1959 004e 0A43 orrs r2, r1 1960 0050 9A63 str r2, [r3, #56] 1961 .L155: 2410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ 1962 .loc 1 2410 0 1963 0052 1800 movs r0, r3 1964 0054 FFF7FEFF bl HAL_ADC_ConvCpltCallback 1965 .LVL172: 1966 0058 DBE7 b .L153 1967 .LVL173: 1968 .L156: 2398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 1969 .loc 1 2398 0 1970 005a 9A6B ldr r2, [r3, #56] 1971 005c 2021 movs r1, #32 1972 005e 0A43 orrs r2, r1 1973 0060 9A63 str r2, [r3, #56] 2401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 1974 .loc 1 2401 0 1975 0062 DA6B ldr r2, [r3, #60] 1976 0064 1F39 subs r1, r1, #31 1977 0066 0A43 orrs r2, r1 1978 0068 DA63 str r2, [r3, #60] 1979 006a F2E7 b .L155 1980 .L160: 1981 .align 2 1982 .L159: 1983 006c FEFEFFFF .word -258 1984 .cfi_endproc 1985 .LFE65: 1987 .section .text.HAL_ADC_ConvHalfCpltCallback,"ax",%progbits 1988 .align 1 1989 .weak HAL_ADC_ConvHalfCpltCallback 1990 .syntax unified 1991 .code 16 1992 .thumb_func 1993 .fpu softvfp 1995 HAL_ADC_ConvHalfCpltCallback: 1996 .LFB55: 1805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ ARM GAS /tmp/ccbNWEOT.s page 83 1997 .loc 1 1805 0 1998 .cfi_startproc 1999 @ args = 0, pretend = 0, frame = 0 2000 @ frame_needed = 0, uses_anonymous_args = 0 2001 @ link register save eliminated. 2002 .LVL174: 1812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2003 .loc 1 1812 0 2004 @ sp needed 2005 0000 7047 bx lr 2006 .cfi_endproc 2007 .LFE55: 2009 .section .text.ADC_DMAHalfConvCplt,"ax",%progbits 2010 .align 1 2011 .syntax unified 2012 .code 16 2013 .thumb_func 2014 .fpu softvfp 2016 ADC_DMAHalfConvCplt: 2017 .LFB66: 2420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 2422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief DMA half transfer complete callback. 2423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hdma pointer to DMA handle. 2424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval None 2425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 2426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** static void ADC_DMAHalfConvCplt(DMA_HandleTypeDef *hdma) 2427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2018 .loc 1 2427 0 2019 .cfi_startproc 2020 @ args = 0, pretend = 0, frame = 0 2021 @ frame_needed = 0, uses_anonymous_args = 0 2022 .LVL175: 2023 0000 10B5 push {r4, lr} 2024 .LCFI15: 2025 .cfi_def_cfa_offset 8 2026 .cfi_offset 4, -8 2027 .cfi_offset 14, -4 2428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Retrieve ADC handle corresponding to current DMA handle */ 2429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_HandleTypeDef* hadc = ( ADC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent; 2028 .loc 1 2429 0 2029 0002 406A ldr r0, [r0, #36] 2030 .LVL176: 2430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Half conversion callback */ 2432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 2433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ConvHalfCpltCallback(hadc); 2434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #else 2435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_ConvHalfCpltCallback(hadc); 2031 .loc 1 2435 0 2032 0004 FFF7FEFF bl HAL_ADC_ConvHalfCpltCallback 2033 .LVL177: 2436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ 2437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2034 .loc 1 2437 0 2035 @ sp needed 2036 0008 10BD pop {r4, pc} ARM GAS /tmp/ccbNWEOT.s page 84 2037 .cfi_endproc 2038 .LFE66: 2040 .section .text.HAL_ADC_LevelOutOfWindowCallback,"ax",%progbits 2041 .align 1 2042 .weak HAL_ADC_LevelOutOfWindowCallback 2043 .syntax unified 2044 .code 16 2045 .thumb_func 2046 .fpu softvfp 2048 HAL_ADC_LevelOutOfWindowCallback: 2049 .LFB56: 1820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ 2050 .loc 1 1820 0 2051 .cfi_startproc 2052 @ args = 0, pretend = 0, frame = 0 2053 @ frame_needed = 0, uses_anonymous_args = 0 2054 @ link register save eliminated. 2055 .LVL178: 1827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2056 .loc 1 1827 0 2057 @ sp needed 2058 0000 7047 bx lr 2059 .cfi_endproc 2060 .LFE56: 2062 .section .text.HAL_ADC_ErrorCallback,"ax",%progbits 2063 .align 1 2064 .weak HAL_ADC_ErrorCallback 2065 .syntax unified 2066 .code 16 2067 .thumb_func 2068 .fpu softvfp 2070 HAL_ADC_ErrorCallback: 2071 .LFB57: 1836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Prevent unused argument(s) compilation warning */ 2072 .loc 1 1836 0 2073 .cfi_startproc 2074 @ args = 0, pretend = 0, frame = 0 2075 @ frame_needed = 0, uses_anonymous_args = 0 2076 @ link register save eliminated. 2077 .LVL179: 1843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2078 .loc 1 1843 0 2079 @ sp needed 2080 0000 7047 bx lr 2081 .cfi_endproc 2082 .LFE57: 2084 .section .text.ADC_DMAError,"ax",%progbits 2085 .align 1 2086 .syntax unified 2087 .code 16 2088 .thumb_func 2089 .fpu softvfp 2091 ADC_DMAError: 2092 .LFB67: 2438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /** 2440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @brief DMA error callback ARM GAS /tmp/ccbNWEOT.s page 85 2441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @param hdma pointer to DMA handle. 2442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** * @retval None 2443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** */ 2444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** static void ADC_DMAError(DMA_HandleTypeDef *hdma) 2445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2093 .loc 1 2445 0 2094 .cfi_startproc 2095 @ args = 0, pretend = 0, frame = 0 2096 @ frame_needed = 0, uses_anonymous_args = 0 2097 .LVL180: 2098 0000 10B5 push {r4, lr} 2099 .LCFI16: 2100 .cfi_def_cfa_offset 8 2101 .cfi_offset 4, -8 2102 .cfi_offset 14, -4 2446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Retrieve ADC handle corresponding to current DMA handle */ 2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_HandleTypeDef* hadc = ( ADC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent; 2103 .loc 1 2447 0 2104 0002 406A ldr r0, [r0, #36] 2105 .LVL181: 2448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC state */ 2450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); 2106 .loc 1 2450 0 2107 0004 836B ldr r3, [r0, #56] 2108 0006 4022 movs r2, #64 2109 0008 1343 orrs r3, r2 2110 000a 8363 str r3, [r0, #56] 2451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Set ADC error code to DMA error */ 2453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_DMA); 2111 .loc 1 2453 0 2112 000c C36B ldr r3, [r0, #60] 2113 000e 3C3A subs r2, r2, #60 2114 0010 1343 orrs r3, r2 2115 0012 C363 str r3, [r0, #60] 2454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Error callback */ 2456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 2457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->ErrorCallback(hadc); 2458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #else 2459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_ErrorCallback(hadc); 2116 .loc 1 2459 0 2117 0014 FFF7FEFF bl HAL_ADC_ErrorCallback 2118 .LVL182: 2460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ 2461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2119 .loc 1 2461 0 2120 @ sp needed 2121 0018 10BD pop {r4, pc} 2122 .cfi_endproc 2123 .LFE67: 2125 .section .text.HAL_ADC_IRQHandler,"ax",%progbits 2126 .align 1 2127 .global HAL_ADC_IRQHandler 2128 .syntax unified 2129 .code 16 ARM GAS /tmp/ccbNWEOT.s page 86 2130 .thumb_func 2131 .fpu softvfp 2133 HAL_ADC_IRQHandler: 2134 .LFB53: 1665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 2135 .loc 1 1665 0 2136 .cfi_startproc 2137 @ args = 0, pretend = 0, frame = 0 2138 @ frame_needed = 0, uses_anonymous_args = 0 2139 .LVL183: 2140 0000 10B5 push {r4, lr} 2141 .LCFI17: 2142 .cfi_def_cfa_offset 8 2143 .cfi_offset 4, -8 2144 .cfi_offset 14, -4 2145 0002 0400 movs r4, r0 1672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS) && __HAL_ADC_GET_IT_SOURCE(hadc, ADC_IT_EOS)) ) 2146 .loc 1 1672 0 2147 0004 0368 ldr r3, [r0] 2148 0006 1A68 ldr r2, [r3] 2149 0008 5207 lsls r2, r2, #29 2150 000a 02D5 bpl .L167 1672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS) && __HAL_ADC_GET_IT_SOURCE(hadc, ADC_IT_EOS)) ) 2151 .loc 1 1672 0 is_stmt 0 discriminator 1 2152 000c 5A68 ldr r2, [r3, #4] 2153 000e 5207 lsls r2, r2, #29 2154 0010 05D4 bmi .L168 2155 .L167: 1673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2156 .loc 1 1673 0 is_stmt 1 discriminator 3 2157 0012 1A68 ldr r2, [r3] 1672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS) && __HAL_ADC_GET_IT_SOURCE(hadc, ADC_IT_EOS)) ) 2158 .loc 1 1672 0 discriminator 3 2159 0014 1207 lsls r2, r2, #28 2160 0016 29D5 bpl .L169 1673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2161 .loc 1 1673 0 2162 0018 5A68 ldr r2, [r3, #4] 2163 001a 1207 lsls r2, r2, #28 2164 001c 26D5 bpl .L169 2165 .L168: 1676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2166 .loc 1 1676 0 2167 001e A26B ldr r2, [r4, #56] 2168 0020 D206 lsls r2, r2, #27 2169 0022 04D4 bmi .L170 1679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2170 .loc 1 1679 0 2171 0024 A16B ldr r1, [r4, #56] 2172 0026 8022 movs r2, #128 2173 0028 9200 lsls r2, r2, #2 2174 002a 0A43 orrs r2, r1 2175 002c A263 str r2, [r4, #56] 2176 .L170: 1684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (hadc->Init.ContinuousConvMode == DISABLE) ) 2177 .loc 1 1684 0 2178 002e D968 ldr r1, [r3, #12] ARM GAS /tmp/ccbNWEOT.s page 87 2179 0030 C022 movs r2, #192 2180 0032 1201 lsls r2, r2, #4 2181 0034 1142 tst r1, r2 2182 0036 13D1 bne .L171 1685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2183 .loc 1 1685 0 discriminator 1 2184 0038 A27E ldrb r2, [r4, #26] 1684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** (hadc->Init.ContinuousConvMode == DISABLE) ) 2185 .loc 1 1684 0 discriminator 1 2186 003a 002A cmp r2, #0 2187 003c 10D1 bne .L171 1688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2188 .loc 1 1688 0 2189 003e 1A68 ldr r2, [r3] 2190 0040 1207 lsls r2, r2, #28 2191 0042 0DD5 bpl .L171 1692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2192 .loc 1 1692 0 2193 0044 9A68 ldr r2, [r3, #8] 2194 0046 5207 lsls r2, r2, #29 2195 0048 31D4 bmi .L172 1698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2196 .loc 1 1698 0 2197 004a 5A68 ldr r2, [r3, #4] 2198 004c 0C21 movs r1, #12 2199 004e 8A43 bics r2, r1 2200 0050 5A60 str r2, [r3, #4] 1701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_ADC_STATE_REG_BUSY, 2201 .loc 1 1701 0 2202 0052 A36B ldr r3, [r4, #56] 2203 0054 204A ldr r2, .L178 2204 0056 1340 ands r3, r2 2205 0058 0432 adds r2, r2, #4 2206 005a FF32 adds r2, r2, #255 2207 005c 1343 orrs r3, r2 2208 005e A363 str r3, [r4, #56] 2209 .L171: 1722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ 2210 .loc 1 1722 0 2211 0060 2000 movs r0, r4 2212 .LVL184: 2213 0062 FFF7FEFF bl HAL_ADC_ConvCpltCallback 2214 .LVL185: 1731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2215 .loc 1 1731 0 2216 0066 2368 ldr r3, [r4] 2217 0068 0C22 movs r2, #12 2218 006a 1A60 str r2, [r3] 2219 .L169: 1735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2220 .loc 1 1735 0 2221 006c 2368 ldr r3, [r4] 2222 006e 1A68 ldr r2, [r3] 2223 0070 1206 lsls r2, r2, #24 2224 0072 02D5 bpl .L173 1735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2225 .loc 1 1735 0 is_stmt 0 discriminator 1 ARM GAS /tmp/ccbNWEOT.s page 88 2226 0074 5B68 ldr r3, [r3, #4] 2227 0076 1B06 lsls r3, r3, #24 2228 0078 22D4 bmi .L177 2229 .L173: 1753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2230 .loc 1 1753 0 is_stmt 1 2231 007a 2368 ldr r3, [r4] 2232 007c 1A68 ldr r2, [r3] 2233 007e D206 lsls r2, r2, #27 2234 0080 14D5 bpl .L166 1753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2235 .loc 1 1753 0 is_stmt 0 discriminator 1 2236 0082 5A68 ldr r2, [r3, #4] 2237 0084 D206 lsls r2, r2, #27 2238 0086 11D5 bpl .L166 1761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_IS_BIT_SET(hadc->Instance->CFGR1, ADC_CFGR1_DMAEN) ) 2239 .loc 1 1761 0 is_stmt 1 2240 0088 A26A ldr r2, [r4, #40] 2241 008a 012A cmp r2, #1 2242 008c 02D0 beq .L175 1762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2243 .loc 1 1762 0 discriminator 1 2244 008e DA68 ldr r2, [r3, #12] 1761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_IS_BIT_SET(hadc->Instance->CFGR1, ADC_CFGR1_DMAEN) ) 2245 .loc 1 1761 0 discriminator 1 2246 0090 D207 lsls r2, r2, #31 2247 0092 08D5 bpl .L176 2248 .L175: 1765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2249 .loc 1 1765 0 2250 0094 E26B ldr r2, [r4, #60] 2251 0096 0221 movs r1, #2 2252 0098 0A43 orrs r2, r1 2253 009a E263 str r2, [r4, #60] 1768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2254 .loc 1 1768 0 2255 009c 1022 movs r2, #16 2256 009e 1A60 str r2, [r3] 1773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ 2257 .loc 1 1773 0 2258 00a0 2000 movs r0, r4 2259 00a2 FFF7FEFF bl HAL_ADC_ErrorCallback 2260 .LVL186: 2261 .L176: 1778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2262 .loc 1 1778 0 2263 00a6 2368 ldr r3, [r4] 2264 00a8 1022 movs r2, #16 2265 00aa 1A60 str r2, [r3] 2266 .L166: 1781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2267 .loc 1 1781 0 2268 @ sp needed 2269 .LVL187: 2270 00ac 10BD pop {r4, pc} 2271 .LVL188: 2272 .L172: ARM GAS /tmp/ccbNWEOT.s page 89 1708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2273 .loc 1 1708 0 2274 00ae A36B ldr r3, [r4, #56] 2275 00b0 2022 movs r2, #32 2276 00b2 1343 orrs r3, r2 2277 00b4 A363 str r3, [r4, #56] 1711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2278 .loc 1 1711 0 2279 00b6 E36B ldr r3, [r4, #60] 2280 00b8 1F3A subs r2, r2, #31 2281 00ba 1343 orrs r3, r2 2282 00bc E363 str r3, [r4, #60] 2283 00be CFE7 b .L171 2284 .LVL189: 2285 .L177: 1738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2286 .loc 1 1738 0 2287 00c0 A26B ldr r2, [r4, #56] 2288 00c2 8023 movs r3, #128 2289 00c4 5B02 lsls r3, r3, #9 2290 00c6 1343 orrs r3, r2 2291 00c8 A363 str r3, [r4, #56] 1743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ 2292 .loc 1 1743 0 2293 00ca 2000 movs r0, r4 2294 00cc FFF7FEFF bl HAL_ADC_LevelOutOfWindowCallback 2295 .LVL190: 1747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2296 .loc 1 1747 0 2297 00d0 2368 ldr r3, [r4] 2298 00d2 8022 movs r2, #128 2299 00d4 1A60 str r2, [r3] 2300 00d6 D0E7 b .L173 2301 .L179: 2302 .align 2 2303 .L178: 2304 00d8 FEFEFFFF .word -258 2305 .cfi_endproc 2306 .LFE53: 2308 .section .text.HAL_ADC_ConfigChannel,"ax",%progbits 2309 .align 1 2310 .global HAL_ADC_ConfigChannel 2311 .syntax unified 2312 .code 16 2313 .thumb_func 2314 .fpu softvfp 2316 HAL_ADC_ConfigChannel: 2317 .LFB58: 1890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 2318 .loc 1 1890 0 2319 .cfi_startproc 2320 @ args = 0, pretend = 0, frame = 8 2321 @ frame_needed = 0, uses_anonymous_args = 0 2322 .LVL191: 2323 0000 30B5 push {r4, r5, lr} 2324 .LCFI18: 2325 .cfi_def_cfa_offset 12 ARM GAS /tmp/ccbNWEOT.s page 90 2326 .cfi_offset 4, -12 2327 .cfi_offset 5, -8 2328 .cfi_offset 14, -4 2329 0002 83B0 sub sp, sp, #12 2330 .LCFI19: 2331 .cfi_def_cfa_offset 24 2332 0004 0400 movs r4, r0 2333 .LVL192: 1892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2334 .loc 1 1892 0 2335 0006 0023 movs r3, #0 2336 0008 0193 str r3, [sp, #4] 1905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2337 .loc 1 1905 0 2338 000a 3433 adds r3, r3, #52 2339 000c C35C ldrb r3, [r0, r3] 2340 000e 012B cmp r3, #1 2341 0010 00D1 bne .LCB2176 2342 0012 8AE0 b .L190 @long jump 2343 .LCB2176: 1905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2344 .loc 1 1905 0 is_stmt 0 discriminator 2 2345 0014 3423 movs r3, #52 2346 0016 0122 movs r2, #1 2347 0018 C254 strb r2, [r0, r3] 1913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2348 .loc 1 1913 0 is_stmt 1 discriminator 2 2349 001a 0368 ldr r3, [r0] 2350 001c 9A68 ldr r2, [r3, #8] 2351 001e 5207 lsls r2, r2, #29 2352 0020 75D4 bmi .L182 1917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2353 .loc 1 1917 0 2354 0022 434A ldr r2, .L201 2355 0024 4868 ldr r0, [r1, #4] 2356 .LVL193: 2357 0026 9042 cmp r0, r2 2358 0028 56D0 beq .L183 1921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2359 .loc 1 1921 0 2360 002a 9A6A ldr r2, [r3, #40] 2361 002c 0120 movs r0, #1 2362 002e 0D68 ldr r5, [r1] 2363 0030 A840 lsls r0, r0, r5 2364 0032 0243 orrs r2, r0 2365 0034 9A62 str r2, [r3, #40] 1928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2366 .loc 1 1928 0 2367 0036 E36A ldr r3, [r4, #44] 2368 0038 8022 movs r2, #128 2369 003a 5205 lsls r2, r2, #21 2370 003c 9342 cmp r3, r2 2371 003e 1ED0 beq .L184 1928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2372 .loc 1 1928 0 is_stmt 0 discriminator 1 2373 0040 012B cmp r3, #1 2374 0042 1CD0 beq .L184 ARM GAS /tmp/ccbNWEOT.s page 91 1928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2375 .loc 1 1928 0 discriminator 2 2376 0044 022B cmp r3, #2 2377 0046 1AD0 beq .L184 1928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2378 .loc 1 1928 0 discriminator 3 2379 0048 032B cmp r3, #3 2380 004a 18D0 beq .L184 1928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2381 .loc 1 1928 0 discriminator 4 2382 004c 042B cmp r3, #4 2383 004e 16D0 beq .L184 1928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2384 .loc 1 1928 0 discriminator 5 2385 0050 052B cmp r3, #5 2386 0052 14D0 beq .L184 1928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2387 .loc 1 1928 0 discriminator 6 2388 0054 062B cmp r3, #6 2389 0056 12D0 beq .L184 1928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2390 .loc 1 1928 0 discriminator 7 2391 0058 072B cmp r3, #7 2392 005a 10D0 beq .L184 1932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2393 .loc 1 1932 0 is_stmt 1 2394 005c 2268 ldr r2, [r4] 2395 005e 5069 ldr r0, [r2, #20] 2396 0060 0723 movs r3, #7 2397 0062 0340 ands r3, r0 2398 0064 8868 ldr r0, [r1, #8] 2399 0066 9842 cmp r0, r3 2400 0068 09D0 beq .L184 1936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2401 .loc 1 1936 0 2402 006a 5069 ldr r0, [r2, #20] 2403 006c 0723 movs r3, #7 2404 006e 9843 bics r0, r3 2405 0070 5061 str r0, [r2, #20] 1939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2406 .loc 1 1939 0 2407 0072 2068 ldr r0, [r4] 2408 0074 4269 ldr r2, [r0, #20] 2409 0076 8D68 ldr r5, [r1, #8] 2410 0078 2B40 ands r3, r5 2411 007a 1343 orrs r3, r2 2412 007c 4361 str r3, [r0, #20] 2413 .L184: 1949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2414 .loc 1 1949 0 2415 007e 0B68 ldr r3, [r1] 2416 0080 1A00 movs r2, r3 2417 0082 103A subs r2, r2, #16 2418 0084 022A cmp r2, #2 2419 0086 4CD8 bhi .L191 1954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2420 .loc 1 1954 0 ARM GAS /tmp/ccbNWEOT.s page 92 2421 0088 2A4A ldr r2, .L201+4 2422 008a 1268 ldr r2, [r2] 2423 008c 102B cmp r3, #16 2424 008e 0ED0 beq .L192 1954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2425 .loc 1 1954 0 is_stmt 0 discriminator 1 2426 0090 112B cmp r3, #17 2427 0092 09D0 beq .L198 1954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2428 .loc 1 1954 0 2429 0094 8023 movs r3, #128 2430 0096 5B04 lsls r3, r3, #17 2431 .L186: 1954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2432 .loc 1 1954 0 discriminator 8 2433 0098 1343 orrs r3, r2 2434 009a 264A ldr r2, .L201+4 2435 009c 1360 str r3, [r2] 1957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2436 .loc 1 1957 0 is_stmt 1 discriminator 8 2437 009e 0B68 ldr r3, [r1] 2438 00a0 102B cmp r3, #16 2439 00a2 07D0 beq .L199 1891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __IO uint32_t wait_loop_index = 0U; 2440 .loc 1 1891 0 2441 00a4 0020 movs r0, #0 2442 00a6 37E0 b .L185 2443 .L198: 1954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2444 .loc 1 1954 0 2445 00a8 8023 movs r3, #128 2446 00aa DB03 lsls r3, r3, #15 2447 00ac F4E7 b .L186 2448 .L192: 2449 00ae 8023 movs r3, #128 2450 00b0 1B04 lsls r3, r3, #16 2451 00b2 F1E7 b .L186 2452 .L199: 1961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** while(wait_loop_index != 0U) 2453 .loc 1 1961 0 2454 00b4 204B ldr r3, .L201+8 2455 00b6 1868 ldr r0, [r3] 2456 00b8 2049 ldr r1, .L201+12 2457 .LVL194: 2458 00ba FFF7FEFF bl __aeabi_uidiv 2459 .LVL195: 2460 00be 8300 lsls r3, r0, #2 2461 00c0 1818 adds r0, r3, r0 2462 00c2 4300 lsls r3, r0, #1 2463 00c4 0193 str r3, [sp, #4] 1962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2464 .loc 1 1962 0 2465 00c6 02E0 b .L187 2466 .L188: 1964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2467 .loc 1 1964 0 2468 00c8 019B ldr r3, [sp, #4] ARM GAS /tmp/ccbNWEOT.s page 93 2469 00ca 013B subs r3, r3, #1 2470 00cc 0193 str r3, [sp, #4] 2471 .L187: 1962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2472 .loc 1 1962 0 2473 00ce 019B ldr r3, [sp, #4] 2474 00d0 002B cmp r3, #0 2475 00d2 F9D1 bne .L188 1891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __IO uint32_t wait_loop_index = 0U; 2476 .loc 1 1891 0 2477 00d4 0020 movs r0, #0 2478 00d6 1FE0 b .L185 2479 .LVL196: 2480 .L183: 1973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2481 .loc 1 1973 0 2482 00d8 9A6A ldr r2, [r3, #40] 2483 00da 0120 movs r0, #1 2484 00dc 0D68 ldr r5, [r1] 2485 00de A840 lsls r0, r0, r5 2486 00e0 8243 bics r2, r0 2487 00e2 9A62 str r2, [r3, #40] 1978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2488 .loc 1 1978 0 2489 00e4 0B68 ldr r3, [r1] 2490 00e6 1A00 movs r2, r3 2491 00e8 103A subs r2, r2, #16 2492 00ea 022A cmp r2, #2 2493 00ec 1BD8 bhi .L195 1983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2494 .loc 1 1983 0 2495 00ee 114A ldr r2, .L201+4 2496 00f0 1268 ldr r2, [r2] 2497 00f2 102B cmp r3, #16 2498 00f4 09D0 beq .L196 1983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2499 .loc 1 1983 0 is_stmt 0 discriminator 1 2500 00f6 112B cmp r3, #17 2501 00f8 05D0 beq .L200 1983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2502 .loc 1 1983 0 2503 00fa 114B ldr r3, .L201+16 2504 .L189: 1983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2505 .loc 1 1983 0 discriminator 8 2506 00fc 1340 ands r3, r2 2507 00fe 0D4A ldr r2, .L201+4 2508 0100 1360 str r3, [r2] 1891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __IO uint32_t wait_loop_index = 0U; 2509 .loc 1 1891 0 is_stmt 1 discriminator 8 2510 0102 0020 movs r0, #0 2511 0104 08E0 b .L185 2512 .L200: 1983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2513 .loc 1 1983 0 2514 0106 0F4B ldr r3, .L201+20 2515 0108 F8E7 b .L189 ARM GAS /tmp/ccbNWEOT.s page 94 2516 .L196: 2517 010a 0F4B ldr r3, .L201+24 2518 010c F6E7 b .L189 2519 .LVL197: 2520 .L182: 1995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2521 .loc 1 1995 0 2522 010e 836B ldr r3, [r0, #56] 2523 0110 2022 movs r2, #32 2524 0112 1343 orrs r3, r2 2525 0114 8363 str r3, [r0, #56] 2526 .LVL198: 1997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2527 .loc 1 1997 0 2528 0116 0120 movs r0, #1 2529 .LVL199: 2530 .L185: 2001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2531 .loc 1 2001 0 2532 0118 3423 movs r3, #52 2533 011a 0022 movs r2, #0 2534 011c E254 strb r2, [r4, r3] 2535 .LVL200: 2536 .L181: 2005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2537 .loc 1 2005 0 2538 011e 03B0 add sp, sp, #12 2539 @ sp needed 2540 .LVL201: 2541 0120 30BD pop {r4, r5, pc} 2542 .LVL202: 2543 .L191: 1891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** __IO uint32_t wait_loop_index = 0U; 2544 .loc 1 1891 0 2545 0122 0020 movs r0, #0 2546 0124 F8E7 b .L185 2547 .L195: 2548 0126 0020 movs r0, #0 2549 0128 F6E7 b .L185 2550 .LVL203: 2551 .L190: 1905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2552 .loc 1 1905 0 2553 012a 0220 movs r0, #2 2554 .LVL204: 2555 012c F7E7 b .L181 2556 .L202: 2557 012e C046 .align 2 2558 .L201: 2559 0130 01100000 .word 4097 2560 0134 08270140 .word 1073817352 2561 0138 00000000 .word SystemCoreClock 2562 013c 40420F00 .word 1000000 2563 0140 FFFFFFFE .word -16777217 2564 0144 FFFFBFFF .word -4194305 2565 0148 FFFF7FFF .word -8388609 2566 .cfi_endproc ARM GAS /tmp/ccbNWEOT.s page 95 2567 .LFE58: 2569 .section .text.HAL_ADC_AnalogWDGConfig,"ax",%progbits 2570 .align 1 2571 .global HAL_ADC_AnalogWDGConfig 2572 .syntax unified 2573 .code 16 2574 .thumb_func 2575 .fpu softvfp 2577 HAL_ADC_AnalogWDGConfig: 2578 .LFB59: 2023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** HAL_StatusTypeDef tmp_hal_status = HAL_OK; 2579 .loc 1 2023 0 2580 .cfi_startproc 2581 @ args = 0, pretend = 0, frame = 0 2582 @ frame_needed = 0, uses_anonymous_args = 0 2583 .LVL205: 2584 0000 70B5 push {r4, r5, r6, lr} 2585 .LCFI20: 2586 .cfi_def_cfa_offset 16 2587 .cfi_offset 4, -16 2588 .cfi_offset 5, -12 2589 .cfi_offset 6, -8 2590 .cfi_offset 14, -4 2591 .LVL206: 2044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2592 .loc 1 2044 0 2593 0002 3423 movs r3, #52 2594 0004 C35C ldrb r3, [r0, r3] 2595 0006 012B cmp r3, #1 2596 0008 49D0 beq .L208 2044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2597 .loc 1 2044 0 is_stmt 0 discriminator 2 2598 000a 3423 movs r3, #52 2599 000c 0122 movs r2, #1 2600 000e C254 strb r2, [r0, r3] 2051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2601 .loc 1 2051 0 is_stmt 1 discriminator 2 2602 0010 0368 ldr r3, [r0] 2603 0012 9A68 ldr r2, [r3, #8] 2604 0014 5207 lsls r2, r2, #29 2605 0016 38D4 bmi .L205 2058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR1_AWDEN | 2606 .loc 1 2058 0 2607 0018 DA68 ldr r2, [r3, #12] 2608 001a 224C ldr r4, .L210 2609 001c 2240 ands r2, r4 2610 001e DA60 str r2, [r3, #12] 2062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR_AWDCH(AnalogWDGConfig->Channel) ); 2611 .loc 1 2062 0 2612 0020 0468 ldr r4, [r0] 2613 0022 E368 ldr r3, [r4, #12] 2063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2614 .loc 1 2063 0 2615 0024 4A68 ldr r2, [r1, #4] 2616 0026 9206 lsls r2, r2, #26 2062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** ADC_CFGR_AWDCH(AnalogWDGConfig->Channel) ); 2617 .loc 1 2062 0 ARM GAS /tmp/ccbNWEOT.s page 96 2618 0028 0D68 ldr r5, [r1] 2619 002a 2A43 orrs r2, r5 2620 002c 1343 orrs r3, r2 2621 002e E360 str r3, [r4, #12] 2067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmpAWDLowThresholdShifted = ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->LowThres 2622 .loc 1 2067 0 2623 0030 0468 ldr r4, [r0] 2624 0032 E368 ldr r3, [r4, #12] 2625 0034 DB08 lsrs r3, r3, #3 2626 0036 0322 movs r2, #3 2627 0038 1340 ands r3, r2 2628 003a 5B00 lsls r3, r3, #1 2629 003c CD68 ldr r5, [r1, #12] 2630 003e 9D40 lsls r5, r5, r3 2631 0040 2B00 movs r3, r5 2632 .LVL207: 2068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2633 .loc 1 2068 0 2634 0042 E568 ldr r5, [r4, #12] 2635 0044 ED08 lsrs r5, r5, #3 2636 0046 2A40 ands r2, r5 2637 0048 5200 lsls r2, r2, #1 2638 004a 0D69 ldr r5, [r1, #16] 2639 004c 9540 lsls r5, r5, r2 2640 .LVL208: 2071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** hadc->Instance->TR |= ( ADC_TRX_HIGHTHRESHOLD (tmpAWDHighThresholdShifted) | 2641 .loc 1 2071 0 2642 004e 226A ldr r2, [r4, #32] 2643 0050 154E ldr r6, .L210+4 2644 0052 3240 ands r2, r6 2645 0054 2262 str r2, [r4, #32] 2072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** tmpAWDLowThresholdShifted ); 2646 .loc 1 2072 0 2647 0056 0468 ldr r4, [r0] 2648 0058 226A ldr r2, [r4, #32] 2649 005a 1B04 lsls r3, r3, #16 2650 .LVL209: 2651 005c 2B43 orrs r3, r5 2652 005e 1343 orrs r3, r2 2653 0060 2362 str r3, [r4, #32] 2078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2654 .loc 1 2078 0 2655 0062 0368 ldr r3, [r0] 2656 0064 8022 movs r2, #128 2657 0066 1A60 str r2, [r3] 2081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** { 2658 .loc 1 2081 0 2659 0068 0B7A ldrb r3, [r1, #8] 2660 006a 012B cmp r3, #1 2661 006c 06D0 beq .L209 2089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2662 .loc 1 2089 0 2663 006e 0268 ldr r2, [r0] 2664 0070 5368 ldr r3, [r2, #4] 2665 0072 8021 movs r1, #128 2666 .LVL210: 2667 0074 8B43 bics r3, r1 ARM GAS /tmp/ccbNWEOT.s page 97 2668 0076 5360 str r3, [r2, #4] 2024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2669 .loc 1 2024 0 2670 0078 0023 movs r3, #0 2671 007a 0BE0 b .L207 2672 .LVL211: 2673 .L209: 2084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2674 .loc 1 2084 0 2675 007c 0268 ldr r2, [r0] 2676 007e 5368 ldr r3, [r2, #4] 2677 0080 8021 movs r1, #128 2678 .LVL212: 2679 0082 0B43 orrs r3, r1 2680 0084 5360 str r3, [r2, #4] 2024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2681 .loc 1 2024 0 2682 0086 0023 movs r3, #0 2683 0088 04E0 b .L207 2684 .LVL213: 2685 .L205: 2098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2686 .loc 1 2098 0 2687 008a 836B ldr r3, [r0, #56] 2688 008c 2022 movs r2, #32 2689 008e 1343 orrs r3, r2 2690 0090 8363 str r3, [r0, #56] 2691 .LVL214: 2100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2692 .loc 1 2100 0 2693 0092 0123 movs r3, #1 2694 .LVL215: 2695 .L207: 2105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2696 .loc 1 2105 0 2697 0094 3422 movs r2, #52 2698 0096 0021 movs r1, #0 2699 0098 8154 strb r1, [r0, r2] 2700 .LVL216: 2701 .L204: 2109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2702 .loc 1 2109 0 2703 009a 1800 movs r0, r3 2704 .LVL217: 2705 @ sp needed 2706 009c 70BD pop {r4, r5, r6, pc} 2707 .LVL218: 2708 .L208: 2044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2709 .loc 1 2044 0 2710 009e 0223 movs r3, #2 2711 00a0 FBE7 b .L204 2712 .L211: 2713 00a2 C046 .align 2 2714 .L210: 2715 00a4 FFFF3F83 .word -2092957697 2716 00a8 00F000F0 .word -268374016 ARM GAS /tmp/ccbNWEOT.s page 98 2717 .cfi_endproc 2718 .LFE59: 2720 .section .text.HAL_ADC_GetState,"ax",%progbits 2721 .align 1 2722 .global HAL_ADC_GetState 2723 .syntax unified 2724 .code 16 2725 .thumb_func 2726 .fpu softvfp 2728 HAL_ADC_GetState: 2729 .LFB60: 2145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** /* Check the parameters */ 2730 .loc 1 2145 0 2731 .cfi_startproc 2732 @ args = 0, pretend = 0, frame = 0 2733 @ frame_needed = 0, uses_anonymous_args = 0 2734 @ link register save eliminated. 2735 .LVL219: 2150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2736 .loc 1 2150 0 2737 0000 806B ldr r0, [r0, #56] 2738 .LVL220: 2151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2739 .loc 1 2151 0 2740 @ sp needed 2741 0002 7047 bx lr 2742 .cfi_endproc 2743 .LFE60: 2745 .section .text.HAL_ADC_GetError,"ax",%progbits 2746 .align 1 2747 .global HAL_ADC_GetError 2748 .syntax unified 2749 .code 16 2750 .thumb_func 2751 .fpu softvfp 2753 HAL_ADC_GetError: 2754 .LFB61: 2159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** return hadc->ErrorCode; 2755 .loc 1 2159 0 2756 .cfi_startproc 2757 @ args = 0, pretend = 0, frame = 0 2758 @ frame_needed = 0, uses_anonymous_args = 0 2759 @ link register save eliminated. 2760 .LVL221: 2160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** } 2761 .loc 1 2160 0 2762 0000 C06B ldr r0, [r0, #60] 2763 .LVL222: 2161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_adc.c **** 2764 .loc 1 2161 0 2765 @ sp needed 2766 0002 7047 bx lr 2767 .cfi_endproc 2768 .LFE61: 2770 .text 2771 .Letext0: 2772 .file 2 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/machin ARM GAS /tmp/ccbNWEOT.s page 99 2773 .file 3 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/_s 2774 .file 4 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h" 2775 .file 5 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h" 2776 .file 6 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h" 2777 .file 7 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h" 2778 .file 8 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h" 2779 .file 9 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_adc.h" 2780 .file 10 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h" ARM GAS /tmp/ccbNWEOT.s page 100 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f0xx_hal_adc.c /tmp/ccbNWEOT.s:16 .text.ADC_ConversionStop:0000000000000000 $t /tmp/ccbNWEOT.s:22 .text.ADC_ConversionStop:0000000000000000 ADC_ConversionStop /tmp/ccbNWEOT.s:106 .text.ADC_Disable:0000000000000000 $t /tmp/ccbNWEOT.s:112 .text.ADC_Disable:0000000000000000 ADC_Disable /tmp/ccbNWEOT.s:228 .text.ADC_Enable:0000000000000000 $t /tmp/ccbNWEOT.s:234 .text.ADC_Enable:0000000000000000 ADC_Enable /tmp/ccbNWEOT.s:371 .text.ADC_Enable:000000000000009c $d /tmp/ccbNWEOT.s:378 .text.HAL_ADC_MspInit:0000000000000000 $t /tmp/ccbNWEOT.s:385 .text.HAL_ADC_MspInit:0000000000000000 HAL_ADC_MspInit /tmp/ccbNWEOT.s:400 .text.HAL_ADC_Init:0000000000000000 $t /tmp/ccbNWEOT.s:407 .text.HAL_ADC_Init:0000000000000000 HAL_ADC_Init /tmp/ccbNWEOT.s:704 .text.HAL_ADC_Init:0000000000000170 $d /tmp/ccbNWEOT.s:711 .text.HAL_ADC_MspDeInit:0000000000000000 $t /tmp/ccbNWEOT.s:718 .text.HAL_ADC_MspDeInit:0000000000000000 HAL_ADC_MspDeInit /tmp/ccbNWEOT.s:733 .text.HAL_ADC_DeInit:0000000000000000 $t /tmp/ccbNWEOT.s:740 .text.HAL_ADC_DeInit:0000000000000000 HAL_ADC_DeInit /tmp/ccbNWEOT.s:868 .text.HAL_ADC_DeInit:0000000000000094 $d /tmp/ccbNWEOT.s:876 .text.HAL_ADC_Start:0000000000000000 $t /tmp/ccbNWEOT.s:883 .text.HAL_ADC_Start:0000000000000000 HAL_ADC_Start /tmp/ccbNWEOT.s:972 .text.HAL_ADC_Start:000000000000005c $d /tmp/ccbNWEOT.s:977 .text.HAL_ADC_Stop:0000000000000000 $t /tmp/ccbNWEOT.s:984 .text.HAL_ADC_Stop:0000000000000000 HAL_ADC_Stop /tmp/ccbNWEOT.s:1053 .text.HAL_ADC_Stop:0000000000000040 $d /tmp/ccbNWEOT.s:1058 .text.HAL_ADC_PollForConversion:0000000000000000 $t /tmp/ccbNWEOT.s:1065 .text.HAL_ADC_PollForConversion:0000000000000000 HAL_ADC_PollForConversion /tmp/ccbNWEOT.s:1228 .text.HAL_ADC_PollForConversion:00000000000000c0 $d /tmp/ccbNWEOT.s:1233 .text.HAL_ADC_PollForEvent:0000000000000000 $t /tmp/ccbNWEOT.s:1240 .text.HAL_ADC_PollForEvent:0000000000000000 HAL_ADC_PollForEvent /tmp/ccbNWEOT.s:1351 .text.HAL_ADC_Start_IT:0000000000000000 $t /tmp/ccbNWEOT.s:1358 .text.HAL_ADC_Start_IT:0000000000000000 HAL_ADC_Start_IT /tmp/ccbNWEOT.s:1474 .text.HAL_ADC_Start_IT:0000000000000084 $d /tmp/ccbNWEOT.s:1479 .text.HAL_ADC_Stop_IT:0000000000000000 $t /tmp/ccbNWEOT.s:1486 .text.HAL_ADC_Stop_IT:0000000000000000 HAL_ADC_Stop_IT /tmp/ccbNWEOT.s:1561 .text.HAL_ADC_Stop_IT:000000000000004c $d /tmp/ccbNWEOT.s:1566 .text.HAL_ADC_Start_DMA:0000000000000000 $t /tmp/ccbNWEOT.s:1573 .text.HAL_ADC_Start_DMA:0000000000000000 HAL_ADC_Start_DMA /tmp/ccbNWEOT.s:1702 .text.HAL_ADC_Start_DMA:0000000000000098 $d /tmp/ccbNWEOT.s:1889 .text.ADC_DMAConvCplt:0000000000000000 ADC_DMAConvCplt /tmp/ccbNWEOT.s:2016 .text.ADC_DMAHalfConvCplt:0000000000000000 ADC_DMAHalfConvCplt /tmp/ccbNWEOT.s:2091 .text.ADC_DMAError:0000000000000000 ADC_DMAError /tmp/ccbNWEOT.s:1710 .text.HAL_ADC_Stop_DMA:0000000000000000 $t /tmp/ccbNWEOT.s:1717 .text.HAL_ADC_Stop_DMA:0000000000000000 HAL_ADC_Stop_DMA /tmp/ccbNWEOT.s:1830 .text.HAL_ADC_Stop_DMA:0000000000000078 $d /tmp/ccbNWEOT.s:1835 .text.HAL_ADC_GetValue:0000000000000000 $t /tmp/ccbNWEOT.s:1842 .text.HAL_ADC_GetValue:0000000000000000 HAL_ADC_GetValue /tmp/ccbNWEOT.s:1861 .text.HAL_ADC_ConvCpltCallback:0000000000000000 $t /tmp/ccbNWEOT.s:1868 .text.HAL_ADC_ConvCpltCallback:0000000000000000 HAL_ADC_ConvCpltCallback /tmp/ccbNWEOT.s:1883 .text.ADC_DMAConvCplt:0000000000000000 $t /tmp/ccbNWEOT.s:1983 .text.ADC_DMAConvCplt:000000000000006c $d /tmp/ccbNWEOT.s:1988 .text.HAL_ADC_ConvHalfCpltCallback:0000000000000000 $t /tmp/ccbNWEOT.s:1995 .text.HAL_ADC_ConvHalfCpltCallback:0000000000000000 HAL_ADC_ConvHalfCpltCallback /tmp/ccbNWEOT.s:2010 .text.ADC_DMAHalfConvCplt:0000000000000000 $t /tmp/ccbNWEOT.s:2041 .text.HAL_ADC_LevelOutOfWindowCallback:0000000000000000 $t /tmp/ccbNWEOT.s:2048 .text.HAL_ADC_LevelOutOfWindowCallback:0000000000000000 HAL_ADC_LevelOutOfWindowCallback /tmp/ccbNWEOT.s:2063 .text.HAL_ADC_ErrorCallback:0000000000000000 $t ARM GAS /tmp/ccbNWEOT.s page 101 /tmp/ccbNWEOT.s:2070 .text.HAL_ADC_ErrorCallback:0000000000000000 HAL_ADC_ErrorCallback /tmp/ccbNWEOT.s:2085 .text.ADC_DMAError:0000000000000000 $t /tmp/ccbNWEOT.s:2126 .text.HAL_ADC_IRQHandler:0000000000000000 $t /tmp/ccbNWEOT.s:2133 .text.HAL_ADC_IRQHandler:0000000000000000 HAL_ADC_IRQHandler /tmp/ccbNWEOT.s:2304 .text.HAL_ADC_IRQHandler:00000000000000d8 $d /tmp/ccbNWEOT.s:2309 .text.HAL_ADC_ConfigChannel:0000000000000000 $t /tmp/ccbNWEOT.s:2316 .text.HAL_ADC_ConfigChannel:0000000000000000 HAL_ADC_ConfigChannel /tmp/ccbNWEOT.s:2559 .text.HAL_ADC_ConfigChannel:0000000000000130 $d /tmp/ccbNWEOT.s:2570 .text.HAL_ADC_AnalogWDGConfig:0000000000000000 $t /tmp/ccbNWEOT.s:2577 .text.HAL_ADC_AnalogWDGConfig:0000000000000000 HAL_ADC_AnalogWDGConfig /tmp/ccbNWEOT.s:2715 .text.HAL_ADC_AnalogWDGConfig:00000000000000a4 $d /tmp/ccbNWEOT.s:2721 .text.HAL_ADC_GetState:0000000000000000 $t /tmp/ccbNWEOT.s:2728 .text.HAL_ADC_GetState:0000000000000000 HAL_ADC_GetState /tmp/ccbNWEOT.s:2746 .text.HAL_ADC_GetError:0000000000000000 $t /tmp/ccbNWEOT.s:2753 .text.HAL_ADC_GetError:0000000000000000 HAL_ADC_GetError UNDEFINED SYMBOLS HAL_GetTick __aeabi_uidiv SystemCoreClock HAL_DMA_Start_IT HAL_DMA_Abort