@@ -308,30 +308,33 @@ stse_ReturnCode_t stse_frame_receive(stse_Handler_t* pSTSE, stse_frame_t* pFrame
308308 pSTSE -> io .BusSpeed ,
309309 STSE_FRAME_LENGTH_SIZE + STSE_RSP_FRAME_HEADER_SIZE );
310310
311- retry_count -- ;
312- stse_platform_Delay_ms (STSE_POLLING_RETRY_INTERVAL );
311+ if (ret != STSE_OK )
312+ {
313+ retry_count -- ;
314+ stse_platform_Delay_ms (STSE_POLLING_RETRY_INTERVAL );
315+ }
313316 }
314317
315318 /* - Verify correct reception*/
316- if (( ret & STSE_RSP_STATUS_MASK ) != STSE_OK )
319+ if (ret != STSE_OK )
317320 {
318- #ifdef STSAFE_FRAME_DEBUG_LOG
319- printf ("\n\r STSAFE Frame < (1-byte) : { 0x%02X }\n\r" , ret );
320- printf ("\n\r" );
321- #endif
322321 return ( ret );
323322 }
324323
325324 /* Discard response header */
326- pSTSE -> io .BusRecvContinue (
325+ ret = pSTSE -> io .BusRecvContinue (
327326 pSTSE -> io .busID ,
328327 pSTSE -> io .Devaddr ,
329328 pSTSE -> io .BusSpeed ,
330329 NULL ,
331330 STSE_RSP_FRAME_HEADER_SIZE );
331+ if (ret != STSE_OK )
332+ {
333+ return ( ret );
334+ }
332335
333336 /* - Get STSAFE Response Length */
334- pSTSE -> io .BusRecvStop (
337+ ret = pSTSE -> io .BusRecvStop (
335338 pSTSE -> io .busID ,
336339 pSTSE -> io .Devaddr ,
337340 pSTSE -> io .BusSpeed ,
@@ -380,9 +383,12 @@ stse_ReturnCode_t stse_frame_receive(stse_Handler_t* pSTSE, stse_frame_t* pFrame
380383 pSTSE -> io .BusSpeed ,
381384 STSE_FRAME_LENGTH_SIZE + received_length + STSE_FRAME_CRC_SIZE );
382385
383- retry_count -- ;
384- stse_platform_Delay_ms (STSE_POLLING_RETRY_INTERVAL );
385- }
386+ if (ret != STSE_OK )
387+ {
388+ retry_count -- ;
389+ stse_platform_Delay_ms (STSE_POLLING_RETRY_INTERVAL );
390+ }
391+ }
386392
387393 /* - Verify correct reception*/
388394 if (ret != STSE_OK )
@@ -391,45 +397,46 @@ stse_ReturnCode_t stse_frame_receive(stse_Handler_t* pSTSE, stse_frame_t* pFrame
391397 }
392398
393399 /* Receive response header */
394- pSTSE -> io .BusRecvContinue (
400+ ret = pSTSE -> io .BusRecvContinue (
395401 pSTSE -> io .busID ,
396402 pSTSE -> io .Devaddr ,
397403 pSTSE -> io .BusSpeed ,
398404 pFrame -> first_element -> pData ,
399405 STSE_RSP_FRAME_HEADER_SIZE );
400-
401- ret = (stse_ReturnCode_t )(pFrame -> first_element -> pData [0 ] & STSE_RSP_STATUS_MASK );
402-
403406 if (ret != STSE_OK )
404407 {
405- #ifdef STSAFE_FRAME_DEBUG_LOG
406- printf ("\n\r STSAFE Frame < (1-byte) : { 0x%02X }\n\r" , ret );
407- printf ("\n\r" );
408- #endif
409408 return ( ret );
410409 }
411410
412411 /* Substract response header already read in STSAFE-A */
413412 received_length -= STSE_RSP_FRAME_HEADER_SIZE ;
414413
415414 /* Receive and discard length (already stored) */
416- pSTSE -> io .BusRecvContinue (
415+ ret = pSTSE -> io .BusRecvContinue (
417416 pSTSE -> io .busID ,
418417 pSTSE -> io .Devaddr ,
419418 pSTSE -> io .BusSpeed ,
420419 NULL ,
421420 STSE_FRAME_LENGTH_SIZE );
421+ if (ret != STSE_OK )
422+ {
423+ return ( ret );
424+ }
422425
423- /* If first element is longer than jsut the header */
426+ /* If first element is longer than just the header */
424427 if (pFrame -> first_element -> length > STSE_RSP_FRAME_HEADER_SIZE )
425428 {
426429 /* Receive missing bytes after discarding the 2 bytes length */
427- pSTSE -> io .BusRecvContinue (
430+ ret = pSTSE -> io .BusRecvContinue (
428431 pSTSE -> io .busID ,
429432 pSTSE -> io .Devaddr ,
430433 pSTSE -> io .BusSpeed ,
431434 pFrame -> first_element -> pData + STSE_RSP_FRAME_HEADER_SIZE ,
432435 pFrame -> first_element -> length - STSE_RSP_FRAME_HEADER_SIZE );
436+ if (ret != STSE_OK )
437+ {
438+ return ( ret );
439+ }
433440 }
434441
435442 /* - Perform frame element reception and populate local RSP Frame */
@@ -439,23 +446,31 @@ stse_ReturnCode_t stse_frame_receive(stse_Handler_t* pSTSE, stse_frame_t* pFrame
439446 {
440447 pCurrent_element -> length = received_length ;
441448 }
442- pSTSE -> io .BusRecvContinue (
449+ ret = pSTSE -> io .BusRecvContinue (
443450 pSTSE -> io .busID ,
444451 pSTSE -> io .Devaddr ,
445452 pSTSE -> io .BusSpeed ,
446453 pCurrent_element -> pData ,
447- pCurrent_element -> length
448- );
454+ pCurrent_element -> length );
455+ if (ret != STSE_OK )
456+ {
457+ return ( ret );
458+ }
459+
449460 received_length -= pCurrent_element -> length ;
450461 pCurrent_element = pCurrent_element -> next ;
451462 }
452- pSTSE -> io .BusRecvStop (
463+ ret = pSTSE -> io .BusRecvStop (
453464 pSTSE -> io .busID ,
454465 pSTSE -> io .Devaddr ,
455466 pSTSE -> io .BusSpeed ,
456467 pCurrent_element -> pData ,
457- pCurrent_element -> length
458- );
468+ pCurrent_element -> length );
469+ if (ret != STSE_OK )
470+ {
471+ return ( ret );
472+ }
473+
459474
460475 #ifdef STSAFE_FRAME_DEBUG_LOG
461476 printf ("\n\r STSAFE Frame < " );
@@ -476,7 +491,9 @@ stse_ReturnCode_t stse_frame_receive(stse_Handler_t* pSTSE, stse_frame_t* pFrame
476491 return ( STSE_CORE_FRAME_CRC_ERROR );
477492 }
478493
479- return ( STSE_OK );
494+ ret = (stse_ReturnCode_t )(pFrame -> first_element -> pData [0 ] & STSE_RSP_STATUS_MASK );
495+
496+ return ( ret );
480497}
481498
482499stse_ReturnCode_t stse_frame_transfer (stse_Handler_t * pSTSE ,
0 commit comments