Fix UB defect in STM32L4 1.12.0 HAL ADC driver. This prevents ADC channels from being properly configured for single-ended mode when compiled at high optimization levels.

cert
Rob Riggs 2018-09-19 21:54:33 -05:00
rodzic b98e6c1c2c
commit f3e1d1f514
1 zmienionych plików z 1 dodań i 1 usunięć

Wyświetl plik

@ -4856,7 +4856,7 @@ __STATIC_INLINE void LL_ADC_SetChannelSingleDiff(ADC_TypeDef *ADCx, uint32_t Cha
/* differential mode (for single mode, mask of bits allowed to be set is */
/* shifted out of range of bits of channels in single or differential mode. */
MODIFY_REG(ADCx->DIFSEL,
Channel & ADC_SINGLEDIFF_CHANNEL_MASK,
Channel & ADC_SINGLEDIFF_CHANNEL_MASK, SingleDiff == LL_ADC_SINGLE_ENDED ? 0 :
(Channel & ADC_SINGLEDIFF_CHANNEL_MASK) & (ADC_DIFSEL_DIFSEL << (SingleDiff & ADC_SINGLEDIFF_CHANNEL_SHIFT_MASK)));
}