04-24-2013 09:06 AM
I have multiple libraries with different scopes. In the 2012 SP1 developer environment everything works fine. I can watch the cRIO run and the touch panel communicating.... great!
However, I make a build for my cRIO and include the libraries in the "always included" section. The build is successful and deploys just fine. However, when the exe runs the touch panel does not see any shared variables.... So I enable debugging on the cRIO build and debug application and what do you know the exe has a broken arrow and no debug information.
I stripped down the source code to contain only the FPGA VI reference and a shared variable that increments. Deployed it, touch panel worked, connected to the debug panel and probed it.... fantastic.... However as soon as I include a library vi it breaks....
Am I missing something about lvlib's? Is there a something special I'm missing since my FPGA is in hybrid mode?
Bryan
04-24-2013 09:51 AM
OK, so I starting iterating on what I included in the build. For instance, include only one library call..... A build with a single library call broke and breaking down into the debug code I noticed that a typedef I used as a cluster appeared as a question mark with a square around it instead of the icon I gave it.
So I looked at the Additional Exclusions and checked "Disconnect type definitions" and that resolved the issue. I'm not sure if there is some typedef path the executable can't resolve or what.... but it's working
06-11-2013 06:33 AM
Actually the header should be Type Def breaks build not library breaks build.
That type def is a cluster and is also used as a single process shared variable, and disconnecting the type def fixed the build. However, I wanted to use the "bind FPGA reference to type definition" in the configure FPGA reference so when I modifiy the front panel of my FPGA the FPGA VI Reference wire would not break. This saves time by not having to update every subVI that uses an FPGA read/write node.
Now the problem is I have disconnected type defs to make my original build work, but now I'm depending on a type def for my FPGA reference.... Doesn't work... When I try connecting to the executable on my crio through the "debug application or shared library" it connects and starts downloading, but at the very end hangs and terminates which makes me conclude the changes have broken the build.
I've tried putting the controls in the build and that didn't resolve the problem. I saw an old 2010 error report # 294285 stating something similar and haven't dug any further (http://www.ni.com/white-paper/11869/en#294285_by_Categoryc). In the end it comes down to unbinding my fpga reference.
My program works fine in the developer environment and in earlier build versions where I disconnect type defs and do not bind my FPGA reference, but really LabVIEW should not be crashing during the build. Good news, I do have a workaround.