Skip to content

Commit b96ad59

Browse files
wyr-7GUIDINGLI
authored andcommitted
rpmsg_ping.c: change check data to fluctuation value
We can found the error happend packet more accurately based on the data value. Signed-off-by: Yongrong Wang <[email protected]>
1 parent 5e96e72 commit b96ad59

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

drivers/rpmsg/rpmsg_ping.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
#define RPMSG_PING_SEND_NOACK 3
4545
#define RPMSG_PING_SEND_ACK 4
4646
#define RPMSG_PING_ACK 5
47-
#define RPMSG_PING_CHECK_DATA 0xee
4847

4948
/****************************************************************************
5049
* Private Types
@@ -82,7 +81,7 @@ static int rpmsg_ping_ept_cb(FAR struct rpmsg_endpoint *ept,
8281
data_len = msg->len - sizeof(struct rpmsg_ping_msg_s) + 1;
8382
for (i = 0; i < data_len; i++)
8483
{
85-
if (msg->data[i] != RPMSG_PING_CHECK_DATA)
84+
if (msg->data[i] != msg->data[0])
8685
{
8786
syslog(LOG_ERR, "receive data error at %zu of %zu\n",
8887
i, data_len);
@@ -108,8 +107,8 @@ static int rpmsg_ping_ept_cb(FAR struct rpmsg_endpoint *ept,
108107
return 0;
109108
}
110109

111-
static int rpmsg_ping_once(FAR struct rpmsg_endpoint *ept,
112-
int len, int ack, uint32_t *buf_len)
110+
static int rpmsg_ping_once(FAR struct rpmsg_endpoint *ept, int len,
111+
int ack, uint32_t *buf_len, char i)
113112
{
114113
FAR struct rpmsg_ping_msg_s *msg;
115114
int ret;
@@ -147,8 +146,7 @@ static int rpmsg_ping_once(FAR struct rpmsg_endpoint *ept,
147146

148147
if (msg->cmd == RPMSG_PING_SEND_CHECK)
149148
{
150-
memset(msg->data, RPMSG_PING_CHECK_DATA,
151-
len - sizeof(struct rpmsg_ping_msg_s) + 1);
149+
memset(msg->data, i, len - sizeof(struct rpmsg_ping_msg_s) + 1);
152150
}
153151

154152
nxsem_init(&sem, 0, 0);
@@ -228,7 +226,7 @@ int rpmsg_ping(FAR struct rpmsg_endpoint *ept,
228226
{
229227
clock_t tm = perf_gettime();
230228

231-
send_len = rpmsg_ping_once(ept, ping->len, ping->ack, &buf_len);
229+
send_len = rpmsg_ping_once(ept, ping->len, ping->ack, &buf_len, i);
232230
if (send_len < 0)
233231
{
234232
return send_len;

0 commit comments

Comments
 (0)