LabVIEW Embedded

cancel
Showing results for 
Search instead for 
Did you mean: 

LabVIEW Embedded for ARM build fails

Solved!
Go to solution

I'm using the LabVIEW Embedded module for ARM microcontrollers with the
Luminary EK-LM3S8962 evaluation board.

When I try to build/run the example vi in the tutorial (pg 13 of the Getting Started
doc)I get the following error: Build Failed. Build failed with errors.

The output is the following:


Build target 'LabVIEW'
assembling Startup.s...
compiling RTX_Config.c...
..\System\RTX_Config.c(157): error:  #130: expected a "{"
compiling Retarget.c...
compiling TargetInit.c...
compiling ARM_irq.c...
compiling ARM_RTClock.c...
compiling ARM_Serial.c...
compiling EKLM3S8962_Display.c...
compiling LM3S_EMAC.c...
D:\Program Files\National Instruments\LabVIEW
8.6\Targets\Keil\Embedded\RealView\Drivers\RL-ARM\Include
\RLARM_Net_Config.h(31)
: error:  #256: invalid redeclaration of type name "S8" (declared at line
37 of
"d:\Keil\ARM\RV31\INC\RTL.h")
compiling ARM_I2C.c...
compiling ARM_SPI.c...
compiling LM3S_Pins.c...
compiling LVCGenIntInit.c...
compiling Untitled_ARM.c...
compiling lvEmbeddedMain.c...
<-----snip------>
compiling RLARM_CAN_Wrapper.c...
Target not created

0 Kudos
Message 1 of 14
(11,712 Views)
Solution
Accepted by topic author Everett_U

You forgot to tell us about your MDK-ARM version (perhaps MDK 3.5+).
Open Keil uVision and double click on those errors:


..\System\RTX_Config.c(157): error:  #130: expected a "{"
Just move __task to the beginning of that line
__task void os_idle_demon (void){

 

To make a permanent change you could also modify the file <LabVIEW>\Targets\Keil\Embedded\RealView\EK-LM3S8962\Template\System\ RTX_Config.c

\RLARM_Net_Config.h(31)
: error:  #256: invalid redeclaration of type name "S8" (declared at line 37 of "d:\Keil\ARM\RV31\INC\RTL.h")
Comment the line:
//typedef char             S8;     /*defined elsewhere as of MDK 3.5*/

 

This will be for good.

Message 2 of 14
(11,708 Views)
Thanks!
0 Kudos
Message 3 of 14
(11,706 Views)

Hello I'm experimenting with the eval version for LV 8.5 with a MCB2300. I also have the 3.80 version of Uvision. Thought I would try the above suggestions on my problem but it generated a host of new errors.

Here's the original errors:

Build target 'LabVIEW'
assembling LPC2300.s...
compiling RTX_Config.c...
C:\Keil\ARM\RV31\INC\RTX_Config.h(18): error:  #35: #error directive: New RTX-V2 core does not require RTX_Config.h
compiling TargetInit.c...
compiling LPC23_EMAC.c...
C:\Program Files\National Instruments\LabVIEW 8.5\Targets\Keil\Embedded\RealView\Drivers\RL-ARM\Include\RLARM_Net_Config.h(31): error:  #256: invalid redeclaration of type name "S8" (declared at line 37 of "C:\Keil\ARM\RV31\INC\RTL.h")
compiling ARM_Serial.c...
compiling ARM_RTClock.c...
compiling ARM_irq.c...
compiling ARM_I2C.c...

 

After commenting out S8 in RLARM_Net_Config.h and RTX_config.h in RTX_Config.h I have a rash of new errors. Any suggestions?

Build target 'LabVIEW'
assembling LPC2300.s...
compiling RTX_Config.c...
..\System\RTX_Config.c(272): error:  #20: identifier "P_TCB" is undefined
..\System\RTX_Config.c(300): error:  #70: incomplete type is not allowed
..\System\RTX_Config.c(307): error:  #20: identifier "P_TCB" is undefined
..\System\RTX_Config.c(311): error:  #20: identifier "P_TCB" is undefined
..\System\RTX_Config.c(331): error:  #130: expected a "{"
..\System\RTX_Config.c(388): error:  #20: identifier "READY" is undefined
..\System\RTX_Config.c(391): error:  #70: incomplete type is not allowed
..\System\RTX_Config.c(391): error:  #20: identifier "RUNNING" is undefined
..\System\RTX_Config.c(464): error:  #70: incomplete type is not allowed
..\System\RTX_Config.c(473): error:  #20: identifier "P_TCB" is undefined
..\System\RTX_Config.c(479): error:  #20: identifier "P_TCB" is undefined
..\System\RTX_Config.c(493): error:  #20: identifier "P_TMR" is undefined
..\System\RTX_Config.c(503): error:  #20: identifier "P_TMR" is undefined
..\System\RTX_Config.c(514): error:  #20: identifier "P_TCB" is undefined
..\System\RTX_Config.c(515): error:  #20: identifier "FUNCP" is undefined
..\System\RTX_Config.c(523): error:  #20: identifier "TCB" is undefined
..\System\RTX_Config.c(524): error:  #20: identifier "READY" is undefined
..\System\RTX_Config.c(584): error:  #20: identifier "P_TCB" is undefined
..\System\RTX_Config.c(584): error:  #1502: arguments for __svc or __svc_indirect function must have integral type
..\System\RTX_Config.c(585): error:  #20: identifier "P_TCB" is undefined
..\System\RTX_Config.c(600): error:  #20: identifier "RUNNING" is undefined
..\System\RTX_Config.c(618): error:  #20: identifier "P_TCB" is undefined
..\System\RTX_Config.c(620): error:  #70: incomplete type is not allowed
..\System\RTX_Config.c(628): error:  #20: identifier "P_XCB" is undefined
..\System\RTX_Config.c(628): error:  #70: incomplete type is not allowed
compiling TargetInit.c...
compiling LPC23_EMAC.c...
compiling ARM_Serial.c...
compiling ARM_RTClock.c...
compiling ARM_irq.c...
compiling ARM_I2C.c...
compiling ARM_SPI.c...

0 Kudos
Message 4 of 14
(11,655 Views)

Richard,

 

          Do you have LabVIEW 8.5 or 8.5.1 (it will say in the Help>About LabVIEW in the bottom right of the pop up window)?

 

          Have you been able to get any shipping examples to run?

 

If you can't even get a shipping example to run without changing the system files then something is wrong overall. You should just be able to install the software and activate MicroVision and download a shipping example to the MCB2300.

0 Kudos
Message 5 of 14
(11,641 Views)

8.5.1  None of the shipped examples will run. I'm assuming it's because I have a later version of uVision than what shipped with the 8.5.1 eval CD.

 

Richard

0 Kudos
Message 6 of 14
(11,636 Views)

Hello Richard,

 

A few things were changed in uVision 3.5, so the RTX_Config.c file must be updated (in addition to the the other fixes mentioned earlier).  If you look in the directory C:\Keil\ARM\Boards\Keil\MCB2300\RTX_Blinky you can find an RTX_config.c that works with uVision 3.5.  However, there are modifications needed to get this to work.  You can figure out the changed needed by comparing the existing RTX_Config.c in LabVIEW and this new one from the Keil folder.

 

Alternately, I've attached my solution.  Place this file in <LabVIEW folder>\Targets\Keil\Embedded\RealView\MCB2300\Template\System and create a new LabVIEW project and build.  This should work in uVision 3.5 (but not 3.2, so create a backup if you wish to go back to 3.2).

 

good luck!

0 Kudos
Message 7 of 14
(11,627 Views)
Thanks. On to the next set of problems...
0 Kudos
Message 8 of 14
(11,601 Views)

Hello,

 

I have LV8.6 and the same problem since I updated to uVision v3.85 (MDK-ARM v3.70), because of Error C9932E:

"Build target 'LabVIEW' compiling TargetInit.c...
TargetInit.c:Error:C9932E:This Evaluation Version has expired. Please contract your supplier.
Target not created".

 

Now I allways get those two Errors:

"D:\Keil\ARM\RV31\INC\RTX_Config.h(18): error:  #35: #error directive: New RTX-V2 core does not require RTX_Config.h"

"D:\Programme\National Instruments\LabVIEW 8.6\Targets\Keil\Embedded\RealView\Drivers\RL-ARM\Include\RLARM_Net_Config.h(31): error:  #256: invalid redeclaration of type name "S8" (declared at line 37 of "D:\Keil\ARM\RV31\INC\RTL.h")"

 

I allready tried the attached RTX_Config.c but it didn´t change anything.

 

 

 

 

 

0 Kudos
Message 9 of 14
(11,553 Views)

Hello,

 

now I downgraded to uVision 3.62c (MDK-ARM 3.22, but there I get the other error again:

"RTX_Config.c: Error: C9932E: This Evaluation Version has expired. Please contact your supplier."

 

I hope the ne Version vom Embedded for ARM will solve my problem:

http://joule.ni.com/nidu/cds/view/p/id/1371/lang/de

0 Kudos
Message 10 of 14
(11,541 Views)