Hello Paul, I've been working on my BDI-EMC system this weekend and came across a problem that I think may be software related... My setup is a Motenc-Lite card with a 7525 IO termination board, and a 7535 IO board. I have my control system prototyped on a table and have been struggling to get any motion out of the motor(s). I attributed the problem to my wiring "skills" and my proof of damaged was that vsitest.c (available on the Vital site) reported a "Segmentation fault" when compiled and run on BDI 4.50. Before I sent my card back, I went and down-revved BDI to version 4.38 and the segmentation fault error went away. The utility seems to function properly allows me to communicate with the board, send voltage to the amplifier etc. Any thoughts? Regards, Craig
On Sunday 10 December 2006 22:10, Craig Gadd wrote:
I've been working on my BDI-EMC system this weekend and came across a problem that I think may be software related... My setup is a Motenc-Lite card with a 7525 IO termination board, and a 7535 IO board.
I have my control system prototyped on a table and have been struggling to get any motion out of the motor(s). I attributed the problem to my wiring "skills" and my proof of damaged was that vsitest.c (available on the Vital site) reported a "Segmentation fault" when compiled and run on BDI 4.50.
A segfault is usually caused by a null pointer - Looking at the source, line 79 is the culprit... if (dev == NULL) { printf ("\nVendor %X Device %X\n", dev->vendor_id, dev->device_id); printf ("PCI Motenc Card Not Found\n"); return -1; } The first printf uses dev which will always be NULL, hence the segfault...
Before I sent my card back, I went and down-revved BDI to version 4.38 and the segmentation fault error went away. The utility seems to function properly allows me to communicate with the board, send voltage to the amplifier etc. Any thoughts?
It looks like the the later versions of libpci require the use of pci_fill_info() before any data can be read from the internal structures - Without valid data, the tests for vendor & device ID were failing and triggering the segfault.. Attached is an updated vsitest.c that runs with the card I have here. Abdul: The changes should be compatable with earlier versions of libpci, so you may want to update the MOTENC-Lite & MOTENC-100 files.. Regards, Paul.
participants (2)
-
Craig Gadd -
Paul