mirror of https://github.com/ARMmbed/mbed-os.git
In STM32 Cube HAL, in interrupt mode (async), 2 bytes can be prepared in hardware registers without any read (1 in regular register, the other in shift register), but Only 1 RX byte can stored in hardware register, specially when there is no hardware FIFO. If interrupt handling is fast enough, each read is made in parralele of the write. But if interrupt handling is too long or is interrupted for too long, it can happen that one read byte is lost (overrun). For STM32F4, Tickless has been deactivated to avoid such issue. For STM32L0, we don't want to deactivate tickless, because those chips are specially design for lowpower. So instead of removing SPI async mode, we propose to change the HAL behavior specially for L0: each byte is send only when previous read is performed. Thus only 1 RX byte at a time which is saved in hardware register. This prevent overrun, but it introduceS some latency between each byte send, this is why it is not applied to all STM32 families. |
||
---|---|---|
.. | ||
TARGET_NUCLEO_L011K4 | ||
TARGET_NUCLEO_L031K6 | ||
TARGET_NUCLEO_L073RZ | ||
TARGET_STM32L0x2xZ | ||
TARGET_STM32L053x8 | ||
TARGET_STM32L072xZ | ||
device | ||
analogin_device.c | ||
analogout_device.c | ||
cmsis.h | ||
common_objects.h | ||
flash_api.c | ||
gpio_irq_device.c | ||
gpio_irq_device.h | ||
i2c_device.h | ||
pin_device.h | ||
pwmout_device.c | ||
pwmout_device.h | ||
serial_device.c | ||
spi_api.c | ||
spi_device.h |