17.06.2013 Views

TI Android Development - Wind River

TI Android Development - Wind River

TI Android Development - Wind River

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>TI</strong> and android beyond mobile<br />

Version 3.0<br />

Nov 15, 2011<br />

Olivier MELLIN – o-mellin@ti.com


<strong>Android</strong> Overview


What is <strong>Android</strong>?<br />

• First open, complete, and free platform created<br />

specifically for mobile devices<br />

• Software stack includes<br />

– operating system<br />

– middleware<br />

– key applications.<br />

• New applications can be built easily and access<br />

device‘s capabilities (contacts, wifi etc)


Benefits of <strong>Android</strong><br />

• Attractive Licensing<br />

– all core packages are open sourced (Apache 2.0 license)<br />

– usage of the source code for commercial<br />

• Open Source Software<br />

– leverages existing open-source projects<br />

– maintains and manages the sources<br />

– Many hardware-component vendors have decided to provide source code for specific drivers<br />

• Large eco-system<br />

– one of the largest developer community<br />

• not only application layer content (more than 100,000 applications are available)<br />

• but also <strong>Android</strong> middleware components<br />

• Committed Roadmap<br />

– <strong>Android</strong> has a relatively frequent major releases and a well maintained roadmap.<br />

• Unlimited Documentation<br />

– The <strong>Android</strong> community offers a wide variety of instruction content, helps reducing learning<br />

curve


<strong>TI</strong>’s <strong>Android</strong> Positioning


Largest portfolio of Embedded Processors<br />

Microcontrollers (MCUs) ARM ® -based Processors<br />

16-bit ultralow<br />

power<br />

MCUs<br />

MSP430 <br />

<strong>TI</strong> MCU<br />

32-bit<br />

real-time<br />

MCUs<br />

C2000 <br />

Delfino <br />

Piccolo <br />

32-bit ARM<br />

Cortex-M3<br />

MCUs<br />

ARM9/ARM<br />

Cortex-A8<br />

MPUs<br />

(supports<br />

HLOS)<br />

Applicationspecific<br />

processors<br />

(supports<br />

HLOS)<br />

Sitara OMAP <strong>Android</strong> SDK<br />

DaVinci<br />

Video<br />

Processors<br />

mobile<br />

application<br />

processors<br />

Low-power<br />

fixed-point<br />

DSPs<br />

Stellaris ® C5000 <br />

ARM<br />

Cortex M3<br />

MPUs – Microprocessors; HLOS - High-Level Operating System<br />

<strong>TI</strong> Embedded Processors<br />

ARM 9 /<br />

Cortex A8<br />

Accelerator<br />

NO DSP<br />

ARM 9 /<br />

Cortex A8<br />

Accelerator<br />

DSP<br />

Digital Signal Processors (DSPs)<br />

High-perf<br />

fixed/<br />

floatingpoint<br />

DSPs<br />

C6000 <br />

<strong>TI</strong> DSP<br />

No ARM<br />

Multi-core<br />

DSPs<br />

C64xx<br />

C66xx


ARM device positioning<br />

OMAP Smart Phones, MIDs, etc<br />

Davinci<br />

Sitara<br />

Stellaris<br />

OMAP<br />

Davinci - DM<br />

Video Centric Devices<br />

Sitara - AM<br />

ARM Only Applications<br />

Industrial, Instrumentation, medical<br />

Low Power MCU Applications


<strong>TI</strong> <strong>Android</strong> market view<br />

<strong>Android</strong> architecture is<br />

intended to solve the<br />

software issues for<br />

mobile devices<br />

Very traditional<br />

OMAP<br />

Davinci<br />

Semi - traditional<br />

<strong>Android</strong> architecture is readily<br />

applied into Semi-traditional<br />

devices like MID, Video Conf<br />

apps, etc<br />

The <strong>Android</strong> architecture is<br />

flexible enough that it is getting<br />

used in unconventional products<br />

like Rugged PDA, Medical UI,<br />

Industrial devices etc<br />

Unconventional<br />

Sitara <br />

Integra<br />

8


Introducing <strong>TI</strong> <strong>Android</strong> DevKit<br />

Explain <strong>Android</strong> Stack and <strong>TI</strong>’s responsibility<br />

What <strong>TI</strong> adds in <strong>Android</strong><br />

<strong>Development</strong> and release model


Where & how <strong>TI</strong> operate in <strong>Android</strong> Stack ?<br />

System wide tasks<br />

for <strong>TI</strong> include<br />

- Validation /<br />

System testing<br />

- Benchmarking<br />

- Get <strong>Android</strong> CTS<br />

- Design solution<br />

to customer<br />

problems (NDK,<br />

apps, etc)<br />

- Collaterals<br />

- OOB<br />

- Package and<br />

release <strong>TI</strong> DevKit<br />

- <strong>Android</strong> provides<br />

Std. phone apps<br />

- <strong>Android</strong> Market<br />

provides more apps<br />

- <strong>TI</strong> will enable &<br />

support framework’s<br />

based on customer<br />

needs<br />

Our “<strong>TI</strong>” main FOCUS<br />

- Implement HAL<br />

- Port Linux Device<br />

Drivers<br />

- Integrate SGX<br />

drivers, Flash<br />

libraries, etc<br />

- Provide Boot<br />

loader, docs, tests


Linux Kernel flow in SDK vs <strong>Android</strong> <strong>Development</strong> flow<br />

linux.omap@vger.kernel.org<br />

2.6.32<br />

<strong>Android</strong> Kernel Path<br />

Linux SDK Kernel Path<br />

Google<br />

<strong>Android</strong><br />

changes<br />

<strong>TI</strong>_psp_kernel.git<br />

PSP 03.00.01.06<br />

android.git.kernel.org<br />

Merge<br />

PSP drivers<br />

Éclair 2.1<br />

FroYo 2.2<br />

Gingerbread<br />

2.3<br />

PSP drivers<br />

rowboat.gitorious.org<br />

Stable<br />

Snapshot<br />

Rowboat changes<br />

will not go to Google / <strong>Android</strong><br />

<strong>TI</strong> <strong>Android</strong> Dev team<br />

<strong>TI</strong> PSP Kernel team<br />

Add <strong>Android</strong><br />

specific <strong>TI</strong> changes<br />

not in PSP Release<br />

<strong>TI</strong> <strong>Android</strong><br />

Gingerbread<br />

2.3 DevKit 1.0


<strong>Development</strong> and Release Model<br />

android.git.kernel.org<br />

FroYo 2.2<br />

Gingerbread<br />

2.3<br />

Gingerbread<br />

2.3<br />

clone<br />

NOTE: <strong>Android</strong> development will be<br />

based on public <strong>Android</strong> releases.<br />

android.git.kernel.org<br />

gitorious/rowboat<br />

release tag x.s<br />

release tag x.t<br />

Community and <strong>TI</strong><br />

contribute to arowboat<br />

OMAP35x, AM35x, AM37x Driver<br />

SGX driver binaries<br />

Bug fixes, value adds<br />

OMAP35x, AM35x, AM37x Driver<br />

Bug fixes, value adds<br />

Based on <strong>TI</strong><br />

requirement spec<br />

<strong>TI</strong> takes a<br />

snapshot<br />

Product testing<br />

Prepare collaterals<br />

Legal analysis<br />

Announcements<br />

Product testing<br />

Prepare collaterals<br />

Legal analysis<br />

Announcements<br />

Supported over<br />

e2e.ti.com<br />

<strong>TI</strong> <strong>Android</strong> GB DevKit V1<br />

March 2011<br />

<strong>TI</strong> HAL <strong>Development</strong> <strong>TI</strong> <strong>Android</strong> GB DevKit V2<br />

June 2011


What do I find on: www.arowboat.org ?<br />

Links<br />

• <strong>Android</strong> SW Roadmap<br />

• <strong>Android</strong> Tool Chain<br />

•<strong>TI</strong> <strong>Android</strong> e2e Forum<br />

• Embedded processor wiki<br />

• Rowboat (www.arowboat.org) – a community<br />

portal for <strong>Android</strong> on <strong>TI</strong> ARM ® Cortex -A8<br />

platforms<br />

– A completely free, open-source project for all<br />

customers, developers, and third parties<br />

• Supported by <strong>TI</strong> <strong>Development</strong> team<br />

– <strong>Android</strong> base port and graphics support available for <strong>TI</strong><br />

EVMs and Community boards (Beagleboard now) on<br />

rowboat.<br />

– Includes: Code (binary and source), WiKi, How-to’s,<br />

links, IRC, FAQs, and more<br />

• <strong>TI</strong> <strong>Android</strong> <strong>Development</strong> Kit<br />

– Derived from rowboat to aid customers development<br />

and out of the box experience.<br />

• Stable periodic snapshots (approx. every 6 months)<br />

available on www.ti.com<br />

• Tested by <strong>TI</strong> quality assurance team<br />

• Include product specific documentation<br />

• Commercial support for <strong>Android</strong> developers<br />

from partners<br />

More…


Sitara <strong>Android</strong> Dev Kit Roadmap<br />

Release<br />

Version 2011 1Q 2011 2Q 2011 3Q 2011 4Q<br />

Device &<br />

Platform<br />

Supported<br />

1<br />

OS<br />

Version<br />

New<br />

Features<br />

DevKit<br />

Schedule<br />

Device Dev Platform Device Dev Platform Device Dev Platform Device Dev Platform<br />

AM37x AM/DM37 EVM<br />

Beagle XM<br />

OMAP3 OMAP35xEVM<br />

Beagle C4<br />

AM37x AM/DM37 EVM<br />

Beagle XM<br />

OMAP3 OMAP35xEVM<br />

Beagle C4<br />

AM37x AM/DM37 EVM<br />

Beagle XM<br />

OMAP3 OMAP35xEVM<br />

Beagle C4<br />

AM37x AM/DM37 EVM<br />

Beagle XM<br />

OMAP3 OMAP35xEVM<br />

Beagle C4<br />

AM35x AM3517EVM AM35x AM3517EVM AM35x AM3517EVM AM35x AM3517EVM<br />

AM389x AM389x EVM AM389x AM389x EVM AM389x AM389x EVM AM389x AM389x EVM<br />

<strong>Android</strong> Froyo(2.2)<br />

Linux Kernel 2.6.32<br />

Connectivity: Ethernet<br />

WLAN, BT (AM37x EVM)<br />

Peripherals: LCD, DVI,<br />

S-video, USB, NAND,<br />

MMC/SD, UART<br />

Framework: OpenGL 3D<br />

SGX acceleration, Flash 10,<br />

Power Management<br />

AM387x AM387x AM387x EVM AM387x AM387x EVM<br />

<strong>Android</strong> Gingerbread (2.3)<br />

Linux Kernel 2.6.37<br />

Connectivity: Ethernet<br />

WLAN, BT (AM37x EVM)<br />

Peripherals: LCD, DVI,<br />

S-video, USB, NAND,<br />

MMC/SD, UART<br />

Framework: OpenGL 3D SGX<br />

acceleration, Flash 10, Power<br />

Management<br />

<strong>Android</strong> Gingerbread(2.3)<br />

Linux Kernel 2.6.37<br />

Connectivity: Ethernet<br />

WLAN, BT (AM37x EVM)<br />

Peripherals: LCD, DVI, Svideo,<br />

USB, NAND, MMC/SD,<br />

UART<br />

PCIe, SATA (AM389x/387x)<br />

Framework: OpenGL 3D SGX<br />

acceleration, Flash 10, Power<br />

Management<br />

AM33x AM33x EVM<br />

<strong>Android</strong> Ice cream (2.4)<br />

Linux Kernel 2.6.39<br />

Connectivity: Ethernet<br />

WLAN, BT (AM37x EVM)<br />

Peripherals: LCD, DVI, S-video,<br />

USB, NAND, MMC/SD, UART<br />

Sensor control (AM33x)<br />

PCIe, SATA (AM389x/387x)<br />

Framework: OpenGL 3D SGX<br />

acceleration, Flash 10, Power<br />

Management<br />

Tools: Fast boot, ADB Tools: Fast boot, ADB Tools: Fast boot, ADB Tools: Fast boot, ADB<br />

Applications:<br />

Camera (Beagle XM),<br />

RowboPERF, Browser,<br />

Media player, Audio out/in<br />

Applications:<br />

Camera (Beagle XM),<br />

RowboPERF, Browser, Media<br />

player, Audio out/in<br />

Applications:<br />

Camera (Beagle XM),<br />

RowboPERF, Browser, Media<br />

player, Audio out/in<br />

Applications:<br />

Camera (Beagle XM),<br />

RowboPERF, Browser, Media<br />

player, Audio out/in<br />

Froyo Jan 31(available) AM35/37x: March 30 AM33x : Oct 30<br />

AM387x and AM389x: April 30 AM37x/AM35x/AM38xx: Sept 30 AM37x/AM35x/AM38xx: Dec 30


DaVinci <strong>Android</strong> Dev Kit Roadmap<br />

Release Version 2011 1Q 2011 2Q 2011 3Q<br />

Device &<br />

Platform<br />

Supported<br />

Device Dev Platform Device Dev Platform Device Dev Platform<br />

DM37x DM3730 EVM DM37x DM3730 EVM DM37x DM3730 EVM<br />

OMAP35x OMAP35xEVM DM816x TMDXEVM8168DDR3<br />

OS Version <strong>Android</strong> Froyo (2.2)<br />

Linux Kernel 2.6.32<br />

New Features<br />

WLAN/BT support, USB MSD<br />

DM37x – Froyo/OpenCore 2.02 multimedia<br />

accelerated on DSP (decode only).<br />

Accelerated MM codebase integrated into DevKit<br />

2.2 on <strong>TI</strong>.com<br />

Audio Codec’s on the ARM®<br />

Media thumbnail generation enabled<br />

Verified with CTS test suite<br />

<strong>Android</strong> MM acceleration built from DVSDK 4.01<br />

DM37x accelerated multimedia verified for:<br />

H.264MP @ D1 resolution<br />

H.264HP @ 720p resolution<br />

MPEG4ASP @ 720p resolution<br />

H.263 – not supported<br />

1 <strong>Android</strong> Dev Kit is developed and supported on the specified EVM platform<br />

<strong>Android</strong> Gingerbread (2.3)<br />

Linux Kernel 2.6.32<br />

Stagefright Multimedia Support<br />

DVSDK 4.01<br />

<strong>Android</strong> Gingerbread (2.3)<br />

Linux Kernel 2.6.37<br />

Stagefright Multimedia Support<br />

Video accelerated on HDVICP-2 (DM81xxdecode<br />

only)<br />

Audio Codec’s on ARM® Audio Codec’s on ARM®<br />

Flash 10 multimedia support Flash 10 multimedia support<br />

Accelerated multimedia at 720P<br />

resolution on DM3730 for:<br />

H.264 - decode<br />

MPEG4 - decode<br />

Accelerated multimedia at 1080P<br />

resolution on DM816x for:<br />

H.264 - decode<br />

MPEG4 - decode<br />

Accelerated multimedia at 720P resolution<br />

on DM3730 for:<br />

H.264 - decode<br />

MPEG4 - decode<br />

Schedule Available Now e/o May 2011 3Q 2011


Debugging <strong>Android</strong> with CCSv5<br />

• CCSv5:<br />

– Eclipse-based (supports all eclipse plugin)<br />

– advanced embedded debug (Linux Aware Debug, Hardware Debugging, Simulation, Profiling, etc from <strong>TI</strong>)<br />

• Eclipse ADT (<strong>Android</strong> <strong>Development</strong> Tools) plugin is supplied by Google<br />

• CCSv5 + ADT - debug Java (<strong>Android</strong> SDK), C/C++ (<strong>Android</strong> NDK), Linux Kernel, DSP, etc<br />

More info here


Out of the Box and Evaluating <strong>TI</strong> <strong>Android</strong><br />

Gingerbread 2.3 DevKit V1.0


Hardware Requirements<br />

• This release of <strong>TI</strong> <strong>Android</strong> GingerBread 2.3<br />

DevKit 1.0 is evaluated on the below given list of<br />

platforms.<br />

– OMAP35x EVM Rev G<br />

– Beagleboard Rev Cx<br />

– AM3517 Evaluation Module Rev C<br />

– AM37x Evaluation Module Rev C<br />

– BeagleBoard XM<br />

• Other Accessories Required<br />

– DVI Monitor, USB HUB, USB Keyboard, USB Mouse, Ethernet, UART Cable,<br />

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<br />

Hardware (DSP) Accelerated decoding on DM3730<br />

Support MPEG4 ASP and H.264 MP/HP 720P decoding on DM3730


WL1271 on AM37x<br />

Get connected<br />

Go Wireless….<br />

COMING UP – WIFI direct !<br />

Obtain IP address<br />

Browse


Connected<br />

Bluetooth<br />

COMING UP – BLE !<br />

Pairing


The <strong>TI</strong> <strong>Android</strong> GingerBread 2.3 DevKit 1.0 Sources and Tools<br />

<strong>Android</strong> Debugging and Developing<br />

<strong>Android</strong> Building and Flashing<br />

Refer to Developer Guide at<br />

http://processors.wiki.ti.com/index.php/<strong>TI</strong>-<strong>Android</strong>-GingerBread-<br />

2.3-DevKit-1.0_DeveloperGuide<br />

<strong>Android</strong> Porting<br />

Refer to Porting Guides at<br />

http://processors.wiki.ti.com/index.php/<strong>TI</strong>-<strong>Android</strong>-GingerBread-<br />

2.3-DevKit-1.0_Porting_Guides


Quick Links<br />

• For Support, post your questions to :<br />

http://e2e.ti.com/android<br />

http://groups.google.com/group/rowboat<br />

• For updates, roadmap and FAQ<br />

http://processors.wiki.ti.com/index.php/<strong>Android</strong><br />

or<br />

• <strong>Android</strong> Community for <strong>TI</strong> devices<br />

http://arowboat.org<br />

Visit http://e2e.ti.com/android


Thanks to<br />

arowboat.org …!


Evaluating DevKit<br />

RowboPerf<br />

• RowboPerf is a collection of Demo and Benchmark applications<br />

• It contains the following Benchmark applications<br />

– 0xbench<br />

– Arm Benchmarks<br />

– rowboatBench<br />

– 3D Demos<br />

– Storage IO<br />

• For detailed information please refer to rowboperf user guide<br />

at http://processors.wiki.ti.com/index.php/RowboPERF_User_Guide<br />

• The performance numbers for this release is documented at<br />

http://processors.wiki.ti.com/index.php/<strong>Android</strong>_Benchmarks_DevKit2.3


Booting Methods<br />

Running Configuring Applications<br />

Refer to UserGuide at<br />

http://processors.wiki.ti.com/index.php/<strong>TI</strong>-<br />

<strong>Android</strong>-GingerBread-2.3-DevKit-1.0_UserGuide


How <strong>Android</strong> is being Developed?<br />

• At any given moment, there is a current latest release of the <strong>Android</strong><br />

platform. This typically takes the form of a branch in the android<br />

trees at <strong>Android</strong> Open Source Project AOSP.<br />

• Device builders and Contributors work with the current latest<br />

release, fixing bugs, launching new devices, experimenting with new<br />

features, and so on.<br />

• In parallel, Along with many partners (Open Handset Alliance) Google<br />

works internally on the next version of the <strong>Android</strong> platform and<br />

framework, working according to the product's needs and goals.<br />

• When the "n+1"th version is internally ready, it will be published to<br />

the AOSP, and become the new latest release.


Linux SDK 4.0 Stack<br />

The block below diagram explains <strong>TI</strong>’s Linux offering on Sitara family of Processors


Difference between <strong>Android</strong> DevKit & Linux SDK<br />

Dalvik (Java) based applications<br />

and UI Layer<br />

<strong>Android</strong> Framework<br />

BIONIC LIBRARY<br />

<strong>Android</strong> Kernel Changes<br />

+<br />

<strong>Android</strong> Driver Patches<br />

SOC<br />

Target Board<br />

<br />

<br />


<strong>Android</strong> Dev Kit Release plan – Sitara AM3x<br />

33<br />

<strong>TI</strong> <strong>Android</strong> FroYo DevKit<br />

v2.2 GA<br />

Jan 30 2011<br />

OMAP35x, AM35x, AM37x<br />

• Kernel version 2.6.32<br />

• Flash 10 support<br />

• WLAN, Bluetooth<br />

• Power Management<br />

• Boot time optimization<br />

• Fast boot<br />

• Camera<br />

• Validation<br />

• OOB demos<br />

• Documentation<br />

• Stagefright based Multimedia<br />

• OOB Demos<br />

• Documentation<br />

<strong>TI</strong> <strong>Android</strong> GingerBread<br />

2.3 DevKit 1.0 EA<br />

March 30 2011<br />

OMAP35x, AM35x, AM37x<br />

Kernel version 2.6.32<br />

• SGX integration for<br />

Gingerbread<br />

• Power Management<br />

additional Features DVFS,<br />

CPU Idle<br />

• Video Capture on Beagle<br />

Platform<br />

• Bluetooth Additional<br />

Features: AVRCP, Hands<br />

Free Profiles<br />

• Mouse Cursor<br />

Implementation<br />

11/15/2011<br />

<strong>TI</strong> <strong>Android</strong> GingerBread<br />

2.3 DevKit 2.1 GA<br />

June 30 2011<br />

OMAP35x, AM35x, AM37x<br />

• Kernel version 2.6.37<br />

• SGX Drivers<br />

• Video Capture<br />

• Boot Time Optimization<br />

• Hardware Overlay Support<br />

• WLAN<br />

• Bluetooth<br />

• NAND UBIFS<br />

• Fastboot<br />

• Power Management<br />

• Flash 10.2<br />

• Mouse cursor


<strong>Android</strong> Dev Kit Release plan for AM389x<br />

34<br />

<strong>Android</strong> Dev Kit (on rowboat)<br />

FroYo (2.2)<br />

Nov 30 2010<br />

ON ROWBOAT GIT TREE<br />

AM389x<br />

Kernel version 2.6.32<br />

Key drivers: Ethernet, USB<br />

Host, HDMI, HDCOMP,<br />

SD/MMC etc<br />

SGX OpenGL ES Integration to<br />

<strong>Android</strong><br />

ADB Application downloader<br />

and debugger<br />

Benchmarking suite<br />

Out of the Box (OOB) demos<br />

Documentation: Guidelines,<br />

User guide etc<br />

<strong>TI</strong> <strong>Android</strong> GingerBread 2.3<br />

Dev Kit 2.0<br />

April 30 2011<br />

AM389x, AM387x<br />

<strong>TI</strong> <strong>Android</strong> DevKit<br />

Kernel version 2.6.37<br />

• <strong>Android</strong> 2.3 Gingerbread<br />

• SGX ddk 1.7 integration<br />

• Adobe Flash 10.2 support<br />

• HDMI (1080p UI)<br />

• Gigabit Ethernet<br />

• PCIe<br />

• SATA<br />

• USB<br />

• Composite Out<br />

• MMC/SD card<br />

• OOB Demos<br />

• Mouse Cursor Integration<br />

• Documentation<br />

11/15/2011

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!