mbed-os/targets/TARGET_STM/TARGET_STM32L0/device
Alexandre Bourdiol 315220832f TARGET_STM: L0 CUBE SPI async mode send next byte after previous one read
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.
2020-02-04 13:26:49 +01:00
..
stm32_hal_legacy.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_adc.c STM32L0 ADC TEMPERATURE CHANNEL rework 2019-01-03 17:03:07 +01:00
stm32l0xx_hal_adc.h STM32L0 ADC internal channels update 2018-05-22 13:17:16 +02:00
stm32l0xx_hal_adc_ex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_adc_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_comp.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_comp.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_comp_ex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_comp_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_conf.h STM32 WATCHDOG : compilation issue with typed define 2019-05-24 11:35:40 +02:00
stm32l0xx_hal_cortex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_cortex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_crc.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_crc.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_crc_ex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_crc_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_cryp.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_cryp.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_cryp_ex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_cryp_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_dac.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_dac.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_dac_ex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_dac_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_def.h L0 ST CUBE V1.10.0: spi and i2c corrections 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_dma.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_dma.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_firewall.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_firewall.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_flash.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_flash.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_flash_ex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_flash_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_flash_ramfunc.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_flash_ramfunc.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_gpio.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_gpio.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_gpio_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_i2c.c TARGET_STM: I2C sequential communication revert PR #3324 to original cube HAL 2019-08-22 10:44:20 +02:00
stm32l0xx_hal_i2c.h L0 ST CUBE V1.10.0: spi and i2c corrections 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_i2c_ex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_i2c_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_i2s.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_i2s.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_irda.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_irda.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_irda_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_iwdg.c STM32 WATCHDOG : update STM32L0 HAL_IWDG_Init to a newest version 2019-05-24 11:35:41 +02:00
stm32l0xx_hal_iwdg.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_lcd.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_lcd.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_lptim.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_lptim.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_lptim_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_pcd.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_pcd.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_pcd_ex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_pcd_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_pwr.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_pwr.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_pwr_ex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_pwr_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_rcc.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_rcc.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_rcc_ex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_rcc_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_rng.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_rng.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_rtc.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_rtc.h STM32 RTC update for easy maintenance 2018-12-04 11:08:30 +01:00
stm32l0xx_hal_rtc_ex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_rtc_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_smartcard.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_smartcard.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_smartcard_ex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_smartcard_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_smbus.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_smbus.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_spi.c TARGET_STM: L0 CUBE SPI async mode send next byte after previous one read 2020-02-04 13:26:49 +01:00
stm32l0xx_hal_spi.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_tim.c STM32L0 warning compilation 2019-06-07 18:10:17 +02:00
stm32l0xx_hal_tim.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_tim_ex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_tim_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_tsc.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_tsc.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_uart.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_uart.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_uart_ex.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_uart_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_usart.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_usart.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_usart_ex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_wwdg.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_hal_wwdg.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_adc.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_adc.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_bus.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_comp.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_comp.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_cortex.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_crc.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_crc.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_crs.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_crs.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_dac.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_dac.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_dma.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_dma.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_exti.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_exti.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_gpio.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_gpio.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_i2c.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_i2c.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_iwdg.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_lptim.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_lptim.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_lpuart.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_lpuart.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_pwr.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_pwr.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_rcc.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_rcc.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_rng.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_rng.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_rtc.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_rtc.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_spi.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_spi.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_system.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_tim.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_tim.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_usart.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_usart.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_utils.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_utils.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
stm32l0xx_ll_wwdg.h L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00
system_stm32l0xx.c L0 ST CUBE V1.10.0 2018-04-18 14:06:20 +02:00