2 dynamic c function calls, 1 digital i/o, 2 serial communication drivers – Digi RCM4000 User Manual

Page 49: 3 sram use, Dynamic c function calls

Advertising
background image

User’s Manual

43

5.2

Dynamic C Function Calls

5.2.1 Digital I/O

The RCM4000 was designed to interface with other systems, and so there are no drivers
written specifically for the I/O. The general Dynamic C read and write functions allow
you to customize the parallel I/O to meet your specific needs. For example, use

WrPortI(PEDDR, &PEDDRShadow, 0x00);

to set all the Port E bits as inputs, or use

WrPortI(PEDDR, &PEDDRShadow, 0xFF);

to set all the Port E bits as outputs.

When using the auxiliary I/O bus on the Rabbit 4000 chip, add the line

#define PORTA_AUX_IO

// required to enable auxiliary I/O bus

to the beginning of any programs using the auxiliary I/O bus.

The sample programs in the Dynamic C

SAMPLES/RCM4000

folder provide further

examples.

5.2.2 Serial Communication Drivers

Library files included with Dynamic C provide a full range of serial communications sup-
port. The

RS232.LIB

library provides a set of circular-buffer-based serial functions. The

PACKET.LIB

library provides packet-based serial functions where packets can be delimited

by the 9th bit, by transmission gaps, or with user-defined special characters. Both libraries
provide blocking functions, which do not return until they are finished transmitting or
receiving, and nonblocking functions, which must be called repeatedly until they are fin-
ished, allowing other functions to be performed between calls. For more information, see
the Dynamic C Function Reference Manual and Technical Note TN213, Rabbit Serial
Port Software
.

5.2.3 SRAM Use

The RCM4000 module has a battery-backed data SRAM and a program-execution
SRAM. Dynamic C provides the

protected

keyword to identify variables that are to be

placed into the battery-backed SRAM. The compiler generates code that maintains two
copies of each protected variable in the battery-backed SRAM. The compiler also generates
a flag to indicate which copy of the protected variable is valid at the current time. This flag
is also stored in the battery-backed SRAM. When a protected variable is updated, the
“inactive” copy is modified, and is made “active” only when the update is 100% complete.
This assures the integrity of the data in case a reset or a power failure occurs during the
update process. At power-on the application program uses the active copy of the variable
pointed to by its associated flag.

Advertising