TI Android Development - Wind River
TI Android Development - Wind River
TI Android Development - Wind River
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