Reallocating on-chip eeprom, Address table – Echelon Neuron C User Manual

Page 200

Advertising
background image

188 Memory

Management

provided to write by pointers which can (but are not required to) refer to

EEPROM or flash memory. The parameters of this function are the same as that
of memcpy( ), but this function supports the destination address being in

EEPROM or flash memory, whereas the normal memcpy( ) function does not.

The eeprom_memcpy( ) function limits the length parameter to 255 bytes.

Note: The use of this function in older versions of firmware with an excessive

length can cause the watchdog timer to time out, causing the device to reset. For
a Series 3100 device running at 10 MHz, the safe length is 32 bytes.
For Neuron 3120xx Chips and FT 3120 Smart Transceivers running version 7

firmware or later, Neuron 3150 Chips and FT 3150 Smart Transceivers running
version 12 firmware or later, and Series 5000 chips running version 18 firmware

or later, the firmware prevents a watchdog timer timeout during use of

eeprom_memcpy( ).

Reallocating On-Chip EEPROM

The Neuron C compiler generates four tables in EEPROM (on-chip for Series

3100 devices, off-chip for Series 5000 devices) that are used by the Neuron

firmware and network tools to define the network configuration for a device. Two
of these tables are the domain table and address table. By default, these are

generated at the maximum size for each, which are two entries for the domain

table and up to fifteen for the address table. You can specify a smaller size using
the #pragma num_domain_entries and #pragma num_addr_table_entries

directives. A third table, the alias table, has no default size, but you must specify

a size using the #pragma num_alias_table_entries directive. See the

Compiler

Directives

chapter in the

Neuron C Reference Guide

, and the discussions below,

for more information.

A fourth table, the network variable configuration table, is generated

automatically with one entry for each network variable declared in the program.

Each element of a network variable array counts separately, and the maximum
size of the network variable configuration table is equal to the maximum number

of network variables that the device can support. Each entry uses three bytes of

EEPROM. You cannot change the size of this table, except by adding or deleting
network variables.
If a program does not fit into the default memory areas, another alternative when

using the Neuron 3150 Chip or the FT 3150 Smart Transceiver is to move parts
of the program to other locations in memory. However, the domain table, address

table, alias table, and network variable configuration table must be located in on-
chip EEPROM. See

Chips with Off-Chip Memory

on page 176.

Address Table

The address table contains the list of network addresses to which the device

sends network variable updates or polls, or sends implicitly addressed application
messages. The address table can be configured through network management

messages from a network tool.
Note: See the

ISO/IEC 14908-1 Control Network Protocol

standard for a

description of the address table.

Advertising