Subject: Re: Summary so far...
To: None <tech-embed@netbsd.org>
From: Bucky Katz <bucky@picovex.com>
List: tech-embed
Date: 06/15/2007 15:03:29
"Karl Sj=F6dahl - dunceor" <dunceor@gmail.com> writes:

>> Note that cell phones are different than traditional handheld devices.
>
> In what way are they so different? Only thing that is different is the
> close work with RF antenna. Otherwise it's pretty much the same with a
> decent size flash, decent size ram.

Traditional handheld devices don't have the same sort of telco related
connectivity issues and (in the US) FCC RF regulatory issues. They
also tend to be uniprocessor while cell phones tend to be
multiprocessor, but set up in asymmetric configurations. The presence
of the radio(s) (up to four in coming designs: cell, bluetooth, wifi,
and GPSR) makes for interesting issues in battery management.

Traditional handheld users are more tolerant of manual rebooting,
handsets tend to need automatic recovery from crashes and over-the-air
upgradability.

Traditional handhelds tend to have much simpler audio chains and not
require multiple source/multiple destination audio routing and mixing.

>> Power management on handheld devices is not an optimization.  Battery
>> life often determines the market acceptance of a handheld device.
>
> Well it is optimization, see so different time consuming functions run
> as little as possible and see that when it goes down in power save,
> everything is turned off that does not need to be on. Hardest part is
> that a lot of the power saving work is done by hardware guys but
> software guys is good support in chasing current.

I'm not being clear. In the sense of the original comment which seemed
to imply that 'optimization' meant something you can do later, power
management is not an optimization. It's an integral part of the
implementation and requires a lot of facilities.

Also, add under handset differences that almost none of the power
saving work is done by harware -- at least in the sense that the
hardware presents you with a lot of things you can turn on and off at
different times but it's entirely up to software to decide what to
turn on and off and when to do it.

That decision making process has to be present and spreads its
interfaces throughout the system, in order for you to make those
'optimizations'.