TI Android Development

Transcription

TI Android Development
TI and android beyond mobile
Version 3.0
Nov 15, 2011
Olivier MELLIN – [email protected]
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
TI Embedded Processors
Microcontrollers (MCUs)
16-bit ultralow power
MCUs
32-bit
real-time
MCUs
ARM®-based Processors
ARM9/ARM
32-bit ARM
Cortex-A8
Cortex™-M3
MPUs
MCUs
(supports
HLOS)
Applicationspecific
processors
(supports
HLOS)
Digital Signal Processors (DSPs)
Low-power
fixed-point
DSPs
High-perf
fixed/
floatingpoint DSPs
Multi-core
DSPs
Android SDK
MSP430™
C2000™
Delfino™
Piccolo™
Stellaris®
Sitara™
DaVinci™
Video
Processors
OMAP™
mobile
application
processors
C5000™
C6000™
TI MCU
ARM
Cortex M3
MPUs – Microprocessors; HLOS - High-Level Operating System
ARM 9 /
Cortex A8
Accelerator
NO DSP
ARM 9 /
Cortex A8
Accelerator
DSP
TI DSP
No ARM
C64xx
C66xx
ARM device positioning
OMAP™
OMAP
Smart Phones, MIDs, etc
Davinci™ - DM
Davinci
Video Centric Devices
Sitara™ - AM
Sitara
Stellaris
ARM Only Applications
Industrial, Instrumentation, medical
Low Power MCU Applications
TI Android market view
Davinci™
Android architecture is
intended to solve the
software issues for
mobile devices
The Android architecture is
flexible enough that it is getting
used in unconventional products
like Rugged PDA, Medical UI,
Industrial devices etc
Unconventional
Semi - traditional
Very traditional
Android architecture is readily
applied into Semi-traditional
devices like MID, Video Conf
apps, etc
Sitara ™
Integra™
OMAP™
8
Introducing TI Android DevKit
 Explain Android Stack and TI’s responsibility
 What TI adds in Android
 Development and release model
Where & how TI operate in Android Stack ?
System wide tasks
for TI include
- Android provides
Std. phone apps
- Android Market
provides more apps
- Validation /
System testing
- Benchmarking
- Get Android CTS
- Design solution
to customer
problems (NDK,
apps, etc)
- Collaterals
- OOB
- Package and
release TI DevKit
- TI will enable &
support framework’s
based on customer
needs
Our “TI” main FOCUS
- Implement HAL
- Port Linux Device
Drivers
- Integrate SGX
drivers, Flash
libraries, etc
- Provide Boot
loader, docs, tests
Linux Kernel flow in SDK vs Android Development flow
TI Android Dev team
TI PSP Kernel team
TI_psp_kernel.git
PSP drivers
PSP 03.00.01.06
rowboat.gitorious.org
[email protected]
Merge
PSP drivers
2.6.32
Add Android
specific TI changes
not in PSP Release
android.git.kernel.org
Éclair 2.1
FroYo 2.2
Stable
Snapshot
TI Android
Gingerbread
2.3 DevKit 1.0
Gingerbread
2.3
Google
Android
changes
Android Kernel Path
Linux SDK Kernel Path
Rowboat changes
will not go to Google / Android
Development and Release Model
android.git.kernel.org
android.git.kernel.org
android.git.kernel.org
gitorious/rowboat
FroYo 2.2
Community and TI
contribute to arowboat
Based on TI
requirement spec
clone
OMAP35x, AM35x, AM37x Driver
Gingerbread
2.3
SGX driver binaries
TI takes a
snapshot
Supported over
e2e.ti.com
Bug fixes, value adds
Gingerbread
2.3
TI Android GB DevKit V1
March 2011
release tag x.s
OMAP35x, AM35x, AM37x Driver
Bug fixes, value adds
TI HAL Development
Product testing
Prepare collaterals
Legal analysis
Announcements
release tag x.t
NOTE: Android development will be
based on public Android releases.
Product testing
Prepare collaterals
Legal analysis
Announcements
TI Android GB DevKit V2
June 2011
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
Links
• Android SW Roadmap
• Android Tool Chain
•TI Android e2e Forum
• Embedded processor wiki
– 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
More…
Sitara™ Android™ Dev Kit Roadmap
Release
Version
Device &
Platform
Supported
1
2011 1Q
2011 2Q
New
Features
DevKit
Schedule
2011 4Q
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 EVM
AM387x
AM387x EVM
AM33x
AM33x EVM
AM387x
OS
Version
2011 3Q
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, Svideo, 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)
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
Froyo Jan 31(available)
AM33x : Oct 30
AM35/37x: March 30
AM387x and AM389x: April 30
AM37x/AM35x/AM38xx: Sept 30
AM37x/AM35x/AM38xx: Dec 30
DaVinci™ Android™ Dev Kit Roadmap
Release Version
Device &
Platform
Supported
OS Version
New Features
2011 1Q
Device
Dev Platform
DM37x
DM3730 EVM
OMAP35x
OMAP35xEVM
2011 2Q
Device
Dev Platform
DM37x
DM3730 EVM
Device
DM37x
DM816x
2011 3Q
Dev Platform
DM3730 EVM
TMDXEVM8168DDR3
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
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
Audio Codec’s on the ARM®
Media thumbnail generation enabled
Verified with CTS test suite
Android MM acceleration built from DVSDK 4.01
Stagefright Multimedia Support
DVSDK 4.01
Stagefright Multimedia Support
Video accelerated on HDVICP-2 (DM81xxdecode only)
Audio Codec’s on ARM®
Audio Codec’s on ARM®
Flash 10 multimedia support
Flash 10 multimedia support
DM37x accelerated multimedia verified for: Accelerated multimedia at 720P
Accelerated multimedia at 1080P
H.264MP @ D1 resolution
resolution on DM3730 for:
resolution on DM816x for:
H.264HP @ 720p resolution
H.264 - decode
H.264 - decode
MPEG4ASP @ 720p resolution
MPEG4 - decode
MPEG4 - decode
H.263 – not supported
Accelerated multimedia at 720P resolution
on DM3730 for:
H.264 - decode
MPEG4 - decode
Schedule
1
Available Now
Android Dev Kit is developed and supported on the specified EVM platform
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….
Obtain IP address
WL1271 on AM37x
Browse
Get connected
COMING UP – WIFI direct !
Bluetooth™
Connected
COMING UP – BLE !
Pairing
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-GingerBread2.3-DevKit-1.0_DeveloperGuide

Android Porting
Refer to Porting Guides at
http://processors.wiki.ti.com/index.php/TI-Android-GingerBread2.3-DevKit-1.0_Porting_Guides
Quick Links
•
For Support, post your questions to :
http://e2e.ti.com/android
or
http://groups.google.com/group/rowboat
• For updates, roadmap and FAQ
http://processors.wiki.ti.com/index.php/Android
• 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/TIAndroid-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
Dalvik (Java) based applications
and UI Layer

Android Framework
BIONIC LIBRARY
Android Kernel Changes
+
Android Driver Patches

≠
SOC

Target Board

Android Dev Kit Release plan – Sitara™ AM3x
TI Android FroYo DevKit
v2.2 GA
Jan 30 2011

•
•
•
•
•
•
•
•
•
•
•
•
•
33
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
TI Android GingerBread
2.3 DevKit 1.0 EA
March 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
11/15/2011
TI Android GingerBread
2.3 DevKit 2.1 GA
June 30 2011

•
•
•
•
•
•
•
•
•
•
•
•
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
Android Dev Kit Release plan for AM389x
TI Android GingerBread 2.3
Dev Kit 2.0
April 30 2011
Android Dev Kit (on rowboat)
FroYo (2.2)
Nov 30 2010









34
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



•
•
•
•
•
•
•
•
•
•
•
•
•
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
11/15/2011