Echelon Neuron C User Manual
Page 43
Neuron C Reference Guide
23
In certain situations when linking a program for a Neuron 3150 Chip or a
3150 Smart Transceiver, it might be necessary to force the configuration
property value files into offchip memory rather than letting the linker choose
between offchip or onchip memory. Specify the put_cp_value_files_offchip
option to force the value files into offchip memory.
The put_read_only_cps_in_data_memory option is used to direct the compiler
to create the configuration read-only value file in a device’s data memory
instead of code memory. The purpose of doing this would be to permit write
access to the read-only configuration properties (CPs), or to permit more
control over memory organization to accommodate special device memory
requirements.
The use_i2c_version_1 option is provided for compatibility with releases of
the Neuron C Compiler prior to the introduction of Neuron C Version 2.1.
The option disables use of a revised i2c I/O object in the compiler. Although
unlikely, it is possible that a program using the i2c I/O object which compiled
and linked with an older release of the Neuron C Compiler would not fit if
compiled under the Neuron C Version 2.1 compiler or later, because the
version 2 I/O object is a bit larger than the previous implementation, due to
its greatly increased flexibility and support of additional I/O pins as
compared to the version 1 implementation. See the description of the i2c I/O
model in the
I/O Model Reference
.
Only the cp_family_space_optimization and no_cp_template_compression
options are supported in model files.
#pragma deadlock_is_finite
This pragma allows the system semaphore to expire. The semaphore is used
for sharing data between an interrupt task and the main application. This
directive cancels the specification of the #pragma deadlock_is_infinite
directive.
You can specify this directive as often as necessary to allow debugging of code
within a lock construct (the Neuron C __lock{ } keyword). You cannot debug
interrupt-related code when interrupt tasks run on the interrupt (ISR)
processor.
This directive is not supported in model files.
#pragma deadlock_is_infinite
This pragma prevents the system semaphore from expiring. The semaphore
is used for sharing data between an interrupt task and the main application.
This directive should only be used for NodeBuilder debug targets; using it
with release targets causes a compiler warning (NCC#607) and can allow
deadlocks not to cause a watchdog timeout (an infinite deadlock).
You can specify this directive as often as necessary to allow debugging of code
within a lock construct (the Neuron C __lock{ } keyword). You cannot debug
interrupt-related code when interrupt tasks run on the interrupt (ISR)
processor.
This directive is not supported in model files.