Program LPC2378 with code generated by LabView ARM embedded, without using LabView
I would like to use the C files that are originally generated in LabVIEW ARM embedded module, and use Keil software (or other lower cost) to load these files into custom boards with LPC2378 controller without LabView. Are there detailed instuctions for this? I am using version 8.6 and the ARM embedded module is 1.1.
My reason for this task is boards are being made in a maufacturing facility oversees, and they need to be programmed at their end.
I read a forum describing the use of hex files, but not enough detail for me to figure this out.
Thanks in advance.
Hey Bob,
What you're looking to do should be possible. You'll just need to build the application in LabVIEW, then you should be able to use the uVisions command line to deploy the system. As for the C code itself, it gets generated when you build your build specification and you should see it placed in the same directory as your labview project in a folder named the name of your project. For example, if your project were called My ARM Project, you'll see a folder called "My ARM Project" created/updated whenever you build the build specification in that project and it will contain the C Code. To see the code organized logically, after building your build specification, right-click on the ARM target and select "Show Keil uVision". This will open a uVision window in "LabVIEW mode" and you'll be able to see all of the C files associated with you application; your VI specific code will be under a folder titled "VIs". You could also just open the C code files from disk in uVision, which is what you'll need to do if LabVIEW isn't installed. The main LabVIEW project can be found in the built directory described above as the LabVIEW.uvproj file in the "target"/Application/"uvision version"/Project directory. For example my main file was built in MyProject\EK_LM3S8962\Application\4.01\Project. From there, you'll need to follow uVision's process for compiling and deploying the target code from their command line:
Command Line
http://www.keil.com/support/man/docs/uv4/uv4_commandline.htm
Hope this helps!
--Ryan_S
Similar Messages
-
HT5622 Can an iPad mini with sim can text to other network without using email?
Hello,pls answer my question please..
Thanks, but I have done that. All the settings on the mini are identical to the iPad 3 & still the mini won't work properly. I'm sure it was something I had to change on servers to get both the Macbook & iPad 3 working, just wish I could remember what!! Any more suggestions welcome! Thanks
-
Download Error with TI DSP Toolkit with Code Composer
I have used TI DSP Toolkit with Code Composer to interface with code composer and LabVIEW. I am able to open the project, build the project etc. When I am downloading my binary to the DSP, the application is throwing error saying memmory address could not be validated. I am using emulator to download the code. I am able to download the code when I am using flash programmer option available with the code composer IDE. Any help to resolve the issue is highly appreciated.
Best Regards,
AnuragHi Anurag,
The DSP toolkit is only compatable with a few pieces of hardware. You can find that information at this link. If you are not using the mentioned hardware then there is no guarantee that it will work. The reason you get the memory error is because MAX, and hence LabVIEW, does not recognize the device. It makes sense that it works when you use your own software to flash the program because you are bypassing the NI software that is not compatable with that device. Unfortunately, unless you are using one of the specific pieces of supported hardware there isn't much more we can do. I would recommend that if you are able to get your program to work using the flash mode, then just continue to do that way instead of trying to download it with the emulator. Thanks and have a great day.
Stephen S.
National Instruments
1 Test is worth 1000 expert opinions -
Code generate report in excel format from portal(Application Server)
Hi all
Please give some solution with code generate report in excel format from
oracle portal(Application Server).Not feasible.
Why? Because "the Excel format" is a binary and proprietary Microsoft file format. And writing a generator to generate Excel files will be complex, and resource expensive. In the vast majority of cases this will not be justified.
As an alternative the very basic Microsoft XML office format can be used. But note that this is not a a ISO standard (it has been shot down in flames) - and effort and resources for that would be better spend on the Open Document XML standard (which very likely will be ratified as the ISO standard instead).
Of course, you could have meant a CSV file - in which case, you need to play close attention to details. CSV is not an Excel format. A software designers and developers, our success is determined by attention to technical detail. In which case you are not paying any attention to technical detail by confusing CSV with Excel. -
Combo box and Check box..help with code please?
Here is my problem...i have a list of check boxes and according to which one is checked, i need combo boxes to populate different choices.
as an easy example im only using 2 check boxes and two combo boxes.
the check boxes are named Choice 1or2 with export values of 1 and 2
the Combo Boxes are named List A and List B..
both containing options that say you checked box 1 and you checked box 2
any help would be greatly appreciatedImplode wrote:
"Help with code please."
In the future, please use a meaningful subject. Given that you're posting here, it's kind of a given that you're looking for help with the code. The whole point of the subject is to give people a high level idea of what KIND of help with what KIND of code you need, so they can decide if they're interested and qualified to help.
Exception in thread "main" java.lang.NumberFormatException: For input string: "fgg"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at assignment1.Game.Start(Game.java:120)
at assignment1.RunGame.main(RunGame.java:18)This error message is telling you exactly what's wrong. At line 120 of Game.java, in the Start method (which should start with lowercase "s" to follow conventions, by the way), you're calling Integer.parseInt, but "fgg" is not a valid int. -
Hello,
I'm working on some java style interfaces for labview for hot swapping of instrumentation for design patterns. When I try to port this code, developed on Labview 8.5 back to labview 8.2, the code it generates crashes labview (both 8.5 and 8.2).
Included is a small snipet of the work that demonstrates this behavior.
It includes to classes:
untitledProject1 - the containing project (version 8.5)
FunctionGeneratorI - Similar to a Java style interface (A class with all Dynamic VI's with no useful functionality)
FunctionGenerator33220a - An intended implementation of Function generator (only a few functions implemented)
and a folder "labview8_2Distribution"
Which contains the port of the 8.5 code to 8.2.
To recreate the error:
A.
1. Open "labview8_2Distribution\Users\Laptop\Desktop\object\Untitled Project 1" (8.2 save)
2. Verify it crashes labview 8.5 and labview 8.2.
3. Watch labview crash?
B.
1. Open the "Untitled project 1" in the root directory. (Using labview 8.5)
2. Save the project as a labview 8.2 type.
3. Try to open the saved version with 8.5 and 8.2.
4. Watch labview crash?
Greg Sonnenfeld
Attachments:
error.zip 885 KBHello Karunya,
In regards to your questions:
>Can you post your code? Have you tested this by creating another project?
Do you have an xcontrols in your projects? Do you have typedefs? Do you
have a LVOOP constant on your block diagram? Are you also using Classes?
I cannot post the cost as it is way too big. Not really my code but a spaghetti code from a previous programmer. I think problems saving it to a previous version have to do with a few things:
1) Memory - I have 1 GB of RAM and I am running XP. I notice the available RAM dropping quickly as it is saving and then it blow up.
2) Long Filenames - The directory path of the original file is incorporated into the saved "previous version" of the code. While a good design, it does make the file/path a bit longer when saving
3) One of teh things it saves is the drivers and their menus. This is due to the drivers being in a subdirectory of the original code and not in the c:\program files\national instruments\labview 8.5\instr.lib directory. I saw this when I tried to save the file as an LLB.
4) If I work with smaller parts of the code without long paths, it saves fine.
There probably are xcontrols, definitely typedefs, no LVOOP's or Classes. Hope you can do something with all this. It just seems that converting to a later version of the code should be reversable. Thanks.
Michael -
I am trying to integrate simulink model (.mdl) file with SIT of Labview for RCP and HIL purpose. I am using Labview 8.6, Simulink 6.6 with RTW 6.6 and RTW embedded coder 4.6 ,Visual C Express 2008 and Visual C++ Express 2008. I have selected system target file as nidll.tlc,make command as make_rtw and template nidll_vs.tmf. When I try to generate .dll file I get the following error.
Attachments:
SITProblem.JPG 101 KBHi,
No . I could not solve the issue. Presently we are using microautobox (from Dspace)for doing the RCP.
Himadri -
How to take backup of an entire module pool program with code,screen,etc.
Hi experts,
I have some important data in the ides server for which i want to take backup of them.
I have some question regarding the same.
1.How to take backup/download of an entire module pool program with code,screen,etc.
2.How can we take backup/download for a DB table with its structure?
3.How can we take backup of a search help?
Please give some suggestions abt the same.
Regards,
Ashesh.Hi,
May be just for viewing, try downloading from SE80 transaction from the others option.
Here just try issuing the print, it will generate the spool.
Now using the spool, download to your desktop as required. It will have all the information regarding the attributes, fields, elements everything.
The only issue is, may be you need to take all the screens separately.
Regards,
Santhosh. -
Case study: "Large?" labview programs flooded with different VIT's
Case study: "Large?" labview programs flooded
with different VIT's
Type of application:
Computer with loads of individual hardware connected or other software (either
onsite (different buses) or offsite (Satelite/GSM/GPRS/radio etc.).
Hardware
description: little data "RPM" but communications to all devices are intact.
More "RPM" when many VITs are involved.
Size: 1000+
VITS in memory (goal). Total software has been tested and simulated with 400.
I'm posting
this post after reading this thread (and actually I cant sleep and am bored as
hell).
Note: I do
not use LVOOP (but sure post OOP examples, am starting to learn more and more
by the day.)
Things I
will discuss are:
Case 1: Memory usage using a plugin
architecture
CASE 2: memory usage using VITs (!)
CASE 3: updating datastructures:
CASE 4: shutdown of the whole system
CASE 5: stability & heath monitoring
CASE 6: Inifiles
CASE 7: When the hardware is getting crappy
Total
application overview:
We have a
main application. This main application is mainly empty as hell, and only holds
a plugin functionality (to register and administer plugins) and holds an
architecture that holds the following items:
Queue state
machine for main application error handling
Queue state
machine for status messages
Queue state
machine for updating virtual variables
Event state
machine for GUI
Some other
stuff
Other
global functionality is:
User
logins, user configurations and unique access levels
Different
nice tools like the good old BootP and other juicy stuff
Supervision
of variables (like the NI tag engine, but here we have our own datastructures)
Generation
of virtual variables (so that the user can configure easy mathematical
functions and combining existing tags)
Licensing
of plugins (hell we free-lance programmers need some money to don't we?)
Handles
all communication between plugins themselves, or directly to a plugin or vice
versus.
And now we don't
talk about that (or marketing) the main application .
Message Edited by Corny on 01-20-2010 08:52 AMCASE 3: updating datastructures:
As we do NOT use clusters here (that would
just be consuming) we only use an 1D array of data that needs to be updated in
different functional globals. If the the number of VITS exceeds so that the
updating of this datastructures becomes the bottleneck, this would cause
delays. And since in this example we use 250 serial interfaces (lol) we do not
want to disrupt that by any delays. When this happends, does anyone know a good
solution to transfer data?
A thought:
perhaps sending it down to the plugin and let the plugin handle it, this should
save some time, but then again if more VITs are added again this would become a
bottleneck and the queue would fill up after a while unable to process it fast
enough. Any opinions?
CASE 4: shutdown of the whole system
Lets say we
want to close it all down, but the VITs need perhaps to do some shutdown
procedure towards the hardware, that can be heavy.
If we ask
them to shutdown all together we can use an natofier or userevent to do this
job. Well, what happends next is that the CPU will jump to the roof, and well
that can only cause dataloss and trouble. The solution here was to let the
plugin shut them all down one by one, when one has been shutdown, begin at the
next. Pro; CPU will not jump to the moon. Con's: shutdown is going to take a
while. Be ready with a cup of coffee.
Also we
want the main application not to exit before we exit. The solution above solved
this as the plugin knows when all have been shut down, and can then shut itself
down. When all plugins are shutdown - the application ends.
Another
solution is to use rendovous (arg cant spell it) and only shut the system down
when all rendezvous have met.
CASE 5: stability & heath monitoring
This IS
using a lot of memory. How to get it down. And has anyone experienced any
difficulties with labview using A LOT of memory? I want to know if something
gets corrupt. The VITs send out error information in case, but what if
something weird happens, how can I surveillance all the VIT's in memory to know
one is malfunctioning in an effective way/code (as backup
solution so the application knows
something is wrong?
CASE 6: Inifiles
Well, we
all like them. Even if XML is perhaps more fahionally. Now Ive runned some
tests on large inifiles. And the labview Inifile functions use ages to parsing
all this information. Perhaps an own file structure in binary format or
something would be better? (and rather create an configuration program)?
CASE 7: When the hardware is getting crappy:
Now what if
the system is hitting the limit and gradually exceeds the hardware req. of the
software. What to do then (thinking mostly of memory usage)? Needing to install
it on more servers or something and splitting configurations? Is that the best
way to solve this? Any opinions?
Wow. Time for a coffee cup. Impressive if someone
actually read all of this. My goal is to reach the 1000 VIT mark.. someday.. so
any opinions, and just ask if something unclear or other stuff, Im open for all
stuff, since I see the software will hit a memory barrier someday if I want to
reach that 1000 mark hehe -
Problem with .c code generated from proc compiler.
I am having a problem compiling the c code generated from the proc pre-compiler.
First some info on my system.
[root@dell-xps-420-22 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Client release 5.4 (Tikanga)
[root@dell-xps-420-22 ~]# cat /proc/version
Linux version 2.6.18-164.11.1.el5 ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Wed Jan 6 13:26:04 EST 2010
[root@dell-xps-420-22 ~]# uname -a
Linux dell-xps-420-22.drew.com 2.6.18-164.11.1.el5 #1 SMP Wed Jan 6 13:26:04 EST 2010 x86_64 x86_64 x86_64 GNU/Linux
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
I have written a simple PRO*C program to test the compile.
[oracle@dell-xps-420-22 etl]$ cat Test.pc
#include <stdio.h>
main(int argc,char **argv)
printf("Testing ........\n");
[oracle@dell-xps-420-22 admin]$ cat pcscfg.cfg
sys_include=(/usr/include,/usr/include/linux,/build/s630/precomp/public,/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include)
include=$(ORACLE_HOME)/precomp/public
include=$(ORACLE_HOME)/precomp/hdrs
include=$(ORACLE_HOME)/precomp/include
CODE=cpp
TYPE_CODE=ORACLE
DEF_SQLCODE=YES
VARCHAR=YES
LTYPE=short
define=__x86_64__
When compiling the Test.pc program with the pcscfg.cfg file above.
[oracle@dell-xps-420-22 etl]$ proc Test.pc
Pro*C/C++: Release 10.2.0.1.0 - Production on Sun Feb 21 19:51:15 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
System default option values taken from: /u01/app/oracle/product/10.2.0/db_1/precomp/admin/pcscfg.cfg
[oracle@dell-xps-420-22 etl]$ gcc -c ./Test.c -I . -I$ORACLE_HOME/precomp/public
./Test.c:117: error: expected identifier or '(' before string constant
./Test.c:131: error: expected identifier or '(' before string constant
The code generated by the proc compiler that has problems is below.
//File Test.c
// Prototypes
Line 117: extern "C" {
void sqlcxt (void **, unsigned int *,
struct sqlexd *, const struct sqlcxp *);
void sqlcx2t(void **, unsigned int *,
struct sqlexd *, const struct sqlcxp *);
void sqlbuft(void **, char *);
void sqlgs2t(void **, char *);
void sqlorat(void **, unsigned int *, void *);
// Forms Interface
Line 131: extern "C" { void sqliem(char *, int *); }
It seems like the compiler is generating c++ code but the gcc compiler is only compiling in cc mode. I've tried a number of options in the pcscfg.cfg file to no avail. I have tried the different options for the CODE=cpp in the pcscfg.cfg file but still get the same error and/or multiple errors. I have also tried to compile the oracle demo programs using the demo_proc.mk file and also get the same error.
The install of Oracle is fine. I can start the database and have created a needed user and tables but cannot successfully compile the pro*C code.My proc is also compiling for cpp code but in the pcscfg.cfg file there is no "CODE=cpp"
-
Error 1097, but unfamiliar with code and programming
USB device (Hantek DSO-2090 USB Oscilloscope) came with .dll and sample Labview file. It wasn't working until I applied a path constant to each Call Library Function Node, yet the largest one always seems to yield Error 1097. Not sure why, but I'll include everything. Please help!
Attachments:
DSO2090.zip 85 KBActually wrong calling conventions quite often crash instead of causing error 1097. Error 1097 can have lots of causes but one of the most common is that the programmer has not preallocated array or string buffers used as output data before calling the C function. Most LabVIEW programmers are so used to LabVIEW handling array and string resizing automatically, that they don't even think about that this could be different when dealing with the Call Library Node. But here the external C code has normally no way of resizing such arrays to whatever size it needs and LabVIEW has no way of knowing what size the C function requires for the buffer. So there needs to be the programmer who deduces that information from function documentation, intuition, experience and sometimes simple trial, error and crash exercises to make this explicitedly.
I took a quick look at the VI in the OP and I was truely appaled by it's lack of structure and architecture. This is not a LabVIEW example to show off for sure. Nevertheless, based on the claim of the OP that the LARGEST node causes the error, (talk about clearness in communication caused by such a spaghetti diagram) I assumed he meant the dsoGetChannelData() CLN and that indeed has two array inputs that are meant to be filled by the function. They are connected to two hidden array controls containing 30000 elements of default data each, so as long as the function does not try to return more than 30000 samples for each of the two channels, this should not be the problem. But I'm not sure if this oscilloscope will ALWAYS return exactly 30000 values for each channel, or if this number can be adjusted somehow. It's however the only thing I can say based on the claim that the largest node causes the error. And digging into this deeper requires the DLL documentation and lots of time, which I don't plan to invest in such a poor piece of software.
The reason that he needed to define the path to each node is that the DLL clearly is not located in a standard nor fixed location. Windows will never search any directory in the Program Files directory for DLLs, unless that directory happens to be listed in the PATH environment variable. And the Program Files directory path can change based on Windows bitness, system administrator configurations and more. In order for LabVIEW to find the DLL on any system, the DLL has either to be:
1) in the same directory as the VI or project file
2) in the executable directory (where labview.exe is or yourapp.exe for a built application)
3) in the $(System) directory
4) in the $(Windows) directory
5) in a directory that is listed in the PATH environment variable
But moving around DLLs without knowing what you are doing can make the DLL unloadable as it may be missing dependencies that way.
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions -
Show the price of the LabVIEW C Code Generator on the NI website
When considering options, it's important to see the development and deployment price. Please put the LabVIEW C Code Generator price on the NI website so we can consider it.
I would suggest two possible links on the lower center of this page:
report a problem with ni.com
Give feedback about ni.com
It is possible that the price cannot be listed, because it strongly depends on the target hardware and third party licensing of certain tools used. Have you called the number to get a quote? What kind of questions did they ask?
LabVIEW Champion . Do more with less code and in less time . -
FUNCTION SXPG_COMMAND_EXECUTE External program terminated with exit code 2
HI,
I am using the below Function Module
gv_ap = '/nfs/ficheiros/FicheiroExtraccaoSIF/outbox'
CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
EXPORTING
commandname = 'Z_LS'
additional_parameters = gv_ap
TABLES
exec_protocol = t_fich
EXCEPTIONS
no_permission = 1
command_not_found = 2
parameters_too_long = 3
security_risk = 4
wrong_check_call_interface = 5
program_start_error = 6
program_termination_error = 7
x_error = 8
parameter_expected = 9
too_many_parameters = 10
illegal_command = 11
wrong_asynchronous_parameters = 12
cant_enq_tbtco_entry = 13
jobcount_generation_error = 14
OTHERS = 15.
with this folder '/nfs/ficheiros/FicheiroExtraccaoSIF/outbox' return the error:
/nfs/ficheiros/FicheiroExtraccaoSIF/outbox not found and
External program terminated with exit code 2
but if i map other directory the function return the files and folders that directory have.
Anyone could help me.
Thanks and Regards.
Eduardo PaivaHi,
Yes i have read access to this directory and the command 'Z_LS' exists.
Best Regards,
Eduardo Paiva -
What is wrong with the idl code generated by packager.exe?
Hello everybody,
I am trying to figure out what is wrong with the idl code generated by packager.exe. In the evaluation for the bug posted at http://developer.java.sun.com/developer/bugParade/bugs/4964563.html it says that the IDispatch interface is not exposed correctly and thus early binding of java objects is not possible using the current activex bridge implementation.
As I am no idl expert I have no idea what that means. However, I managed to dig out the idl code generated by packager.exe for the following example bean:
package test;
public class MyBean
protected int value;
public MyBean()
public void setMyValue(int _value)
value = _value;
public int getMyValue()
return value;
public MyBean getSelfReference()
return this;
}The corresponding idl code generated by packager.exe is
uuid(81B0BF63-2A55-11D8-A73E-000475EBF021),
version(1.0)
library MyBean
importlib("Stdole2.tlb");
dispinterface MyBeanSource;
dispinterface MyBeanDispatch;
uuid(81B0BF64-2A55-11D8-A73E-000475EBF021),
version(1.0)
dispinterface MyBeanSource {
properties:
methods:
uuid(81B0BF65-2A55-11D8-A73E-000475EBF021),
version(1.0)
dispinterface MyBeanDispatch {
properties:
[id(4097)]
int myValue;
methods:
[id(32768)]
VARIANT_BOOL equals(IDispatch* arg0);
[id(32769)]
IDispatch* getClass();
[id(32770)]
int getMyValue();
[id(32771)]
IDispatch* getSelfReference();
[id(32772)]
int hashCode();
[id(32773)]
void notify();
[id(32774)]
void notifyAll();
[id(32775)]
void setMyValue(int arg0);
[id(32776)]
BSTR toString();
[id(32779)]
VARIANT wait([optional] VARIANT var0, [optional] VARIANT var1);
uuid(81B0BF62-2A55-11D8-A73E-000475EBF021),
version(1.0)
coclass MyBean {
[default, source] dispinterface MyBeanSource;
[default] dispinterface MyBeanDispatch;
};Does anyone know what is wrong with this code and maybe how to fix the idl code? Generating the dll should then be easy (I already tried several variations of the idl code but as my idl knowledge is limited it didn't really do what I wanted).Then the question is why it does work with visual controls (even if you set them to non-visible)?
-
Error Message: External program terminated with exit code 2
Hi ALL
We are doing REORG tablespace in DB13 and i am getting below error message. Please help us to resolve the issue.
20100430 113234 DB6PM 000 Reorg_Tbspc:Command DB6CLP failed on server
20100430 103959 DB6PM 000 Reorg_Tbspc:Exitcode:Error
20100430 103959 DB6PM 000 Reorg_Tbspc:ERRORMESSAGE: An SQL error occured. Will print output of the command
20100430 103959 DB6PM 000 Reorg_Tbspc:External program terminated with exit code 2
20100430 103959 DB6PM 000 REASON=C call failed
Regards
K.Gunasekar
Edited by: KGUNASEKAR on Apr 30, 2010 6:55 AMExitcode 2, if returned from the OS, means "No such file or directory". Note that as of SAP kernel release 7, you usually do not have DB6CLP any more. Can you check if the executable is available in the SAP exe directory ?
If running SAÜ kernel 700 or higher, I suggest to apply a recent SP level.
Malte
Maybe you are looking for
-
Unknown error when trying to log into Itunes
I just got Windows 8 and i installed Itunes on it, however when i go to log in to my account it keeps stating unknown error. and it wont allow me to log into.. however when i go on my laptop i have no issue. and it runs Windows 7, What should i do?
-
Hello Experts, I want to create a balance sheet report (do not want to use existing standard balance sheet or PnL report) from GL line item DSO. I dont want to use transaction figures GL If I select year, period, chart of account, company code and gl
-
hi friends How to use a loop in workflow. When ever i placed a loop after a activity step the end of the loop points to the next step, but i want the end of the loop should place at the begining of the activity. how to drag the point and place it
-
Varying volumes...how to adjust them?
I've found that with most master mixes from artist to artist, the volume won't be all quite the same from song to song. Anyone who has put together their own personal mix to CD knows this. Same deal goes once brought into DVDSP. You will have varying
-
I forget the password of my backup and I can't restore it
Could anyone help to restore my encrypt backup??