Other Parts Discussed in Thread: UNIFLASH
I'm taking over a project form a previous employee. The feature transfers over a .sli file from the file system to the CC3235SF module for a firmware update. The current 180MB .sli file transfers are successful and install correctly but larger file sizes (next one up is 190MB) will not transfer past 180MB. The programming code seems to work correctly and does not have any limit on our side to only make 180MB sizes work. There is a while loop to send over the whole file as data is available. After 180MB is sent the system halts and eventually the 0 status message is sent back from the CC3235SF module but we still have the remaining data to send over using the 0x34 FS Programming command. The remaining data attempts to be sent as our device is still in the middle of the while loop but at this point it doesn't matter since the bootloader thinks the full file was sent.
I have a few questions about the FS programming process.
- How does the bootloader know when the full file has been transferred over (when to send the 0 status response after the last chunk)?
- Is there somewhere we have sent the file size previously and that is why the bootloader is halting the transfer and prematurely sending the success after 180MB is sent?
- Is it possible 180MB is the maximum size our device can take and therefore assumes the full file was sent?