SLAU887 February 2023 MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0L1105 , MSPM0L1106 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346
Prototype
uint32_t receive(void);
return - Returns the 32 bit start address of the Received data packet. The data packet should have the same format as described in the ROM BSL protocol GUID-20221116-SR0T-J7QL-CX7Q-WS3MSWF7QCXZ.html.
Description
Receive function should take care of reading the data packets from the BSL host. It should share the packet with BSL core only when the complete packet is received and correctness of the data is checked (CRC verification of data). Also the address should be shared only once per data packet. If this function is called by BSL core, when there is no data packet received or when it is in progress, it should return '0'.
If a data packet is received successfully without any issues, it shall acknowledge to the host, as ROM BSL plug-in does (Refer ROM BSL acknowledgments). In case of any issues, it shall be reported to host through a NACK and the packet should not be shared with ROM BSL core.