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

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
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.