You are on page 1of 5

Agenda General Issues

Looking Ahead...

Developing Handhelds P General Issues “... a handheld is not a PC. Bigger is not
Targeting Personal Digital Assistant Platforms P Platform Overviews necessarily better. Speed is not
P Development Tools
measured in megahertz – or MIPS, or
even FLOPS for that matter. Developers
A Sasmito Adibowo P Business Summary will need to shift paradigms when
1299000029
targeting handhelds...”

General Issues General Issues General Issues


Opposite Usage Patterns User Interface Memory Considerations
People generally use
handhelds in frequent, short P Small screen, – most are 6cm * 7cm, some are P Most handhelds do not carry secondary
smaller. storage – all data are stored in the main
bursts; while people work on
PCs for several hours at a P Limited resolution and color. memory.
Accesses per day
time. P Small or no keyboard. P Out-of-memory situations will occur more
Waiting a few minutes for a PC to boot P Stylus, not mouse – programming will be often – applications must degrade gracefully
and a wordprocessor to load is acceptable
slightly different. instead of simply terminating.
if one’s going to write a paper for two
hours. P Less taps is better. P Memory grew from 2MB, 8MB, to 64MB. But
If the sole purpose of turning on the as handhelds grew smaller, don’t expect that
handheld is just to look up somebody’s Average session trend to continue.
phone number to call, waits can be time (minutes)
frustrating. Source: Palm, Inc user surveys

General Issues Platform Overviews Palm OS


Conserving Power Discussion Scope Architecture Overview

P Avoid lengthy computations – leave the


analysis to the desktop machine. P 3Com’s Palm OS.
P Avoid polling, favor blocking. Thus the OS P Microsoft Windows CE.
can suspend the CPU.
P Limit the use of peripheral devices – sounds, P Lineo Embedix Plus.
serial, modems, etc.
P Optimize for fast response time. Avoid
background processing. PDAs only have one
user to take care of.
Source:Palm OS website

Palm OS Palm OS Palm OS


Platform Components Application Startup and Stop Memory

P Only one application at a time.


P Palm OS® software. P 32-bit physical address space.
P No exit command – user simply selects another
P Reference hardware design. application. P All memory are considered of a
P HotSync® conduit data synchronization P Application launch codes: part of a card.
technology. < sysAppLaunchCmdNormalLaunch – Normal launch. P Cards may contain RAMs,
< sysAppLaunchCmdCardLaunch – Launch the application
P Platform component tools including an API from an expansion card. ROMs, or a combination of
that enables developers to write applications. < sysAppLaunchCmdFind – Finds a text string. both.
< sysAppLaunchCmdInitDatabase – Initialize database prior
P Software interface capabilities to support to HotSync restore. P Partitions:
< Dynamic Heap
hardware add-ons . P Application stop: appStopEvent – upon receiving this
event, an application must exit its event loop, close < Storage Heap
any open files and forms, and exit.
Palm OS Palm OS Palm OS
Memory Manager Data Manager Data Manager

P General memory P Higher-level data abstraction,


allocation/de-allocation. P Record Databases
for (more) persistent storage. < Most common for data storage.
P Two types of memory: P Databases instead of files. < Indexed records.
< Moveable chunks (handles). < May be maintained in sorted order.
< Fixed chunks (pointers). P Data divided into discrete < Each record belong to a category.
pieces that the system help < Backup may be done on a per-record basis.
P Heap compaction
manages.
< When allocation request failed. P Resource Databases
< Move unlocked moveable chunks down to lower P Two major categories: < Free-form storage.
addresses. < Record databases < Linear search on access.
P Memory chunks are marked with their owner < Resource databases
– freed when the application terminates.

Palm OS Palm OS Windows CE


Springboard Expansion Springboard Expansion Architecture Overview

P Used in Handspring Visor P Includes all necessary


handhelds. software
P Open standard – P Automatic software
documentation available for install/de-install – no driver
download, no user fees, no needed.
Inserting a module into the
royalties, no proprietary parts. Springboard expansion slot
P Microphone support in
P Low cost – uses the PCMCIA handheld. The Springboard expansion slot (below)
and examples of possible Springboard
68-pin block. modules.

P flexible power – built-in supply


of 100mA at 3.3V. Source: MSDN Library

Windows CE Windows CE Windows CE


Platform Overview Design Goals Memory Management

P Version 3.0 renamed to Pocket PC.


P Small footprint. P 4GB virtual address space.
P Available in three form factors:
< Handheld PC – touchscreen with keyboard, either P High modularity – to build a high range of P Data storage provided as a virtual disk in
PCMCIA or CompactFlash. embedded systems. RAM.
< Palm PC – touchscreen without keyboard,
CompactFlash.
P Execute-in-place (XIP) out of ROM. P Familiar Win32 and C memory-management
< Auto PC – in-car systems. P Use the Win32 API standard. functions.
P Unicode-only character set. P Portable to different microprocessor familites. P Record-based data access are also available
via the Object Store.
P Subset of the Win32 API.
P Support for multithreaded applications.

Windows CE Windows CE Lineo Embedix


Driver Architecture Driver Architecture Architecture Overview on the Sharp SL-5xxx

P Native drivers – no common interface model,


loaded by parent processes.
P Stream drivers – exposed to applications
through the file system interface.
P Regular IPC to drivers are supported.

Source:SL-5500 / System Architecture Overview


Source: MSDN Library
Lineo Embedix Lineo Embedix Development Tools
Platform Overview Memory Information Discussion Scope

P Mostly standard Linux system with kernel P Root filesystem PNative-code compilers.
version 2.4. mounted as RAM
P Busybox provides a subset of POSIX disk. PBytecode or source interpreters.
command-line utilities. P All data are
managed as regular
PJava environments (VM, libraries,
P Qt/Embedded GUI, virtual framebuffer.
files. and tools).
P PersonalJava 1.2 environment included.
P The Java VM is
P Base applications provided by Qt Palmtop. handled like a
regular process.
Source:“SL-Series”Memory Information for
JavaTM

Native Code Compilers Native Code Compilers Native Code Compilers


CodeWarrior for Palm OS CodeWarrior for Palm OS CodeWarrior for Palm OS

P The “official” development tool for the Palm


OS. Editor
Debugger P IDE features:
P Uses C, C++, or Motorola 68K assembly < GUI Builder.
language, – program directly to the Palm OS < Integrated debugging – with emulator or on-
API. Emulator device trough serial/USB.
< Source or assembly level debugging.
P Host platform: Windows or Mac. < Code highlighting.
P C++ Support: < Wizards.
Project
< Global stack-based objects. Manager < Class browser.
< Namespaces
< RTTI
P Retail price: $499
Wizards
< Templates
Source: CodeWarrior 8 for Palm OS Platform Datasheet
P Contact: http://www.metrowerks.com

Native Code Compilers Native Code Compilers Native Code Compilers


Microsoft eMbedded Visual Tools Microsoft eMbedded Visual Tools Microsoft eMbedded Visual Tools

P Microsoft’s CE development toolset. P Program directly to the Windows CE API for


C/C++. P Cost: $14.95 (international shipping) – free
P Components: downloads available.
< eMbedded Visual C++.
P C++ offers the option of MFC and ATL for
Windows CE. P Contact:
< eMbedded Visual Basic. http://msdn.microsoft.com/vstudio/device/p
< SDK and remote tools. P Debugging options: rodinfo.asp
P Features the familiar Visual Studio user < Simulating Windows CE environment under
desktop Win32.
interface.
< Remote debugging through cable.

Native Code Compilers Native Code Compilers Native Code Compilers


MobileBuilder MobileBuilder MobileBuilder
Visual
P Develop for several platforms from the Programming
Environment
P C-language, code to Penright’s proprietary
same code base. API.
P Supported targets: Palm OS, Windows P Over 350 handheld-focused API:
CE, Pocket PC, Windows NT, 98, 95, 3.1, handwriting recognition, signature capture,
MS-DOS, and DPMI. bar code scanning, etc.

P IDE with drag-and-drop RAD tools. Powerful Form P Separate runtime licenses for each target
Designer
platform.
P Host platform: Windows 2000, NT 4.0, P Price: $1595 per developer seat.
98, 95
P Contact: http://www.penright.com
Source:
Bytecode Interpreters Bytecode Interpreters Bytecode Interpreters
PocketC PocketC NS Basic/Palm

P Scripting, C-like language (but not C!). P Price: $30 (Palm), $38 (Windows CE). P Uses the BASIC programming language.
P Cross processor capability on Windows CE. P Contact: http://www.orbworks.com P Develop on Windows desktop, with RAD tools.
P Able to write code on handheld. P Runtime size: 88K.
P Desktop IDE available; without GUI builder P Debugging using Palm OS Emulator.
(Windows host).
P Price: $149.95
P Separate (incompatible) versions for Palm OS
and Windows CE. P Contact: http://www.nsbasic.com/palm/

Source: OrbWorks website

Bytecode Interpreters Bytecode Interpreters Bytecode Interpreters


NS Basic/Palm NS Basic/CE NS Basic/CE

P Uses standard VBScript interpreter engine. P Royalty-free program


P Code directly in handheld. distributions.

P IDE with RAD tools. P Price: $149.95


P Database support - ADOCE. P Contact:
http://www.nsbasic.com/c
P Cross-processor support. e/

Source: NS Basic website Source: NS Basic website

Java Environments Java Environments Java Environments


KVM Reference Implementation Jeode PDA Edition Waba
P Focus on connected devices.
P PersonalJava 1.2 compliant – VM certified by P Strict subset of Java: language, class file,
P Multithreading support. Sun. bytecode format.
P VM size: 50K – 80K, working memory: P Complete JNI support. P Cross-platform VM: Palm OS, Windows CE,
128K. Newton, TI, even DOS.
P Targets: Windows CE, Linux (X11,
P Current target: Palm OS. Desktop: Qt/Embedded, QPE). P Small footprint
< VM+classlib less than 64K on Palm OS and
Windows and Solaris. P Dynamic Adaptive Compilation (DAC). Windows CE.
P No native support. P Contact: http://www.insignia.com < Working memory less than 10K.

P Contact:
http://java.sun.com/products/cldc/ds/

Java Environments Business Summary Business Summary


Waba Targeting Palm OS Targeting Windows CE

P Very limited set of libraries. P Pros P Pros


< Market share leader – control the market’s < Similarity to other members of the Windows family
P No multithreading, no exceptions. directions. – simple transition from desktop-based Windows
development.
P Supports serial and socket communications. < OS built for small, low-powered devices – may
< Microsoft efforts for CE to dominate in-car
appear in wider settings. computing.
P Native interface implemented by modifying < Vendor support and connectivity to enterprise
VM’s source code. < Availability of familiar applications: Word, Excel,
products: IBM, Oracle, Sybase, SAP. Outlook.
P No-charge, GPL license. P Cons P Cons
P Contact: http://www.wabasoft.com < High learning curve for developers. < Declining market segment – from small to smaller.
< Limited capacity of the Motorola Dragonball < Large memory, battery, and user interface
processor. requirements.
Business Summary References References
Targeting Linux PCampbell, Tom. Programming Windows CE applications on your PRichter, Jeffrey. Developing Applications for Microsoft Windows CE:
Windows CE machine. Programming Power. An Overview of the Windows CE SDK and Visual C++ for Windows
CE. MSDN Library. March 15, 1997.
P Pros PEpplin, Jerry. A developer's perspective on Sharp's Zaurus SL-
5000D Linux/Java PDA. Nov. 12, 2001. PMetrowerks. CodeWarrior 8 for Palm OS Platform Datasheet.
< As expected from Linux: GPL open source. PMicrosoft Corp. Microsoft Windows CE Technical FAQ. MSDN
PPalm, Inc. A Flexible Architecture for Innovative Solutions. 2002.
< Interesting possibilities to mix-and-match http://www.palmos.com/platform/architecture.html Library.
components. PPalm, Inc. Palm OS Memory Architecture. PMicrosoft Corp. Microsoft Windows CE: The New Choice for
< Most software components can be downloaded at http://oasis.palm.com/dev/kb/papers/1145.cfm?print=true Dedicated Systems. MSDN Library.
no cost. PPalm, Inc. Zen of Palm. PMicrosoft Corp. Windows CE 2.10: Frequently Asked Questions.
July 27, 1998.
P Cons PPalm, Inc. Palm OS Programmer's Companion, Volume I.
PMicrosoft Corp. Windows CE Memory Architecture. MSDN Library.
< Very high learning curve. PPenright. MobileBuilder Spec Sheet.
PSharp Corporation. “SL-Series” Memory Information for JavaTM &
< Most development tools are not mature – usually PGregory, Kimberly . Embedded Development with Microsoft Qt/Embedded Applications. (revision 1.00 2002.4.4)
resorts to command-line gcc. Windows CE. April 1998.
PSun Microsystems. Java 2 Platform Micro Edition (J2ME) Technology
< No established standard – too many GUI toolkits PHandspring. The Springboard Platform Whitepaper. 1999 for Creating Mobile Devices White Paper. May 19 2000.
and libraries. PInsignia. Jeode PDA Edition VM. http://www.insignia.com/. 2002.. PWireless Developer Network. WirelessDevNet Online Training.
http://www.insignia.com/. 2002. http://www.wirelessdevnet.com

Thank You
Any Questions?

You might also like