TI Android Development
Transcription
TI Android Development
TI and android beyond mobile Version 3.0 Nov 15, 2011 Olivier MELLIN – o-mellin@ti.com 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 linux.omap@vger.kernel.org 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