Table of Contents

1. RabbitSys Introduction

1.1 Overview
1.2 Hardware Information
1.3 Software Information
1.4 Quick Start Instructions
1.5 Component Summary
1.5.1 Kernel
1.5.2 Network Support
1.5.3 Network Configuration
1.5.4 Remote Program Upload
1.5.5 Console
1.5.6 Monitor
1.5.7 I/O Port Configuration
1.6 Hardware Independent Drivers
1.7 Debug Support

2. Using RabbitSys Components

2.1 The Board's IP Address
2.1.1 Assigning the IP Address
2.1.2 Obtaining the IP Address
2.2 Remote Program Upload
2.2.1 Using the HTTP Server
2.2.2 Using the FTP Server
2.2.3 Using the RabbitSys API for Remote Upload
2.3 RabbitSys Console
2.3.1 Console Command Set Descriptions
2.3.2 Console Access Using a Terminal Emulator
2.3.3 Console Access Using Telnet
2.3.4 Console Access Using FTP
2.3.5 Console Access Using HTTP
2.4 RabbitSys Monitor
2.4.1 Monitor Access
2.4.2 Monitor Logs
2.4.2.1 Watch List Log
2.4.2.2 Reset Log
2.4.2.3 Error Logs
2.4.3 E-mail Alerts
2.4.4 Monitor API Functions
2.5 Network Support
2.5.1 Configuration Macros
2.5.2 DHCP and UDP Discovery
2.5.3 HTTP Server
2.5.3.1 Registering User-Defined Web Pages
2.5.3.2 Using RabbitSys-Style SSI
2.5.3.3 CGI Programming

3. Applications Programming and RabbitSys

3.1 Compiling and Running RabbitSys Applications
3.2 The Syscall Interface
3.2.1 Using the RabbitSys API
3.3 I/O Register Access
3.3.1 Using Dynamic C to Access an I/O Register
3.3.2 Using Assembly to Access an I/O Register
3.4 Creating SysCallable Functions
3.5 Interrupts and ISRs
3.5.1 API Functions for ISRs
3.5.2 External Interrupts
3.6 Event Handling
3.6.1 Event Types
3.6.2 Event Responses
3.6.3 Timer Event Responses
3.6.4 API Functions for Event Handling
3.7 The Command Line Compiler

Advanced Topics

4. System Initialization and Organization

4.1 BIOS Organization
4.1.1 Global Macro Definitions
4.2 RabbitSys Libraries

5. RabbitSys Memory Management

5.1 Memory Allocation
5.1.1 Memory Mapping
5.1.1.1 Compile to Flash, Run in SRAM
5.2 Memory Protection
5.2.1 Write Protect Registers
5.2.2 Stack Information
5.2.2.1 System Stack
5.2.2.2 µC/OS-II Stacks

6. Multitasking Support

6.1 Cooperative Multitasking
6.2 Preemptive Multitasking
6.3 Hooking a Tasker to the Periodic Interrupt

Appendix A. Porting Existing Dynamic C Applications to RabbitSys

A.1 Applications that Require Code Changes
A.1.1 Custom Memory Configurations
A.1.2 Use of Level 3 Registers
A.1.3 Applications with Size Constraints
A.2 RabbitSys Differences

Appendix B. I/O Register and Interrupt Vector Access

B.1 User Enable Registers and the Registers they Control
B.2 Registers Unavailable in User Mode
B.3 Register Permissions
B.4 Interrupt Vectors

Appendix C. RabbitSys API Functions

Index