Designer’s
Handbook
17
5.
The Rabbit BIOS
The
Dynamic C programming system for the Rabbit uses the concept of a BIOS (basic
input
output system). The BIOS is a separate program file that contains the basic code
needed
to interface with Dynamic C. It also normally contains a software interface to the
user’s
particular hardware. Certain drivers in the Dynamic C libraries require BIOS rou-
tines
to perform tasks that are hardware-dependent. When the user compiles a program
under
Dynamic C, the BIOS is compiled first as an integral part of the user’s program.
A
single general-purpose BIOS is supplied with Dynamic C for the Rabbit. This BIOS
will
allow you to boot Dynamic C on any Rabbit-based system that follows the basic
design
rules needed to support Dynamic C. The BIOS requires either both a flash memory
and
a 32K or larger RAM, or just a 128K RAM, for it to be possible to compile and run
Dynamic
C programs. If the user uses a flash memory from the list of flash memories that
are
already supported by the BIOS, the task will be simplified. If the flash memory chip is
not
already supported, the user will have to write a driver to perform the write operation
on
the flash memory. This is not difficult provided that a system with 128K of RAM and
the
flash memory to be used is available for testing.
5.1
Startup Conditions Set Up By the BIOS
The
BIOS sets up initial values for the following registers by means of code and declara-
tions.
•
The
four memory bank control registers —
MB0CR
,
MB1CR
,
MB2CR
,
and
MB3CR
—are
8-
bit
registers, each associated with one quadrant of the 1M memory space. Each register
determines
which memory chip will be mapped into its quadrant, how many wait states
will
be used for accessing that memory chip, and whether the memory chip will be
write
protected.
•
The
STACKSEG
register is an 8-bit register that determines the location of the stack seg-
ment
in the 1M memory.
•
The
DATASEG
register is an 8-bit register that determines the location of the data seg-
ment
in the 1M memory, normally the location of the data variable space.
•
The
SEGSIZE
register is an 8-bit register holding two 4-bit registers. Together the reg-
isters
determine the relative size of the root code, data segment and stack segment in
the
64K root space.
•
The
MMIDR
register is an 8-bit register that modifies memory system functions having
to
do with support for battery-backed memory and separate instruction and data space
control.
•
The
XPC
register is used to address extended code memory. Normally the user’s code
frequently
changes this register. The BIOS sets the initial value.
•
The
SP
register is the system stack pointer. It is frequently changed by the user’s code.
The
BIOS sets up an initial value.
All
together there are 11
MMU
,
MIU
registers that are set up by the BIOS. These registers
determine
all aspects of the hardware setup of the memory.
Summary of Contents for 2000
Page 1: ...Rabbit 2000 Microprocessor Designers Handbook Revision C...
Page 4: ...Rabbit 2000 Microprocessor...
Page 6: ...2 Rabbit 2000 Microprocesssor...
Page 12: ...8 Rabbit 2000 Microprocessor...
Page 34: ...344 Dynamic C User s Manual...
Page 36: ...34 Rabbit 2000 Microprocessor...
Page 44: ...42 Rabbit 2000 Microprocessor...