Uninit keyword (for data declarations), Compiler directives, When the program is relinked – Echelon Neuron C User Manual

Page 196: Use of flash memory, Ge 184 for mor, Ge 184 for

Advertising
background image

184 Memory

Management

if the device is to be protected against a power cycle. See the

Neuron 3150 Chip

External Memory Interface

engineering bulletin for special considerations on

protecting code RAM against Neuron Chip resets.
The ram keyword can go anywhere before the function name. For example:

ram int fn() { ... statements ... }

The ram keyword is useful for functions that a network tool might change
frequently after installation.

uninit Keyword (for Data Declarations)

You can combine the uninit keyword with eeprom variable declarations to declare

data in EENEAR or EEFAR memory areas which is not affected by program load
or chip reset. This type of declaration can provide two benefits. You might need

a large area of allocated memory for database or calibration or other use, and

might want the data to remain unaffected in these situations. Furthermore,
uninit areas of EEPROM are not loaded, thus speeding up loading time. An

example of using the uninit keyword to set aside 500 bytes of such memory is

shown below:

uninit eeprom int datablock[500];

Compiler Directives

Configuration property value files and the configuration property template files,

which hold values and self-documentation data for configuration properties

declared with the cp_family keyword, can be allocated in on-chip EEPROM or off-
chip EEPROM using the linker’s default relocation algorithm. You can use the

#pragma codegen put_cp_template_file_offchip and #pragma codegen

put_cp_value_files_offchip compiler directives to force the template file or the
value files into off-chip memory, if off-chip memory is available. If insufficient

off-chip memory is available, forcing the files to off-chip memory cause the link to

fail. See

Compiler Directives

in the

Neuron C Reference Guide

for more details

about these directives.

When the Program Is Relinked

The compiler directs the application code to the proper areas of memory. The

linker assigns data memory locations and resolves references to global symbolic
addresses. These assignments to addresses occur in the order of declaration in

the compilation. Therefore, to retain the same addresses from link to link,
maintain the same order of declaration.

Use of Flash Memory

Use of flash memory is specified in the NodeBuilder FX or Mini FX hardware

template editor. See the

NodeBuilder FX User's Guide

for more information on

these features, and how to select use of flash memory.

Advertising