TI Android Development

fansbutterflyMobile - Wireless

Jul 19, 2012 (4 years and 11 months ago)

867 views

TI and android beyond mobile
Olivier MELLIN

o
-
mellin@ti.com
Version 3.0
Nov 15, 2011
Android Overview
What is Android?

First open, complete, and free platform created
specifically for mobile devices

Software stack includes

operating system

middleware

key applications.

New applications can be built easily and access
device‘s capabilities (contacts, wifi etc)
Benefits of Android

Attractive Licensing

all core packages are open sourced (Apache 2.0 license)

usage of the source code for commercial

Open Source Software

leverages existing open
-
source projects

maintains and manages the sources

Many hardware
-
component vendors have decided to provide source code for specific drivers

Large eco
-
system

one of the largest developer community

not only application layer content (more than 100,000 applications are available)

but also Android middleware components

Committed Roadmap

Android has a relatively frequent major releases and a well maintained roadmap.

Unlimited Documentation

The Android community offers a wide variety of instruction content, helps reducing learning
curve
TI’s Android Positioning
Largest portfolio of Embedded Processors
32
-
bit
real
-
time
MCUs
32
-
bit ARM
Cortex

-
M3
MCUs
16
-
bit ultra
-
low power
MCUs
High
-
perf
fixed/
floating
-
point DSPs
ARM9/ARM
Cortex
-
A8
MPUs
(supports
HLOS)
Low
-
power
fixed
-
point
DSPs
Multi
-
core
DSPs
Stellaris
®
C5000

C64xx
C66xx
MSP430

C2000

Delfino

Piccolo

Sitara

Application
-
specific
processors
(supports
HLOS)
OMAP

mobile
application
processors
C6000

DaVinci™
Video
Processors
Digital Signal Processors (DSPs)
Microcontrollers (MCUs)
ARM
®
-
based Processors
TI Embedded Processors
Android SDK
MPUs

Microprocessors; HLOS
-
High
-
Level Operating System
TI MCU
TI DSP
No ARM
ARM
Cortex M3
ARM 9 /
Cortex A8
Accelerator
NO DSP
ARM 9 /
Cortex A8
Accelerator
DSP
ARM device positioning
Stellaris
Davinci
OMAP
Smart Phones, MIDs, etc
Video Centric Devices
ARM Only Applications
Industrial, Instrumentation, medical
Low Power MCU Applications
OMAP™
Davinci™
-
DM
Sitara™
-
AM
Sitara
8
TI Android market view
Very traditional
Semi
-
traditional
Unconventional
The Android architecture is
flexible enough that it is getting
used in unconventional products
like Rugged PDA, Medical UI,
Industrial devices etc
Android architecture is
intended to solve the
software issues for
mobile devices
Android architecture is readily
applied into Semi
-
traditional
devices like MID, Video Conf
apps, etc
Davinci™
Sitara ™
Integra™
OMAP™
Introducing TI Android DevKit

Explain Android Stack and TI’s responsibility

What TI adds in Android

Development and release model
-
Android provides
Std. phone apps
-
Android Market
provides more apps
Our “TI” main FOCUS
-
Implement HAL
-
Port Linux Device
Drivers
-
Integrate SGX
drivers, Flash
libraries, etc
-
Provide Boot
loader, docs, tests
-
TI will enable &
support framework’s
based on customer
needs
System wide tasks
for TI include
-
Validation /
System testing
-
Benchmarking
-
Get Android CTS
-
Design solution
to customer
problems (NDK,
apps, etc)
-
Collaterals
-
OOB
-
Package and
release TI DevKit
Where & how TI operate in Android Stack ?
Linux Kernel flow in SDK
vs
Android Development flow
linux.omap@vger.kernel.org
TI_psp_kernel.git
android.git.kernel.org
rowboat.gitorious.org
2.6.32
PSP 03.00.01.06
Éclair 2.1
Google
Android
changes
TI Android
Gingerbread
2.3 DevKit 1.0
Stable
Snapshot
PSP drivers
Add Android
specific TI changes
not in PSP Release
Merge
PSP drivers
Rowboat changes
will not go to Google / Android
Android Kernel Path
Linux SDK Kernel Path
TI Android Dev team
TI PSP Kernel team
FroYo 2.2
Gingerbread
2.3
android.git.kernel.org
android.git.kernel.org
FroYo 2.2
Gingerbread
2.3
Gingerbread
2.3
android.git.kernel.org
gitorious/rowboat
OMAP35x, AM35x, AM37x Driver
SGX driver binaries
Based on TI
requirement spec
release tag x.s
Product testing
Prepare collaterals
Legal analysis
Announcements
TI Android GB
DevKit
V1
March 2011
Product testing
Prepare collaterals
Legal analysis
Announcements
Bug fixes, value adds
NOTE: Android development will be
based on public Android releases.
clone
Supported over
e2e.ti.com
TI takes a
snapshot
release tag x.t
OMAP35x, AM35x, AM37x Driver
Bug fixes, value adds
TI HAL Development
TI Android GB DevKit V2
June 2011
Community and TI
contribute to arowboat
Development and Release Model
What do I find on:
www.arowboat.org
?

Rowboat (
www.arowboat.org
)

a community
portal for Android on TI ARM
®
Cortex

-
A8
platforms

A completely free, open
-
source project for all
customers, developers, and third parties

Supported by TI Development team

Android base port and graphics support available for TI
EVMs and Community boards (Beagleboard now) on
rowboat.

Includes: Code (binary and source),
WiKi
, How
-
to’s
,
links, IRC, FAQs, and more

TI Android Development Kit

Derived from rowboat to aid customers development
and out of the box experience.

Stable periodic snapshots (approx. every 6 months)
available on
www.ti.com

Tested by TI quality assurance team

Include product specific documentation

Commercial support for Android developers
from partners
Links

Android SW Roadmap

Android Tool Chain

TI Android e2e Forum

E
mbedded processor wiki
More…
Sitara

Android

Dev Kit Roadmap
Release
Version
2011 1Q
2011 2Q
2011 3Q
2011 4Q
Device &
Platform
Supported
1
Device
Dev Platform
Device
Dev Platform
Device
Dev Platform
Device
Dev Platform
AM37x
AM/DM37 EVM
Beagle XM
AM37x
AM/DM37 EVM
Beagle XM
AM37x
AM/DM37 EVM
Beagle XM
AM37x
AM/DM37 EVM
Beagle XM
OMAP3
OMAP35xEVM
Beagle C4
OMAP3
OMAP35xEVM
Beagle C4
OMAP3
OMAP35xEVM
Beagle C4
OMAP3
OMAP35xEVM
Beagle C4
AM35x
AM3517EVM
AM35x
AM3517EVM
AM35x
AM3517EVM
AM35x
AM3517EVM
AM389x
AM389x EVM
AM389x
AM389x EVM
AM389x
AM389x EVM
AM389x
AM389x EVM
AM387x
AM387x
AM387x EVM
AM387x
AM387x EVM
AM33x
AM33x EVM
OS
Version
Android Froyo(2.2)
Linux Kernel 2.6.32
Android Gingerbread (2.3)
Linux Kernel 2.6.37
Android Gingerbread(2.3)
Linux Kernel 2.6.37
Android Ice cream (2.4)
Linux Kernel 2.6.39
Connectivity:
Ethernet
WLAN, BT (AM37x EVM)
Connectivity:
Ethernet
WLAN, BT (AM37x EVM)
Connectivity:
Ethernet
WLAN, BT (AM37x EVM)
Connectivity:
Ethernet
WLAN, BT (AM37x EVM)
Peripherals:
LCD, DVI,
S
-
video, USB, NAND,
MMC/SD, UART
Peripherals:
LCD, DVI,
S
-
video, USB, NAND,
MMC/SD, UART
Peripherals:
LCD, DVI, S
-
video, USB, NAND, MMC/SD,
UART
PCIe, SATA (AM389x/387x)
Peripherals:
LCD, DVI, S
-
video,
USB, NAND, MMC/SD, UART
Sensor control (AM33x)
PCIe, SATA (AM389x/387x)
New
Features
Framework:
OpenGL 3D
SGX acceleration, Flash 10,
Power Management
Framework:
OpenGL 3D SGX
acceleration, Flash 10, Power
Management
Framework:
OpenGL 3D SGX
acceleration, Flash 10, Power
Management
Framework:
OpenGL 3D SGX
acceleration, Flash 10, Power
Management
Tools:
Fast boot, ADB
Tools:
Fast boot, ADB
Tools:
Fast boot, ADB
Tools:
Fast boot, ADB
Applications:
Camera (Beagle XM),
RowboPERF, Browser,
Media player, Audio out/in
Applications:
Camera (Beagle XM),
RowboPERF, Browser, Media
player, Audio out/in
Applications:
Camera (Beagle XM),
RowboPERF, Browser, Media
player, Audio out/in
Applications:
Camera (Beagle XM),
RowboPERF, Browser, Media
player, Audio out/in
DevKit
Schedule
Froyo Jan 31
(available)
AM35/37x: March 30
AM33x : Oct 30
AM387x and AM389x: April 30
AM37x/AM35x/AM38xx: Sept 30
AM37x/AM35x/AM38xx: Dec 30
DaVinci

Android

Dev Kit Roadmap
1
Android Dev Kit is developed and supported on the specified EVM platform
Release Version
2011 1Q
2011 2Q
2011 3Q
Device &
Platform
Supported
Device
Dev Platform
Device
Dev Platform
Device
Dev Platform
DM37x
DM3730 EVM
DM37x
DM3730 EVM
DM37x
DM3730 EVM
OMAP35x
OMAP35xEVM
DM816x
TMDXEVM8168DDR3
OS Version
Android Froyo (2.2)
Linux Kernel 2.6.32
Android Gingerbread (2.3)
Linux Kernel 2.6.32
Android Gingerbread (2.3)
Linux Kernel 2.6.37
New Features
WLAN/BT support,
USB MSD
DM37x

Froyo/OpenCore 2.02 multimedia
accelerated on DSP (decode only).
Accelerated MM codebase integrated into DevKit
2.2 on TI.com
Stagefright Multimedia Support
DVSDK 4.01
Stagefright Multimedia Support
Video accelerated on HDVICP
-
2 (DM81xx
-
decode only)
Audio Codec’s on the ARM®
Media thumbnail generation enabled
Verified with CTS test suite
Android MM acceleration built from DVSDK 4.01
Audio Codec’s on ARM®
Audio Codec’s on ARM®
Flash 10 multimedia support
Flash 10 multimedia support
DM37x accelerated multimedia verified for:
H.264MP @ D1 resolution
H.264HP @ 720p resolution
MPEG4ASP @ 720p resolution
H.263

not supported
Accelerated multimedia at 720P
resolution on DM3730 for:
H.264
-
decode
MPEG4
-
decode
Accelerated multimedia at 1080P
resolution on DM816x for:
H.264
-
decode
MPEG4
-
decode
Accelerated multimedia at 720P resolution
on DM3730 for:
H.264
-
decode
MPEG4
-
decode
Schedule
Available Now
e/o May 2011
3Q 2011
Debugging Android with CCSv5

CCSv5:

Eclipse
-
based (supports all eclipse plugin)

advanced embedded debug (Linux Aware Debug, Hardware Debugging, Simulation, Profiling, etc from TI)

Eclipse ADT (Android Development Tools) plugin is supplied by Google

CCSv5 + ADT
-
debug Java (Android SDK), C/C++ (Android NDK), Linux Kernel, DSP, etc
More info
here
Out of the Box and Evaluating TI Android
Gingerbread 2.3 DevKit V1.0
Hardware Requirements

This release of TI Android GingerBread 2.3
DevKit 1.0 is evaluated on the below given list of
platforms.

OMAP35x EVM
Rev G

Beagleboard
Rev Cx

AM3517 Evaluation Module
Rev C

AM37x Evaluation Module
Rev C

BeagleBoard
XM

Other Accessories Required

DVI Monitor, USB HUB, USB Keyboard, USB Mouse, Ethernet, UART Cable,
Audio Speakers, MMC/SD Card (2GB min)
Quick Tour … Browser, Apps, Performance
Quick Tour … Gallery / Media Playback
BeagleXM scans Barcode & QR code
Enjoy MPEG4/H.264
720P
Video
Hardware (DSP) Accelerated decoding on DM3730
Support MPEG4 ASP and H.264 MP/HP 720P decoding on DM3730
Go Wireless….
WL1271 on AM37x
Obtain IP address
Get connected
Browse
COMING UP

WIFI direct !
Bluetooth™
Pairing
Connected
COMING UP

BLE !
The
TI Android GingerBread 2.3 DevKit 1.0 Sources and Tools

Android Debugging and Developing

Android Building and Flashing
Refer to Developer Guide at
http://processors.wiki.ti.com/index.php/TI
-
Android
-
GingerBread
-
2.3
-
DevKit
-
1.0_DeveloperGuide

Android Porting
Refer to Porting Guides at
http://processors.wiki.ti.com/index.php/TI
-
Android
-
GingerBread
-
2.3
-
DevKit
-
1.0_Porting_Guides
Quick Links
http://e2e.ti.com/android

For updates, roadmap and FAQ
http://processors.wiki.ti.com/index.php/Android
http://groups.google.com/group/rowboat

For Support, post your questions to :
or

Android Community for TI devices
http://arowboat.org
Visit http://e2e.ti.com/android
Thanks to
arowboat.org
…!
Evaluating DevKit
RowboPerf

RowboPerf is a collection of Demo and Benchmark applications

It contains the following Benchmark applications

0xbench

Arm Benchmarks

rowboatBench

3D Demos

Storage IO

For detailed information please refer to rowboperf user guide
at
http://processors.wiki.ti.com/index.php/RowboPERF_User_Guide

The performance numbers for this release is documented at
http://processors.wiki.ti.com/index.php/Android_Benchmarks_DevKit2.3
Booting Methods
Running Configuring Applications
Refer to UserGuide at
http://processors.wiki.ti.com/index.php/TI
-
Android
-
GingerBread
-
2.3
-
DevKit
-
1.0_UserGuide
How Android is being Developed?

At any given moment, there is a
current latest release
of the Android
platform. This typically takes the form of a branch in the android
trees at Android Open Source Project
AOSP
.

Device builders and Contributors work with the
current latest
release
, fixing bugs, launching new devices, experimenting with new
features, and so on.

In parallel, Along with many partners (
Open Handset Alliance
) Google
works internally on the next version of the Android platform and
framework, working according to the product's needs and goals.

When the "n+1"th version is internally ready, it will be published to
the
AOSP
, and become the new latest release.
Linux SDK 4.0 Stack
The block below diagram explains TI’s Linux offering on Sitara™ family of Processors
Difference between Android DevKit & Linux SDK





Android Kernel Changes
+
Android Driver Patches
SOC
Target Board
Android Framework
BIONIC LIBRARY
Dalvik (Java) based applications
and UI Layer
Android Dev Kit Release plan

Sitara™ AM3x
11/15/2011
33
TI Android FroYo DevKit
v2.2 GA
Jan 30 2011
TI Android
GingerBread
2.3
DevKit
2.1 GA
June 30 2011

OMAP35x, AM35x, AM37x

Kernel version 2.6.32

SGX integration for
Gingerbread

Power Management
additional Features DVFS,
CPU Idle

Video Capture on Beagle
Platform

Bluetooth Additional
Features: AVRCP, Hands
Free Profiles

Mouse Cursor
Implementation

OMAP35x, AM35x, AM37x

Kernel version 2.6.37

SGX Drivers

Video Capture

Boot Time Optimization

Hardware Overlay Support

WLAN

Bluetooth

NAND UBIFS

Fastboot

Power Management

Flash 10.2

Mouse cursor
TI Android GingerBread
2.3 DevKit 1.0 EA
March 30 2011

OMAP35x, AM35x, AM37x

Kernel version 2.6.32

Flash 10 support

WLAN, Bluetooth

Power Management

Boot time optimization

Fast boot

Camera

Validation

OOB demos

Documentation

Stagefright based Multimedia

OOB Demos

Documentation
Android Dev Kit Release plan for AM389x
11/15/2011
34
Android Dev Kit (on rowboat)
FroYo (2.2)
Nov 30 2010

AM389x, AM387x

TI Android DevKit

Kernel version 2.6.37

Android 2.3 Gingerbread

SGX ddk 1.7 integration

Adobe Flash 10.2 support

HDMI (1080p UI)

Gigabit Ethernet

PCIe

SATA

USB

Composite Out

MMC/SD card

OOB Demos

Mouse Cursor Integration

Documentation
TI Android GingerBread 2.3
Dev Kit 2.0
April 30 2011

ON ROWBOAT GIT TREE

AM389x

Kernel version 2.6.32

Key drivers: Ethernet, USB
Host, HDMI, HDCOMP,
SD/MMC etc

SGX OpenGL ES Integration to
Android

ADB Application downloader
and debugger

Benchmarking suite

Out of the Box (OOB) demos

Documentation: Guidelines,
User guide etc