stm32h7xx_hal_driver
stm32h7xx_hal_driver copied to clipboard
Provides the STM32Cube MCU Component "hal_driver" of the STM32H7 series.
HAL_ETH uses gState as a "poor man's mutex" to guard it's internal state and associated hardware registers against concurrent access and enforce a specific order of initialization. When gState gets...
HAL_ETH_ReleaseTxPacket() does **NOT** check gState before execution **AT ALL**. https://github.com/STMicroelectronics/stm32h7xx_hal_driver/blob/ceda3ceeca2ee77a76d2de2ee6b560ad87c90a48/Src/stm32h7xx_hal_eth.c#L1400-L1413 It just runs and modifies TX descriptors, decrements buffer counters and reads state from &heth into local variables. This buffered...
`HAL_ETH_Transmit_IT()` and `HAL_ETH_Transmit()` both test gState but do not set it to HAL_ETH_STATE_BUSY before operating on the TX descriptors inside `ETH_Prepare_Tx_Descriptors()`. This creates a race-condition among themselves and among each...