English
Language : 

20-101-1051 Datasheet, PDF (50/165 Pages) List of Unclassifed Manufacturers – C-Programmable Core Module with NAND Flash Mass Storage and Ethernet
5.2 Dynamic C Functions
5.2.1 Digital I/O
The RCM3365/RCM3375 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 // required to enable external I/O bus
to the beginning of any programs using the external I/O bus.
The sample programs in the Dynamic C SAMPLES/RCM3360 folder provide further
examples.
5.2.2 SRAM Use
The RCM3365/RCM3375 have 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.
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(); // restore any protected variables
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 bbram and protected variables is available in the Dynamic C
User’s Manual.
44
RabbitCore RCM3365/RCM3375