'Frodo' is 2d3D's locally-developed Intel StrongARM processor-based reference board enabling embedded application developers to perform rapid development on Linux and Windows CE v3.0 environments. The reference board is suitable for development of any pervasive computing or industrial application.
A typical configuration consists of a 206 MHz SA-1110 CPU, 64 MB SDRAM, 32 MB Intel StrataFlash memory, USB host controller with two ports, 10 Mbps Ethernet, RTC and Watchdog. Connectors for PCMCIA, IDE, LCD, two RS232 and 2d3D's custom daughter-board interface, the XConnector. Operating system software is a choice of either a custom embedded realtime version of Linux or Windows CEv3.
The result is a 250 MIPS, low-power consumption (around 1 W), compact board measuring 90 x 150 mm running a multitasking operating system. It is capable of operating in full graphical-user-interface mode or as a standalone unit. This board can allow one to add connectivity to an existing industrial device and perform field upgrades remotely, or to design a daughterboard with capabilities limited only by one's imagination - the possibilities are vast.
The design objective was to create a stable hardware and software platform that would allow almost unlimited hardware and software extensibility. The aim was to produce a reference platform that would provide a stable base and facilitate rapid prototyping.
Hardware is designed to be extensible via the XConnector. Software is extensible via standard operating-system supplied interfaces, as device-drivers and applications, or as a complement to hardware extensions. The processor uses an ARM-based RISC core and offers excellent features for power-management as well as a useful set of on-board peripherals. It drives devices with varying speeds and latencies in its address-space. There is an MMU which offers applications protection from one another, and most importantly, offers the OS protection from errant application code.
The board has no bus architecture, as such. PCI and similar buses were rejected for reasons of simplicity, chip count, cost and ease of design. Performance, however, is a major factor and therefore the hardware extension interface is simply a buffered set of signals driven directly by the processor. The implications are that hardware extension is limited only by what would otherwise be designed to interface directly with the processor.
Software requirements for an operating system were many. Linux is configurable 'Open Source' with no licensing issues. Windows CE presents a familiar development environment and user-interface. This offers a choice of cost-effectiveness against familiarity. The OS was required to meet some basic deterministic realtime requirements. Other design objectives included TCP/IP support and a CPLD for flexible signal routing, particularly useful at the prototype stage.
Both operating systems multitask, however, there are realtime requirements. This is normally seen as mutually exclusive: either the OS supports realtime or it multitasks. There are ways to solve this. The best known approach is to use a micro-kernel and to run the realtime part of the OS as a task. With Linux, a kernel was created which is pre-emptable and has deterministic realtime capability. This meets the realtime requirements but is also something that must be kept in mind when developing drivers and applications for such a system. At one's fingertips is the ability to do what would be taken for granted on a desktop machine. However, this is an embedded system. Careful application and device-driver design is essential. Making system calls to allocate memory at the wrong time will cause unpredictable results.
Performance
Sustained memory bandwidth is 40 MBps with the CPU clocked at 221 MHz and memory running at 55 MHz. Hard-disk transfers average ~5 MBps sustained read/write. Realtime performance figures, including interrupt (expected <50 µs) and task-switch latencies, will be available soon. A Boot Loader facilitates automatic boot to the OS image residing in flash, interactive OS reload to flash or diagnostics. The Linux Base OS is an embedded version based on kernel Version 2.4.17. This is supplied with device-driver support for all peripheral devices on the processor-board, USB, Ethernet, IDE, LCD and serial devices.
Features include:
* Flash memory partitioning, read-only areas for the kernel and the initial system boot image, read-write area for use as a disk drive, 'safe' partition for backup of critical system configuration files.
* Journal flash file-system manages flash memory to ensure data integrity maintained if power-failure.
* Up to two IDE disk drives.
* USB keyboard and mouse as input devices.
* GUI on LCD at resolutions up to 640x480 and 64k colours.
* Watchdog and realtime clock.
Software
Additional software includes: Bash shell; BusyBox, a compact, stripped down suite of about 50 commonly used utilities for file, shell and search functions; Networking utilities - ftp, telnet; Xmodem/Zmodem - for serial port upload/download; and numerous debugging utilities. A complete compiler/linker tool chain is supplied to enable Linux development. An optional Windows CE v3.0 OS image is shipped with complete support for all peripherals and I/O on the board. Application developers need only the custom, board-specific SDK, as supplied, and a standard development environment.
Processor boards are available pre-built and tested with the full software development environment as well as installed OS.
For further information contact Dale Whitfiield, 2d3D, 021 761 7549, [email protected], www.2d3d.co.za
© Technews Publishing (Pty) Ltd | All Rights Reserved