Guidelines to developing your application on the Warp Appliance
Background Information
From Wikipedia:
An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions,[1] often with real-time computing constraints. It is usually embedded as part of a complete device including hardware and mechanical parts. In contrast, a general-purpose computer, such as a personal computer, can do many different tasks depending on programming. Embedded systems control many of the common devices in use today.
With this in mind we could say that the Warp Appliance shares some elements with embedded systems.
The Warp Appliance’s main purpose is to perform Telecom-like tasks.
The following table outlines the differences between Warp Appliance and Personal Computer.
Code:
Warp Appliance Personal Computer
CPU platform PowerPC –single processor X86 - multi-processor
Motherboard Medium High
complexity
MIPS 1000 MIPS >20,000 MIPS
(533 MHz x 2MIPS/MHz) (at 2.93 GHz 9.242MIPS/MHz)
Operating System Linux Linux, MS Windows, MAC OS-X
User interface Text-based Graphical user interface
User Output LED and LCD display Graphics card
interface
Input interface One Button Keyboard
RAM 256 MB Usually >1 GB
Persistent 128 MB on-board flash Usually SATA/IDE hard
storage with optional SD and drives (>100 GB)
USB flash storage
Start-up time < 1 minute < 3 minutes
Warp Performance
Based on the above table, one must be conscious of the performance limitation of the Appliance. The appliance has been designed to perform well with the available hardware peripheral at its disposal. The software application developer must be aware that the resources are limited. It would be unwise to treat the Warp Appliance the same as a Personal Computer!
Warp Reliability
In most cases the Warp Appliance will be more reliable than a PC for the following reasons:
·It is less complex
·Has no mechanical hard drive
·Dissipates less heat
An important note that the application developer must be aware is the limitation in the write-cycle of the flash persistent storage. Although the Flash file system spreads the wear and tear between sectors, there is a finite number of writes on the Flash part (100,000 program/erase cycles for each sector). So if you think your application will be writing to persistent storage often, it might be a good idea to write the external SD or USB flash. So if the external flash device does reach its life cycle, it should only be a matter or replacing the external part.
Software Application Guidelines
Here are some guidelines which can be used to develop an application running on the PIKA Warp Appliance:
·Store your application executable files on the onboard flash (/persistent, /persistent1/ or /persistent2/ partitions). If you try to store the application execution files on an external flash device, your system may be less reliable if the USB stick or SD device gets unplugged or ceases to function.
·Store your temporary non-persistent files on the /root directory of the uRamdisk partition
·Persistent files that are written often should probably be located on a USB or SD flash to reduce the wear and tear of the on-board flash.
·Monitor how much RAM is being allocated per process. Use ‘top’ to find the %MEM being used.
·Monitor how much CPU is being allocated per process. Use ‘top’ to find out the % CPU being used.