ARM GAS /tmp/ccHnSxqq.s page 1 1 .cpu cortex-m0plus 2 .eabi_attribute 20, 1 3 .eabi_attribute 21, 1 4 .eabi_attribute 23, 3 5 .eabi_attribute 24, 1 6 .eabi_attribute 25, 1 7 .eabi_attribute 26, 1 8 .eabi_attribute 30, 1 9 .eabi_attribute 34, 0 10 .eabi_attribute 18, 4 11 .file "stm32l0xx_hal_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 .LFB63: 24 .file 1 "./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c" 1:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** /** 2:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** ****************************************************************************** 3:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * @file stm32l0xx_hal_adc.c 4:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * @author MCD Application Team 5:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * @brief This file provides firmware functions to manage the following 6:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * functionalities of the Analog to Digital Convertor (ADC) 7:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * peripheral: 8:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * + Initialization and de-initialization functions 9:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * ++ Initialization and Configuration of ADC 10:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * + Operation functions 11:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * ++ Start, stop, get result of conversions of regular 12:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * group, using 3 possible modes: polling, interruption or DMA. 13:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * + Control functions 14:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * ++ Channels configuration on regular group 15:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * ++ Analog Watchdog configuration 16:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * + State functions 17:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * ++ ADC state machine management 18:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * ++ Interrupts and flags management 19:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * Other functions (extended functions) are available in file 20:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * "stm32l0xx_hal_adc_ex.c". 21:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * 22:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** @verbatim 23:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** ============================================================================== 24:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** ##### ADC peripheral features ##### 25:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** ============================================================================== 26:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** [..] 27:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+) 12-bit, 10-bit, 8-bit or 6-bit configurable resolution. 28:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 29:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+) Interrupt generation at the end of regular conversion and in case of 30:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** analog watchdog or overrun events. 31:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 32:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+) Single and continuous conversion modes. 33:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 34:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+) Scan mode for conversion of several channels sequentially. ARM GAS /tmp/ccHnSxqq.s page 2 35:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 36:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+) Data alignment with in-built data coherency. 37:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 38:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+) Programmable sampling time (common for all channels) 39:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 40:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+) External trigger (timer or EXTI) with configurable polarity 41:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 42:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+) DMA request generation for transfer of conversions data of regular group. 43:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 44:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+) ADC calibration 45:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 46:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+) ADC conversion of regular group. 47:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 48:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+) ADC supply requirements: 1.62 V to 3.6 V. 49:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 50:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+) ADC input range: from Vref- (connected to Vssa) to Vref+ (connected to 51:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** Vdda or to an external voltage reference). 52:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 53:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 54:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** ##### How to use this driver ##### 55:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** ============================================================================== 56:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** [..] 57:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 58:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** *** Configuration of top level parameters related to ADC *** 59:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** ============================================================ 60:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** [..] 61:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 62:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (#) Enable the ADC interface 63:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) As prerequisite, ADC clock must be configured at RCC top level. 64:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** Caution: On STM32L0, ADC clock frequency max is 16MHz (refer 65:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** to device datasheet). 66:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** Therefore, ADC clock prescaler must be configured in 67:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** function of ADC clock source frequency to remain below 68:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** this maximum frequency. 69:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 70:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) Two clock settings are mandatory: 71:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) ADC clock (core clock, also possibly conversion clock). 72:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 73:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) ADC clock (conversions clock). 74:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** Two possible clock sources: synchronous clock derived from APB clock 75:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** or asynchronous clock derived from ADC dedicated HSI RC oscillator 76:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 16MHz. 77:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** If asynchronous clock is selected, parameter "HSIState" must be set either: 78:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** - to "...HSIState = RCC_HSI_ON" to maintain the HSI16 oscillator 79:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** always enabled: can be used to supply the main system clock. 80:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 81:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) Example: 82:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** Into HAL_ADC_MspInit() (recommended code location) or with 83:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** other device clock parameters configuration: 84:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) __HAL_RCC_ADC1_CLK_ENABLE(); (mandatory) 85:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 86:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** HSI enable (optional: if asynchronous clock 87:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) RCC_OscInitTypeDef RCC_OscInitStructure; 88:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) RCC_OscInitStructure.OscillatorType = RCC_OSCILLATORTYPE_HSI; 89:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) RCC_OscInitStructure.HSI16CalibrationValue = RCC_HSICALIBRATION_DEFAULT; 90:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) RCC_OscInitStructure.HSIState = RCC_HSI_ON; 91:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) RCC_OscInitStructure.PLL... (optional if used for system clock) ARM GAS /tmp/ccHnSxqq.s page 3 92:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) HAL_RCC_OscConfig(&RCC_OscInitStructure); 93:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 94:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) ADC clock source and clock prescaler are configured at ADC level with 95:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** parameter "ClockPrescaler" using function HAL_ADC_Init(). 96:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 97:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (#) ADC pins configuration 98:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) Enable the clock for the ADC GPIOs 99:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using macro __HAL_RCC_GPIOx_CLK_ENABLE() 100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) Configure these ADC pins in analog mode 101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_GPIO_Init() 102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (#) Optionally, in case of usage of ADC with interruptions: 104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) Configure the NVIC for ADC 105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_NVIC_EnableIRQ(ADCx_IRQn) 106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) Insert the ADC interruption handler function HAL_ADC_IRQHandler() 107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** into the function of corresponding ADC interruption vector 108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** ADCx_IRQHandler(). 109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (#) Optionally, in case of usage of DMA: 111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) Configure the DMA (DMA channel, mode normal or circular, ...) 112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_DMA_Init(). 113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) Configure the NVIC for DMA 114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_NVIC_EnableIRQ(DMAx_Channelx_IRQn) 115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) Insert the ADC interruption handler function HAL_ADC_IRQHandler() 116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** into the function of corresponding DMA interruption vector 117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** DMAx_Channelx_IRQHandler(). 118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** *** Configuration of ADC, group regular, channels parameters *** 120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** ================================================================ 121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** [..] 122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (#) Configure the ADC parameters (resolution, data alignment, ...) 124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** and regular group parameters (conversion trigger, sequencer, ...) 125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_ADC_Init(). 126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (#) Configure the channels for regular group parameters (channel number, 128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** channel rank into sequencer, ..., into regular group) 129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_ADC_ConfigChannel(). 130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (#) Optionally, configure the analog watchdog parameters (channels 132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** monitored, thresholds, ...) 133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_ADC_AnalogWDGConfig(). 134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (#) When device is in mode low-power (low-power run, low-power sleep or stop mode), 137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** function "HAL_ADCEx_EnableVREFINT()" must be called before function HAL_ADC_Init(). 138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** In case of internal temperature sensor to be measured: 139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** function "HAL_ADCEx_EnableVREFINTTempSensor()" must be called similarilly 140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** *** Execution of ADC conversions *** 142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** ==================================== 143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** [..] 144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (#) Optionally, perform an automatic ADC calibration to improve the 146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** conversion accuracy 147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_ADCEx_Calibration_Start(). 148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** ARM GAS /tmp/ccHnSxqq.s page 4 149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (#) ADC driver can be used among three modes: polling, interruption, 150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** transfer by DMA. 151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) ADC conversion by polling: 153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) Activate the ADC peripheral and start conversions 154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_ADC_Start() 155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) Wait for ADC conversion completion 156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_ADC_PollForConversion() 157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) Retrieve conversion results 158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_ADC_GetValue() 159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) Stop conversion and disable the ADC peripheral 160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_ADC_Stop() 161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) ADC conversion by interruption: 163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) Activate the ADC peripheral and start conversions 164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_ADC_Start_IT() 165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) Wait for ADC conversion completion by call of function 166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** HAL_ADC_ConvCpltCallback() 167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (this function must be implemented in user program) 168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) Retrieve conversion results 169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_ADC_GetValue() 170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) Stop conversion and disable the ADC peripheral 171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_ADC_Stop_IT() 172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) ADC conversion with transfer by DMA: 174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) Activate the ADC peripheral and start conversions 175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_ADC_Start_DMA() 176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) Wait for ADC conversion completion by call of function 177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** HAL_ADC_ConvCpltCallback() or HAL_ADC_ConvHalfCpltCallback() 178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (these functions must be implemented in user program) 179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) Conversion results are automatically transferred by DMA into 180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** destination variable address. 181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) Stop conversion and disable the ADC peripheral 182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_ADC_Stop_DMA() 183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** [..] 185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (@) Callback functions must be implemented in user program: 187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+@) HAL_ADC_ErrorCallback() 188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+@) HAL_ADC_LevelOutOfWindowCallback() (callback of analog watchdog) 189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+@) HAL_ADC_ConvCpltCallback() 190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+@) HAL_ADC_ConvHalfCpltCallback 191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** *** Deinitialization of ADC *** 193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** ============================================================ 194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** [..] 195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (#) Disable the ADC interface 197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) ADC clock can be hard reset and disabled at RCC top level. 198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) Hard reset of ADC peripherals 199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using macro __ADCx_FORCE_RESET(), __ADCx_RELEASE_RESET(). 200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) ADC clock disable 201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using the equivalent macro/functions as configuration step. 202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) Example: 203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** Into HAL_ADC_MspDeInit() (recommended code location) or with 204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** other device clock parameters configuration: 205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) RCC_OscInitStructure.OscillatorType = RCC_OSCILLATORTYPE_HSI; ARM GAS /tmp/ccHnSxqq.s page 5 206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) RCC_OscInitStructure.HSIState = RCC_HSI_OFF; (if not used for system clock) 207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (+++) HAL_RCC_OscConfig(&RCC_OscInitStructure); 208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (#) ADC pins configuration 210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) Disable the clock for the ADC GPIOs 211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using macro __HAL_RCC_GPIOx_CLK_DISABLE() 212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (#) Optionally, in case of usage of ADC with interruptions: 214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) Disable the NVIC for ADC 215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_NVIC_EnableIRQ(ADCx_IRQn) 216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (#) Optionally, in case of usage of DMA: 218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) Deinitialize the DMA 219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_DMA_Init(). 220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** (++) Disable the NVIC for DMA 221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** using function HAL_NVIC_EnableIRQ(DMAx_Channelx_IRQn) 222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** [..] 224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** 225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** @endverbatim 226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** ****************************************************************************** 227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * @attention 228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** * 229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_adc.c **** *

© COPYRIGHT(c) 2016 STMicroelectronics

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