LabVIEW Embedded

cancel
Showing results for 
Search instead for 
Did you mean: 

How do you use Memory Mapping?

I'm trying to use the Memory Mapping feature of LV Embedded for ARM using the LM3S8962.  I'd like to place a global variable into a separate memory space and be able to retain the data in that memory space from run to run.  I've created a separate IROM space in Keil MicroVision.  Following the LV Help http://zone.ni.com/reference/en-XX/help/372459B-01/lvarmhelp/arm_memory_mapping/ I've pointed the "Code" section of my global variable to 1 section of code and the main VI to another.  Every time I run the VI, the default value of the global is read, and not the last value that was written to it.  What other steps are needed to create a memory space that doesn't get rewritten every time I re-run my application? 
0 Kudos
Message 1 of 3
(5,758 Views)

I am looking into this.

 

Kevin S.

Applications Engineer

National Instruments

0 Kudos
Message 2 of 3
(5,725 Views)

frosturi,

 

The initial reaction I'm getting from R&D is that Memory Mapping is not meant to be functionality through which global variable values are retained in between code execution cycles.  It's meant rather to allow the programmer to optimize further the code.  This is stated in the help file:

 

Memory Mapping (ARM)

"Use memory mapping to map code and data that ARM VIs generate to particular areas of memory on the ARM target. Memory mapping is one of several memory considerations for optimizing ARM applications you create. For example, you can map global VIs to ROM so that more RAM is available to run the application."

 

Flash can obviously be used to store values when the processor is powered down and then back up.  This thread discusses this further.

If it is discovered that Memory Mapping should allow for global values to hold previous data, I can update this thread. 

 

Kevin S.

Applications Engineer

National Instruments

Message Edited by Kevin_S on 05-06-2010 04:42 PM
0 Kudos
Message 3 of 3
(5,703 Views)