LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Deployed executable does not match locally-built executable for RT

I'm working on a real-time application in LabVIEW 2009, running on an RT desktop machine that contains a PCI-7813R FPGA card.  My development machine is not connected to the RT machine, so when I need to install a new version I build it locally on my Windows machine, then go over to the computer that is connected to the RT target and use FTP to copy the new startup.rtexe.  Usually this works fine, but occasionally when I start a new version of the application I get error -63195.  When this happens, I've found that I need to connect my development machine and do a "Deploy" to get the RT application working properly.  Last time this happened, I copied the deployed startup.rtexe back to my development machine, then compared it to the one that resulted from doing a build of the startup application build specification.  To my surprise, they don't match!  Why would "deploy" produce a different executable than "build" on the same machine?

0 Kudos
Message 1 of 6
(2,722 Views)
I'm not sure if this answers your question, but I know if you don't set the binary flag to true on an FTP the file sizes will be different. How are you determining the difference in the files?
0 Kudos
Message 2 of 6
(2,720 Views)

I did a binary diff using p4merge.  It's definitely not an end-of-line translation problem (the difference between binary and ascii ftp); if it were, ftp'ing the binary executable would never work.  I've been able to take the version I ftp'd after deployment and copy it, using ftp, to a duplicate system with no problems.

0 Kudos
Message 3 of 6
(2,718 Views)

hm, i wonder if there is an error in deployment that's happening but not being handled. So, the deployment completes but you are never notified of any problems. I have not run into this problem before so I'm just kind of throwing things at the wall and hoping they stick. With regards to the deploy and build not matching, you may prefer having someone from NI chime in on that so you make sure aren't chasing something that isn't really the root of the problem (this has burned me before Smiley Sad). 

0 Kudos
Message 4 of 6
(2,713 Views)

The deployment is succeeding - I see the new code.  However, when I try to initialize the FPGA from the executable that was built and then copied over FTP, I sometimes get error -63195, "NI-RIO:  (Hex 0xFFFF0925) The handle for device communication is invalid or has been closed. Restart the application."  This does not happen when I deploy the application directly from the LabVIEW project.  I am hoping someone from NI will comment on the difference between "Build" and "Deploy" for an RT target, and why they do not generate bit-identical executables.  This does not happen every time I build a new executable, just some of the time, and I have not done it enough to know exactly what type of change I need to make to trigger the problem.

0 Kudos
Message 5 of 6
(2,711 Views)

Sidetrack but somewhat related: Yeah the whole executable deployment is a real pain as-is when everything is working, let alone when there are errors. It becomes more difficult when the system is in the field and the development environment is not available and you have to update the RT exe. I know NI is making some strides to make this easier so we'll see what happens, but I'm not really satisfied yet.

 

I can say I have deployed RT executables using FPGA both from FTP and from the dev environment and have no run into this issue. I know it's a typical answer that you may have tried, and that probably won't help but have you considered either repairing the FPGA install or blowing away the build spec from the project and remaking it? Sorry, another grasp at a straw!

0 Kudos
Message 6 of 6
(2,704 Views)