From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
03-20-2012 10:52 AM
I have a simple program which I initially wrote to run on the cRIO. I am now porting it to the ARM Keil MCB2300. I have created a new project, and setup the MCB2300 sucessfully (run several ARM specific LV demos). I have added the original vi to my project library and removed all references to the cRIO hardware. So basically I have a "standalone" vi that could just as well run on my host PC (i.e. no references to any hardware, just some loops and front panel buttons/LEDs)
When I deploy it to my ARM board I get the following errors:
[11:23:43 AM] Status: Error
linking...
.\Obj\LabVIEW.axf: Error: L6218E: Undefined symbol FreeEventNodeData (referred from state_machine.o).
.\Obj\LabVIEW.axf: Error: L6218E: Undefined symbol FreeLVEventQ (referred from state_machine.o).
.\Obj\LabVIEW.axf: Error: L6218E: Undefined symbol LVFrontPanelUnlock (referred from state_machine.o).
.\Obj\LabVIEW.axf: Error: L6218E: Undefined symbol LVGetNextEvent (referred from state_machine.o).
.\Obj\LabVIEW.axf: Error: L6218E: Undefined symbol LVUpdateScreen (referred from state_machine.o).
.\Obj\LabVIEW.axf: Error: L6218E: Undefined symbol RemoveFPEventQ (referred from state_machine.o).
.\Obj\LabVIEW.axf: Not enough information to produce a FEEDBACK file.
.\Obj\LabVIEW.axf: Not enough information to list image symbols.
.\Obj\LabVIEW.axf: Not enough information to list the image map.
.\Obj\LabVIEW.axf: Finished: 3 information, 0 warning and 6 error messages.
Target not created
Status: Build failed.
The name of my vi is "state_machine" I have no subVI's. I know there are some limited functionality of LV blocks for ARM. I am using:
- while loops
- event structure
- case structure
- compoud arithmetic
- local variables
I can't imagine any of these would cause the build to fail. I don't want to have to re-write my entire program for the ARM if I can avoid it.
thanks,
Jason
Solved! Go to Solution.
03-21-2012 07:14 PM
Hi Jason,
I would bet the event structure is the part causing problems. As documented here, we have limited support for certain structures and your error messages are talking about events.
What happens when you just try the sample program in the getting started guide?
03-26-2012 08:01 AM - edited 03-26-2012 08:05 AM
Hey Jason,
Did the event structure end up being the problem or was it something else?
03-26-2012 03:22 PM - edited 03-26-2012 03:27 PM
Yes, it was the event structure. It looks like I'm not the first person to have this problem. The event structure is a pretty complicated operation. I guess that LV Embedded for ARM does not support the Event structure. Converting all of these interrupts to nice C-code is complicated.
To fix this problem I simply rewrote my event structure as several parallel While loops. Inside each loops is a T/F case structure. The case is then triggered by whatever triggered my event.
So for example, if I had an event structure with 5 events, I have 5 concurrent while loops, each with one T/F case structure inside them. Each case structure is then triggered by the boolean which originally triggered the event.
Sucks but.....
03-27-2012 04:09 AM
Why would you need to have 5 parallel loops? The event structure can't execute the different events in parallel either, so your architecture is not only not the same but could actually introduce extra problems such as race conditions since the events are not serialized like in the original.
A single loop with a case structure with enumeration and with a default case that evaluates all the conditions and generates the according enum state would be more like the event structure inside a loop.