Also, the target wasn't mentioned. This also sounds like a driver and/or hardware problem as well.
Bill >-----Original Message----- >From: [email protected] >[mailto:[email protected]] On >Behalf Of [email protected] >Sent: Sunday, November 08, 2009 12:29 PM >To: Mailing list for lwIP users >Subject: Re: [lwip-users] Need help with tcp-raw-api app. Wrong checksum >sometimes calculatet ....THX !!! > >You didn't say from where you call the SendDiagnoseMessage() function >(i.e. which thread). Most often, things like checksum corruption (or >corruption of linked lists etc.) result from multiple threads being >active in the lwIP code at the same time. You should make sure that this >is not the case by using tcpip_callback() when another thread wants to >execute SendDiagnoseMessage() (this makes sure the function runs in the >correct thread context). > >Simon > > >Steffen schrieb: >> [..] >> void SendDiagnoseMessage(u08 source_address, u08 destination_address, >> u08 *message, u16 length) >> { >> >> struct ETH_Diagnose_Struct *hs_send_diagnose_message; >> struct tcp_pcb *apcbs = tcp_active_pcbs; >> u32 i=0; >> >> while (apcbs != NULL) >> { >> if (apcbs->local_port == DIAGNOSE_TCP_PORT) >> { >> hs_send_diagnose_message = apcbs->callback_arg; >> >> if (hs_send_diagnose_message->file == NULL ) >> { >> >> /* build tcp_diag_response_header */ >> DiagResponseHeader->len = (u32)length + >DIAG_ADDRESS_LEN; >> DiagResponseHeader->ctrl_word = DIAG_RESP_CW; >> DiagResponseHeader->source = source_address; >> DiagResponseHeader->target = destination_address; >> >> /* copy payload */ >> for(i=0; i < length; i++) >> { >> diag_buf[i+ HEADER_LEN + DIAG_ADDRESS_LEN] = >*message; >> message++; >> } >> >> >> hs_send_diagnose_message->file = (u08*)&diag_buf; >> hs_send_diagnose_message->left = length + HEADER_LEN >+ >> DIAG_ADDRESS_LEN; >> >> if(hs_send_diagnose_message->left >0) >> { >> tcp_send_data_diag(apcbs, >hs_send_diagnose_message); >> tcp_sent(apcbs, tcp_sent_diag); >> } >> } >> break; >> } >> apcbs = apcbs->next; >> } >> } >> >> >> >> _______________________________________________ >> lwip-users mailing list >> [email protected] >> http://lists.nongnu.org/mailman/listinfo/lwip-users >> >> > > > >_______________________________________________ >lwip-users mailing list >[email protected] >http://lists.nongnu.org/mailman/listinfo/lwip-users _______________________________________________ lwip-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/lwip-users
