ARM GAS /tmp/cc2L8ohm.s page 1 1 .cpu cortex-m4 2 .eabi_attribute 27, 1 3 .eabi_attribute 28, 1 4 .eabi_attribute 23, 1 5 .eabi_attribute 24, 1 6 .eabi_attribute 25, 1 7 .eabi_attribute 26, 1 8 .eabi_attribute 30, 2 9 .eabi_attribute 34, 1 10 .eabi_attribute 18, 4 11 .file "stm32g4xx_hal_dac.c" 12 .text 13 .Ltext0: 14 .cfi_sections .debug_frame 15 .section .text.HAL_DAC_MspInit,"ax",%progbits 16 .align 1 17 .p2align 2,,3 18 .weak HAL_DAC_MspInit 19 .syntax unified 20 .thumb 21 .thumb_func 22 .fpu fpv4-sp-d16 24 HAL_DAC_MspInit: 25 .LFB331: 26 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c" 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ****************************************************************************** 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @file stm32g4xx_hal_dac.c 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @author MCD Application Team 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief DAC HAL module driver. 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * functionalities of the Digital to Analog Converter (DAC) peripheral: 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * + Initialization and de-initialization functions 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * + IO operation functions 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * + Peripheral Control functions 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * + Peripheral State and Errors functions 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** @verbatim 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ============================================================================== 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ##### DAC Peripheral features ##### 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ============================================================================== 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** DAC Channels *** 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ==================== 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** STM32G4 devices integrate up to seven 12-bit Digital Analog Converters, 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** up to six of them grouped by pair forming a DAC instance. 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** The 2 converters of an single instance (i.e. channel1 & channel2) 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** can be used independently or simultaneously (dual mode): 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) DAC channel1 with DAC_OUT1 as output (not for all) or connected to on-chip 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** peripherals (ex. comparators, operational amplifier). 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) DAC channel2 with DAC_OUT2 as output (not for all) or connected to on-chip 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** peripherals (ex. comparators, operational amplifier). 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Note: when an instance only includes one converter, only independent mode is 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** supported by this converter. ARM GAS /tmp/cc2L8ohm.s page 2 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** STM32G4 instances & converters availability and output PIO mapping (DAC_OUTx): 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ---------------------------------------------------------------------------- 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** | DAC1 | DAC2 | DAC3 | DAC4 | 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ---------------------------------------------------------------------------- 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Channel 1 | | YES | YES | YES | YES 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** | DAC_OUT1 | PA4 | PA6 | - | - 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ---------------------------------------------------------------------------- 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Channel 2 | | YES | NO | YES | YES 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** | DAC_OUT2 | PA5 | - | - | - 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ---------------------------------------------------------------------------- 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Note: On this STM32 series, all devices do not include each DAC instances listed 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** above. Refer to device datasheet for DACx instance availability. 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** DAC Triggers *** 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ==================== 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Digital to Analog conversion can be non-triggered using DAC_TRIGGER_NONE 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** and DAC_OUT1/DAC_OUT2 is available once writing to DHRx register. 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Digital to Analog conversion can be triggered by: 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) External event: EXTI Line 9 (any GPIOx_PIN_9) using DAC_TRIGGER_EXT_IT9. 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** The used pin (GPIOx_PIN_9) must be configured in input mode. 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) Timers TRGO: TIM1, TIM2, TIM3, TIM4, TIM6, TIM7, TIM8 and TIM15 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (DAC_TRIGGER_T2_TRGO, DAC_TRIGGER_T3_TRGO...) 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) Software using DAC_TRIGGER_SOFTWARE 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) HRTimer TRGO: HRTIM1 (1) 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (DAC_TRIGGER_HRTIM_TRG01, DAC_TRIGGER_HRTIM_TRG02...) 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Specific triggers for sawtooth generation: 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) External event: EXTI Line 10 (any GPIOx_PIN_10) using DAC_TRIGGER_EXT_IT10. 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** The used pin (GPIOx_PIN_10) must be configured in input mode. 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) HRTimer Step & Reset: HRTIM1 (1) 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (DAC_TRIGGER_HRTIM_RST_TRG1, DAC_TRIGGER_HRTIM_STEP_TRG1...) 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Note: On this STM32 series, parameter only available if HRTIM feature is 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** supported (refer to device datasheet for supported features list) 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** DAC Buffer mode feature *** 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** =============================== 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Each DAC channel integrates an output buffer that can be used to 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** reduce the output impedance, and to drive external loads directly 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** without having to add an external operational amplifier. 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** To enable, the output buffer use 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE; 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (@) Refer to the device datasheet for more details about output 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** impedance value with and without output buffer. 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** DAC connect feature *** 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** =============================== ARM GAS /tmp/cc2L8ohm.s page 3 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Each DAC channel can be connected internally. 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** To connect, use 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** sConfig.DAC_ConnectOnChipPeripheral = DAC_CHIPCONNECT_INTERNAL; 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** or 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** sConfig.DAC_ConnectOnChipPeripheral = DAC_CHIPCONNECT_BOTH; 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** GPIO configurations guidelines *** 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ===================== 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** When a DAC channel is used (ex channel1 on PA4) and the other is not 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (ex channel2 on PA5 is configured in Analog and disabled). 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Channel1 may disturb channel2 as coupling effect. 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Note that there is no coupling on channel2 as soon as channel2 is turned on. 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Coupling on adjacent channel could be avoided as follows: 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** when unused PA5 is configured as INPUT PULL-UP or DOWN. 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** PA5 is configured in ANALOG just before it is turned on. 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** DAC Sample and Hold feature *** 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ======================== 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** For each converter, 2 modes are supported: normal mode and 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** "sample and hold" mode (i.e. low power mode). 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** In the sample and hold mode, the DAC core converts data, then holds the 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** converted voltage on a capacitor. When not converting, the DAC cores and 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** buffer are completely turned off between samples and the DAC output is 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tri-stated, therefore reducing the overall power consumption. A new 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** stabilization period is needed before each new conversion. 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** The sample and hold allow setting internal or external voltage @ 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** low power consumption cost (output value can be at any given rate either 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** by CPU or DMA). 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** The Sample and hold block and registers uses either LSI & run in 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** several power modes: run mode, sleep mode, low power run, low power sleep 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** mode & stop1 mode. 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Low power stop1 mode allows only static conversion. 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** To enable Sample and Hold mode 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Enable LSI using HAL_RCC_OscConfig with RCC_OSCILLATORTYPE_LSI & 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** RCC_LSI_ON parameters. 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Use DAC_InitStructure.DAC_SampleAndHold = DAC_SAMPLEANDHOLD_ENABLE; 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** & DAC_ChannelConfTypeDef.DAC_SampleAndHoldConfig.DAC_SampleTime, 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** DAC_HoldTime & DAC_RefreshTime; 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** DAC calibration feature *** 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** =================================== 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) The 2 converters (channel1 & channel2) provide calibration capabilities. 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (++) Calibration aims at correcting some offset of output buffer. 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (++) The DAC uses either factory calibration settings OR user defined 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** calibration (trimming) settings (i.e. trimming mode). 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (++) The user defined settings can be figured out using self calibration 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** handled by HAL_DACEx_SelfCalibrate. 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (++) HAL_DACEx_SelfCalibrate: ARM GAS /tmp/cc2L8ohm.s page 4 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+++) Runs automatically the calibration. 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+++) Enables the user trimming mode 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+++) Updates a structure with trimming values with fresh calibration 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** results. 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** The user may store the calibration results for larger 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (ex monitoring the trimming as a function of temperature 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** for instance) 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** DAC wave generation feature *** 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** =================================== 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Both DAC channels can be used to generate 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) Noise wave 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) Triangle wave 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) Sawtooth wave 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** DAC data format *** 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ======================= 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** The DAC data format can be: 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) 8-bit right alignment using DAC_ALIGN_8B_R 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) 12-bit left alignment using DAC_ALIGN_12B_L 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (#) 12-bit right alignment using DAC_ALIGN_12B_R 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** DAC data value to voltage correspondence *** 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ================================================ 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** The analog output voltage on each DAC channel pin is determined 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** by the following equation: 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** DAC_OUTx = VREF+ * DOR / 4095 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) with DOR is the Data Output Register 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** VREF+ is the input voltage reference (refer to the device datasheet) 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** e.g. To set DAC_OUT1 to 0.7V, use 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Assuming that VREF+ = 3.3V, DAC_OUT1 = (3.3 * 868) / 4095 = 0.7V 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** DMA requests *** 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ===================== 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** A DMAMUX request can be generated when an external trigger (but not a software trigger) 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** occurs if DMAMUX requests are enabled using HAL_DAC_Start_DMA(). 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** DMAMUX requests are mapped as following: 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ---------------------------------------------------------------------------- 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** | DAC1 | DAC2 | DAC3 | DAC4 | 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ---------------------------------------------------------------------------- 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Channel 1 | | 6 | 41 | 102 | 104 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ---------------------------------------------------------------------------- 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Channel 2 | | 7 | - | 103 | 105 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ---------------------------------------------------------------------------- 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Note: On this STM32 series, all devices do not include each DAC instances listed 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** above. Refer to device datasheet for DACx instance availability. 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** High frequency interface mode *** 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ===================================== 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] ARM GAS /tmp/cc2L8ohm.s page 5 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** The high frequency interface informs DAC instance about the bus frequency in use. 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** It is mandatory information for DAC (as internal timing of DAC is bus frequency dependent) 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** provided thanks to parameter DAC_HighFrequency handled in HAL_DAC_ConfigChannel () function. 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Use of DAC_HIGH_FREQUENCY_INTERFACE_MODE_AUTOMATIC value of DAC_HighFrequency is recommended 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** function figured out the correct setting. 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** The high frequency mode is same for all converters of a same DAC instance. Either same 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** parameter DAC_HighFrequency is used for all DAC converters or again self 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** DAC_HIGH_FREQUENCY_INTERFACE_MODE_AUTOMATIC detection parameter. 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (@) For Dual mode and specific signal (Sawtooth, triangle and noise) generation 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** please refer to Extended Features Driver description 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ##### How to use this driver ##### 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ============================================================================== 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) DAC APB clock must be enabled to get write access to DAC 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** registers using HAL_DAC_Init() 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) If available & needed, configure DAC_OUTx (DAC_OUT1, DAC_OUT2) in analog mode. 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Configure the DAC channel using HAL_DAC_ConfigChannel() function. 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Enable the DAC channel using HAL_DAC_Start() or HAL_DAC_Start_DMA() functions. 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** Calibration mode IO operation *** 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ====================================== 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Retrieve the factory trimming (calibration settings) using HAL_DACEx_GetTrimOffset() 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Run the calibration using HAL_DACEx_SelfCalibrate() 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Update the trimming while DAC running using HAL_DACEx_SetUserTrimming() 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** Polling mode IO operation *** 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ================================= 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Start the DAC peripheral using HAL_DAC_Start() 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) To read the DAC last data output value, use the HAL_DAC_GetValue() function. 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Stop the DAC peripheral using HAL_DAC_Stop() 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** DMA mode IO operation *** 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ============================== 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Start the DAC peripheral using HAL_DAC_Start_DMA(), at this stage the user specify the l 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** of data to be transferred at each end of conversion 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** First issued trigger will start the conversion of the value previously set by HAL_DAC_Se 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) At the middle of data transfer HAL_DAC_ConvHalfCpltCallbackCh1() or HAL_DACEx_ConvHalfCp 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** function is executed and user can add his own code by customization of function pointer 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_DAC_ConvHalfCpltCallbackCh1() or HAL_DACEx_ConvHalfCpltCallbackCh2() 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) At The end of data transfer HAL_DAC_ConvCpltCallbackCh1() or HAL_DACEx_ConvHalfCpltCallb 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** function is executed and user can add his own code by customization of function pointer 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_DAC_ConvCpltCallbackCh1() or HAL_DACEx_ConvHalfCpltCallbackCh2() 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) In case of transfer Error, HAL_DAC_ErrorCallbackCh1() function is executed and user can 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** add his own code by customization of function pointer HAL_DAC_ErrorCallbackCh1 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) In case of DMA underrun, DAC interruption triggers and execute internal function HAL_DAC 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_DAC_DMAUnderrunCallbackCh1() or HAL_DACEx_DMAUnderrunCallbackCh2() 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** function is executed and user can add his own code by customization of function pointer 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_DAC_DMAUnderrunCallbackCh1() or HAL_DACEx_DMAUnderrunCallbackCh2() and 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** add his own code by customization of function pointer HAL_DAC_ErrorCallbackCh1() 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Stop the DAC peripheral using HAL_DAC_Stop_DMA() 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ARM GAS /tmp/cc2L8ohm.s page 6 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** Callback registration *** 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ============================================= 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** The compilation define USE_HAL_DAC_REGISTER_CALLBACKS when set to 1 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** allows the user to configure dynamically the driver callbacks. 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Use Functions @ref HAL_DAC_RegisterCallback() to register a user callback, 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** it allows to register following callbacks: 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) ConvCpltCallbackCh1 : callback when a half transfer is completed on Ch1. 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) ConvHalfCpltCallbackCh1 : callback when a transfer is completed on Ch1. 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) ErrorCallbackCh1 : callback when an error occurs on Ch1. 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) DMAUnderrunCallbackCh1 : callback when an underrun error occurs on Ch1. 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) ConvCpltCallbackCh2 : callback when a half transfer is completed on Ch2. 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) ConvHalfCpltCallbackCh2 : callback when a transfer is completed on Ch2. 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) ErrorCallbackCh2 : callback when an error occurs on Ch2. 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) DMAUnderrunCallbackCh2 : callback when an underrun error occurs on Ch2. 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) MspInitCallback : DAC MspInit. 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) MspDeInitCallback : DAC MspdeInit. 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** and a pointer to the user callback function. 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Use function @ref HAL_DAC_UnRegisterCallback() to reset a callback to the default 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** weak (surcharged) function. It allows to reset following callbacks: 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) ConvCpltCallbackCh1 : callback when a half transfer is completed on Ch1. 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) ConvHalfCpltCallbackCh1 : callback when a transfer is completed on Ch1. 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) ErrorCallbackCh1 : callback when an error occurs on Ch1. 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) DMAUnderrunCallbackCh1 : callback when an underrun error occurs on Ch1. 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) ConvCpltCallbackCh2 : callback when a half transfer is completed on Ch2. 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) ConvHalfCpltCallbackCh2 : callback when a transfer is completed on Ch2. 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) ErrorCallbackCh2 : callback when an error occurs on Ch2. 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) DMAUnderrunCallbackCh2 : callback when an underrun error occurs on Ch2. 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) MspInitCallback : DAC MspInit. 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) MspDeInitCallback : DAC MspdeInit. 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) All Callbacks 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** This function) takes as parameters the HAL peripheral handle and the Callback ID. 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** By default, after the @ref HAL_DAC_Init and if the state is HAL_DAC_STATE_RESET 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** all callbacks are reset to the corresponding legacy weak (surcharged) functions. 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Exception done for MspInit and MspDeInit callbacks that are respectively 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** reset to the legacy weak (surcharged) functions in the @ref HAL_DAC_Init 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** and @ref HAL_DAC_DeInit only when these callbacks are null (not registered beforehand). 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** If not, MspInit or MspDeInit are not null, the @ref HAL_DAC_Init and @ref HAL_DAC_DeInit 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Callbacks can be registered/unregistered in READY state only. 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Exception done for MspInit/MspDeInit callbacks that can be registered/unregistered 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** in READY or RESET state, thus registered (user) MspInit/DeInit callbacks can be used 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** during the Init/DeInit. 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** In that case first register the MspInit/MspDeInit user callbacks 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** using @ref HAL_DAC_RegisterCallback before calling @ref HAL_DAC_DeInit 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** or @ref HAL_DAC_Init function. 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** When The compilation define USE_HAL_DAC_REGISTER_CALLBACKS is set to 0 or 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** not defined, the callback registering feature is not available 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** and weak (surcharged) callbacks are used. 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *** DAC HAL driver macros list *** ARM GAS /tmp/cc2L8ohm.s page 7 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ============================================= 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** Below the list of most used macros in DAC HAL driver. 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) __HAL_DAC_ENABLE : Enable the DAC peripheral 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) __HAL_DAC_DISABLE : Disable the DAC peripheral 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) __HAL_DAC_CLEAR_FLAG: Clear the DAC's pending flags 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) __HAL_DAC_GET_FLAG: Get the selected DAC's flag status 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (@) You can refer to the DAC HAL driver header file for more useful macros 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** @endverbatim 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ****************************************************************************** 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @attention 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *

© Copyright (c) 2019 STMicroelectronics. 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * All rights reserved.

336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * This software component is licensed by ST under BSD 3-Clause license, 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the "License"; You may not use this file except in compliance with the 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * License. You may obtain a copy of the License at: 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * opensource.org/licenses/BSD-3-Clause 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ****************************************************************************** 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Includes ------------------------------------------------------------------*/ 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #include "stm32g4xx_hal.h" 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** @addtogroup STM32G4xx_HAL_Driver 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @{ 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #ifdef HAL_DAC_MODULE_ENABLED 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #if defined(DAC1) || defined(DAC2) || defined(DAC3) ||defined (DAC4) 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** @defgroup DAC DAC 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief DAC driver modules 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @{ 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Private typedef -----------------------------------------------------------*/ 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Private define ------------------------------------------------------------*/ 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Private constants ---------------------------------------------------------*/ 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** @addtogroup DAC_Private_Constants DAC Private Constants 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @{ 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #define TIMEOUT_DAC_CALIBCONFIG 1U /* 1 ms */ 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #define HFSEL_ENABLE_THRESHOLD_80MHZ 80000000U /* 80 MHz */ 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #define HFSEL_ENABLE_THRESHOLD_160MHZ 160000000U /* 160 MHz */ 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @} 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Private macro -------------------------------------------------------------*/ ARM GAS /tmp/cc2L8ohm.s page 8 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Private variables ---------------------------------------------------------*/ 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Private function prototypes -----------------------------------------------*/ 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Exported functions -------------------------------------------------------*/ 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** @defgroup DAC_Exported_Functions DAC Exported Functions 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @{ 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** @defgroup DAC_Exported_Functions_Group1 Initialization and de-initialization functions 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Initialization and Configuration functions 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** @verbatim 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ============================================================================== 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ##### Initialization and de-initialization functions ##### 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ============================================================================== 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] This section provides functions allowing to: 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Initialize and configure the DAC. 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) De-initialize the DAC. 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** @endverbatim 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @{ 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Initialize the DAC peripheral according to the specified parameters 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * in the DAC_InitStruct and initialize the associated handle. 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval HAL status 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_StatusTypeDef HAL_DAC_Init(DAC_HandleTypeDef *hdac) 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check DAC handle */ 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (hdac == NULL) 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return HAL_ERROR; 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check the parameters */ 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_ALL_INSTANCE(hdac->Instance)); 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (hdac->State == HAL_DAC_STATE_RESET) 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Init the DAC Callback settings */ 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvCpltCallbackCh1 = HAL_DAC_ConvCpltCallbackCh1; 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvHalfCpltCallbackCh1 = HAL_DAC_ConvHalfCpltCallbackCh1; 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCallbackCh1 = HAL_DAC_ErrorCallbackCh1; 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMAUnderrunCallbackCh1 = HAL_DAC_DMAUnderrunCallbackCh1; 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvCpltCallbackCh2 = HAL_DACEx_ConvCpltCallbackCh2; 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvHalfCpltCallbackCh2 = HAL_DACEx_ConvHalfCpltCallbackCh2; 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCallbackCh2 = HAL_DACEx_ErrorCallbackCh2; 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMAUnderrunCallbackCh2 = HAL_DACEx_DMAUnderrunCallbackCh2; 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (hdac->MspInitCallback == NULL) 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->MspInitCallback = HAL_DAC_MspInit; ARM GAS /tmp/cc2L8ohm.s page 9 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #endif /* USE_HAL_DAC_REGISTER_CALLBACKS */ 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Allocate lock resource and initialize it */ 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->Lock = HAL_UNLOCKED; 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Init the low level hardware */ 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->MspInitCallback(hdac); 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #else 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Init the low level hardware */ 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_DAC_MspInit(hdac); 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #endif /* USE_HAL_DAC_REGISTER_CALLBACKS */ 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Initialize the DAC state*/ 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_BUSY; 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Set DAC error code to none */ 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCode = HAL_DAC_ERROR_NONE; 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Initialize the DAC state*/ 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_READY; 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Return function status */ 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return HAL_OK; 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Deinitialize the DAC peripheral registers to their default reset values. 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval HAL status 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_StatusTypeDef HAL_DAC_DeInit(DAC_HandleTypeDef *hdac) 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check DAC handle */ 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (hdac == NULL) 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return HAL_ERROR; 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check the parameters */ 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_ALL_INSTANCE(hdac->Instance)); 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state */ 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_BUSY; 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (hdac->MspDeInitCallback == NULL) 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->MspDeInitCallback = HAL_DAC_MspDeInit; 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* DeInit the low level hardware */ 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->MspDeInitCallback(hdac); 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #else 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* DeInit the low level hardware */ ARM GAS /tmp/cc2L8ohm.s page 10 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_DAC_MspDeInit(hdac); 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #endif /* USE_HAL_DAC_REGISTER_CALLBACKS */ 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Set DAC error code to none */ 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCode = HAL_DAC_ERROR_NONE; 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state */ 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_RESET; 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Release Lock */ 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_UNLOCK(hdac); 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Return function status */ 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return HAL_OK; 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Initialize the DAC MSP. 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval None 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __weak void HAL_DAC_MspInit(DAC_HandleTypeDef *hdac) 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 27 .loc 1 512 0 28 .cfi_startproc 29 @ args = 0, pretend = 0, frame = 0 30 @ frame_needed = 0, uses_anonymous_args = 0 31 @ link register save eliminated. 32 .LVL0: 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Prevent unused argument(s) compilation warning */ 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** UNUSED(hdac); 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* NOTE : This function should not be modified, when the callback is needed, 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** the HAL_DAC_MspInit could be implemented in the user file 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 33 .loc 1 519 0 34 0000 7047 bx lr 35 .cfi_endproc 36 .LFE331: 38 0002 00BF .section .text.HAL_DAC_Init,"ax",%progbits 39 .align 1 40 .p2align 2,,3 41 .global HAL_DAC_Init 42 .syntax unified 43 .thumb 44 .thumb_func 45 .fpu fpv4-sp-d16 47 HAL_DAC_Init: 48 .LFB329: 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check DAC handle */ 49 .loc 1 406 0 50 .cfi_startproc 51 @ args = 0, pretend = 0, frame = 0 52 @ frame_needed = 0, uses_anonymous_args = 0 53 .LVL1: ARM GAS /tmp/cc2L8ohm.s page 11 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 54 .loc 1 408 0 55 0000 88B1 cbz r0, .L6 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 56 .loc 1 415 0 57 0002 0379 ldrb r3, [r0, #4] @ zero_extendqisi2 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check DAC handle */ 58 .loc 1 406 0 59 0004 10B5 push {r4, lr} 60 .LCFI0: 61 .cfi_def_cfa_offset 8 62 .cfi_offset 4, -8 63 .cfi_offset 14, -4 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 64 .loc 1 415 0 65 0006 03F0FF02 and r2, r3, #255 66 000a 0446 mov r4, r0 67 000c 3BB1 cbz r3, .L11 68 .LVL2: 69 .L5: 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 70 .loc 1 451 0 71 000e 0023 movs r3, #0 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 72 .loc 1 448 0 73 0010 0221 movs r1, #2 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 74 .loc 1 454 0 75 0012 0122 movs r2, #1 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 76 .loc 1 448 0 77 0014 2171 strb r1, [r4, #4] 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 78 .loc 1 457 0 79 0016 1846 mov r0, r3 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 80 .loc 1 451 0 81 0018 2361 str r3, [r4, #16] 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 82 .loc 1 454 0 83 001a 2271 strb r2, [r4, #4] 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 84 .loc 1 458 0 85 001c 10BD pop {r4, pc} 86 .LVL3: 87 .L11: 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 88 .loc 1 436 0 89 001e 4271 strb r2, [r0, #5] 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #endif /* USE_HAL_DAC_REGISTER_CALLBACKS */ 90 .loc 1 443 0 91 0020 FFF7FEFF bl HAL_DAC_MspInit 92 .LVL4: 93 0024 F3E7 b .L5 94 .LVL5: 95 .L6: 96 .LCFI1: ARM GAS /tmp/cc2L8ohm.s page 12 97 .cfi_def_cfa_offset 0 98 .cfi_restore 4 99 .cfi_restore 14 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 100 .loc 1 410 0 101 0026 0120 movs r0, #1 102 .LVL6: 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 103 .loc 1 458 0 104 0028 7047 bx lr 105 .cfi_endproc 106 .LFE329: 108 002a 00BF .section .text.HAL_DAC_MspDeInit,"ax",%progbits 109 .align 1 110 .p2align 2,,3 111 .weak HAL_DAC_MspDeInit 112 .syntax unified 113 .thumb 114 .thumb_func 115 .fpu fpv4-sp-d16 117 HAL_DAC_MspDeInit: 118 .LFB351: 119 .cfi_startproc 120 @ args = 0, pretend = 0, frame = 0 121 @ frame_needed = 0, uses_anonymous_args = 0 122 @ link register save eliminated. 123 0000 7047 bx lr 124 .cfi_endproc 125 .LFE351: 127 0002 00BF .section .text.HAL_DAC_DeInit,"ax",%progbits 128 .align 1 129 .p2align 2,,3 130 .global HAL_DAC_DeInit 131 .syntax unified 132 .thumb 133 .thumb_func 134 .fpu fpv4-sp-d16 136 HAL_DAC_DeInit: 137 .LFB330: 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check DAC handle */ 138 .loc 1 467 0 139 .cfi_startproc 140 @ args = 0, pretend = 0, frame = 0 141 @ frame_needed = 0, uses_anonymous_args = 0 142 .LVL7: 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 143 .loc 1 469 0 144 0000 50B1 cbz r0, .L15 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check DAC handle */ 145 .loc 1 467 0 146 0002 10B5 push {r4, lr} 147 .LCFI2: 148 .cfi_def_cfa_offset 8 149 .cfi_offset 4, -8 150 .cfi_offset 14, -4 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 151 .loc 1 478 0 ARM GAS /tmp/cc2L8ohm.s page 13 152 0004 0223 movs r3, #2 153 0006 0446 mov r4, r0 154 0008 0371 strb r3, [r0, #4] 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #endif /* USE_HAL_DAC_REGISTER_CALLBACKS */ 155 .loc 1 489 0 156 000a FFF7FEFF bl HAL_DAC_MspDeInit 157 .LVL8: 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 158 .loc 1 493 0 159 000e 0020 movs r0, #0 160 0010 2061 str r0, [r4, #16] 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 161 .loc 1 499 0 162 0012 6071 strb r0, [r4, #5] 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 163 .loc 1 496 0 164 0014 2071 strb r0, [r4, #4] 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 165 .loc 1 503 0 166 0016 10BD pop {r4, pc} 167 .LVL9: 168 .L15: 169 .LCFI3: 170 .cfi_def_cfa_offset 0 171 .cfi_restore 4 172 .cfi_restore 14 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 173 .loc 1 471 0 174 0018 0120 movs r0, #1 175 .LVL10: 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 176 .loc 1 503 0 177 001a 7047 bx lr 178 .cfi_endproc 179 .LFE330: 181 .section .text.HAL_DAC_Start,"ax",%progbits 182 .align 1 183 .p2align 2,,3 184 .global HAL_DAC_Start 185 .syntax unified 186 .thumb 187 .thumb_func 188 .fpu fpv4-sp-d16 190 HAL_DAC_Start: 191 .LFB333: 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief DeInitialize the DAC MSP. 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval None 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __weak void HAL_DAC_MspDeInit(DAC_HandleTypeDef *hdac) 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Prevent unused argument(s) compilation warning */ 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** UNUSED(hdac); 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ARM GAS /tmp/cc2L8ohm.s page 14 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* NOTE : This function should not be modified, when the callback is needed, 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** the HAL_DAC_MspDeInit could be implemented in the user file 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @} 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** @defgroup DAC_Exported_Functions_Group2 IO operation functions 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief IO operation functions 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** @verbatim 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ============================================================================== 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ##### IO operation functions ##### 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ============================================================================== 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] This section provides functions allowing to: 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Start conversion. 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Stop conversion. 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Start conversion and enable DMA transfer. 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Stop conversion and disable DMA transfer. 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Get result of conversion. 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** @endverbatim 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @{ 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Enables DAC and starts conversion of channel. 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param Channel The selected DAC channel. 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * This parameter can be one of the following values: 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_CHANNEL_1: DAC Channel1 selected 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_CHANNEL_2: DAC Channel2 selected (1) 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * (1) On this STM32 series, parameter not available on all instances. 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * Refer to device datasheet for channels availability. 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval HAL status 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_StatusTypeDef HAL_DAC_Start(DAC_HandleTypeDef *hdac, uint32_t Channel) 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 192 .loc 1 573 0 193 .cfi_startproc 194 @ args = 0, pretend = 0, frame = 0 195 @ frame_needed = 0, uses_anonymous_args = 0 196 .LVL11: 197 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 198 .LCFI4: 199 .cfi_def_cfa_offset 24 200 .cfi_offset 3, -24 201 .cfi_offset 4, -20 202 .cfi_offset 5, -16 203 .cfi_offset 6, -12 204 .cfi_offset 7, -8 205 .cfi_offset 14, -4 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check the parameters */ ARM GAS /tmp/cc2L8ohm.s page 15 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_CHANNEL(hdac->Instance, Channel)); 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Process locked */ 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_LOCK(hdac); 206 .loc 1 578 0 207 0002 4379 ldrb r3, [r0, #5] @ zero_extendqisi2 208 0004 012B cmp r3, #1 209 0006 2DD0 beq .L24 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state */ 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_BUSY; 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Enable the Peripheral */ 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_DAC_ENABLE(hdac, Channel); 210 .loc 1 584 0 discriminator 2 211 0008 0268 ldr r2, [r0] 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 212 .loc 1 581 0 discriminator 2 213 000a 0226 movs r6, #2 214 000c 0671 strb r6, [r0, #4] 215 000e 0D46 mov r5, r1 216 0010 0446 mov r4, r0 217 .loc 1 584 0 discriminator 2 218 0012 1168 ldr r1, [r2] 219 .LVL12: 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 220 .loc 1 578 0 discriminator 2 221 0014 0120 movs r0, #1 222 .LVL13: 223 .loc 1 584 0 discriminator 2 224 0016 05F01007 and r7, r5, #16 225 001a 00FA07F3 lsl r3, r0, r7 226 001e 0B43 orrs r3, r3, r1 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 227 .loc 1 578 0 discriminator 2 228 0020 6071 strb r0, [r4, #5] 229 .loc 1 584 0 discriminator 2 230 0022 1360 str r3, [r2] 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Ensure minimum wait before using peripheral after enabling it */ 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_Delay(1); 231 .loc 1 586 0 discriminator 2 232 0024 FFF7FEFF bl HAL_Delay 233 .LVL14: 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (Channel == DAC_CHANNEL_1) 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check if software trigger enabled */ 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if ((hdac->Instance->CR & (DAC_CR_TEN1 | DAC_CR_TSEL1)) == DAC_TRIGGER_SOFTWARE) 234 .loc 1 591 0 discriminator 2 235 0028 2268 ldr r2, [r4] 236 002a 1368 ldr r3, [r2] 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 237 .loc 1 588 0 discriminator 2 238 002c 65B9 cbnz r5, .L22 239 .loc 1 591 0 240 002e 03F03E03 and r3, r3, #62 241 0032 B342 cmp r3, r6 ARM GAS /tmp/cc2L8ohm.s page 16 242 0034 03D1 bne .L23 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Enable the selected DAC software conversion */ 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** SET_BIT(hdac->Instance->SWTRIGR, DAC_SWTRIGR_SWTRIG1); 243 .loc 1 594 0 244 0036 5368 ldr r3, [r2, #4] 245 0038 43F00103 orr r3, r3, #1 246 003c 5360 str r3, [r2, #4] 247 .L23: 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check if software trigger enabled */ 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if ((hdac->Instance->CR & (DAC_CR_TEN2 | DAC_CR_TSEL2)) == (DAC_TRIGGER_SOFTWARE << (Channel & 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Enable the selected DAC software conversion*/ 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** SET_BIT(hdac->Instance->SWTRIGR, DAC_SWTRIGR_SWTRIG2); 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state */ 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_READY; 248 .loc 1 610 0 249 003e 0123 movs r3, #1 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Process unlocked */ 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_UNLOCK(hdac); 250 .loc 1 613 0 251 0040 0020 movs r0, #0 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 252 .loc 1 610 0 253 0042 2371 strb r3, [r4, #4] 254 .loc 1 613 0 255 0044 6071 strb r0, [r4, #5] 256 .L21: 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Return function status */ 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return HAL_OK; 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 257 .loc 1 617 0 258 0046 F8BD pop {r3, r4, r5, r6, r7, pc} 259 .LVL15: 260 .L22: 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 261 .loc 1 601 0 262 0048 BE40 lsls r6, r6, r7 263 004a 03F47813 and r3, r3, #4063232 264 004e B342 cmp r3, r6 265 0050 F5D1 bne .L23 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 266 .loc 1 604 0 267 0052 5368 ldr r3, [r2, #4] 268 0054 43F00203 orr r3, r3, #2 269 0058 5360 str r3, [r2, #4] ARM GAS /tmp/cc2L8ohm.s page 17 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 270 .loc 1 613 0 271 005a 0020 movs r0, #0 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 272 .loc 1 610 0 273 005c 0123 movs r3, #1 274 005e 2371 strb r3, [r4, #4] 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 275 .loc 1 613 0 276 0060 6071 strb r0, [r4, #5] 277 0062 F0E7 b .L21 278 .LVL16: 279 .L24: 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 280 .loc 1 578 0 281 0064 0220 movs r0, #2 282 .LVL17: 283 .loc 1 617 0 284 0066 F8BD pop {r3, r4, r5, r6, r7, pc} 285 .cfi_endproc 286 .LFE333: 288 .section .text.HAL_DAC_Stop,"ax",%progbits 289 .align 1 290 .p2align 2,,3 291 .global HAL_DAC_Stop 292 .syntax unified 293 .thumb 294 .thumb_func 295 .fpu fpv4-sp-d16 297 HAL_DAC_Stop: 298 .LFB334: 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Disables DAC and stop conversion of channel. 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param Channel The selected DAC channel. 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * This parameter can be one of the following values: 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_CHANNEL_1: DAC Channel1 selected 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_CHANNEL_2: DAC Channel2 selected (1) 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * (1) On this STM32 series, parameter not available on all instances. 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * Refer to device datasheet for channels availability. 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval HAL status 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_StatusTypeDef HAL_DAC_Stop(DAC_HandleTypeDef *hdac, uint32_t Channel) 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 299 .loc 1 633 0 300 .cfi_startproc 301 @ args = 0, pretend = 0, frame = 0 302 @ frame_needed = 0, uses_anonymous_args = 0 303 .LVL18: 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check the parameters */ 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_CHANNEL(hdac->Instance, Channel)); 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Disable the Peripheral */ 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_DAC_DISABLE(hdac, Channel); ARM GAS /tmp/cc2L8ohm.s page 18 304 .loc 1 638 0 305 0000 0268 ldr r2, [r0] 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check the parameters */ 306 .loc 1 633 0 307 0002 38B5 push {r3, r4, r5, lr} 308 .LCFI5: 309 .cfi_def_cfa_offset 16 310 .cfi_offset 3, -16 311 .cfi_offset 4, -12 312 .cfi_offset 5, -8 313 .cfi_offset 14, -4 314 .loc 1 638 0 315 0004 01F01001 and r1, r1, #16 316 .LVL19: 317 0008 0124 movs r4, #1 318 000a 1368 ldr r3, [r2] 319 000c 04FA01F1 lsl r1, r4, r1 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check the parameters */ 320 .loc 1 633 0 321 0010 0546 mov r5, r0 322 .loc 1 638 0 323 0012 23EA0101 bic r1, r3, r1 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Ensure minimum wait before enabling peripheral after disabling it */ 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_Delay(1); 324 .loc 1 640 0 325 0016 2046 mov r0, r4 326 .LVL20: 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Ensure minimum wait before enabling peripheral after disabling it */ 327 .loc 1 638 0 328 0018 1160 str r1, [r2] 329 .loc 1 640 0 330 001a FFF7FEFF bl HAL_Delay 331 .LVL21: 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state */ 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_READY; 332 .loc 1 643 0 333 001e 2C71 strb r4, [r5, #4] 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Return function status */ 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return HAL_OK; 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 334 .loc 1 647 0 335 0020 0020 movs r0, #0 336 0022 38BD pop {r3, r4, r5, pc} 337 .cfi_endproc 338 .LFE334: 340 .section .text.HAL_DAC_Start_DMA,"ax",%progbits 341 .align 1 342 .p2align 2,,3 343 .global HAL_DAC_Start_DMA 344 .syntax unified 345 .thumb 346 .thumb_func 347 .fpu fpv4-sp-d16 349 HAL_DAC_Start_DMA: 350 .LFB335: ARM GAS /tmp/cc2L8ohm.s page 19 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Enables DAC and starts conversion of channel. 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param Channel The selected DAC channel. 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * This parameter can be one of the following values: 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_CHANNEL_1: DAC Channel1 selected 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_CHANNEL_2: DAC Channel2 selected (1) 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * (1) On this STM32 series, parameter not available on all instances. 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * Refer to device datasheet for channels availability. 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param pData The source Buffer address. 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param Length The length of data to be transferred from memory to DAC peripheral 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param Alignment Specifies the data alignment for DAC channel. 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * This parameter can be one of the following values: 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_ALIGN_8B_R: 8bit right data alignment selected 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_ALIGN_12B_L: 12bit left data alignment selected 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_ALIGN_12B_R: 12bit right data alignment selected 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval HAL status 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_StatusTypeDef HAL_DAC_Start_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t *pData, uin 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** uint32_t Alignment) 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 351 .loc 1 671 0 352 .cfi_startproc 353 @ args = 4, pretend = 0, frame = 0 354 @ frame_needed = 0, uses_anonymous_args = 0 355 .LVL22: 356 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 357 .LCFI6: 358 .cfi_def_cfa_offset 24 359 .cfi_offset 3, -24 360 .cfi_offset 4, -20 361 .cfi_offset 5, -16 362 .cfi_offset 6, -12 363 .cfi_offset 7, -8 364 .cfi_offset 14, -4 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_StatusTypeDef status = HAL_ERROR; 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** uint32_t tmpreg = 0U; 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check the parameters */ 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_CHANNEL(hdac->Instance, Channel)); 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_ALIGN(Alignment)); 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Process locked */ 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_LOCK(hdac); 365 .loc 1 680 0 366 0002 4479 ldrb r4, [r0, #5] @ zero_extendqisi2 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_StatusTypeDef status = HAL_ERROR; 367 .loc 1 671 0 368 0004 069F ldr r7, [sp, #24] 369 .loc 1 680 0 370 0006 012C cmp r4, #1 371 0008 60D0 beq .L43 372 000a 0446 mov r4, r0 373 000c 0D46 mov r5, r1 ARM GAS /tmp/cc2L8ohm.s page 20 374 000e 2668 ldr r6, [r4] 375 0010 1146 mov r1, r2 376 .LVL23: 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state */ 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_BUSY; 377 .loc 1 683 0 discriminator 2 378 0012 0222 movs r2, #2 379 .LVL24: 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 380 .loc 1 680 0 discriminator 2 381 0014 0120 movs r0, #1 382 .LVL25: 383 .loc 1 683 0 discriminator 2 384 0016 2271 strb r2, [r4, #4] 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 385 .loc 1 680 0 discriminator 2 386 0018 6071 strb r0, [r4, #5] 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (Channel == DAC_CHANNEL_1) 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Set the DMA transfer complete callback for channel1 */ 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMA_Handle1->XferCpltCallback = DAC_DMAConvCpltCh1; 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Set the DMA half transfer complete callback for channel1 */ 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMA_Handle1->XferHalfCpltCallback = DAC_DMAHalfConvCpltCh1; 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Set the DMA error callback for channel1 */ 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMA_Handle1->XferErrorCallback = DAC_DMAErrorCh1; 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Enable the selected DAC channel1 DMA request */ 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** SET_BIT(hdac->Instance->CR, DAC_CR_DMAEN1); 387 .loc 1 697 0 discriminator 2 388 001a 3268 ldr r2, [r6] 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 389 .loc 1 685 0 discriminator 2 390 001c 5DBB cbnz r5, .L30 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 391 .loc 1 688 0 392 001e A068 ldr r0, [r4, #8] 393 0020 DFF8C8C0 ldr ip, .L50 394 0024 C0F82CC0 str ip, [r0, #44] 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 395 .loc 1 691 0 396 0028 DFF8C4E0 ldr lr, .L50+4 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 397 .loc 1 694 0 398 002c DFF8C4C0 ldr ip, .L50+8 399 .loc 1 697 0 400 0030 42F48052 orr r2, r2, #4096 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Case of use of channel 1 */ 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** switch (Alignment) 401 .loc 1 700 0 402 0034 042F cmp r7, #4 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 403 .loc 1 694 0 ARM GAS /tmp/cc2L8ohm.s page 21 404 0036 C0E90CEC strd lr, ip, [r0, #48] 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 405 .loc 1 697 0 406 003a 3260 str r2, [r6] 407 .loc 1 700 0 408 003c 52D0 beq .L32 409 003e 082F cmp r7, #8 410 0040 4DD0 beq .L33 411 0042 002F cmp r7, #0 412 0044 3CD0 beq .L47 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case DAC_ALIGN_12B_R: 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Get DHR12R1 address */ 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg = (uint32_t)&hdac->Instance->DHR12R1; 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case DAC_ALIGN_12B_L: 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Get DHR12L1 address */ 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg = (uint32_t)&hdac->Instance->DHR12L1; 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case DAC_ALIGN_8B_R: 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Get DHR8R1 address */ 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg = (uint32_t)&hdac->Instance->DHR8R1; 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** default: 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Set the DMA transfer complete callback for channel2 */ 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMA_Handle2->XferCpltCallback = DAC_DMAConvCpltCh2; 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Set the DMA half transfer complete callback for channel2 */ 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMA_Handle2->XferHalfCpltCallback = DAC_DMAHalfConvCpltCh2; 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Set the DMA error callback for channel2 */ 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMA_Handle2->XferErrorCallback = DAC_DMAErrorCh2; 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Enable the selected DAC channel2 DMA request */ 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** SET_BIT(hdac->Instance->CR, DAC_CR_DMAEN2); 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Case of use of channel 2 */ 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** switch (Alignment) 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case DAC_ALIGN_12B_R: 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Get DHR12R2 address */ 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg = (uint32_t)&hdac->Instance->DHR12R2; 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case DAC_ALIGN_12B_L: 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Get DHR12L2 address */ 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg = (uint32_t)&hdac->Instance->DHR12L2; 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case DAC_ALIGN_8B_R: 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Get DHR8R2 address */ 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg = (uint32_t)&hdac->Instance->DHR8R2; 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; ARM GAS /tmp/cc2L8ohm.s page 22 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** default: 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Enable the DMA channel */ 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (Channel == DAC_CHANNEL_1) 413 .loc 1 755 0 414 0046 0022 movs r2, #0 415 .LVL26: 416 .L35: 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Enable the DAC DMA underrun interrupt */ 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_DAC_ENABLE_IT(hdac, DAC_IT_DMAUDR1); 417 .loc 1 758 0 418 0048 3768 ldr r7, [r6] 419 004a 47F40057 orr r7, r7, #8192 420 004e 3760 str r7, [r6] 421 .LVL27: 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Enable the DMA channel */ 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** status = HAL_DMA_Start_IT(hdac->DMA_Handle1, (uint32_t)pData, tmpreg, Length); 422 .loc 1 761 0 423 0050 FFF7FEFF bl HAL_DMA_Start_IT 424 .LVL28: 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Enable the DAC DMA underrun interrupt */ 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_DAC_ENABLE_IT(hdac, DAC_IT_DMAUDR2); 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Enable the DMA channel */ 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** status = HAL_DMA_Start_IT(hdac->DMA_Handle2, (uint32_t)pData, tmpreg, Length); 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Process Unlocked */ 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_UNLOCK(hdac); 425 .loc 1 775 0 426 0054 0023 movs r3, #0 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 427 .loc 1 761 0 428 0056 0646 mov r6, r0 429 .LVL29: 430 .loc 1 775 0 431 0058 6371 strb r3, [r4, #5] 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (status == HAL_OK) 432 .loc 1 777 0 433 005a 5EBB cbnz r6, .L42 434 .L49: 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Enable the Peripheral */ 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_DAC_ENABLE(hdac, Channel); 435 .loc 1 780 0 ARM GAS /tmp/cc2L8ohm.s page 23 436 005c 2368 ldr r3, [r4] 437 005e 0120 movs r0, #1 438 0060 1A68 ldr r2, [r3] 439 0062 05F01005 and r5, r5, #16 440 .LVL30: 441 0066 00FA05F5 lsl r5, r0, r5 442 006a 1543 orrs r5, r5, r2 443 006c 1D60 str r5, [r3] 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Ensure minimum wait before using peripheral after enabling it */ 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_Delay(1); 444 .loc 1 782 0 445 006e FFF7FEFF bl HAL_Delay 446 .LVL31: 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCode |= HAL_DAC_ERROR_DMA; 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Return function status */ 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return status; 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 447 .loc 1 791 0 448 0072 3046 mov r0, r6 449 0074 F8BD pop {r3, r4, r5, r6, r7, pc} 450 .LVL32: 451 .L30: 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 452 .loc 1 722 0 453 0076 E068 ldr r0, [r4, #12] 454 0078 DFF87CC0 ldr ip, .L50+12 455 007c C0F82CC0 str ip, [r0, #44] 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 456 .loc 1 725 0 457 0080 DFF878E0 ldr lr, .L50+16 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 458 .loc 1 728 0 459 0084 DFF878C0 ldr ip, .L50+20 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 460 .loc 1 731 0 461 0088 42F08052 orr r2, r2, #268435456 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 462 .loc 1 734 0 463 008c 042F cmp r7, #4 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 464 .loc 1 728 0 465 008e C0E90CEC strd lr, ip, [r0, #48] 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 466 .loc 1 731 0 467 0092 3260 str r2, [r6] 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 468 .loc 1 734 0 469 0094 20D0 beq .L36 470 0096 082F cmp r7, #8 471 0098 1BD0 beq .L37 472 009a A7B1 cbz r7, .L48 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { ARM GAS /tmp/cc2L8ohm.s page 24 473 .loc 1 755 0 474 009c 0022 movs r2, #0 475 .LVL33: 476 .L39: 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 477 .loc 1 767 0 478 009e 3768 ldr r7, [r6] 479 00a0 47F00057 orr r7, r7, #536870912 480 00a4 3760 str r7, [r6] 481 .LVL34: 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 482 .loc 1 770 0 483 00a6 FFF7FEFF bl HAL_DMA_Start_IT 484 .LVL35: 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 485 .loc 1 775 0 486 00aa 0023 movs r3, #0 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 487 .loc 1 770 0 488 00ac 0646 mov r6, r0 489 .LVL36: 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 490 .loc 1 775 0 491 00ae 6371 strb r3, [r4, #5] 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 492 .loc 1 777 0 493 00b0 002E cmp r6, #0 494 00b2 D3D0 beq .L49 495 .L42: 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 496 .loc 1 786 0 497 00b4 2369 ldr r3, [r4, #16] 498 00b6 43F00403 orr r3, r3, #4 499 00ba 2361 str r3, [r4, #16] 500 .loc 1 791 0 501 00bc 3046 mov r0, r6 502 00be F8BD pop {r3, r4, r5, r6, r7, pc} 503 .LVL37: 504 .L47: 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 505 .loc 1 704 0 506 00c0 06F10802 add r2, r6, #8 507 .LVL38: 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case DAC_ALIGN_12B_L: 508 .loc 1 705 0 509 00c4 C0E7 b .L35 510 .LVL39: 511 .L48: 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 512 .loc 1 738 0 513 00c6 06F11402 add r2, r6, #20 514 .LVL40: 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case DAC_ALIGN_12B_L: 515 .loc 1 739 0 516 00ca E8E7 b .L39 517 .LVL41: 518 .L43: ARM GAS /tmp/cc2L8ohm.s page 25 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 519 .loc 1 680 0 520 00cc 0226 movs r6, #2 521 .loc 1 791 0 522 00ce 3046 mov r0, r6 523 .LVL42: 524 00d0 F8BD pop {r3, r4, r5, r6, r7, pc} 525 .LVL43: 526 .L37: 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 527 .loc 1 746 0 528 00d2 06F11C02 add r2, r6, #28 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** default: 529 .loc 1 747 0 530 00d6 E2E7 b .L39 531 .L36: 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 532 .loc 1 742 0 533 00d8 06F11802 add r2, r6, #24 534 .LVL44: 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case DAC_ALIGN_8B_R: 535 .loc 1 743 0 536 00dc DFE7 b .L39 537 .LVL45: 538 .L33: 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 539 .loc 1 712 0 540 00de 06F11002 add r2, r6, #16 541 .LVL46: 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** default: 542 .loc 1 713 0 543 00e2 B1E7 b .L35 544 .LVL47: 545 .L32: 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 546 .loc 1 708 0 547 00e4 06F10C02 add r2, r6, #12 548 .LVL48: 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case DAC_ALIGN_8B_R: 549 .loc 1 709 0 550 00e8 AEE7 b .L35 551 .L51: 552 00ea 00BF .align 2 553 .L50: 554 00ec 00000000 .word DAC_DMAConvCpltCh1 555 00f0 00000000 .word DAC_DMAHalfConvCpltCh1 556 00f4 00000000 .word DAC_DMAErrorCh1 557 00f8 00000000 .word DAC_DMAConvCpltCh2 558 00fc 00000000 .word DAC_DMAHalfConvCpltCh2 559 0100 00000000 .word DAC_DMAErrorCh2 560 .cfi_endproc 561 .LFE335: 563 .section .text.HAL_DAC_Stop_DMA,"ax",%progbits 564 .align 1 565 .p2align 2,,3 566 .global HAL_DAC_Stop_DMA 567 .syntax unified ARM GAS /tmp/cc2L8ohm.s page 26 568 .thumb 569 .thumb_func 570 .fpu fpv4-sp-d16 572 HAL_DAC_Stop_DMA: 573 .LFB336: 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Disables DAC and stop conversion of channel. 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param Channel The selected DAC channel. 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * This parameter can be one of the following values: 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_CHANNEL_1: DAC Channel1 selected 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_CHANNEL_2: DAC Channel2 selected (1) 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * (1) On this STM32 series, parameter not available on all instances. 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * Refer to device datasheet for channels availability. 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval HAL status 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_StatusTypeDef HAL_DAC_Stop_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel) 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 574 .loc 1 807 0 575 .cfi_startproc 576 @ args = 0, pretend = 0, frame = 0 577 @ frame_needed = 0, uses_anonymous_args = 0 578 .LVL49: 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check the parameters */ 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_CHANNEL(hdac->Instance, Channel)); 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Disable the selected DAC channel DMA request */ 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->Instance->CR &= ~(DAC_CR_DMAEN1 << (Channel & 0x10UL)); 579 .loc 1 812 0 580 0000 0368 ldr r3, [r0] 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check the parameters */ 581 .loc 1 807 0 582 0002 70B5 push {r4, r5, r6, lr} 583 .LCFI7: 584 .cfi_def_cfa_offset 16 585 .cfi_offset 4, -16 586 .cfi_offset 5, -12 587 .cfi_offset 6, -8 588 .cfi_offset 14, -4 589 .loc 1 812 0 590 0004 01F01002 and r2, r1, #16 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check the parameters */ 591 .loc 1 807 0 592 0008 0446 mov r4, r0 593 .loc 1 812 0 594 000a 4FF48055 mov r5, #4096 595 000e 1868 ldr r0, [r3] 596 .LVL50: 597 0010 9540 lsls r5, r5, r2 598 0012 20EA0500 bic r0, r0, r5 599 0016 1860 str r0, [r3] 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Disable the Peripheral */ 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_DAC_DISABLE(hdac, Channel); ARM GAS /tmp/cc2L8ohm.s page 27 600 .loc 1 815 0 601 0018 1D68 ldr r5, [r3] 602 001a 0120 movs r0, #1 603 001c 00FA02F2 lsl r2, r0, r2 604 0020 25EA0202 bic r2, r5, r2 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check the parameters */ 605 .loc 1 807 0 606 0024 0E46 mov r6, r1 607 .loc 1 815 0 608 0026 1A60 str r2, [r3] 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Ensure minimum wait before enabling peripheral after disabling it */ 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_Delay(1); 609 .loc 1 817 0 610 0028 FFF7FEFF bl HAL_Delay 611 .LVL51: 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Disable the DMA channel */ 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Channel1 is used */ 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (Channel == DAC_CHANNEL_1) 612 .loc 1 822 0 613 002c 5EB1 cbz r6, .L56 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Disable the DMA channel */ 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (void)HAL_DMA_Abort(hdac->DMA_Handle1); 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Disable the DAC DMA underrun interrupt */ 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_DAC_DISABLE_IT(hdac, DAC_IT_DMAUDR1); 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else /* Channel2 is used for */ 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Disable the DMA channel */ 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (void)HAL_DMA_Abort(hdac->DMA_Handle2); 614 .loc 1 834 0 615 002e E068 ldr r0, [r4, #12] 616 0030 FFF7FEFF bl HAL_DMA_Abort 617 .LVL52: 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Disable the DAC DMA underrun interrupt */ 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_DAC_DISABLE_IT(hdac, DAC_IT_DMAUDR2); 618 .loc 1 837 0 619 0034 2268 ldr r2, [r4] 620 0036 1368 ldr r3, [r2] 621 0038 23F00053 bic r3, r3, #536870912 622 003c 1360 str r3, [r2] 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state */ 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_READY; 623 .loc 1 842 0 624 003e 0123 movs r3, #1 625 0040 2371 strb r3, [r4, #4] 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Return function status */ 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return HAL_OK; ARM GAS /tmp/cc2L8ohm.s page 28 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 626 .loc 1 846 0 627 0042 0020 movs r0, #0 628 0044 70BD pop {r4, r5, r6, pc} 629 .LVL53: 630 .L56: 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 631 .loc 1 825 0 632 0046 A068 ldr r0, [r4, #8] 633 0048 FFF7FEFF bl HAL_DMA_Abort 634 .LVL54: 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 635 .loc 1 828 0 636 004c 2268 ldr r2, [r4] 637 004e 1368 ldr r3, [r2] 638 0050 23F40053 bic r3, r3, #8192 639 0054 1360 str r3, [r2] 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 640 .loc 1 842 0 641 0056 0123 movs r3, #1 642 0058 2371 strb r3, [r4, #4] 643 .loc 1 846 0 644 005a 0020 movs r0, #0 645 005c 70BD pop {r4, r5, r6, pc} 646 .cfi_endproc 647 .LFE336: 649 005e 00BF .section .text.HAL_DAC_SetValue,"ax",%progbits 650 .align 1 651 .p2align 2,,3 652 .global HAL_DAC_SetValue 653 .syntax unified 654 .thumb 655 .thumb_func 656 .fpu fpv4-sp-d16 658 HAL_DAC_SetValue: 659 .LFB338: 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Handles DAC interrupt request 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * This function uses the interruption of DMA 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * underrun. 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval None 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** void HAL_DAC_IRQHandler(DAC_HandleTypeDef *hdac) 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (__HAL_DAC_GET_IT_SOURCE(hdac, DAC_IT_DMAUDR1)) 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check underrun flag of DAC channel 1 */ 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (__HAL_DAC_GET_FLAG(hdac, DAC_FLAG_DMAUDR1)) 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state to error state */ 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_ERROR; 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Set DAC error code to channel1 DMA underrun error */ 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** SET_BIT(hdac->ErrorCode, HAL_DAC_ERROR_DMAUNDERRUNCH1); ARM GAS /tmp/cc2L8ohm.s page 29 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear the underrun flag */ 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_DAC_CLEAR_FLAG(hdac, DAC_FLAG_DMAUDR1); 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Disable the selected DAC channel1 DMA request */ 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** CLEAR_BIT(hdac->Instance->CR, DAC_CR_DMAEN1); 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Error callback */ 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMAUnderrunCallbackCh1(hdac); 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #else 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_DAC_DMAUnderrunCallbackCh1(hdac); 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #endif /* USE_HAL_DAC_REGISTER_CALLBACKS */ 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (__HAL_DAC_GET_IT_SOURCE(hdac, DAC_IT_DMAUDR2)) 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check underrun flag of DAC channel 2 */ 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (__HAL_DAC_GET_FLAG(hdac, DAC_FLAG_DMAUDR2)) 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state to error state */ 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_ERROR; 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Set DAC error code to channel2 DMA underrun error */ 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** SET_BIT(hdac->ErrorCode, HAL_DAC_ERROR_DMAUNDERRUNCH2); 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear the underrun flag */ 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_DAC_CLEAR_FLAG(hdac, DAC_FLAG_DMAUDR2); 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Disable the selected DAC channel2 DMA request */ 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** CLEAR_BIT(hdac->Instance->CR, DAC_CR_DMAEN2); 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Error callback */ 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMAUnderrunCallbackCh2(hdac); 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #else 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_DACEx_DMAUnderrunCallbackCh2(hdac); 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #endif /* USE_HAL_DAC_REGISTER_CALLBACKS */ 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Set the specified data holding register value for DAC channel. 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param Channel The selected DAC channel. 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * This parameter can be one of the following values: 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_CHANNEL_1: DAC Channel1 selected 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_CHANNEL_2: DAC Channel2 selected (1) 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * (1) On this STM32 series, parameter not available on all instances. 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * Refer to device datasheet for channels availability. 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param Alignment Specifies the data alignment. ARM GAS /tmp/cc2L8ohm.s page 30 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * This parameter can be one of the following values: 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_ALIGN_8B_R: 8bit right data alignment selected 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_ALIGN_12B_L: 12bit left data alignment selected 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_ALIGN_12B_R: 12bit right data alignment selected 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param Data Data to be loaded in the selected data holding register. 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval HAL status 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_StatusTypeDef HAL_DAC_SetValue(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t Alignment, u 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 660 .loc 1 933 0 661 .cfi_startproc 662 @ args = 0, pretend = 0, frame = 8 663 @ frame_needed = 0, uses_anonymous_args = 0 664 @ link register save eliminated. 665 .LVL55: 666 0000 10B4 push {r4} 667 .LCFI8: 668 .cfi_def_cfa_offset 4 669 .cfi_offset 4, -4 670 0002 83B0 sub sp, sp, #12 671 .LCFI9: 672 .cfi_def_cfa_offset 16 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __IO uint32_t tmp = 0UL; 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check the parameters */ 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_CHANNEL(hdac->Instance, Channel)); 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_ALIGN(Alignment)); 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* In case DMA Double data mode is activated, DATA range is almost full uin32_t one: no check */ 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if ((hdac->Instance->MCR & (DAC_MCR_DMADOUBLE1 << (Channel & 0x10UL))) == 0UL) 673 .loc 1 940 0 674 0004 0068 ldr r0, [r0] 675 .LVL56: 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __IO uint32_t tmp = 0UL; 676 .loc 1 934 0 677 0006 0024 movs r4, #0 678 0008 0194 str r4, [sp, #4] 679 .loc 1 940 0 680 000a C46B ldr r4, [r0, #60] 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_DATA(Data)); 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmp = (uint32_t)hdac->Instance; 681 .loc 1 945 0 682 000c 0190 str r0, [sp, #4] 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (Channel == DAC_CHANNEL_1) 683 .loc 1 946 0 684 000e 51B1 cbz r1, .L61 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmp += DAC_DHR12R1_ALIGNMENT(Alignment); 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmp += DAC_DHR12R2_ALIGNMENT(Alignment); 685 .loc 1 953 0 686 0010 0199 ldr r1, [sp, #4] ARM GAS /tmp/cc2L8ohm.s page 31 687 .LVL57: 688 0012 1431 adds r1, r1, #20 689 0014 0A44 add r2, r2, r1 690 .LVL58: 691 0016 0192 str r2, [sp, #4] 692 .L59: 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Set the DAC channel selected data holding register */ 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** *(__IO uint32_t *) tmp = Data; 693 .loc 1 958 0 694 0018 019A ldr r2, [sp, #4] 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Return function status */ 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return HAL_OK; 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 695 .loc 1 962 0 696 001a 0020 movs r0, #0 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 697 .loc 1 958 0 698 001c 1360 str r3, [r2] 699 .loc 1 962 0 700 001e 03B0 add sp, sp, #12 701 .LCFI10: 702 .cfi_remember_state 703 .cfi_def_cfa_offset 4 704 @ sp needed 705 0020 5DF8044B ldr r4, [sp], #4 706 .LCFI11: 707 .cfi_restore 4 708 .cfi_def_cfa_offset 0 709 0024 7047 bx lr 710 .LVL59: 711 .L61: 712 .LCFI12: 713 .cfi_restore_state 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 714 .loc 1 948 0 715 0026 0199 ldr r1, [sp, #4] 716 .LVL60: 717 0028 0831 adds r1, r1, #8 718 002a 0A44 add r2, r2, r1 719 .LVL61: 720 002c 0192 str r2, [sp, #4] 721 002e F3E7 b .L59 722 .cfi_endproc 723 .LFE338: 725 .section .text.HAL_DAC_ConvCpltCallbackCh1,"ax",%progbits 726 .align 1 727 .p2align 2,,3 728 .weak HAL_DAC_ConvCpltCallbackCh1 729 .syntax unified 730 .thumb 731 .thumb_func 732 .fpu fpv4-sp-d16 734 HAL_DAC_ConvCpltCallbackCh1: ARM GAS /tmp/cc2L8ohm.s page 32 735 .LFB353: 736 .cfi_startproc 737 @ args = 0, pretend = 0, frame = 0 738 @ frame_needed = 0, uses_anonymous_args = 0 739 @ link register save eliminated. 740 0000 7047 bx lr 741 .cfi_endproc 742 .LFE353: 744 0002 00BF .section .text.DAC_DMAConvCpltCh1,"ax",%progbits 745 .align 1 746 .p2align 2,,3 747 .global DAC_DMAConvCpltCh1 748 .syntax unified 749 .thumb 750 .thumb_func 751 .fpu fpv4-sp-d16 753 DAC_DMAConvCpltCh1: 754 .LFB347: 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Conversion complete callback in non-blocking mode for Channel1 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval None 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __weak void HAL_DAC_ConvCpltCallbackCh1(DAC_HandleTypeDef *hdac) 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Prevent unused argument(s) compilation warning */ 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** UNUSED(hdac); 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* NOTE : This function should not be modified, when the callback is needed, 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** the HAL_DAC_ConvCpltCallbackCh1 could be implemented in the user file 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Conversion half DMA transfer callback in non-blocking mode for Channel1 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval None 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __weak void HAL_DAC_ConvHalfCpltCallbackCh1(DAC_HandleTypeDef *hdac) 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Prevent unused argument(s) compilation warning */ 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** UNUSED(hdac); 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* NOTE : This function should not be modified, when the callback is needed, 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** the HAL_DAC_ConvHalfCpltCallbackCh1 could be implemented in the user file 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Error DAC callback for Channel1. 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval None 1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ ARM GAS /tmp/cc2L8ohm.s page 33 1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __weak void HAL_DAC_ErrorCallbackCh1(DAC_HandleTypeDef *hdac) 1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Prevent unused argument(s) compilation warning */ 1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** UNUSED(hdac); 1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* NOTE : This function should not be modified, when the callback is needed, 1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** the HAL_DAC_ErrorCallbackCh1 could be implemented in the user file 1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief DMA underrun DAC callback for channel1. 1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval None 1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __weak void HAL_DAC_DMAUnderrunCallbackCh1(DAC_HandleTypeDef *hdac) 1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Prevent unused argument(s) compilation warning */ 1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** UNUSED(hdac); 1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* NOTE : This function should not be modified, when the callback is needed, 1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** the HAL_DAC_DMAUnderrunCallbackCh1 could be implemented in the user file 1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @} 1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** @defgroup DAC_Exported_Functions_Group3 Peripheral Control functions 1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Peripheral Control functions 1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** @verbatim 1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ============================================================================== 1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ##### Peripheral Control functions ##### 1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ============================================================================== 1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] This section provides functions allowing to: 1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Configure channels. 1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Set the specified data holding register value for DAC channel. 1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** @endverbatim 1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @{ 1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Returns the last data output value of the selected DAC channel. 1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param Channel The selected DAC channel. 1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * This parameter can be one of the following values: 1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_CHANNEL_1: DAC Channel1 selected 1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_CHANNEL_2: DAC Channel2 selected (1) 1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * (1) On this STM32 series, parameter not available on all instances. 1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * Refer to device datasheet for channels availability. 1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval The selected DAC channel data output value. ARM GAS /tmp/cc2L8ohm.s page 34 1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** uint32_t HAL_DAC_GetValue(DAC_HandleTypeDef *hdac, uint32_t Channel) 1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** uint32_t tmp = 0U; 1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check the parameters */ 1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_CHANNEL(hdac->Instance, Channel)); 1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (Channel == DAC_CHANNEL_1) 1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmp = hdac->Instance->DOR1; 1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else 1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmp = hdac->Instance->DOR2; 1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Returns the DAC channel data output register value */ 1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return tmp; 1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Configures the selected DAC channel. 1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @note By calling this function, the high frequency interface mode (HFSEL bits) 1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * will be set. This parameter scope is the DAC instance. As the function 1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * is called for each channel, the @ref DAC_HighFrequency of @arg sConfig 1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * must be the same at each call. 1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * (or DAC_HIGH_FREQUENCY_INTERFACE_MODE_AUTOMATIC self detect). 1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param sConfig DAC configuration structure. 1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param Channel The selected DAC channel. 1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * This parameter can be one of the following values: 1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_CHANNEL_1: DAC Channel1 selected 1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg DAC_CHANNEL_2: DAC Channel2 selected (1) 1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * (1) On this STM32 series, parameter not available on all instances. 1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * Refer to device datasheet for channels availability. 1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval HAL status 1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_StatusTypeDef HAL_DAC_ConfigChannel(DAC_HandleTypeDef *hdac, DAC_ChannelConfTypeDef *sConfig, u 1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** uint32_t tmpreg1; 1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** uint32_t tmpreg2; 1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** uint32_t tickstart; 1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** uint32_t hclkfreq; 1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** uint32_t connectOnChip; 1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check the DAC parameters */ 1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_HIGH_FREQUENCY_MODE(sConfig->DAC_HighFrequency)); 1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_TRIGGER(hdac->Instance, sConfig->DAC_Trigger)); 1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_TRIGGER(hdac->Instance, sConfig->DAC_Trigger2)); 1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_OUTPUT_BUFFER_STATE(sConfig->DAC_OutputBuffer)); 1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_CHIP_CONNECTION(sConfig->DAC_ConnectOnChipPeripheral)); 1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_TRIMMING(sConfig->DAC_UserTrimming)); 1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if ((sConfig->DAC_UserTrimming) == DAC_TRIMMING_USER) ARM GAS /tmp/cc2L8ohm.s page 35 1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_TRIMMINGVALUE(sConfig->DAC_TrimmingValue)); 1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_SAMPLEANDHOLD(sConfig->DAC_SampleAndHold)); 1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if ((sConfig->DAC_SampleAndHold) == DAC_SAMPLEANDHOLD_ENABLE) 1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_SAMPLETIME(sConfig->DAC_SampleAndHoldConfig.DAC_SampleTime)); 1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_HOLDTIME(sConfig->DAC_SampleAndHoldConfig.DAC_HoldTime)); 1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_REFRESHTIME(sConfig->DAC_SampleAndHoldConfig.DAC_RefreshTime)); 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_DAC_CHANNEL(hdac->Instance, Channel)); 1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_FUNCTIONAL_STATE(sConfig->DAC_DMADoubleDataMode)); 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** assert_param(IS_FUNCTIONAL_STATE(sConfig->DAC_SignedFormat)); 1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Process locked */ 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_LOCK(hdac); 1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state */ 1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_BUSY; 1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Sample and hold configuration */ 1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (sConfig->DAC_SampleAndHold == DAC_SAMPLEANDHOLD_ENABLE) 1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Get timeout */ 1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tickstart = HAL_GetTick(); 1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (Channel == DAC_CHANNEL_1) 1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* SHSR1 can be written when BWST1 is cleared */ 1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** while (((hdac->Instance->SR) & DAC_SR_BWST1) != 0UL) 1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check for the Timeout */ 1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if ((HAL_GetTick() - tickstart) > TIMEOUT_DAC_CALIBCONFIG) 1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Update error code */ 1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** SET_BIT(hdac->ErrorCode, HAL_DAC_ERROR_TIMEOUT); 1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change the DMA state */ 1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_TIMEOUT; 1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return HAL_TIMEOUT; 1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_Delay(1); 1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->Instance->SHSR1 = sConfig->DAC_SampleAndHoldConfig.DAC_SampleTime; 1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else /* Channel 2 */ 1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* SHSR2 can be written when BWST2 is cleared */ 1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** while (((hdac->Instance->SR) & DAC_SR_BWST2) != 0UL) 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Check for the Timeout */ 1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if ((HAL_GetTick() - tickstart) > TIMEOUT_DAC_CALIBCONFIG) 1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Update error code */ 1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** SET_BIT(hdac->ErrorCode, HAL_DAC_ERROR_TIMEOUT); ARM GAS /tmp/cc2L8ohm.s page 36 1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change the DMA state */ 1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_TIMEOUT; 1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return HAL_TIMEOUT; 1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_Delay(1U); 1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->Instance->SHSR2 = sConfig->DAC_SampleAndHoldConfig.DAC_SampleTime; 1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* HoldTime */ 1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** MODIFY_REG(hdac->Instance->SHHR, DAC_SHHR_THOLD1 << (Channel & 0x10UL), 1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (sConfig->DAC_SampleAndHoldConfig.DAC_HoldTime) << (Channel & 0x10UL)); 1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* RefreshTime */ 1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** MODIFY_REG(hdac->Instance->SHRR, DAC_SHRR_TREFRESH1 << (Channel & 0x10UL), 1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (sConfig->DAC_SampleAndHoldConfig.DAC_RefreshTime) << (Channel & 0x10UL)); 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (sConfig->DAC_UserTrimming == DAC_TRIMMING_USER) 1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* USER TRIMMING */ 1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Get the DAC CCR value */ 1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 = hdac->Instance->CCR; 1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear trimming value */ 1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 &= ~(((uint32_t)(DAC_CCR_OTRIM1)) << (Channel & 0x10UL)); 1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected trimming offset */ 1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg2 = sConfig->DAC_TrimmingValue; 1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Calculate CCR register value depending on DAC_Channel */ 1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 |= tmpreg2 << (Channel & 0x10UL); 1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Write to DAC CCR */ 1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->Instance->CCR = tmpreg1; 1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* else factory trimming is used (factory setting are available at reset)*/ 1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* SW Nothing has nothing to do */ 1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Get the DAC MCR value */ 1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 = hdac->Instance->MCR; 1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear DAC_MCR_MODEx bits */ 1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 &= ~(((uint32_t)(DAC_MCR_MODE1)) << (Channel & 0x10UL)); 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected DAC channel: mode, buffer output & on chip peripheral connect */ 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (sConfig->DAC_ConnectOnChipPeripheral == DAC_CHIPCONNECT_EXTERNAL) 1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** connectOnChip = 0x00000000UL; 1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else if (sConfig->DAC_ConnectOnChipPeripheral == DAC_CHIPCONNECT_INTERNAL) 1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** connectOnChip = DAC_MCR_MODE1_0; 1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else /* (sConfig->DAC_ConnectOnChipPeripheral == DAC_CHIPCONNECT_BOTH) */ 1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (sConfig->DAC_OutputBuffer == DAC_OUTPUTBUFFER_ENABLE) 1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** connectOnChip = DAC_MCR_MODE1_0; 1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else ARM GAS /tmp/cc2L8ohm.s page 37 1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** connectOnChip = 0x00000000UL; 1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg2 = (sConfig->DAC_SampleAndHold | sConfig->DAC_OutputBuffer | connectOnChip); 1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear DAC_MCR_DMADOUBLEx */ 1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 &= ~(((uint32_t)(DAC_MCR_DMADOUBLE1)) << (Channel & 0x10UL)); 1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected DAC channel: DMA double data mode */ 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg2 |= (sConfig->DAC_DMADoubleDataMode == ENABLE) ? DAC_MCR_DMADOUBLE1 : 0UL; 1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear DAC_MCR_SINFORMATx */ 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 &= ~(((uint32_t)(DAC_MCR_SINFORMAT1)) << (Channel & 0x10UL)); 1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected DAC channel: Signed format */ 1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg2 |= (sConfig->DAC_SignedFormat == ENABLE) ? DAC_MCR_SINFORMAT1 : 0UL; 1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear DAC_MCR_HFSEL bits */ 1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 &= ~(DAC_MCR_HFSEL); 1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for both DAC channels: high frequency mode */ 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (DAC_HIGH_FREQUENCY_INTERFACE_MODE_AUTOMATIC == sConfig->DAC_HighFrequency) 1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hclkfreq = HAL_RCC_GetHCLKFreq(); 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (hclkfreq > HFSEL_ENABLE_THRESHOLD_160MHZ) 1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 |= DAC_HIGH_FREQUENCY_INTERFACE_MODE_ABOVE_160MHZ; 1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else if (hclkfreq > HFSEL_ENABLE_THRESHOLD_80MHZ) 1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 |= DAC_HIGH_FREQUENCY_INTERFACE_MODE_ABOVE_80MHZ; 1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else 1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 |= DAC_HIGH_FREQUENCY_INTERFACE_MODE_DISABLE; 1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else 1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 |= sConfig->DAC_HighFrequency; 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Calculate MCR register value depending on DAC_Channel */ 1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 |= tmpreg2 << (Channel & 0x10UL); 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Write to DAC MCR */ 1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->Instance->MCR = tmpreg1; 1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* DAC in normal operating mode hence clear DAC_CR_CENx bit */ 1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** CLEAR_BIT(hdac->Instance->CR, DAC_CR_CEN1 << (Channel & 0x10UL)); 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Get the DAC CR value */ 1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 = hdac->Instance->CR; 1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear TENx, TSELx, WAVEx and MAMPx bits */ 1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 &= ~(((uint32_t)(DAC_CR_MAMP1 | DAC_CR_WAVE1 | DAC_CR_TSEL1 | DAC_CR_TEN1)) << (Channel & 1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected DAC channel: trigger */ 1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Set TSELx and TENx bits according to DAC_Trigger value */ 1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg2 = sConfig->DAC_Trigger; 1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Calculate CR register value depending on DAC_Channel */ 1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg1 |= tmpreg2 << (Channel & 0x10UL); 1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Write to DAC CR */ 1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->Instance->CR = tmpreg1; 1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Disable wave generation */ 1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** CLEAR_BIT(hdac->Instance->CR, (DAC_CR_WAVE1 << (Channel & 0x10UL))); ARM GAS /tmp/cc2L8ohm.s page 38 1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Set STRSTTRIGSELx and STINCTRIGSELx bits according to DAC_Trigger & DAC_Trigger2 values */ 1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg2 = ((sConfig->DAC_Trigger & DAC_CR_TSEL1) >> DAC_CR_TSEL1_Pos) << DAC_STMODR_STRSTTRIGSEL1 1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg2 |= ((sConfig->DAC_Trigger2 & DAC_CR_TSEL1) >> DAC_CR_TSEL1_Pos) << DAC_STMODR_STINCTRIGSE 1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Modify STMODR register value depending on DAC_Channel */ 1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** MODIFY_REG(hdac->Instance->STMODR, (DAC_STMODR_STINCTRIGSEL1 | DAC_STMODR_STRSTTRIGSEL1) << (Chan 1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state */ 1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_READY; 1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Process unlocked */ 1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_UNLOCK(hdac); 1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Return function status */ 1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return HAL_OK; 1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @} 1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** @defgroup DAC_Exported_Functions_Group4 Peripheral State and Errors functions 1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Peripheral State and Errors functions 1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** @verbatim 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ============================================================================== 1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ##### Peripheral State and Errors functions ##### 1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ============================================================================== 1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** [..] 1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** This subsection provides functions allowing to 1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Check the DAC state. 1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (+) Check the DAC Errors. 1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** @endverbatim 1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @{ 1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief return the DAC handle state 1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval HAL state 1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_DAC_StateTypeDef HAL_DAC_GetState(DAC_HandleTypeDef *hdac) 1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Return DAC handle state */ 1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return hdac->State; 1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Return the DAC error code 1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac pointer to a DAC_HandleTypeDef structure that contains 1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DAC. 1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval DAC Error Code 1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** uint32_t HAL_DAC_GetError(DAC_HandleTypeDef *hdac) 1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { ARM GAS /tmp/cc2L8ohm.s page 39 1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return hdac->ErrorCode; 1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @} 1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @} 1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** @addtogroup DAC_Exported_Functions 1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @{ 1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** @addtogroup DAC_Exported_Functions_Group1 1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @{ 1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Register a User DAC Callback 1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * To be used instead of the weak (surcharged) predefined callback 1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac DAC handle 1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param CallbackID ID of the callback to be registered 1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * This parameter can be one of the following values: 1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_ERROR_INVALID_CALLBACK DAC Error Callback ID 1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH1_COMPLETE_CB_ID DAC CH1 Complete Callback ID 1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH1_HALF_COMPLETE_CB_ID DAC CH1 Half Complete Callback ID 1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH1_ERROR_ID DAC CH1 Error Callback ID 1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH1_UNDERRUN_CB_ID DAC CH1 UnderRun Callback ID 1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH2_COMPLETE_CB_ID DAC CH2 Complete Callback ID 1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH2_HALF_COMPLETE_CB_ID DAC CH2 Half Complete Callback ID 1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH2_ERROR_ID DAC CH2 Error Callback ID 1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH2_UNDERRUN_CB_ID DAC CH2 UnderRun Callback ID 1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_MSPINIT_CB_ID DAC MSP Init Callback ID 1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_MSPDEINIT_CB_ID DAC MSP DeInit Callback ID 1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * 1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param pCallback pointer to the Callback function 1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval status 1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_StatusTypeDef HAL_DAC_RegisterCallback(DAC_HandleTypeDef *hdac, HAL_DAC_CallbackIDTypeDef Callb 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** pDAC_CallbackTypeDef pCallback) 1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_StatusTypeDef status = HAL_OK; 1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (pCallback == NULL) 1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Update the error code */ 1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCode |= HAL_DAC_ERROR_INVALID_CALLBACK; 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return HAL_ERROR; 1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Process locked */ 1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_LOCK(hdac); 1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (hdac->State == HAL_DAC_STATE_READY) 1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { ARM GAS /tmp/cc2L8ohm.s page 40 1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** switch (CallbackID) 1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH1_COMPLETE_CB_ID : 1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvCpltCallbackCh1 = pCallback; 1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH1_HALF_COMPLETE_CB_ID : 1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvHalfCpltCallbackCh1 = pCallback; 1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH1_ERROR_ID : 1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCallbackCh1 = pCallback; 1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH1_UNDERRUN_CB_ID : 1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMAUnderrunCallbackCh1 = pCallback; 1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH2_COMPLETE_CB_ID : 1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvCpltCallbackCh2 = pCallback; 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH2_HALF_COMPLETE_CB_ID : 1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvHalfCpltCallbackCh2 = pCallback; 1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH2_ERROR_ID : 1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCallbackCh2 = pCallback; 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH2_UNDERRUN_CB_ID : 1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMAUnderrunCallbackCh2 = pCallback; 1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_MSPINIT_CB_ID : 1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->MspInitCallback = pCallback; 1431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_MSPDEINIT_CB_ID : 1433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->MspDeInitCallback = pCallback; 1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** default : 1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Update the error code */ 1437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCode |= HAL_DAC_ERROR_INVALID_CALLBACK; 1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* update return status */ 1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** status = HAL_ERROR; 1440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else if (hdac->State == HAL_DAC_STATE_RESET) 1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** switch (CallbackID) 1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_MSPINIT_CB_ID : 1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->MspInitCallback = pCallback; 1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_MSPDEINIT_CB_ID : 1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->MspDeInitCallback = pCallback; 1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** default : 1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Update the error code */ 1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCode |= HAL_DAC_ERROR_INVALID_CALLBACK; 1456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* update return status */ 1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** status = HAL_ERROR; ARM GAS /tmp/cc2L8ohm.s page 41 1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else 1462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Update the error code */ 1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCode |= HAL_DAC_ERROR_INVALID_CALLBACK; 1465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* update return status */ 1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** status = HAL_ERROR; 1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Release Lock */ 1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_UNLOCK(hdac); 1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return status; 1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief Unregister a User DAC Callback 1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * DAC Callback is redirected to the weak (surcharged) predefined callback 1477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdac DAC handle 1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param CallbackID ID of the callback to be unregistered 1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * This parameter can be one of the following values: 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH1_COMPLETE_CB_ID DAC CH1 transfer Complete Callback ID 1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH1_HALF_COMPLETE_CB_ID DAC CH1 Half Complete Callback ID 1482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH1_ERROR_ID DAC CH1 Error Callback ID 1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH1_UNDERRUN_CB_ID DAC CH1 UnderRun Callback ID 1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH2_COMPLETE_CB_ID DAC CH2 Complete Callback ID 1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH2_HALF_COMPLETE_CB_ID DAC CH2 Half Complete Callback ID 1486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH2_ERROR_ID DAC CH2 Error Callback ID 1487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_CH2_UNDERRUN_CB_ID DAC CH2 UnderRun Callback ID 1488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_MSPINIT_CB_ID DAC MSP Init Callback ID 1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_MSPDEINIT_CB_ID DAC MSP DeInit Callback ID 1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @arg @ref HAL_DAC_ALL_CB_ID DAC All callbacks 1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval status 1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_StatusTypeDef HAL_DAC_UnRegisterCallback(DAC_HandleTypeDef *hdac, HAL_DAC_CallbackIDTypeDef Cal 1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_StatusTypeDef status = HAL_OK; 1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Process locked */ 1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_LOCK(hdac); 1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (hdac->State == HAL_DAC_STATE_READY) 1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** switch (CallbackID) 1503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH1_COMPLETE_CB_ID : 1505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvCpltCallbackCh1 = HAL_DAC_ConvCpltCallbackCh1; 1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH1_HALF_COMPLETE_CB_ID : 1508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvHalfCpltCallbackCh1 = HAL_DAC_ConvHalfCpltCallbackCh1; 1509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH1_ERROR_ID : 1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCallbackCh1 = HAL_DAC_ErrorCallbackCh1; 1512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH1_UNDERRUN_CB_ID : 1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMAUnderrunCallbackCh1 = HAL_DAC_DMAUnderrunCallbackCh1; ARM GAS /tmp/cc2L8ohm.s page 42 1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH2_COMPLETE_CB_ID : 1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvCpltCallbackCh2 = HAL_DACEx_ConvCpltCallbackCh2; 1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH2_HALF_COMPLETE_CB_ID : 1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvHalfCpltCallbackCh2 = HAL_DACEx_ConvHalfCpltCallbackCh2; 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH2_ERROR_ID : 1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCallbackCh2 = HAL_DACEx_ErrorCallbackCh2; 1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_CH2_UNDERRUN_CB_ID : 1527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMAUnderrunCallbackCh2 = HAL_DACEx_DMAUnderrunCallbackCh2; 1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_MSPINIT_CB_ID : 1531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->MspInitCallback = HAL_DAC_MspInit; 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_MSPDEINIT_CB_ID : 1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->MspDeInitCallback = HAL_DAC_MspDeInit; 1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_ALL_CB_ID : 1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvCpltCallbackCh1 = HAL_DAC_ConvCpltCallbackCh1; 1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvHalfCpltCallbackCh1 = HAL_DAC_ConvHalfCpltCallbackCh1; 1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCallbackCh1 = HAL_DAC_ErrorCallbackCh1; 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMAUnderrunCallbackCh1 = HAL_DAC_DMAUnderrunCallbackCh1; 1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvCpltCallbackCh2 = HAL_DACEx_ConvCpltCallbackCh2; 1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvHalfCpltCallbackCh2 = HAL_DACEx_ConvHalfCpltCallbackCh2; 1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCallbackCh2 = HAL_DACEx_ErrorCallbackCh2; 1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->DMAUnderrunCallbackCh2 = HAL_DACEx_DMAUnderrunCallbackCh2; 1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->MspInitCallback = HAL_DAC_MspInit; 1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->MspDeInitCallback = HAL_DAC_MspDeInit; 1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** default : 1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Update the error code */ 1552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCode |= HAL_DAC_ERROR_INVALID_CALLBACK; 1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* update return status */ 1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** status = HAL_ERROR; 1555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else if (hdac->State == HAL_DAC_STATE_RESET) 1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** switch (CallbackID) 1561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_MSPINIT_CB_ID : 1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->MspInitCallback = HAL_DAC_MspInit; 1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** case HAL_DAC_MSPDEINIT_CB_ID : 1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->MspDeInitCallback = HAL_DAC_MspDeInit; 1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** default : 1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Update the error code */ 1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCode |= HAL_DAC_ERROR_INVALID_CALLBACK; 1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* update return status */ ARM GAS /tmp/cc2L8ohm.s page 43 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** status = HAL_ERROR; 1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** break; 1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** else 1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Update the error code */ 1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCode |= HAL_DAC_ERROR_INVALID_CALLBACK; 1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* update return status */ 1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** status = HAL_ERROR; 1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Release Lock */ 1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** __HAL_UNLOCK(hdac); 1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return status; 1587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #endif /* USE_HAL_DAC_REGISTER_CALLBACKS */ 1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @} 1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @} 1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** @addtogroup DAC_Private_Functions 1599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @{ 1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief DMA conversion complete callback. 1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DMA module. 1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval None 1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** void DAC_DMAConvCpltCh1(DMA_HandleTypeDef *hdma) 1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 755 .loc 1 1609 0 756 .cfi_startproc 757 @ args = 0, pretend = 0, frame = 0 758 @ frame_needed = 0, uses_anonymous_args = 0 759 .LVL62: 760 .loc 1 1609 0 761 0000 10B5 push {r4, lr} 762 .LCFI13: 763 .cfi_def_cfa_offset 8 764 .cfi_offset 4, -8 765 .cfi_offset 14, -4 1610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** DAC_HandleTypeDef *hdac = (DAC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 766 .loc 1 1610 0 767 0002 846A ldr r4, [r0, #40] 768 .LVL63: 1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 1613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvCpltCallbackCh1(hdac); 1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #else ARM GAS /tmp/cc2L8ohm.s page 44 1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_DAC_ConvCpltCallbackCh1(hdac); 769 .loc 1 1615 0 770 0004 2046 mov r0, r4 771 .LVL64: 772 0006 FFF7FEFF bl HAL_DAC_ConvCpltCallbackCh1 773 .LVL65: 1616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #endif /* USE_HAL_DAC_REGISTER_CALLBACKS */ 1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_READY; 774 .loc 1 1618 0 775 000a 0123 movs r3, #1 776 000c 2371 strb r3, [r4, #4] 1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 777 .loc 1 1619 0 778 000e 10BD pop {r4, pc} 779 .cfi_endproc 780 .LFE347: 782 .section .text.HAL_DAC_ConvHalfCpltCallbackCh1,"ax",%progbits 783 .align 1 784 .p2align 2,,3 785 .weak HAL_DAC_ConvHalfCpltCallbackCh1 786 .syntax unified 787 .thumb 788 .thumb_func 789 .fpu fpv4-sp-d16 791 HAL_DAC_ConvHalfCpltCallbackCh1: 792 .LFB355: 793 .cfi_startproc 794 @ args = 0, pretend = 0, frame = 0 795 @ frame_needed = 0, uses_anonymous_args = 0 796 @ link register save eliminated. 797 0000 7047 bx lr 798 .cfi_endproc 799 .LFE355: 801 0002 00BF .section .text.DAC_DMAHalfConvCpltCh1,"ax",%progbits 802 .align 1 803 .p2align 2,,3 804 .global DAC_DMAHalfConvCpltCh1 805 .syntax unified 806 .thumb 807 .thumb_func 808 .fpu fpv4-sp-d16 810 DAC_DMAHalfConvCpltCh1: 811 .LFB348: 1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief DMA half transfer complete callback. 1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DMA module. 1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval None 1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** void DAC_DMAHalfConvCpltCh1(DMA_HandleTypeDef *hdma) 1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 812 .loc 1 1628 0 813 .cfi_startproc 814 @ args = 0, pretend = 0, frame = 0 815 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/cc2L8ohm.s page 45 816 .LVL66: 817 .loc 1 1628 0 818 0000 08B5 push {r3, lr} 819 .LCFI14: 820 .cfi_def_cfa_offset 8 821 .cfi_offset 3, -8 822 .cfi_offset 14, -4 1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** DAC_HandleTypeDef *hdac = (DAC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Conversion complete callback */ 1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ConvHalfCpltCallbackCh1(hdac); 1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #else 1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_DAC_ConvHalfCpltCallbackCh1(hdac); 823 .loc 1 1634 0 824 0002 806A ldr r0, [r0, #40] 825 .LVL67: 826 0004 FFF7FEFF bl HAL_DAC_ConvHalfCpltCallbackCh1 827 .LVL68: 1635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #endif /* USE_HAL_DAC_REGISTER_CALLBACKS */ 1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 828 .loc 1 1636 0 829 0008 08BD pop {r3, pc} 830 .cfi_endproc 831 .LFE348: 833 000a 00BF .section .text.HAL_DAC_ErrorCallbackCh1,"ax",%progbits 834 .align 1 835 .p2align 2,,3 836 .weak HAL_DAC_ErrorCallbackCh1 837 .syntax unified 838 .thumb 839 .thumb_func 840 .fpu fpv4-sp-d16 842 HAL_DAC_ErrorCallbackCh1: 843 .LFB357: 844 .cfi_startproc 845 @ args = 0, pretend = 0, frame = 0 846 @ frame_needed = 0, uses_anonymous_args = 0 847 @ link register save eliminated. 848 0000 7047 bx lr 849 .cfi_endproc 850 .LFE357: 852 0002 00BF .section .text.DAC_DMAErrorCh1,"ax",%progbits 853 .align 1 854 .p2align 2,,3 855 .global DAC_DMAErrorCh1 856 .syntax unified 857 .thumb 858 .thumb_func 859 .fpu fpv4-sp-d16 861 DAC_DMAErrorCh1: 862 .LFB349: 1637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /** 1639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @brief DMA error callback 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * the configuration information for the specified DMA module. 1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** * @retval None ARM GAS /tmp/cc2L8ohm.s page 46 1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** */ 1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** void DAC_DMAErrorCh1(DMA_HandleTypeDef *hdma) 1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 863 .loc 1 1645 0 864 .cfi_startproc 865 @ args = 0, pretend = 0, frame = 0 866 @ frame_needed = 0, uses_anonymous_args = 0 867 .LVL69: 868 .loc 1 1645 0 869 0000 10B5 push {r4, lr} 870 .LCFI15: 871 .cfi_def_cfa_offset 8 872 .cfi_offset 4, -8 873 .cfi_offset 14, -4 1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** DAC_HandleTypeDef *hdac = (DAC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 874 .loc 1 1646 0 875 0002 846A ldr r4, [r0, #40] 876 .LVL70: 1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Set DAC error code to DMA error */ 1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCode |= HAL_DAC_ERROR_DMA; 877 .loc 1 1649 0 878 0004 2369 ldr r3, [r4, #16] 879 0006 43F00403 orr r3, r3, #4 880 000a 2361 str r3, [r4, #16] 1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->ErrorCallbackCh1(hdac); 1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #else 1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** HAL_DAC_ErrorCallbackCh1(hdac); 881 .loc 1 1654 0 882 000c 2046 mov r0, r4 883 .LVL71: 884 000e FFF7FEFF bl HAL_DAC_ErrorCallbackCh1 885 .LVL72: 1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #endif /* USE_HAL_DAC_REGISTER_CALLBACKS */ 1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->State = HAL_DAC_STATE_READY; 886 .loc 1 1657 0 887 0012 0123 movs r3, #1 888 0014 2371 strb r3, [r4, #4] 1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 889 .loc 1 1658 0 890 0016 10BD pop {r4, pc} 891 .cfi_endproc 892 .LFE349: 894 .section .text.HAL_DAC_DMAUnderrunCallbackCh1,"ax",%progbits 895 .align 1 896 .p2align 2,,3 897 .weak HAL_DAC_DMAUnderrunCallbackCh1 898 .syntax unified 899 .thumb 900 .thumb_func 901 .fpu fpv4-sp-d16 903 HAL_DAC_DMAUnderrunCallbackCh1: 904 .LFB359: 905 .cfi_startproc ARM GAS /tmp/cc2L8ohm.s page 47 906 @ args = 0, pretend = 0, frame = 0 907 @ frame_needed = 0, uses_anonymous_args = 0 908 @ link register save eliminated. 909 0000 7047 bx lr 910 .cfi_endproc 911 .LFE359: 913 0002 00BF .section .text.HAL_DAC_IRQHandler,"ax",%progbits 914 .align 1 915 .p2align 2,,3 916 .global HAL_DAC_IRQHandler 917 .syntax unified 918 .thumb 919 .thumb_func 920 .fpu fpv4-sp-d16 922 HAL_DAC_IRQHandler: 923 .LFB337: 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (__HAL_DAC_GET_IT_SOURCE(hdac, DAC_IT_DMAUDR1)) 924 .loc 1 857 0 925 .cfi_startproc 926 @ args = 0, pretend = 0, frame = 0 927 @ frame_needed = 0, uses_anonymous_args = 0 928 .LVL73: 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 929 .loc 1 858 0 930 0000 0368 ldr r3, [r0] 931 0002 1A68 ldr r2, [r3] 932 0004 9104 lsls r1, r2, #18 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (__HAL_DAC_GET_IT_SOURCE(hdac, DAC_IT_DMAUDR1)) 933 .loc 1 857 0 934 0006 10B5 push {r4, lr} 935 .LCFI16: 936 .cfi_def_cfa_offset 8 937 .cfi_offset 4, -8 938 .cfi_offset 14, -4 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (__HAL_DAC_GET_IT_SOURCE(hdac, DAC_IT_DMAUDR1)) 939 .loc 1 857 0 940 0008 0446 mov r4, r0 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 941 .loc 1 858 0 942 000a 02D5 bpl .L73 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 943 .loc 1 861 0 944 000c 5A6B ldr r2, [r3, #52] 945 000e 9204 lsls r2, r2, #18 946 0010 18D4 bmi .L88 947 .LVL74: 948 .L73: 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 949 .loc 1 885 0 950 0012 1A68 ldr r2, [r3] 951 0014 9100 lsls r1, r2, #2 952 0016 02D5 bpl .L72 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 953 .loc 1 888 0 954 0018 5A6B ldr r2, [r3, #52] 955 001a 9200 lsls r2, r2, #2 956 001c 00D4 bmi .L89 ARM GAS /tmp/cc2L8ohm.s page 48 957 .L72: 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 958 .loc 1 911 0 959 001e 10BD pop {r4, pc} 960 .LVL75: 961 .L89: 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 962 .loc 1 891 0 963 0020 0422 movs r2, #4 964 0022 2271 strb r2, [r4, #4] 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 965 .loc 1 894 0 966 0024 2269 ldr r2, [r4, #16] 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 967 .loc 1 897 0 968 0026 4FF00051 mov r1, #536870912 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 969 .loc 1 894 0 970 002a 42F00202 orr r2, r2, #2 971 002e 2261 str r2, [r4, #16] 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 972 .loc 1 897 0 973 0030 5963 str r1, [r3, #52] 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 974 .loc 1 900 0 975 0032 1A68 ldr r2, [r3] 976 0034 22F08052 bic r2, r2, #268435456 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #endif /* USE_HAL_DAC_REGISTER_CALLBACKS */ 977 .loc 1 906 0 978 0038 2046 mov r0, r4 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 979 .loc 1 900 0 980 003a 1A60 str r2, [r3] 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 981 .loc 1 911 0 982 003c BDE81040 pop {r4, lr} 983 .LCFI17: 984 .cfi_remember_state 985 .cfi_restore 14 986 .cfi_restore 4 987 .cfi_def_cfa_offset 0 988 .LVL76: 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #endif /* USE_HAL_DAC_REGISTER_CALLBACKS */ 989 .loc 1 906 0 990 0040 FFF7FEBF b HAL_DACEx_DMAUnderrunCallbackCh2 991 .LVL77: 992 .L88: 993 .LCFI18: 994 .cfi_restore_state 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 995 .loc 1 864 0 996 0044 0422 movs r2, #4 997 0046 0271 strb r2, [r0, #4] 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 998 .loc 1 867 0 999 0048 0269 ldr r2, [r0, #16] 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ARM GAS /tmp/cc2L8ohm.s page 49 1000 .loc 1 870 0 1001 004a 4FF40051 mov r1, #8192 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1002 .loc 1 867 0 1003 004e 42F00102 orr r2, r2, #1 1004 0052 0261 str r2, [r0, #16] 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1005 .loc 1 870 0 1006 0054 5963 str r1, [r3, #52] 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1007 .loc 1 873 0 1008 0056 1A68 ldr r2, [r3] 1009 0058 22F48052 bic r2, r2, #4096 1010 005c 1A60 str r2, [r3] 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** #endif /* USE_HAL_DAC_REGISTER_CALLBACKS */ 1011 .loc 1 879 0 1012 005e FFF7FEFF bl HAL_DAC_DMAUnderrunCallbackCh1 1013 .LVL78: 1014 0062 2368 ldr r3, [r4] 1015 0064 D5E7 b .L73 1016 .cfi_endproc 1017 .LFE337: 1019 0066 00BF .section .text.HAL_DAC_GetValue,"ax",%progbits 1020 .align 1 1021 .p2align 2,,3 1022 .global HAL_DAC_GetValue 1023 .syntax unified 1024 .thumb 1025 .thumb_func 1026 .fpu fpv4-sp-d16 1028 HAL_DAC_GetValue: 1029 .LFB343: 1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** uint32_t tmp = 0U; 1030 .loc 1 1061 0 1031 .cfi_startproc 1032 @ args = 0, pretend = 0, frame = 0 1033 @ frame_needed = 0, uses_anonymous_args = 0 1034 @ link register save eliminated. 1035 .LVL79: 1036 0000 0368 ldr r3, [r0] 1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1037 .loc 1 1067 0 1038 0002 09B1 cbz r1, .L93 1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1039 .loc 1 1074 0 1040 0004 186B ldr r0, [r3, #48] 1041 .LVL80: 1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1042 .loc 1 1079 0 1043 0006 7047 bx lr 1044 .LVL81: 1045 .L93: 1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1046 .loc 1 1069 0 1047 0008 D86A ldr r0, [r3, #44] 1048 .LVL82: 1049 000a 7047 bx lr ARM GAS /tmp/cc2L8ohm.s page 50 1050 .cfi_endproc 1051 .LFE343: 1053 .section .text.HAL_DAC_ConfigChannel,"ax",%progbits 1054 .align 1 1055 .p2align 2,,3 1056 .global HAL_DAC_ConfigChannel 1057 .syntax unified 1058 .thumb 1059 .thumb_func 1060 .fpu fpv4-sp-d16 1062 HAL_DAC_ConfigChannel: 1063 .LFB344: 1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** uint32_t tmpreg1; 1064 .loc 1 1101 0 1065 .cfi_startproc 1066 @ args = 0, pretend = 0, frame = 0 1067 @ frame_needed = 0, uses_anonymous_args = 0 1068 .LVL83: 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1069 .loc 1 1131 0 1070 0000 4379 ldrb r3, [r0, #5] @ zero_extendqisi2 1071 0002 012B cmp r3, #1 1072 0004 00F08880 beq .L110 1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** uint32_t tmpreg1; 1073 .loc 1 1101 0 discriminator 2 1074 0008 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1075 .LCFI19: 1076 .cfi_def_cfa_offset 24 1077 .cfi_offset 4, -24 1078 .cfi_offset 5, -20 1079 .cfi_offset 6, -16 1080 .cfi_offset 7, -12 1081 .cfi_offset 8, -8 1082 .cfi_offset 14, -4 1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1083 .loc 1 1120 0 discriminator 2 1084 000c 8E68 ldr r6, [r1, #8] 1085 000e 1446 mov r4, r2 1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1086 .loc 1 1134 0 discriminator 2 1087 0010 0223 movs r3, #2 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1088 .loc 1 1131 0 discriminator 2 1089 0012 0122 movs r2, #1 1090 .LVL84: 1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1091 .loc 1 1137 0 discriminator 2 1092 0014 042E cmp r6, #4 1093 0016 0D46 mov r5, r1 1094 0018 0746 mov r7, r0 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1095 .loc 1 1131 0 discriminator 2 1096 001a 4271 strb r2, [r0, #5] 1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1097 .loc 1 1134 0 discriminator 2 1098 001c 0371 strb r3, [r0, #4] 1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { ARM GAS /tmp/cc2L8ohm.s page 51 1099 .loc 1 1137 0 discriminator 2 1100 001e 7FD0 beq .L96 1101 0020 0368 ldr r3, [r0] 1102 0022 04F01004 and r4, r4, #16 1103 .LVL85: 1104 .L97: 1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* USER TRIMMING */ 1105 .loc 1 1193 0 1106 0026 EA69 ldr r2, [r5, #28] 1107 0028 012A cmp r2, #1 1108 002a 6BD0 beq .L122 1109 .L103: 1110 002c D5E905C0 ldrd ip, r0, [r5, #20] 1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected DAC channel: mode, buffer output & on chip peripheral connect */ 1111 .loc 1 1213 0 1112 0030 0721 movs r1, #7 1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear DAC_MCR_MODEx bits */ 1113 .loc 1 1211 0 1114 0032 DA6B ldr r2, [r3, #60] 1115 .LVL86: 1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected DAC channel: mode, buffer output & on chip peripheral connect */ 1116 .loc 1 1213 0 1117 0034 A140 lsls r1, r1, r4 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1118 .loc 1 1215 0 1119 0036 0128 cmp r0, #1 1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected DAC channel: mode, buffer output & on chip peripheral connect */ 1120 .loc 1 1213 0 1121 0038 6FEA0101 mvn r1, r1 1122 003c 22F44048 bic r8, r2, #49152 1123 .LVL87: 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1124 .loc 1 1215 0 1125 0040 5ED0 beq .L111 1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1126 .loc 1 1219 0 1127 0042 0228 cmp r0, #2 1128 0044 6AD0 beq .L112 1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1129 .loc 1 1225 0 1130 0046 BCFA8CF0 clz r0, ip 1131 004a 4009 lsrs r0, r0, #5 1132 .L104: 1133 .LVL88: 1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected DAC channel: DMA double data mode */ 1134 .loc 1 1236 0 1135 004c 4FF48072 mov r2, #256 1136 .LVL89: 1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear DAC_MCR_DMADOUBLEx */ 1137 .loc 1 1234 0 1138 0050 46EA0C06 orr r6, r6, ip 1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected DAC channel: DMA double data mode */ 1139 .loc 1 1236 0 1140 0054 A240 lsls r2, r2, r4 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear DAC_MCR_SINFORMATx */ 1141 .loc 1 1238 0 1142 0056 95F804C0 ldrb ip, [r5, #4] @ zero_extendqisi2 ARM GAS /tmp/cc2L8ohm.s page 52 1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear DAC_MCR_DMADOUBLEx */ 1143 .loc 1 1234 0 1144 005a 0643 orrs r6, r6, r0 1145 .LVL90: 1146 005c 01EA0801 and r1, r1, r8 1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected DAC channel: DMA double data mode */ 1147 .loc 1 1236 0 1148 0060 D243 mvns r2, r2 1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear DAC_MCR_HFSEL bits */ 1149 .loc 1 1242 0 1150 0062 6879 ldrb r0, [r5, #5] @ zero_extendqisi2 1151 .LVL91: 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear DAC_MCR_SINFORMATx */ 1152 .loc 1 1238 0 1153 0064 BCF1010F cmp ip, #1 1154 0068 02EA0102 and r2, r2, r1 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected DAC channel: Signed format */ 1155 .loc 1 1240 0 1156 006c 4FF40078 mov r8, #512 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1157 .loc 1 1246 0 1158 0070 2968 ldr r1, [r5] 1159 0072 08BF it eq 1160 0074 46F48076 orreq r6, r6, #256 1161 .LVL92: 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected DAC channel: Signed format */ 1162 .loc 1 1240 0 1163 0078 08FA04F8 lsl r8, r8, r4 1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear DAC_MCR_HFSEL bits */ 1164 .loc 1 1242 0 1165 007c 0128 cmp r0, #1 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected DAC channel: Signed format */ 1166 .loc 1 1240 0 1167 007e 6FEA0808 mvn r8, r8 1168 0082 08BF it eq 1169 0084 46F40076 orreq r6, r6, #512 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1170 .loc 1 1246 0 1171 0088 0229 cmp r1, #2 1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for both DAC channels: high frequency mode */ 1172 .loc 1 1244 0 1173 008a 08EA0208 and r8, r8, r2 1174 .LVL93: 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1175 .loc 1 1246 0 1176 008e 00F08280 beq .L123 1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1177 .loc 1 1264 0 1178 0092 48EA0108 orr r8, r8, r1 1179 .LVL94: 1180 .L109: 1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Write to DAC MCR */ 1181 .loc 1 1267 0 1182 0096 A640 lsls r6, r6, r4 1183 0098 46EA0806 orr r6, r6, r8 1184 .LVL95: 1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** ARM GAS /tmp/cc2L8ohm.s page 53 1185 .loc 1 1269 0 1186 009c DE63 str r6, [r3, #60] 1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1187 .loc 1 1272 0 1188 009e 1868 ldr r0, [r3] 1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Modify STMODR register value depending on DAC_Channel */ 1189 .loc 1 1290 0 1190 00a0 D5E90312 ldrd r1, r2, [r5, #12] 1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1191 .loc 1 1272 0 1192 00a4 4FF48045 mov r5, #16384 1193 .LVL96: 1194 00a8 A540 lsls r5, r5, r4 1195 00aa 20EA0500 bic r0, r0, r5 1196 00ae 1860 str r0, [r3] 1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear TENx, TSELx, WAVEx and MAMPx bits */ 1197 .loc 1 1275 0 1198 00b0 1868 ldr r0, [r3] 1199 .LVL97: 1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected DAC channel: trigger */ 1200 .loc 1 1277 0 1201 00b2 40F6FE75 movw r5, #4094 1202 00b6 A540 lsls r5, r5, r4 1203 00b8 20EA0505 bic r5, r0, r5 1204 .LVL98: 1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Write to DAC CR */ 1205 .loc 1 1282 0 1206 00bc 01FA04F0 lsl r0, r1, r4 1207 00c0 2843 orrs r0, r0, r5 1208 .LVL99: 1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Disable wave generation */ 1209 .loc 1 1284 0 1210 00c2 1860 str r0, [r3] 1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1211 .loc 1 1286 0 1212 00c4 1868 ldr r0, [r3] 1213 .LVL100: 1214 00c6 C025 movs r5, #192 1215 00c8 A540 lsls r5, r5, r4 1216 00ca 20EA0500 bic r0, r0, r5 1217 00ce 1860 str r0, [r3] 1218 .LVL101: 1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Modify STMODR register value depending on DAC_Channel */ 1219 .loc 1 1290 0 1220 00d0 9201 lsls r2, r2, #6 1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state */ 1221 .loc 1 1292 0 1222 00d2 186E ldr r0, [r3, #96] 1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** tmpreg2 |= ((sConfig->DAC_Trigger2 & DAC_CR_TSEL1) >> DAC_CR_TSEL1_Pos) << DAC_STMODR_STINCTRIGSE 1223 .loc 1 1289 0 1224 00d4 C1F38301 ubfx r1, r1, #2, #4 1225 .LVL102: 1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Modify STMODR register value depending on DAC_Channel */ 1226 .loc 1 1290 0 1227 00d8 02F47062 and r2, r2, #3840 1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state */ 1228 .loc 1 1292 0 ARM GAS /tmp/cc2L8ohm.s page 54 1229 00dc 40F60F75 movw r5, #3855 1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Modify STMODR register value depending on DAC_Channel */ 1230 .loc 1 1290 0 1231 00e0 0A43 orrs r2, r2, r1 1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state */ 1232 .loc 1 1292 0 1233 00e2 05FA04F1 lsl r1, r5, r4 1234 00e6 02FA04F4 lsl r4, r2, r4 1235 00ea 20EA0102 bic r2, r0, r1 1236 00ee 1443 orrs r4, r4, r2 1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1237 .loc 1 1294 0 1238 00f0 0121 movs r1, #1 1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1239 .loc 1 1297 0 1240 00f2 0022 movs r2, #0 1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Change DAC state */ 1241 .loc 1 1292 0 1242 00f4 1C66 str r4, [r3, #96] 1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1243 .loc 1 1300 0 1244 00f6 1046 mov r0, r2 1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1245 .loc 1 1294 0 1246 00f8 3971 strb r1, [r7, #4] 1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1247 .loc 1 1297 0 1248 00fa 7A71 strb r2, [r7, #5] 1249 .L95: 1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1250 .loc 1 1301 0 1251 00fc BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1252 .LVL103: 1253 .L111: 1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1254 .loc 1 1217 0 1255 0100 0020 movs r0, #0 1256 0102 A3E7 b .L104 1257 .LVL104: 1258 .L122: 1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Clear trimming value */ 1259 .loc 1 1197 0 1260 0104 996B ldr r1, [r3, #56] 1261 .LVL105: 1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Write to DAC CCR */ 1262 .loc 1 1203 0 1263 0106 2A6A ldr r2, [r5, #32] 1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Configure for the selected trimming offset */ 1264 .loc 1 1199 0 1265 0108 1F20 movs r0, #31 1266 010a A040 lsls r0, r0, r4 1267 010c 21EA0001 bic r1, r1, r0 1268 .LVL106: 1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Write to DAC CCR */ 1269 .loc 1 1203 0 1270 0110 A240 lsls r2, r2, r4 1271 .LVL107: ARM GAS /tmp/cc2L8ohm.s page 55 1272 0112 0A43 orrs r2, r2, r1 1273 .LVL108: 1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1274 .loc 1 1205 0 1275 0114 9A63 str r2, [r3, #56] 1276 0116 89E7 b .L103 1277 .LVL109: 1278 .L110: 1279 .LCFI20: 1280 .cfi_def_cfa_offset 0 1281 .cfi_restore 4 1282 .cfi_restore 5 1283 .cfi_restore 6 1284 .cfi_restore 7 1285 .cfi_restore 8 1286 .cfi_restore 14 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1287 .loc 1 1131 0 1288 0118 0220 movs r0, #2 1289 .LVL110: 1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1290 .loc 1 1301 0 1291 011a 7047 bx lr 1292 .LVL111: 1293 .L112: 1294 .LCFI21: 1295 .cfi_def_cfa_offset 24 1296 .cfi_offset 4, -24 1297 .cfi_offset 5, -20 1298 .cfi_offset 6, -16 1299 .cfi_offset 7, -12 1300 .cfi_offset 8, -8 1301 .cfi_offset 14, -4 1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1302 .loc 1 1221 0 1303 011c 0120 movs r0, #1 1304 011e 95E7 b .L104 1305 .LVL112: 1306 .L96: 1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1307 .loc 1 1140 0 1308 0120 FFF7FEFF bl HAL_GetTick 1309 .LVL113: 1310 0124 0646 mov r6, r0 1311 .LVL114: 1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1312 .loc 1 1142 0 1313 0126 2CB1 cbz r4, .L98 1314 0128 14E0 b .L99 1315 .LVL115: 1316 .L100: 1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1317 .loc 1 1148 0 1318 012a FFF7FEFF bl HAL_GetTick 1319 .LVL116: 1320 012e 801B subs r0, r0, r6 1321 0130 0128 cmp r0, #1 ARM GAS /tmp/cc2L8ohm.s page 56 1322 0132 39D8 bhi .L121 1323 .L98: 1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1324 .loc 1 1145 0 1325 0134 3B68 ldr r3, [r7] 1326 0136 5B6B ldr r3, [r3, #52] 1327 0138 1B04 lsls r3, r3, #16 1328 013a F6D4 bmi .L100 1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->Instance->SHSR1 = sConfig->DAC_SampleAndHoldConfig.DAC_SampleTime; 1329 .loc 1 1159 0 1330 013c 0120 movs r0, #1 1331 013e FFF7FEFF bl HAL_Delay 1332 .LVL117: 1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1333 .loc 1 1160 0 1334 0142 3B68 ldr r3, [r7] 1335 0144 6A6A ldr r2, [r5, #36] 1336 0146 1A64 str r2, [r3, #64] 1337 0148 0EE0 b .L101 1338 .L102: 1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1339 .loc 1 1169 0 1340 014a FFF7FEFF bl HAL_GetTick 1341 .LVL118: 1342 014e 801B subs r0, r0, r6 1343 0150 0128 cmp r0, #1 1344 0152 29D8 bhi .L121 1345 .L99: 1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1346 .loc 1 1166 0 1347 0154 3B68 ldr r3, [r7] 1348 0156 5B6B ldr r3, [r3, #52] 1349 0158 002B cmp r3, #0 1350 015a F6DB blt .L102 1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** hdac->Instance->SHSR2 = sConfig->DAC_SampleAndHoldConfig.DAC_SampleTime; 1351 .loc 1 1180 0 1352 015c 0120 movs r0, #1 1353 015e FFF7FEFF bl HAL_Delay 1354 .LVL119: 1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1355 .loc 1 1181 0 1356 0162 3B68 ldr r3, [r7] 1357 0164 6A6A ldr r2, [r5, #36] 1358 0166 5A64 str r2, [r3, #68] 1359 .L101: 1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (sConfig->DAC_SampleAndHoldConfig.DAC_HoldTime) << (Channel & 0x10UL)); 1360 .loc 1 1186 0 1361 0168 04F01004 and r4, r4, #16 1362 .LVL120: 1363 016c 9A6C ldr r2, [r3, #72] 1364 016e A96A ldr r1, [r5, #40] 1365 0170 AE68 ldr r6, [r5, #8] 1366 .LVL121: 1367 0172 40F2FF30 movw r0, #1023 1368 0176 A040 lsls r0, r0, r4 1369 0178 22EA0002 bic r2, r2, r0 1370 017c A140 lsls r1, r1, r4 ARM GAS /tmp/cc2L8ohm.s page 57 1371 017e 0A43 orrs r2, r2, r1 1372 0180 9A64 str r2, [r3, #72] 1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** (sConfig->DAC_SampleAndHoldConfig.DAC_RefreshTime) << (Channel & 0x10UL)); 1373 .loc 1 1189 0 1374 0182 DA6C ldr r2, [r3, #76] 1375 0184 E96A ldr r1, [r5, #44] 1376 0186 FF20 movs r0, #255 1377 0188 A040 lsls r0, r0, r4 1378 018a 22EA0002 bic r2, r2, r0 1379 018e A140 lsls r1, r1, r4 1380 0190 0A43 orrs r2, r2, r1 1381 0192 DA64 str r2, [r3, #76] 1382 0194 47E7 b .L97 1383 .LVL122: 1384 .L123: 1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** if (hclkfreq > HFSEL_ENABLE_THRESHOLD_160MHZ) 1385 .loc 1 1248 0 1386 0196 FFF7FEFF bl HAL_RCC_GetHCLKFreq 1387 .LVL123: 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1388 .loc 1 1249 0 1389 019a 0B4B ldr r3, .L124 1390 019c 9842 cmp r0, r3 1391 019e 0BD9 bls .L108 1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1392 .loc 1 1251 0 1393 01a0 48F40048 orr r8, r8, #32768 1394 .LVL124: 1395 01a4 3B68 ldr r3, [r7] 1396 01a6 76E7 b .L109 1397 .LVL125: 1398 .L121: 1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1399 .loc 1 1172 0 1400 01a8 3B69 ldr r3, [r7, #16] 1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1401 .loc 1 1175 0 1402 01aa 0322 movs r2, #3 1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1403 .loc 1 1172 0 1404 01ac 43F00803 orr r3, r3, #8 1405 01b0 3B61 str r3, [r7, #16] 1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1406 .loc 1 1177 0 1407 01b2 1046 mov r0, r2 1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1408 .loc 1 1175 0 1409 01b4 3A71 strb r2, [r7, #4] 1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1410 .loc 1 1177 0 1411 01b6 A1E7 b .L95 1412 .LVL126: 1413 .L108: 1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** { 1414 .loc 1 1253 0 1415 01b8 044A ldr r2, .L124+4 1416 01ba 3B68 ldr r3, [r7] ARM GAS /tmp/cc2L8ohm.s page 58 1417 01bc 9042 cmp r0, r2 1418 01be 7FF66AAF bls .L109 1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1419 .loc 1 1255 0 1420 01c2 48F48048 orr r8, r8, #16384 1421 .LVL127: 1422 01c6 66E7 b .L109 1423 .L125: 1424 .align 2 1425 .L124: 1426 01c8 00688909 .word 160000000 1427 01cc 00B4C404 .word 80000000 1428 .cfi_endproc 1429 .LFE344: 1431 .section .text.HAL_DAC_GetState,"ax",%progbits 1432 .align 1 1433 .p2align 2,,3 1434 .global HAL_DAC_GetState 1435 .syntax unified 1436 .thumb 1437 .thumb_func 1438 .fpu fpv4-sp-d16 1440 HAL_DAC_GetState: 1441 .LFB345: 1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** /* Return DAC handle state */ 1442 .loc 1 1330 0 1443 .cfi_startproc 1444 @ args = 0, pretend = 0, frame = 0 1445 @ frame_needed = 0, uses_anonymous_args = 0 1446 @ link register save eliminated. 1447 .LVL128: 1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1448 .loc 1 1332 0 1449 0000 0079 ldrb r0, [r0, #4] @ zero_extendqisi2 1450 .LVL129: 1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1451 .loc 1 1333 0 1452 0002 7047 bx lr 1453 .cfi_endproc 1454 .LFE345: 1456 .section .text.HAL_DAC_GetError,"ax",%progbits 1457 .align 1 1458 .p2align 2,,3 1459 .global HAL_DAC_GetError 1460 .syntax unified 1461 .thumb 1462 .thumb_func 1463 .fpu fpv4-sp-d16 1465 HAL_DAC_GetError: 1466 .LFB346: 1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** return hdac->ErrorCode; 1467 .loc 1 1343 0 1468 .cfi_startproc 1469 @ args = 0, pretend = 0, frame = 0 1470 @ frame_needed = 0, uses_anonymous_args = 0 1471 @ link register save eliminated. 1472 .LVL130: ARM GAS /tmp/cc2L8ohm.s page 59 1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** } 1473 .loc 1 1344 0 1474 0000 0069 ldr r0, [r0, #16] 1475 .LVL131: 1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_dac.c **** 1476 .loc 1 1345 0 1477 0002 7047 bx lr 1478 .cfi_endproc 1479 .LFE346: 1481 .text 1482 .Letext0: 1483 .file 2 "/usr/include/newlib/machine/_default_types.h" 1484 .file 3 "/usr/include/newlib/sys/_stdint.h" 1485 .file 4 "Drivers/CMSIS/Include/core_cm4.h" 1486 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h" 1487 .file 6 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" 1488 .file 7 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" 1489 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" 1490 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" 1491 .file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dac.h" 1492 .file 11 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h" 1493 .file 12 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h" 1494 .file 13 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" 1495 .file 14 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h" 1496 .file 15 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dac_ex.h" ARM GAS /tmp/cc2L8ohm.s page 60 DEFINED SYMBOLS *ABS*:0000000000000000 stm32g4xx_hal_dac.c /tmp/cc2L8ohm.s:16 .text.HAL_DAC_MspInit:0000000000000000 $t /tmp/cc2L8ohm.s:24 .text.HAL_DAC_MspInit:0000000000000000 HAL_DAC_MspInit /tmp/cc2L8ohm.s:39 .text.HAL_DAC_Init:0000000000000000 $t /tmp/cc2L8ohm.s:47 .text.HAL_DAC_Init:0000000000000000 HAL_DAC_Init /tmp/cc2L8ohm.s:109 .text.HAL_DAC_MspDeInit:0000000000000000 $t /tmp/cc2L8ohm.s:117 .text.HAL_DAC_MspDeInit:0000000000000000 HAL_DAC_MspDeInit /tmp/cc2L8ohm.s:128 .text.HAL_DAC_DeInit:0000000000000000 $t /tmp/cc2L8ohm.s:136 .text.HAL_DAC_DeInit:0000000000000000 HAL_DAC_DeInit /tmp/cc2L8ohm.s:182 .text.HAL_DAC_Start:0000000000000000 $t /tmp/cc2L8ohm.s:190 .text.HAL_DAC_Start:0000000000000000 HAL_DAC_Start /tmp/cc2L8ohm.s:289 .text.HAL_DAC_Stop:0000000000000000 $t /tmp/cc2L8ohm.s:297 .text.HAL_DAC_Stop:0000000000000000 HAL_DAC_Stop /tmp/cc2L8ohm.s:341 .text.HAL_DAC_Start_DMA:0000000000000000 $t /tmp/cc2L8ohm.s:349 .text.HAL_DAC_Start_DMA:0000000000000000 HAL_DAC_Start_DMA /tmp/cc2L8ohm.s:554 .text.HAL_DAC_Start_DMA:00000000000000ec $d /tmp/cc2L8ohm.s:753 .text.DAC_DMAConvCpltCh1:0000000000000000 DAC_DMAConvCpltCh1 /tmp/cc2L8ohm.s:810 .text.DAC_DMAHalfConvCpltCh1:0000000000000000 DAC_DMAHalfConvCpltCh1 /tmp/cc2L8ohm.s:861 .text.DAC_DMAErrorCh1:0000000000000000 DAC_DMAErrorCh1 /tmp/cc2L8ohm.s:564 .text.HAL_DAC_Stop_DMA:0000000000000000 $t /tmp/cc2L8ohm.s:572 .text.HAL_DAC_Stop_DMA:0000000000000000 HAL_DAC_Stop_DMA /tmp/cc2L8ohm.s:650 .text.HAL_DAC_SetValue:0000000000000000 $t /tmp/cc2L8ohm.s:658 .text.HAL_DAC_SetValue:0000000000000000 HAL_DAC_SetValue /tmp/cc2L8ohm.s:726 .text.HAL_DAC_ConvCpltCallbackCh1:0000000000000000 $t /tmp/cc2L8ohm.s:734 .text.HAL_DAC_ConvCpltCallbackCh1:0000000000000000 HAL_DAC_ConvCpltCallbackCh1 /tmp/cc2L8ohm.s:745 .text.DAC_DMAConvCpltCh1:0000000000000000 $t /tmp/cc2L8ohm.s:783 .text.HAL_DAC_ConvHalfCpltCallbackCh1:0000000000000000 $t /tmp/cc2L8ohm.s:791 .text.HAL_DAC_ConvHalfCpltCallbackCh1:0000000000000000 HAL_DAC_ConvHalfCpltCallbackCh1 /tmp/cc2L8ohm.s:802 .text.DAC_DMAHalfConvCpltCh1:0000000000000000 $t /tmp/cc2L8ohm.s:834 .text.HAL_DAC_ErrorCallbackCh1:0000000000000000 $t /tmp/cc2L8ohm.s:842 .text.HAL_DAC_ErrorCallbackCh1:0000000000000000 HAL_DAC_ErrorCallbackCh1 /tmp/cc2L8ohm.s:853 .text.DAC_DMAErrorCh1:0000000000000000 $t /tmp/cc2L8ohm.s:895 .text.HAL_DAC_DMAUnderrunCallbackCh1:0000000000000000 $t /tmp/cc2L8ohm.s:903 .text.HAL_DAC_DMAUnderrunCallbackCh1:0000000000000000 HAL_DAC_DMAUnderrunCallbackCh1 /tmp/cc2L8ohm.s:914 .text.HAL_DAC_IRQHandler:0000000000000000 $t /tmp/cc2L8ohm.s:922 .text.HAL_DAC_IRQHandler:0000000000000000 HAL_DAC_IRQHandler /tmp/cc2L8ohm.s:1020 .text.HAL_DAC_GetValue:0000000000000000 $t /tmp/cc2L8ohm.s:1028 .text.HAL_DAC_GetValue:0000000000000000 HAL_DAC_GetValue /tmp/cc2L8ohm.s:1054 .text.HAL_DAC_ConfigChannel:0000000000000000 $t /tmp/cc2L8ohm.s:1062 .text.HAL_DAC_ConfigChannel:0000000000000000 HAL_DAC_ConfigChannel /tmp/cc2L8ohm.s:1426 .text.HAL_DAC_ConfigChannel:00000000000001c8 $d /tmp/cc2L8ohm.s:1432 .text.HAL_DAC_GetState:0000000000000000 $t /tmp/cc2L8ohm.s:1440 .text.HAL_DAC_GetState:0000000000000000 HAL_DAC_GetState /tmp/cc2L8ohm.s:1457 .text.HAL_DAC_GetError:0000000000000000 $t /tmp/cc2L8ohm.s:1465 .text.HAL_DAC_GetError:0000000000000000 HAL_DAC_GetError UNDEFINED SYMBOLS HAL_Delay HAL_DMA_Start_IT DAC_DMAConvCpltCh2 DAC_DMAHalfConvCpltCh2 DAC_DMAErrorCh2 HAL_DMA_Abort HAL_DACEx_DMAUnderrunCallbackCh2 HAL_GetTick HAL_RCC_GetHCLKFreq ARM GAS /tmp/cc2L8ohm.s page 61