Menu
Rabbit 3000 Block Diagram User’s Manual. Page 14: Summary Of Rabbit 3000 Advantages 32 kHz or even as slow as 2 kHz. The Rabbit may be used to create an intelligent peripheral or a slave processor. For example, protocol stacks can be off loaded to a Rabbit slave. The master can be any processor. Digi Rabbit SBC LP3500 Series instruction manual and user guide. Device Category: Computer Equipments. Model: Rabbit SBC LP3500 Series. Title: Pages: Format: Size: Action: Dynamic C 9 Users Manual - Rabbit 2000 and 3000 Microprocessors. PC Board Layout Suggestions to Reduce EMI and RF Emissions with the Rabbit 3000 Microprocessor.
Canon p26-dh iii manual pdf. Apr 14, 2006 Canon p1-dh: user guide (4 pages) Calculator Canon LS-100TS - Basic Calculator Instructions. User manual (2 pages) Calculator Canon X Mark I User Manual. Canon x mark i: user guide (2 pages) Calculator Canon F-604 User Instruction. Scientific calculator (40 pages) Calculator Canon MP20DH III Instructions (2 pages).
Rabbit 2000.
The Rabbit 2000 is a high-performance 8-bitmicrocontroller designed by Rabbit Semiconductor for embedded system applications. Rabbit Semiconductor has been bought by Digi International, which is since selling the Rabbit microcontrollers and hardware based on them.
Its extensive integrated feature set and glueless architecture facilitate rapid hardware design, and its C-friendly instruction set permits efficient development of complex applications for embedded systems. The instruction set is based on the original Z80microprocessor, but with some additions of new instructions as well as deletions of some instructions. Particularly useful for C is the stack pointer relative addressing available in some of the new instructions. Among the Z80 instructions missing in the Rabbit, cpir is particularly notable, since it allows for much more efficient implementations of some often-used standard C functions such as strlen(), strnlen() and memchr(). According to the Rabbit documentation, it executes its instructions 5 times faster than the original Z80microprocessor, that is, similarly to the Zilog eZ80.The Rabbit 3000 is a variant of the Rabbit 2000 with the same core, but more powerful integrated peripherals. The Rabbit 3000A variant adds a small number of additional instructions for I/O and large integer arithmetic. The Rabbit 4000 again adds more integrated peripherals. The further derivatives, starting with the Rabbit 5000 have a substantially different architecture.
Most of the Rabbit microcontrollers come with built-in flash memory and SRAM. They also have ADC and timers built-in.
Compiler Support[edit]
The Rabbit 2000 is supported by the free (GPL) Small Device C Compiler and Z88DK.There also are the non-free Dynamic C provided by the makers of the Rabbit and the commercial third-party CROSS-C. The latter two are quite incomplete in their support of the C standard, and their Rabbit 2000 backends are no longer available in current compiler versions.
External links[edit]
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Rabbit_2000&oldid=840654600'
Industry | microcontrollers |
---|---|
Founded | 1983 |
Headquarters | , |
Owner | Digi International |
Website | www.digi.com/lp/rabbit |
Rabbit Semiconductor is an American company which designs and sells the Rabbit family of microcontrollers and microcontroller modules.For development, it provides Dynamic C, a non-standard dialect of C with proprietary structures for multitasking.
Rabbit Semiconductor was purchased in 2006 by Digi International.[1] Before the purchase, Rabbit Semiconductor was a division of Z-World, Inc. Z-World developed and manufactured embedded controller products as well as embedded software development environments.
- 2Dynamic C
Rabbit Microprocessor
Microcontroller architecture[edit]
The Rabbit processor family shares many features with the Zilog Z80/Z180 processors. For example, the registers of a Rabbit 2000/3000 processor are almost the same as the registers of a Z80/Z180 processor. The Rabbit 4000 processor expands to include the use of 32-bit registers. The instruction set of Rabbit processors also closely resembles the instruction set of the Z80/Z180 family. While the opcodes of many instructions are the same between the Rabbit 2000/3000 processors and Z80/Z180 processors, the two families of processors are not binary compatible.
The Rabbit processor family has unique features. For example, the Z80/Z180 family disables interrupts once an interrupt is serviced by an interrupt service routine. However, the Rabbit processors permit interrupts to interrupt service routines according to priorities (a total of 4).
As with the Z80/Z180 family, the Rabbit processors are CISC processors, as opposed to RISC competitors like the Atmel AVR processors. A comparison of clocks per instruction of the Rabbit processor against a typical RISC processor like the AVR reveals that even though the Rabbit processors can use a faster clock (up to 60 MHz), the effective processing power is comparable to that of a similarly-priced AVR processor using a slower clock (up to 32 MHz). For example, the 'INC (IX+d)' instruction requires 11 to 13 clock cycles (depending on specific processor and on operand characteristics)[2] on a Rabbit processor. The equivalent instruction sequence (LDD, INC, STD) on an AVR requires 5 clock cycles.[3] Another example is the CALL instruction. It requires 11 to 13 clock cycles (depending on specific processor and on operand characteristics) on a Rabbit microprocessor[2] versus 4 to 5 cycles[citation needed] on an AVR processor.This difference, in part, is due to the AVR using on-chip memory for both instructions and data, whereas the Rabbit uses off-chip memory for both instructions and data.
Rabbit Semiconductor claims that the instruction set of Rabbit processors is optimized for C code.[4] A similar claim is made by Atmel for their AVR processors[citation needed]. The two architectures actually have very similar addressing modes, such as literal, register, indirect and indirect plus displacement. Furthermore, both architectures have specialized 16-bit registers. The Rabbit has IX, IY and SP, whereas the AVR has X, Y and Z.
This will vary from meter to meter; therefore, refer to the user's manual of your specific meter. Faulty batteryIf the battery is in good condition, check the voltage with a tool such as a multimeter. Measure the batteries voltage by touching the positive lead of your meter to the positive red lead on the battery and the negative lead to the black lead of the battery. Parrot ar drone 2.0 elite edition user manual. Set you voltmeter to the DC volts range. The battery should measure within 2V of the voltage noted on the battery.
The main difference is that the Rabbit instructions place more constraints on register usage compared to the AVR instructions. For example, the 8-bit Rabbit ADD instruction permits only the A-register be the destination. However, the ADD instruction of the AVR permits the use any one of the 32 8-bit registers as the source or destination. Generally speaking, an instruction set that is less register restrictive is more optimizable because there is less need to save-and-reload the content of a register.
Dynamic C[edit]
Perhaps the most notable feature of the Rabbit microcontroller is its development environment. Dynamic C, a product of Rabbit Semiconductor, has additions, deletions and inconsistencies compared to the ANSI-C standard.
The graph can be resized and shifted (these settings can be saved for later retrieval), and points along the graph can be traced. Graphed areas can be in customizable colors. Graph solver tools can also be used to find useful points, such as and intersection points.
- Note
- (Reference: Porting a Program to Dynamic C-Rabbit Semiconductor)
Dynamic C follows the ISO/ANSI C standard when feasible and desirable. Because the standard does not take into account the special needs of embedded systems, it is necessary to depart from the standard in some areas and desirable in others. The standard does not take into account important embedded systems issues such as read only memory and embedded assembly language. For this reason, practical compilers intended for embedded systems do not completely comply with the standard, but use it as a guide.
As an example of an addition, Dynamic C has a chaining mechanism to chain fragments of code from different subroutines to an arbitrary number of chains. This extension permits the use of not only initialized variables, but any arbitrary code to execute before a program starts execution in the main function.
As an example of a deletion, as of version 10.23 Dynamic C does not support block scope variables or bit fields. The development toolchain does not include a separate preprocessor and linker, which may complicate the process of porting existing programs to the compiler. As of version 10.64 block scope for variables is supported.
As an example of an inconsistency, Dynamic C implicitly treats all initialized global variables as if they were declared with the
const
qualifier. Furthermore, all const
variables reside in flash memory. Earlier versions of Dynamic C did not check the use of the const
keyword in parameters—it was possible to pass a const
variable as a parameter to a function that did not expect it, potentially leading to attempts to write to flash memory. As of the latest version of Dynamic C, the compiler will produce an error when the user attempts to modify a const
variable directly, and will produce a warning if the user discards the const
qualifier when passing a parameter to a function.Multitasking constructs[edit]
Rabbit 2000 Microprocessor
One noteworthy feature of Dynamic C is its inclusion of language constructs to simplify multitasking. These constructs, the
costate
statement and the slice
statement, implement a form of cooperative and preemptive multitasking, respectively. As an example, consider the following program which flashes two LEDs with different frequencies:When this code is run, the first costatement will be executed, and the first LED will turn on. The costatement will then yield to the second statement while it waits for 100 milliseconds. The second costatement will execute in a similar manner. While both costatements are waiting for their time to elapse, the while loop will busy-wait, but this waiting time could potentially be used to perform other tasks. For more information, see the Dynamic C User's Manual.
See also[edit]
References[edit]
Rabbit 3000 Microprocessor
- ^Digi International Acquires Rabbit SemiconductorArchived 2009-02-13 at the Wayback Machine
- ^ ab'Rabbit Family of Microprocessors Instruction Reference Manual'(PDF). Digi International. Retrieved 2013-01-02.
- ^AVR Instruction Set (includes clocks per instruction)
- ^Rabbit 3000 Microprocessor User's Manual
External links[edit]
- Rabbit Semiconductor at the Library of Congress Web Archives (archived 2002-09-14)
- Rabbit 4000 Family Instruction Reference at the Wayback Machine (archived 2011-12-26)
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Rabbit_Semiconductor&oldid=910750408'