Could you let us know on which board you are facing this issue so that we could look into it and help you debug the issue?
It is a muRata 1DX module (CYW4343) and an STM32 host. This is our target hardware which is working fine connecting to the Azure cloud.
I have been trying to understand how the snip TFTP example works too, and I am testing it with the default settings so that the code compiles as a Server. For testing, I run an external TFTP Clint App, that provides facilities to Send and Receive Files. From the snip, we see that there are 8 images identified as: FR, DCT, OTA, FS, WIFI, APP0, APP1, and APP2 for the CYW4343-NEB1DX_02 board. I have success in reading the FR, DCT, and FS images from the snip into my external Client App. BUT, I have NO success with the other 5 images. I have narrowed down the problem, when trying to upload APP0 (for example), to a "file size" issue. When the snip determines that the incoming file size is zero, then it does not continue to accept any incoming data. From what I can see, the snip goes to the DCT table and gets an expected size of zero, hence does not work correctly. This snip does not appear to get the file size from the incoming packet, but, it appears that the image needs to be already in the MCU flash, with the correct DCT table information, before it can be re-written with an new APP0 image of exactly the same size. Is this for real?
I seem to recall reading that for TFTP to work, the file needs to already exist at both ends, and the TFTP is only useful for file replacement. However, with the Flash allocation for 8 images, it should be possible since the file names are hard-coded into the snip, provided that the Header contains the in-coming size information.
So, I am stuck with the conclusion that this TFTP snip does not work, a situation that is not helped because of the lack of adequate documentation about how the snip works. I don't think this snip can be useful as a Client because there is no run-time mechanism to request GET or PUT operations. The code has to be compiled for either GET or PUT as a on-time operation. Duhh?
Overall, I am very disappointed, and it would be nice if somebody could help get this snip working.