Socket.receive or socket.send crashes entire OS

Im trying to send 1K chunks of firmware and software to a SC20100 over TCP.

At random moments, the socket.receive or socket.send methods will cause the entire system to hang up. I’ve narrowed it down to this line in the libraries:

var sent = this.ni.Send(this.m_Handle, buffer, offset + totalSend, size - totalSend, socketFlags);

Some times, when this method gets called, the entire system locks up. Visual studio loses debug connection and the module needs a complete power reset to function again.

I can not see what the code of the function does, but my suspicion is that it probably causes some kind of while loop hangup or similar.

I am trying to get a sample project so you can reproduce it, in the meanwhile: can you look at the code and see if there is a possibility of a loop hang or similar? Could this have something to do with the non blocking changes to sockets?

I am using a SC20100 with embedded emac and the DP83848KSQ network PHY. This is on the latest firmware. It happens on both a switched network and a direct connection to my laptop.

Latest firmware?
Are you sure it is not power related?
Id this our SoM or it is only the chipset and then you added a PHY on your circuit?

Latest firmware, yes.

I am 100% sure it is not power related. I have a scope attached to the 3v3 and 5v line and dont see anything weird.

It is a normal SC20100S with the phy added to my custom board.

I got it easily reproducible using two VS projects.

TcpTest:
https://www.mediafire.com/file/gdhhxgzh6j09b90/TcpTest.zip/file

OTAUpdateTester:
https://www.mediafire.com/file/iisx7si9u7g4fm4/OTAUpdateTester.zip/file

By downloading TcpTest and flashing that into a SC20100S with a DP83848 PHY connected to it, it will initialize ethernet on set IP and open a tcp socket on the set port.

You can then start OTAUpdateTester (which is a windows forms application) and enter the ip/port combo you used in TCPTester. After this use the top 2 buttons to select a firmware and a .tca file and then hit the update button.

If the updater makes connection, you will start to see messages in the debug window from the SC20 and the updater debug window.

What is happening for me every time I do this, is that the tincylr operating system crashes after x amount of chunks.
image

I do hope I made it easy enough for someone at GHI to reproduce this issue because it is stopping me from further developing my over the air updating of my SC20100s.

This is with the latest firmware, 6300.

Thanks. We will check soon.

Any update on this?

we were busy on different thing. Just back to tinyclr today, but working on different thing. Give us few days more :))).

Hi, It is fixed and released today!

1 Like

Hi, I think this problem back in latest release. Can you please check?

Hi, is it easy to reproduce now?

The fix is still there and has no change. We ran your test application to reproduce, look fine.

I will do more testing, but I did have the issue again.

I’ll let you know

Could we think that “could not reproduce” yet ? :))

Working on it coming Monday. Then I’m in the office again. Same goes for the pwm problem!

“Could not reproduce” yet ? :)).

Spent most of this week researching this and I think it was a broken switch port…
Almost impossible to reproduce, but apparantly the network can crash under super specific broken switch port circumstances :smiley:

I don’t know how to take action on this more.