Variable initialization, Neuron c declarations – Echelon IzoT NodeBuilder User Manual

Page 191

Advertising
background image

const declares a value that cannot be modified by the application program. Affects

self-documentation (SD) data generated by the Neuron C compiler when used in conjunction with
the declaration of CP families or configuration network variables. extern declares a data item or
function that is defined in another module, in a library, or in the system image.

static declares a data item or function which is not to be made available to other modules at link

time. Furthermore, if the data item is local to a function or to a when()task, the data value is to be
preserved between invocations, and is not made available to other functions at compile time.

In addition to the ANSI C storage classes, Neuron C provides the following classes and class
modifiers:

network begins a network variable declaration. See Chapter 3, How Devices Communicate Using

Network Variables, of the Neuron C Programmer’s Guide for more details.

uninit when combined with the eeprom keyword (see below), specifies that the EEPROM

variable is not initialized or altered on program load or reload over the network.

The following Neuron C keywords allow you to direct portions of application code and data to
specific memory sections.

eeprom
far

offchip (only on Neuron Chips and Smart Transceivers with external memory)
onchip

These keywords are particularly useful on the Neuron 3150 Chip and 3150 Smart Transceivers,
since a majority of the address space for these parts is mapped off chip. See Using Neuron Chip
Memory
in Chapter 8 of the Neuron C Programmer’s Guide for a more detailed description of
memory usage and the use of these keywords.

Variable Initialization

Initialization of variables occurs at different times for different classes. The const variables,
except for network variables, must be initialized. Initialization of const variables occurs when the
application image is first loaded into the Neuron Chip or Smart Transceiver. The const ram
variables are placed in off-chip RAM that must be non-volatile. The eeprom and config variables
are also initialized at load time, except when the uninit class modifier is included in these variable
definitions.

Global RAM variables are initialized at reset (specifically when the device is reset or powered up).
By default, all global RAM variables (including static variables) are initialized to zero at this time.

Initialization of I/O objects, input network variables (except for eeprom, config, config_prop, or
const network variables), and timers also occurs at reset. Zero is the default initial value for
network variables and timers.

Local variables (except static ones) are not automatically initialized unless you provide explicit
initialization, nor are their values preserved when the program execution leaves the local scope.

Neuron C Declarations

The Neuron C Version 2.3 programming language and ANCI C both support the following
declarations:

Declaration

Example

Simple data items

int a, b, c;

Data types

typedef unsigned long ULONG;

Enumerations

enum hue {RED, GREEN, BLUE};

IzoT NodeBuilder FX User's Guide

177

Advertising