My application uses sockets to provide information to callers, and also integrates an LCD panel, which is driven by SPI. I have encountered a problem where the socket .Accept never accept()s a connection, but only if I have created an instance of the Microsoft.SPOT.Hardware.SPI class before calling Accept(). I have reduced the test case down to the following code.
SPI objSPI;Socket objListenSocket = null;objListenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);objListenSocket.Bind(new IPEndPoint(IPAddress.Any, 80));objListenSocket.Listen(10);// If this line is commented out, the Accept() call works, otherwise it doesn'tobjSPI =new SPI(new SPI.Configuration(Cpu.Pin.GPIO_Pin8, false, 0, 0, true, true, 400, SPI.SPI_module.SPI1));objListenSocket.Accept();
Any ideas? I am guessing that SPI is used as part of networking support in the NDP2 and that's why it breaks the sockets functionality, but I'd appreciate any tips on how I can work around the issue. Firmware is 4.2.2.2