APPENDIX C. SYSTEM/USER MODE

The Rabbit 3000A is the first Rabbit microprocessor to incorporate a “system/user mode.” The purpose of the System/User mode is to provide two tiers of control in the CPU: sys- tem, which provides full access to all processor resources; and user, a more restricted mode.

Table C-1describes the essential differences between the System mode and the User mode. The System mode is essentially the same as the normal operation of the Rabbit 3000 and earlier processors.

Table C-1. Differences Between System and User Modes

System Mode

User Mode

 

 

All peripherals accessible.

No peripherals accessible by default.

 

 

All processor control registers available.

No processor control registers available.

 

 

All interrupt priorities available.

Interrupt Priority 3 not allowed.

 

 

IDET opcode has no effect.

IDET opcode causes Priority 3 “system mode

violation” interrupt.

 

 

 

No write protection when 0x00 is written to

Write to protected segment causes Priority 3

WPCR (write protection in User mode only)

“write protection violation” interrupt.

 

 

Easy to enter user mode (SETUSR opcode).

Difficult to enter system mode (requires

interrupt, SYSCALL, or RST opcode).

 

 

 

The main intent of the System/User mode is to protect critical code (for example, code that performs remote firmware updates), data, and the current processor state (memory setup, peripheral control, etc.) from inadvertent changes by the user’s standard code. By remov- ing access to the processor’s I/O registers and preventing memory writes to critical regions, the user’s code can run without the danger of locking up the processor to the point where it cannot be restarted remotely and/or new code uploaded.

User’s Manual

317

Page 326
Image 326
Jameco Electronics 3000, 2000 manual Appendix C. SYSTEM/USER Mode, Table C-1. Differences Between System and User Modes