heinbali01 wrote on Sunday, June 04, 2017:
Hi All,
New FreeRTOS+TCP and +FAT drivers for the STM32F4 and STM32F7.
You will find them in the next post because when opening this new topic, I see no attach button
I used copies of the HAL library and put them as separate copies in the driver directories:
FreeRTOS-Plus-TCP/portable/NetworkInterface/STM32F7xx/NetworkInterface.c
FreeRTOS-Plus-TCP/portable/NetworkInterface/STM32F7xx/stm32f7xx_hal_eth.c
FreeRTOS-Plus-TCP/portable/NetworkInterface/STM32F7xx/stm32f7xx_hal_eth.h
FreeRTOS-Plus-FAT/portable/STM32F7xx/ff_sddisk.c
FreeRTOS-Plus-FAT/portable/STM32F7xx/stm32f7xx_hal_sd.c
FreeRTOS-Plus-FAT/portable/STM32F7xx/stm32f7xx_hal_sd.h
The STM32F4 versions:
FreeRTOS-Plus-TCP/portable/NetworkInterface/STM32F4xx/NetworkInterface.c
FreeRTOS-Plus-TCP/portable/NetworkInterface/STM32F4xx/stm32f4xx_hal_eth.c
FreeRTOS-Plus-TCP/portable/NetworkInterface/STM32F4xx/stm32f4xx_hal_eth.h
FreeRTOS-Plus-FAT/portable/STM32F4xx/ff_sddisk.c
FreeRTOS-Plus-FAT/portable/STM32F4xx/stm32f4xx_hal_sd.c
FreeRTOS-Plus-FAT/portable/STM32F4xx/stm32f4xx_hal_sd.h
So please include these two āportableā directories into the include search path using -I
, earlier that the HAL include directory.
The EMAC and the SDMMC peripherals of the F4 and F7 are very similar. I changed identifiers and comments so that the drivers also look very similar.
The drivers have been tested by several people, but please test them for your self as well. I tested them my self by using the FTP-server: I copied 500MB on an SD-card, copied these files back to the host, and then compared the files.
In my STM32F7 project, caching is enabled. An F7 cache-line has a fixed length of 32 bytes, so try to align all buffers at 32 bytes.
For STM32F7 it is profitable to use BufferAllocation_1.c
and use vNetworkInterfaceAllocateRAMToBuffers()
as defined in :
FreeRTOS-Plus-TCP/portable/NetworkInterface/STM32F7xx/NetworkInterface.c
The +TCP drivers are optimised for and tested as zero-copy drivers in both directions:
#define ipconfigZERO_COPY_RX_DRIVER 1
#define ipconfigZERO_COPY_TX_DRIVER 1
Also, all drivers are completely interrupt-driven.
Please give us feed-back about your experiences with the drivers, either on this forum or privately.
Regards, Hein
( find the attachment here. )