NI Home
Cart Cart | Help
Hello Events Academic NI Developer Zone Support Solutions Products & Services Contact NI MyNI
You are here: 
NI Home > NI Developer Zone > NI Discussion Forums


Reply
Member
RTom
Posts: 13
0 Kudos

target has run out of memory on LM3s8962

I'm using the LM3s8962 evaluation kit to record data from the ADC's.  I have the system set up so that I use the elemental nodes of the four adc's in a while loop, and replace the values in four different arrays.  The arrays are initialize (1x1000 elements) before entering the loop.  This works fine.

 

THE PROBLEM:  When I try to make the arrays larger (i.e. initial arrays larger than 1000 points, 4 individual arrays), I get the following error:

 

Error: Memory allocation failed. The target has run out of memory. [C:\Program Files (x86)\National Instruments\LabVIEW 2011\CCodeGen\libsrc\blockdiagram\CCGArrSupport2.c at line 253: 2 3

 

OR

 

Error: Memory allocation failed. The target has run out of memory. [C:\Program Files (x86)\National Instruments\LabVIEW 2011\CCodeGen\libsrc\blockdiagram\CCGArrSupport2.c at line 173: 2 3

]

 

Any suggestions?

Active Participant
Th0r
Posts: 240
0 Kudos

Re: target has run out of memory on LM3s8962

[ Edited ]

It looks like you're filling up the flash memory on the LM3S8962 with all of these array initializations.  According to page 263 of the LM3S8962 datasheet, that microcontroller has 256 KB of flash memory which you can use to fill up with your code.  In addition to your array initializations, some of this space is taken up by the LabVIEW Embedded Module-specific code as well.  What datatype are you using in these arrays?  Does this error occur upon building or running your code?  Thanks for any additional information you can provide!  

Member
RTom
Posts: 13
0 Kudos

Re: target has run out of memory on LM3s8962


Th0r wrote:

It looks like you're filling up the flash memory on the LM3S8962 with all of these array initializations.  According to page 263 of the LM3S8962 datasheet, that microcontroller has 256 KB of flash memory which you can use to fill up with your code.  In addition to your array initializations, some of this space is taken up by the LabVIEW Embedded Module-specific code as well.  What datatype are you using in these arrays?  Does this error occur upon building or running your code?  Thanks for any additional information you can provide!  


That's probably it.  The error occurs when building the code, before it's actually able to run.  If reduce the array size, I'm able to run the code no problem.  At the moment,  I'm using a long 32 bit integer, which I know realize I can reduce significantly, as my ADC only reads at 10 bits.  Do you know if there's a way that I can preallocate the array to a place other than flash?

 

I've found a fix around it since I last posted, in which I set up a buffer (smaller) and then save the buffer values on the SD card.  This works well and I can sample for long periods of time, but it does slow down my overall sampling rate, so I'd like to fix the above problem nonetheless. 

Active Participant
Th0r
Posts: 240
0 Kudos

Re: target has run out of memory on LM3s8962

[ Edited ]

Unfortunately, I'm not aware of any way to load your program on anything other than the onboard flash memory.  I think the way to get around this would be some programming to avoid large array allocations.  The method you mentioned, involving offloading storage to an SD card, seems like a good way around this.  Hopefully it's a workable fix for the kind of acquision you're doing!

By using this web site, you accept the Terms of Use for this web site. Please read these Terms of Use carefully before using any part of this site. Please go here for information on ni.com's copyright infringement policy.
My Profile | Privacy | Legal | Contact NI © 2011 National Instruments Corporation. All rights reserved.    |    E-Mail this Page E-Mail this Page