Hi,Thanks again everyone for your help so far. Still, the more I feel like I
get to understand how lwIP works, the more I encounter some weird problems.The
Virtex II Pro, being the server; receives data from a java client.The thing is
that we have weird behavior. Code that work with Xilinx 9.1 won t work with 8.2
or code that work with dhcp enabled wont work without it.That includes the use
of function such as atoi, strtol, memcpy or sprintf.I am really confused here,
here is the code below. I started it all over again to determine the cause of
those crashes. Actually the server works but whenever I senda command to the
server, it will crash/restart the server...void processCommand(struct pbuf*
p,struct tcp_pcb *pcb, struct connection_state *cs) { char
*commandLine, *commandType, *data1, *data2, *response, *end; char* memory
=(char*)XPAR_DDR_512MB_64MX64_RANK2_ROW13_COL10_CL2_5_MEM1_BASEADDR;
long int i; char test[10]="1"; //Allocate memory and
copy the entire content of the command line received in pbuf->payload:
commandLine=(char*)malloc((p->tot_len)*sizeof(char));
sprintf(commandLine, "%s", p->payload); //Take care of the garbage
after the command line. commandLine=strtok(commandLine, "\r\n");
//Get the command type. commandType=strtok(commandLine, " ");
if(strncmp(commandType, "PROC",4)==0) { //If "PROC" type
command, only 1 argument is expected: data1=strtok(NULL, " ");
xil_printf("Command Type: %s / %s.\r\n", commandType, data1);
//Send control signal to register 0 of custom logic
//*(customLogicPtr) = (Xuint8)(atoi(data1));
xil_printf("Video processing #%s running.\r\n", data1);
response=(char*)malloc((strlen("PROC command.\n")+1)*sizeof(char));
sprintf(response, "%s", "PROC command.\n"); } else
if(strncmp(commandType, "SEND",4)==0) { //If "SEND" type
command, 2 arguments are expected: data1=strtok(NULL, " ");
data2=strtok(NULL, " "); xil_printf("Command Type: %s
/ %s / %s.\r\n", commandType, data1, data2); //Then copy the
data at the corresponding address: i=atol(test);
xil_printf("Number: %d\r\n", (int)i); //memcpy(memory+i,
data2, strlen(data2)); //Print information on the server
terminal and store the response to be sent to the client:
response=(char*)malloc((strlen("youhou\n")+1)*sizeof(char));
//xil_printf("Data sent to server: %s at address: %s.\r\n",data2,data1);
sprintf(response, "%s", "youhou\n");
//response[strlen(data2)]='\n';
//response[strlen(data2)+1]='\0'; }
xil_printf("response: %s\r",response); cs->data = response;
cs->left = strlen(response); send_data(pcb, cs);
free(commandLine); free(response);}Thanks for your help, because I m
really starting to be desperate...Antoine.
_________________________________________________________________
Windows Live Messenger vous offre 30 nouvelles émoticônes gratuites, installées
directement dans votre Messenger !
http://www.emoticones-messenger.fr/_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users