Fix Wconversion issues for clang

Add explicit uint16_t cast for EoE header SET macros.
Used for SET of FrameInfo 1 and FrameInfo 2.

Increase datatype for offset used by EOE_HDR_FRAME_OFFSET_GET.

Change debug print formatting to %u for unsigned datatypes.
pull/150/head
Andreas Karlsson 2023-04-11 13:46:48 +02:00
parent 5221cfbe76
commit 2f4afb3230
2 changed files with 14 additions and 14 deletions

View File

@ -299,7 +299,7 @@ static void SDO_upload (void)
uint16_t index; uint16_t index;
uint8_t subindex; uint8_t subindex;
int32_t nidx; int32_t nidx;
int32_t nsub; int16_t nsub;
uint8_t MBXout; uint8_t MBXout;
uint32_t size; uint32_t size;
uint8_t dss; uint8_t dss;

View File

@ -47,37 +47,37 @@
/** Header frame info 1 */ /** Header frame info 1 */
#define EOE_HDR_FRAME_TYPE_OFFSET 0 #define EOE_HDR_FRAME_TYPE_OFFSET 0
#define EOE_HDR_FRAME_TYPE (0xF << 0) #define EOE_HDR_FRAME_TYPE (0xF << 0)
#define EOE_HDR_FRAME_TYPE_SET(x) (((x) & 0xF) << 0) #define EOE_HDR_FRAME_TYPE_SET(x) ((uint16_t)(((x) & 0xF) << 0))
#define EOE_HDR_FRAME_TYPE_GET(x) (((x) >> 0) & 0xF) #define EOE_HDR_FRAME_TYPE_GET(x) (((x) >> 0) & 0xF)
#define EOE_HDR_FRAME_PORT_OFFSET 4 #define EOE_HDR_FRAME_PORT_OFFSET 4
#define EOE_HDR_FRAME_PORT (0xF << 4) #define EOE_HDR_FRAME_PORT (0xF << 4)
#define EOE_HDR_FRAME_PORT_SET(x) (((x) & 0xF) << 4) #define EOE_HDR_FRAME_PORT_SET(x) ((uint16_t)(((x) & 0xF) << 4))
#define EOE_HDR_FRAME_PORT_GET(x) (((x) >> 4) & 0xF) #define EOE_HDR_FRAME_PORT_GET(x) (((x) >> 4) & 0xF)
#define EOE_HDR_LAST_FRAGMENT_OFFSET 8 #define EOE_HDR_LAST_FRAGMENT_OFFSET 8
#define EOE_HDR_LAST_FRAGMENT (0x1 << 8) #define EOE_HDR_LAST_FRAGMENT (0x1 << 8)
#define EOE_HDR_LAST_FRAGMENT_SET(x) (((x) & 0x1) << 8) #define EOE_HDR_LAST_FRAGMENT_SET(x) ((uint16_t)(((x) & 0x1) << 8))
#define EOE_HDR_LAST_FRAGMENT_GET(x) (((x) >> 8) & 0x1) #define EOE_HDR_LAST_FRAGMENT_GET(x) (((x) >> 8) & 0x1)
#define EOE_HDR_TIME_APPEND_OFFSET 9 #define EOE_HDR_TIME_APPEND_OFFSET 9
#define EOE_HDR_TIME_APPEND (0x1 << 9) #define EOE_HDR_TIME_APPEND (0x1 << 9)
#define EOE_HDR_TIME_APPEND_SET(x) (((x) & 0x1) << 9) #define EOE_HDR_TIME_APPEND_SET(x) ((uint16_t)(((x) & 0x1) << 9))
#define EOE_HDR_TIME_APPEND_GET(x) (((x) >> 9) & 0x1) #define EOE_HDR_TIME_APPEND_GET(x) (((x) >> 9) & 0x1)
#define EOE_HDR_TIME_REQUEST_OFFSET 10 #define EOE_HDR_TIME_REQUEST_OFFSET 10
#define EOE_HDR_TIME_REQUEST (0x1 << 10) #define EOE_HDR_TIME_REQUEST (0x1 << 10)
#define EOE_HDR_TIME_REQUEST_SET(x) (((x) & 0x1) << 10) #define EOE_HDR_TIME_REQUEST_SET(x) ((uint16_t)(((x) & 0x1) << 10))
#define EOE_HDR_TIME_REQUEST_GET(x) (((x) >> 10) & 0x1) #define EOE_HDR_TIME_REQUEST_GET(x) (((x) >> 10) & 0x1)
/** Header frame info 2 */ /** Header frame info 2 */
#define EOE_HDR_FRAG_NO_OFFSET 0 #define EOE_HDR_FRAG_NO_OFFSET 0
#define EOE_HDR_FRAG_NO (0x3F << 0) #define EOE_HDR_FRAG_NO (0x3F << 0)
#define EOE_HDR_FRAG_NO_SET(x) (((x) & 0x3F) << 0) #define EOE_HDR_FRAG_NO_SET(x) ((uint16_t)(((x) & 0x3F) << 0))
#define EOE_HDR_FRAG_NO_GET(x) (((x) >> 0) & 0x3F) #define EOE_HDR_FRAG_NO_GET(x) (((x) >> 0) & 0x3F)
#define EOE_HDR_FRAME_OFFSET_OFFSET 6 #define EOE_HDR_FRAME_OFFSET_OFFSET 6
#define EOE_HDR_FRAME_OFFSET (0x3F << 6) #define EOE_HDR_FRAME_OFFSET (0x3F << 6)
#define EOE_HDR_FRAME_OFFSET_SET(x) (((x) & 0x3F) << 6) #define EOE_HDR_FRAME_OFFSET_SET(x) ((uint16_t)(((x) & 0x3F) << 6))
#define EOE_HDR_FRAME_OFFSET_GET(x) (((x) >> 6) & 0x3F) #define EOE_HDR_FRAME_OFFSET_GET(x) (((x) >> 6) & 0x3F)
#define EOE_HDR_FRAME_NO_OFFSET 12 #define EOE_HDR_FRAME_NO_OFFSET 12
#define EOE_HDR_FRAME_NO (0xF << 12) #define EOE_HDR_FRAME_NO (0xF << 12)
#define EOE_HDR_FRAME_NO_SET(x) (((x) & 0xF) << 12) #define EOE_HDR_FRAME_NO_SET(x) ((uint16_t)(((x) & 0xF) << 12))
#define EOE_HDR_FRAME_NO_GET(x) (((x) >> 12) & 0xF) #define EOE_HDR_FRAME_NO_GET(x) (((x) >> 12) & 0xF)
/** EOE param */ /** EOE param */
@ -738,7 +738,7 @@ static void EOE_receive_fragment (void)
/* Capture error case */ /* Capture error case */
if(EOEvar.rxfragmentno != EOE_HDR_FRAG_NO_GET(frameinfo2)) if(EOEvar.rxfragmentno != EOE_HDR_FRAG_NO_GET(frameinfo2))
{ {
DPRINT("Unexpected fragment number %d, expected: %d\n", DPRINT("Unexpected fragment number %u, expected: %u\n",
EOE_HDR_FRAG_NO_GET(frameinfo2), EOEvar.rxfragmentno); EOE_HDR_FRAG_NO_GET(frameinfo2), EOEvar.rxfragmentno);
/* Clean up existing saved data */ /* Clean up existing saved data */
if(EOEvar.rxfragmentno != 0) if(EOEvar.rxfragmentno != 0)
@ -773,18 +773,18 @@ static void EOE_receive_fragment (void)
/* In frame fragment received */ /* In frame fragment received */
else else
{ {
uint16_t offset = (EOE_HDR_FRAME_OFFSET_GET(frameinfo2) << 5); uint32_t offset = (EOE_HDR_FRAME_OFFSET_GET(frameinfo2) << 5);
/* Validate received fragment */ /* Validate received fragment */
if(EOEvar.rxframeno != EOE_HDR_FRAME_NO_GET(frameinfo2)) if(EOEvar.rxframeno != EOE_HDR_FRAME_NO_GET(frameinfo2))
{ {
DPRINT("Unexpected frame number %d, expected: %d\n", DPRINT("Unexpected frame number %u, expected: %u\n",
EOE_HDR_FRAME_NO_GET(frameinfo2), EOEvar.rxframeno); EOE_HDR_FRAME_NO_GET(frameinfo2), EOEvar.rxframeno);
EOE_init_rx (); EOE_init_rx ();
return; return;
} }
else if(EOEvar.rxframeoffset != offset) else if(EOEvar.rxframeoffset != offset)
{ {
DPRINT("Unexpected frame offset %d, expected: %d\n", DPRINT("Unexpected frame offset %u, expected: %u\n",
offset, EOEvar.rxframeoffset); offset, EOEvar.rxframeoffset);
EOE_init_rx (); EOE_init_rx ();
return; return;
@ -890,7 +890,7 @@ static void EOE_send_fragment ()
} }
/* Set frame number */ /* Set frame number */
tempframe2 = (uint16_t)EOE_HDR_FRAME_NO_SET(frameno); tempframe2 = EOE_HDR_FRAME_NO_SET(frameno);
frameinfo2 |= tempframe2; frameinfo2 |= tempframe2;
eoembx = (_EOE *) &MBX[mbxhandle * ESC_MBXSIZE]; eoembx = (_EOE *) &MBX[mbxhandle * ESC_MBXSIZE];