Experiences with embeddeding Linux on a handheld
Over the past two years, embedded Linux has risen from relative
obscurity to recognition as one of top two or three OS choices
for new designs of smart devices and embedded systems. More
and more developers worldwide are turning to embedded Linux for
their embedded solutions.
This paper attempts to share our experiences in porting
embedded Linux on a PDA-like handheld device. Some of the
problems & challenges we faced during this development &
how we overcame them are highlighted. We hope other
developers doing similar work will benefit from our experiences.
The handheld device was based on Intel SA1110 CPU. The
devices included Touch Screen, Color LCD, 4 Keys, Audio Codec,
USB Host Controller, GSM, Bluetooth, Biometric & Cryptographic
processor.
Some of the major topics covered by the paper include:
- Going for open source vs writing from scratch
- Boot loader corruption results in dead units - flash lock/unlock
- The choice of the GUI (Microwindows, FLTK, X11 and Qt/QpE)
- Use of the alternate framebuffer to overcome repaint problems
after blank/unblank
- Power Management of the handheld:
- A complex task considering several non-interacting subsystems
that need to be bought under a single set of guidelines.
- Detecting system inactivity in the absence of BIOS support.
- Battery hysterisis for smoothening the highly nonlinear battery
terminal voltage.
- Handhelds losing touch screen calibration over time - turns out to be
a clock scaling issue!
- Problem of upgrading handhelds to newer software levels taking
too long - Online update of file system
- IBM BlueDrekar bluetooth stack:
Several USB layer problems prevented stack bringup - A previously untested combination of an ARM processor interfacing a new USB host controller