Echelon Neuron C User Manual

Page 43

Advertising
background image

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.

Advertising