tcp_tick corrupting variables

Hello, maybe someone can help me. I’ve lost too much time trying to figure out what’s going on.

I’m using the 4400W to log data in the field. When it comes within range of a specific SID wireless connection it should send all the recorded data via TCP POST.

Everything works except one very important part. When the wireless board makes its connection, it corrupts all of my protected variables. Has anyone else experienced this?

for example:

...
protected unsigned long buf_offset;
...
main()
...
 buf_offset = 0; //initialize
 
if(!sock_init())
 {
   while (ifpending(IF_DEFAULT) == IF_COMING_UP) {
        tcp_tick(NULL);  //at some point this corrupts the variables
     }
 }
/*using the watch and stepping through, I can see all my protected 
variables are changed to some huge number.*/

obviously there’s much more going on in my code, but I didn’t have this problem until I started using the 4400W. The code worked fine on the 4200.

Any advice or pointers would be much appreciated!

I just saw your post. Are you still getting this issue?

I am using the 4400W myself and I have a different but in some was similar issue. I used the Zworld sample to monitor the XMEM area and when I called the ifpending(IF_DEFAULT) function, the xmem reported corrupt memory. Also I get a debugging timeout when I call tcp_tick() for this board.

I got an email from tech support saying that they found this issue too with 10.23 and asked me to go back to 10.21 but it is still the same for me.

I am pulling my hair out too (what’s left of it) to find a solution as my client is breathing down my neck for his product. If it was not for the need of the WiFi I would go back to the trusty RCM3000 that I have always used with great success.

Dave…

well I’m a little disappointed that no rabbit people responded with even a “I don’t know” answer.

Anyway, when defining the protected variables with seperate instruction and data space enabled in the compiler options, the memory address assigned is in a space that gets randomly eaten by other code. The solution was to diable serpate instrctuion and data space which moved the protected variable memory space outside of this range.

I’m also not impressed with customer service on the telephone side. My company paid for tech support on this and one other issue. I was using the documented function “xavail” and the rabbit master rudely said, “Why would you use that?? Always use _xavail.” Why??? because the documents refer to it! How should I know about all the underscore functions!? It did solve a problem though. Lucky for him, or I might start a rant or something!

Hey there! Try disabling “seperate data and instruction space” in the compiler options. That solved it for me and I haven’t had any problems in the field since. I’m just about to get work on the code again this and next week. I’ll post here again if I learn anything different. I originally used 10.21 and will test with 10.23 this time.

It took a while but finally I got a fix from Zworld for my problem.

They gave me a new SERLINK.LIB for TCPIP and now it works perfectly.

I guess this will be released in the next version from Zworld?

Dave…

Hello Myriad,
This forum is a place for engineers to discuss their ideas and post questions and replies, it is not Rabbit Technical Support forum. If you wish assistance from Rabbit Tech Support, you can use your support agreement number, or you can email us at support@rabbit.com
I do apologize if you have had an unpleasant experience with Technical Support. If you woudl like, you could send me a private email through this site and I could help.

Margaret

Thank you for your response. It might be a good idea to state clearly on every page that this forum is not monitored by technical staff. However, I imagine that your support email service gets many of the same questions and possibly problems that other users are experiencing. If those Q&A were easily found then everyone could benefit.