Dynamic C Function Calls; Digital I/O; Sram Use - Rabbit RabbitCore RCM3209 User Manual

C-programmable module with ethernet
Table of Contents

Advertisement

5.2 Dynamic C Function Calls

5.2.1 Digital I/O

The RCM3209/RCM3229 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 func-
tions 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 external I/O bus on the Rabbit 3000 chip, add the line
#define PORTA_AUX_IO
to the beginning of any programs using the external I/O bus.
The sample programs in the Dynamic C SAMPLES/RCM3200 directory provide further
examples.

5.2.2 SRAM Use

The RCM3209/RCM3229 has a battery-backed data SRAM and a program-execution
SRAM. Dynamic C provides the
placed into the battery-backed SRAM. The compiler generates code that creates a backup
copy of a protected variable before the variable is modified. If the system resets while the
protected variable is being modified, the variable's value can be restored when the system
restarts.
The sample code below shows how a protected variable is defined and how its value can
be restored.
protected nf_device nandFlash;
int main() {
...
_sysIsSoftReset();
The bbram keyword may also be used instead if there is a need to store a variable in bat-
tery-backed SRAM without affecting the performance of the application program. Data
integrity is not assured when a reset or power failure occurs during the update process.
Additional information on
User's Manual.
User's Manual
// required to enable external I/O bus
keyword to identify variables that are to be
protected
// restore any protected variables
and
bbram
protected
variables is available in the Dynamic C
35

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the RabbitCore RCM3209 and is the answer not in the manual?

Questions and answers

This manual is also suitable for:

Rabbitcore rcm3229

Table of Contents