Jameco Electronics 3000 ユーザーズマニュアル

ページ / 349
User’s Manual
237
17.  R
ABBIT
 BIOS 
AND
 V
IRTUAL
 D
RIVER
When a program is compiled by Dynamic C for a Rabbit target, the Virtual Driver is auto-
matically incorporated into the program. Virtual Driver is the name given to some initial-
ization routines and a group of services performed by the periodic interrupt. The Rabbit 
BIOS, software that handles startup, shutdown and various basic features of the Rabbit, is 
compiled to the target along with the application program. 
Z-World provides the full source code for the BIOS and Virtual Driver so the user can 
modify them and examine details of the operation that are not apparent from the documen-
tation.
More details on the BIOS and Virtual Driver software can be found in the Dynamic C 
User’s Manual
, the Rabbit 3000 Designer’s Handbook, and the source code in the 
Dynamic C libraries.
17.1  The BIOS
The BIOS provided with Dynamic C will work with all Z-World and Rabbit Semiconduc-
tor Rabbit board products. 
The BIOS is compiled separately from the user’s application. It occupies space at the bot-
tom of the root code segment. When execution of the user’s program starts at address zero 
on power-up or reset, it starts in the BIOS. When Dynamic C cold-boots the target and 
downloads the binary image of the BIOS, the BIOS symbol table is retained to make its 
entry points and global data available to the user application. Board specific drivers are 
compiled with the user’s program after the BIOS is compiled. 
17.1.1  BIOS Services
The BIOS includes support for the following services.
System startup: including setup of memory, wait states and clock speed.
Writing to flash. Writes to the primary code memory require turning off interrupts for 
up to 20 ms or so. To protect the System Identification Block (see the Rabbit 3000 
Designer’s Handbook
 for more information on the System ID Block), the flash driver 
will not write to that block. A routine that can actually write this block is not included 
in the BIOS to make it hard to accidently corrupt this block.
Run-time exception handling and logging to handle fatal errors and watchdog time-outs 
(error logging not implemented in older versions).
Debugging and PC-target communication