Large Firmware File Transfer over UART on STM32H563ZI
Dear Team,
I am currently working on an application based on the STM32H563ZITx microcontroller using the NUCLEO-H563ZI development board.
The application is designed as a gateway that communicates with another controller through a UART interface. The same UART interface is also used to program the target controller with firmware updates.
For the software implementation, I am using STM32CubeH5 v1.6.0 and have adopted the Nx_Iperf reference project for the NUCLEO-H563ZI board to develop a web-based user interface.
The following functionalities have been successfully implemented and tested:
- Reading data from the target controller via UART
- Writing data to the target controller via UART
- Firmware download and programming through the same UART interface
However, I am encountering an issue when transferring firmware (.bin) files. The system appears to accept only about 54 KB of data, after which the transmission stops. As a result, I am unable to transfer larger firmware images.
My application requirement is to support firmware files of up to 300 KB and transmit them reliably to the target controller over UART.
Could you please help me understand:
- Whether there are any known limitations in the Nx_Iperf reference application, NetX Duo HTTP server, FileX, or STM32CubeH5 framework that could cause this behavior.
- The recommended approach for handling large file uploads and UART forwarding on the STM32H563ZI.
- Any APIs, middleware components, examples, or reference projects that support large firmware file transfers (greater than 280 KB) through a web interface and subsequent transmission over UART.
- Best practices for buffer management, packetization, DMA-based UART transfer, and file streaming to avoid storing the entire firmware image in RAM.
Any guidance, application notes, or example implementations would be greatly appreciated.
