I am observing some strange behavior related to timeouts with PipeIn with a terminal interface that I’m writing to control an XEM6010.
Specifically, I have a menu where a user chooses from a number of options, one of which is to transfer 2 bytes to a 16 bit wide register in the FPGA. If I choose this option, it will successfully transfer the two bytes as many times as I select that option until I close the program. After closing the program, if I reopen it and try to transfer the two bytes again, I get a Timeout error code (-2).
I discovered that the only way to transfer the 2 bytes again is to run the RAMtester example and then reopen my program. After running RAMtester and then running my program, I can again transfer the 2 bytes repeatedly to the device over the PipeIn until I close the program.
I am currently terminating the program with the following lines:
xem->SetWireInValue(0x00,0x0000,0x00FF);
xem->UpdateWireIns();
cout << endl;
cout << "Shutting Down..." << endl;
cout << endl;
delete xem;
exit(0);
I looked through the examples and API but didn’t see anything obvious about closing connections. Is there a recommended way to disconnect in order to avoid this? Does anyone have suggestions for tracking this down?
Thanks!