Nokia 770 - Micrel Lab

peruvianwageslaveInternet and Web Development

Feb 5, 2013 (4 years and 10 months ago)

150 views

Nokia
Smartphones
:

platforms and
OSes

Martino Ruggiero

martino.ruggiero@unibo.it

Outline


Introduction to Nokia platforms


Mobile Computers:


Nokia N900


Maemo


Smartphones
:


Nokia N8


Symbian


Nokia application development:


Qt

Nokia platforms & strategy



Nokia N900 HW specs


Display


The N900 has a
3.5 inch

touch
-
sensitive widescreen
display with a
800x480 pixel resolution

(105
pixels/cm, 267
ppi
).


The
touchscreen

is
resistive

(i.e. not multi
-
touch).


The 16M colors TFT LCD panel is a Sony
ACX565AKM.


Content Adaptive Backlight Control:


It allows reducing backlight or brightness levels
depending on the image being shown to save power.


For instance, if the image contains only dark pixels, the
brightness of the backlight can be reduced. This will
naturally boost the pixel value.


N900 Processor


The N900 is powered by a
Texas Instruments OMAP 3430 ARM Cortex
-
A8

running at
600
MHz
.



The OMAP 3430 consists of:


ARM Cortex A8 processor running at 600Mhz
: designed in 65
-
nm CMOS
process


Imagination Technologies
PowerVR

SGX530 GPU
: supports OpenGL ES 1.1/2.0,
OpenVG

1.1, OpenGL 2.0/3.0, DirectX 9/10.1 and
OpenCL


TMS320C64x DSP/ISP
: Digital/Image Signal Processor running at 430 Mhz.


IVA 2+ accelerator
: as described on TI web site, a second generation power
-
optimized version of the imaging video and audio accelerator used in TI's
DaVinci

technology. Enables multi
-
standard (MPEG
-
4, H.264, WMV) encode
and decode at DVD up to HD resolutions. IVA 2+ provides H.264
-
based video
at greater than CIF resolutions.


OMAP3430

Processor


Superscalar ARM® Cortex™
-
A8 RISC core


Processor designed in 65
-
nm CMOS process technology


IVA™ 2+ (Image Video Audio) accelerator enables multi
-
standard (MPEG4, WMV9,
RealVideo
,
H263, H264) encode/decode at D1 (720x480 pixels) 30 fps, and up to 720p resolutions


Dedicated Imagination POWERVR SGX 2D/3D graphics hardware gives user interface and
gaming developers the power to create rich graphics effects with cinematic realism


Support for OpenGL ES 1.1, ES 2.0, and
OpenVG



Integrated Image Signal Processor (ISP) for faster, higher
-
quality image capture and lower
system cost

N900 Memory &

Mass storage


The N900 has 256 MB of RAM.


The Nokia N900 has 32 GB
eMMC

and 256 MB NAND non
-
removable storage.


The 256 MB NAND is formatted using UBIFS. It contains the
bootloader
, the kernel and root
filesystem
.


The 32GB
eMMC

is split into 3 partitions:


768 MB of swap


2 GB mounted as /home (ext3).


25 GB of free space mounted as /home/user/
MyDocs

(VFAT). When the
device is put in mass storage mode, this partition is the exported partition.


A
microSDHC

extension slot


not directly accessible, i.e. it requires removing the battery cover.



N900 Power management


The N900 includes a Texas Instruments TWL4030 which acts as an all
-
in
-
one audio and power
manager.


The key features include:


Audio


Integrated Voice and Audio
Codecs


Dual Stereo up
-
link and down
-
link


Stereo and Mono support


Audio Amplifiers


Analog/Digital Mixing


Speaker drivers


Digital MICs support


Battery Charger


Regulated supply support


USB Charging


Car Kit


Back
-
up battery switch


Clocks


32KHz Oscillator and integrated RTC


Transceivers


High Speed USB2.0 On
-
The
-
Go transceiver


Drivers


LED drivers


Vibrator drivers

OMAP Power Management


The PM branch is a development branch of the
linux
-
omap

kernel for the purposes of
developing and stabilizing the PM infrastructure for OMAP and submitting it upstream.


Features


full
-
chip retention in idle and suspend


full
-
chip OFF in idle and suspend


idle PM via CPU idle


active PM via DVFS using CPU freq


support for multiple OMAP3 boards


N900 Sensors and

connectivity


The N900 has built
-
in STMicroelectronics LIS302DL accelerometers.


The
bluetooth

chipset is a Broadcom BCM2048.


The
wifi

chipset is a Texas Instruments WL1251.


FM/RDS receiver support is provided by the Broadcom BCM2048 (which also provide the
bluetooth

support for the device).


No software is currently installed on the device to use the FM receiver but some are available as
intallable

apps.


The FM transmitter support is provided by Silicon Labs Si4713 chipset.


The FM Transmitter has an internal antenna and supports frequencies from at least 76.00Mhz to
108.00MHz.


Infrared (IR)


The main camera is a Toshiba ET8EK8 (5MP).


The main camera is associated with Carl
Zeiss

optics,
Tessar

lens.


The front camera of the N900 is a ST Microelectronics VS6555.


640x480 VGA
resolution
, 0.3
megapixel


The GPS of the N900 is from TI. It supports:


Integrated GPS, Assisted
-
GPS (via supl.nokia.com), and Cell
-
based receivers


Pre
-
loaded
Ovi

Maps application


Automatic
geotagging



Ambient Light Sensor (ALS)


Proximity sensor


The N900 has a 38 keys sliding backlit keyboard.

Maemo


Maemo

is a software platform that is
mostly based on open source code and
powers mobile devices


Maemo

Community

is an open source
community developing software
around the
Maemo

platform.


The
Maemo

community has over
22.000 registered members that
contribute to more than 900
community development projects in
the
Maemo

Garage.

Maemo
:

Software Platform


The
Maemo

platform is the core
software stack that runs on mobile
devices such as the Nokia N900


The
Maemo

SDK provides an open
development environment for
applications


The
Maemo

platform consists of the software stack from the Linux kernel to the
Maemo

APIs and the
Hildon

UI framework.


Commercially available devices running on
Maemo

come with the pre
-
installed
Hildon

UI and a set of applications
delivered by Nokia. It is possible to develop other UIs on top of the
Hildon

UI framework.


Maemo

platform is based on Linux operating system which itself inherits its architecture
from the Unix operating system.


Linux and other open source projects contributing to the
Maemo

platform embrace sharing of source code,
collaboration and open development model.


The
Maemo

community promotes these values by keeping the
Maemo

platform open wherever feasible, by
sharing source code, and by contributing code directly to the upstream projects.



Key Components of the
Maemo

Platform


The
Maemo

platform is based on the Linux operating system kernel.


Linux is a monolithic kernel that supports multiple hardware platforms and is able to support a wide range
of different kinds of devices from wrist watches to large server systems.


Currently all devices running on the
Maemo

platform have an OMAP chipset, which contain a general
-
purpose ARM processor and a DSP unit.


The user interface architecture of
Maemo

5 is based on GNOME framework, especially the
GTK+ widget set.


GNOME is a leading application framework for desktop Linux systems.


Maemo

platform has inherited many central components such as GTK+, the
GStreamer

multimedia
framework, the
GConf

configuration management, and the XML library.


The
Maemo

platform extends GTK+/GNOME technologies by providing extensions for a mobile desktop.



Evolution of
Maemo


A series of Internet Tablets with touch screen have been built
until today with the
Maemo

platform.


The first device was the
Nokia 770

Internet Tablet that was
launched in November 2005. The Nokia 770 Internet Tablet allowed
Internet access over WLAN connection.


The next device on the
Maemo

platform was the
Nokia N800
Internet Tablet built on
Maemo

3 release. It added Skype/VoIP
-
calls
over WLAN and had an integrated camera.


Another step forward was the
Nokia N810
using
Maemo

4. It has
also a full QWERTY keyboard beside the touch screen, a Mozilla
technology
-
based Internet browser,
GoogleTalk

support, and GPS
onboard.


Maemo

5 was a major step in the evolution of
Maemo
.
Maemo

5
introduced a completely redesigned finger
-
touch UI, cellular phone
feature, and live multitasking on the
Maemo

Dashboard.
Maemo

5
is computer technology powering the latest
Maemo

device, the
Nokia
N900
.

Maemo



Meego


MeeGo

is a
Maemo

evolution


Meego

blends
Maemo

with Intel’s
Moblin

software to create an open platform for
multiple processor architectures.


Applications for
MeeGo

can be deployed on a range of mobile devices such as:


mobile computers,


netbooks
,


tablets


Nokia N8


N8 features a 680MHz ARM 11 processor along with a “3D Graphics HW
Accelerator with OpenGL
-
ES 2.0 support”, it also features 256MB of SDRAM and
512 MB of NAND memory.


AMOLED capacitive
touchscreen
,


16M colors Size 360 x 640 pixels, 3.5 inches




Multi
-
touch input method


Proximity sensor for auto turn
-
off


Accelerometer sensor for UI auto
-
rotate


Storage Memory


Internal memory: 16 GB


MicroSD

memory card slot, hot swappable, up to 32 GB


Connectivity


Bluetooth 3.0


HDMI


Micro USB connector and charging


High
-
Speed USB 2.0 (micro USB connector)


FM Radio/Transmitter


GPS and navigation


Integrated GPS, A
-
GPS receivers


Ovi

Maps with free car & pedestrian navigation


Compass and accelerometer for correct orientation of display


Camera


12 megapixel camera with Carl
Zeiss

optics


Xenon flash


Face recognition software


Secondary camera for video calls (VGA, 640 x 480 pixels)

Symbian


Symbian

OS is one of Nokia's mobile operating systems for mobile devices
and
smartphones
, with associated libraries, user interface, frameworks
and reference implementations of common tools, originally developed by
Symbian

Ltd.


It is a descendant of Psion's EPOC and runs exclusively on ARM processors,
although an unreleased x86 port existed.


In 2008, the former
Symbian

Software Limited was acquired by Nokia and
a new independent non
-
profit organization called the
Symbian

Foundation
was established.


Symbian

OS and its associated user interfaces S60, UIQ and MOAP were
contributed by their owners to the foundation with the objective of
creating the
Symbian

platform as a royalty
-
free, open source software.

Symbian

Foundation


The platform has been designated as the successor to
Symbian

OS, following the official launch of the
Symbian

Foundation in April 2009.


The
Symbian

platform was officially made available as open source
code in February 2010.


Devices based on
Symbian

OS accounted for 46.9% of
smartphone

sales in 2009, but the platform's market share
dropped to 41% as of Q2 2010.


Some estimates indicate that the cumulative number of mobile
devices shipped with the
Symbian

OS up to the end of Q2 2010 is 385
million.


Symbian

design guidelines


Symbian

OS was created with three systems design principles in mind:


the integrity and security of user data is paramount,


user time must not be wasted,


all resources are scarce.



To best follow these principles,
Symbian
:


uses a microkernel,


has a request
-
and
-
callback approach to services,


maintains separation between user interface and engine.



The OS is optimized for low
-
power battery
-
based devices and for ROM
-
based
systems



Symbian

features pre
-
emptive multitasking and memory protection



Applications, and the OS itself, follow an object
-
oriented design:


Model
-
view
-
controller (MVC).




Symbian

and the limited resources


There is a strong emphasis on conserving resources


All
Symbian

programming is event
-
based


The CPU is switched into a low power mode when applications are not directly
dealing with an event


Similarly the
Symbian

approach to threads and processes is driven by
reducing overheads.


The
Symbian

kernel (EKA2) supports sufficiently
-
fast real
-
time response to
build a single
-
core phone around it


A phone in which a single processor core executes both the user applications
and the signaling stack


This has allowed
Symbian

EKA2 phones to become smaller, cheaper and more
power efficient than their predecessors

Symbian

System Model


The
Symbian

System Model contains the following layers,
from top to bottom:


UI Framework Layer


Application Services Layer


Java ME


OS Services Layer


generic OS services


communications services


multimedia and graphics services


connectivity services


Base Services Layer


Kernel Services & Hardware Interface Layer


Developing on
Symbian

OS


Qt


Symbian

C++


Python


Java ME


Flash
Lite


Ruby


.NET


Standard C/C++



Deployment


Applications must be
Symbian

Signed for
Symbian

OS 9.x in order to make use
of certain capabilities (system capabilities, restricted capabilities and device
manufacturer capabilities).


Applications not using these capabilities (including only requiring user
capabilities) can instead be self
-
signed for free.