Tradeoffs, advantages, and disadvantages, Advantages of a library, Disadvantages of a library – Echelon Neuron C User Manual

Page 235

Advertising
background image

Neuron C Programmer’s Guide

223

The linker only looks at libraries when the object files being linked and combined

with the system image file have not already defined all symbols needed by the
application program. Each library is examined, in the order in which it is

specified in the linker command line. The NodeBuilder Project Make Utility

places the user-defined libraries in order ahead of the standard libraries, thereby
allowing symbols from the standard libraries to be superseded by symbols

defined and exported in the user-defined library. Use this feature with caution
because standard symbols might be accidentally overwritten. When a symbol is

found in a library, the corresponding object file is extracted from the library, and

all objects contained in that object file are added to the link.

An object file in a library can, in turn, introduce other symbols that are

undefined. Such symbols cause the linker to search all the libraries again for

other object files that can resolve these previously undefined symbol references,
and these object files are also be included in the link. The process continues until

all symbols included in the link are resolved, or until the list of libraries is

exhausted.

Tradeoffs, Advantages, and Disadvantages

The use of libraries provides you with certain advantages and disadvantages as

described in the following sections.

Advantages of a Library

Use of a library to contain utility routines and constant data tables can provide
the following advantages:
1

Use of a library can speed up compilation, because utility routines are not

recompiled each time.

2

A library can provide modularity, encapsulation, and reuse — software

engineering techniques which can be used to increase quality and
decrease development costs.

3

The library can contain several related constant tables and procedures.

When organized properly, only the pieces used by a given application are
linked into the application. Unused pieces do not consume any code

space in the device’s application.

4

A library can contain data declarations for objects in any part of a Neuron
Chip’s or Smart Transceiver’s memory space, including near RAM and

EEPROM areas. Libraries also can contain initialized RAM variables.

The initialization rules are identical to Neuron C application programs.

Disadvantages of a Library

Use of a library has the following disadvantages:
1

The NodeBuilder tool offers no way to debug the contents of a library.

However, the contents of data objects in a library can be examined from
the Neuron C debugger, provided that the data is declared as extern in

the application program. Procedures should be fully debugged prior to
placing them in a library.

Advertising