Echelon NodeBuilder Errors 3120 User Manual Page 57

  • Download
  • Add to my manuals
  • Print
  • Page
    / 123
  • Table of contents
  • BOOKMARKS
  • Rated. / 5. Based on customer reviews
Page view 56
NodeBuilder Errors Guide 5-37
NCC# Description
265
266
267
The stack frame of this procedure is too large (>200 bytes)
[NCC#265]
The stack frame of this procedure exceeds 100 bytes [NCC#266]
The stack frame of this procedure exceeds 7 bytes [NCC#267]
On Neuron Chips, references to variables near the top of the stack
use the most efficient instructions. The further down in the stack
one goes, the less efficient the instructions become. This inefficiency
affects both the code size and the code performance. A stack frame
larger than seven bytes begins to incur this penalty. The stack frame
includes the parameters and the local variables.
Neuron Chips, especially the 3120 Chips, which are the most limited
in RAM, do not have very large memory areas set aside for stacks.
Procedures which exceed 200 bytes would not work on Neuron 3120
Chips, thus this is a compile-time error. Procedures that exceed 100
bytes are flagged with a special warning message since they use
more than half of the stack resources; and, nesting these functions
would cause a stack overflow. The compiler does not specifically
check for nesting, but attempts to use this warning to catch large
procedures.
268
Recommend use of an unqualified 'msg_arrives' event
[NCC#268]
A program which receives explicit messages through the
msg_arrives event will be given all such messages which come into
the node, whether their message codes are expected or not. Any
unexpected messages must be handled by the program through a
"catch-all" unqualified msg_arrives event, otherwise such messages
will get stuck at the head of the message queue. See the chapter on
messages in the Neuron C Programmer's Guide for more information
on processing incoming messages.
273
Procedure code generation label resources exhausted
[NCC#273]
Code generation is performed on a procedure-by-procedure basis.
The compiler reuses certain internal resources during code
generation of each procedure. One of these resources is internal label
markers. There are only a limited number of labels that can be used
in a given procedure. These labels are used in each possible
branching scenario, in loops, if statements, ?: operators, and switch
statements. By far the most common cause of this message is a very
large procedure containing a switch statement with many cases.
The simplest recourse is to split the switch statement into two or
more switch statements, and move each to a separate subprocedure.
274 Use of possibly unitialized variable [NCC#274]
The Neuron C compiler tracks the use of automatic variables (those
which are local to a function or procedure, or a sub-scope of a
function or procedure). If such a variable is accessed (read) prior to
its having been stored (written), this warning is issued. Structure
fields and array elements are not individually tracked.
Page view 56
1 2 ... 52 53 54 55 56 57 58 59 60 61 62 ... 122 123

Comments to this Manuals

No comments