Introduction to the Sitara Linux SDK

Slides:



Advertisements
Similar presentations
Media Player for the i.MX31 Advanced Embedded Systems Architecture Class Project May 14, 2011 Rafael Castro Ryan Ugland Carlos Cabral.
Advertisements

® IBM Software Group © 2010 IBM Corporation What’s New in Profiling & Code Coverage RAD V8 April 21, 2011 Kathy Chan
U-Boot and Linux Kernel Debug using CCSv5
Introduction to the Sitara Linux SDK In this session we will review the various components of the Sitara Linux Software Development Kit (SDK) including.
Hands-on with the Sitara Linux SDK This presentation provides a hands-on overview of the Sitara Linux SDK. It focuses on the software and tools found in.
29 April 2005 Part B Final Presentation Peripheral Devices For ML310 Board Project name : Spring Semester 2005 Final Presentation Presenting : Erez Cohen.
Mobile Application Development
Author: Texas Instruments ®, Sitara™ ARM ® Processors Building Blocks for PRU Development Module 2 PRU Firmware Development This session covers how to.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Linux Qt Graphical User Interface (GUI) Development In this session, we will cover Qt GUI development tools including: Qt Creator for remote debug and.
Installing software on personal computer
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Linux Cryptography overview and How-to’s using OpenSSL
An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying.
Microsoft ® Application Virtualization 4.6 Infrastructure Planning and Design Published: September 2008 Updated: February 2010.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Android Introduction Platform Overview.
The 6713 DSP Starter Kit (DSK) is a low-cost platform which lets customers evaluate and develop applications for the Texas Instruments C67X DSP family.
U-Boot Debug using CCSv5 In this session we will cover fundamentals necessary to use CCSv5 and a JTAG to debug a TI SDK-based U-Boot on an EVM platform.
Beagleboard and Friends Nathan Gough. Hardware – OMAP3  Based around Texas Instruments OMAP3530 “Applications Processor”  OMAP3 Platform:  Arm Cortex-A8.
Hands-On Microsoft Windows Server 2008
Arago Project Creating an Open Integration and Distribution System William Mills
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
© 2013 IBM Corporation Get started on IBM Linux on Power SDK November 2013.
Neuros Technology July 22, 2008 Tom Bruno
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
ANDROID 응용 프로그래밍 과정 – 목차 - 안드로이드란 - 안드로이드가 만들어지게 된배경 - 안드로이드의 철학 - 안드로이드 환경설정 ( SDK download, eclipse plug-in 설정, 간단한 프로그램 실행 ) - 안드로이드 동작원리 - 안드로이드 핵심.
CHAPTER TEN AUTHORING.
CSC190 Introduction to Computing Operating Systems and Utility Programs.
ChibiOS/RT Demo A free embedded RTOS
Planning Server Deployments Chapter 1. Server Deployment When planning a server deployment for a large enterprise network, the operating system edition.
Android. Android An Open Handset Alliance Project A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google.
Computer Maintenance Software Configuration: Evaluating Software Packages, Software Licensing, and Computer Protection through the Installation and Maintenance.
Introducing MagicInfo Premium S 4.1
INTRO. To I.T Razan N. AlShihabi
ArcGIS for Server Security: Advanced
Voice Controlled Robot by Cell Phone with Android App
Maj Jeffrey Falkinburg Room 2E46E
bitcurator-access-webtools Quick Start Guide
VMware ESX and ESXi Module 3.
Section 2.1 Section 2.2 Identify hardware
Development Environment
© 2002, Cisco Systems, Inc. All rights reserved.
Lab 1: Using NIOS II processor for code execution on FPGA
Computer System Laboratory
Current Generation Hypervisor Type 1 Type 2.
What is Apertis? Apertis is a versatile open source infrastructure tailored to the automotive needs and fit for a wide variety of electronic devices.
Netscape Application Server
Class 1: An Introduction to MCU Software Development
Introduction Purpose Objectives Content Learning Time
VirtualGL.
Introducing MagicInfo Lite I 4.1
Introduction to .NET Framework Ch2 – Deitel’s Book
Introduction to Computers
Using FPGAs with Processors in YOUR Designs
Computer Maintenance Software Configuration: Evaluating Software Packages, Software Licensing, and Computer Protection through the Installation and Maintenance.
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
Chapter 9: IOS Images and Licensing
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
IS3440 Linux Security Unit 7 Securing the Linux Kernel
Topics Introduction Hardware and Software How Computers Store Data
Operating Systems Networking for Home and Small Businesses – Chapter 2 – Introduction To Networking.
bitcurator-access-webtools Quick Start Guide
Introduction to Single Board Computer
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
An Introduction to Operating Systems
Running C# in the browser
From Custom CPU to Hello World in 30 Minutes
Introducing MagicInfo 6
Presentation transcript:

Introduction to the Sitara Linux SDK In this session we will review the various components of the Sitara Linux Software Development Kit (SDK) including the out-of-box application launcher, example applications, SDK installer, setup scripts, Code Composer Studio and other host tools including PinMux Utility and Flash Tool. July 2012

Agenda Sitara SDK Roadmap What is a Software Development Kit (SDK)? Sitara Linux SDK Objectives Sitara Linux SDK Overview SDK Development Process Current SDK Features Downloading the SDK Documentation SDK Target Components Installing the SDK SDK Target Development Tools SDK Host Tools Driving Mainline

What is an SDK? Definitions and solutions vary, but we think an SDK should be…. More than just a board support package (BSP) or a Demo An SDK should also contain tools for developing on TI parts Pre-built libraries that customer applications can link against without requiring building their own Documentation Provide a known good starting point for product development Start with the SDK reference distributions Add and remove packages as needed

Sitara Linux SDK objectives The purpose of the Texas Instruments Sitara Linux SDK is to provide customers with a unique out-of-box experience and a quick path to their application development. The Sitara Linux SDK accomplishes this by providing Example applications for key, high touch IP and peripherals Tools for cross development and environment configuration Host tools for device configuration Documentation of SDK components Out-of-box in < 10 minutes and Development in < 1 hour A unified look and feel scaling across all Sitara devices from ARM9 to Cortex-A8 and beyond

Sitara Linux SDK overview Board Support Package (BSP) Linux Kernel, Bootloaders & File System Documentation Quick Start Guide & SW Developer’s Guide Matrix Application Launcher GUI based on PHP and HTML5 Touchscreen, Mouse & Keyboard, Web Browser Example Applications ARM Benchmarks, Power, Multimedia, Camera, Cryptography, WLAN/Bluetooth, Profiling, 3D Graphics SDK Installer Easy installation of all target and host software components and documentation CCSv5 Linux aware debug Preconfigured projects for example applications Host Tools Flash Tool, PinMux Utility

Sitara Linux SDK overview - Continued Matrix Application Launcher Qt Embedded QWidget QGLWidget OpenGL ES ARM Benchmarks Power Manager Web Browser System Information System on Chip Target Board FBDEV DSS2 McSPI Touch screen Ethernet V4L2 ALSA VISA UART I2C USB McBSP MMC/SD 3D Graphics Gstreamer/FFMPEG MPEG4, H.264, MPEG2, AAC, … Wifi BlueZ USB Profiler WLAN GUI

SDK agile development process Daily Meeting Items completed yesterday? Plans for today? Issues? Nightly Build & Test 2 weeks Nightly Build & Test Daily build using OE Daily tests on dedicated systems using testlink Daily Release Planning Meeting Review Release Cycle Backlog Estimate Release Cycle Backlog Commit to 1-2 weeks Release Review Meeting Demo release to BU Retrospective on the Release Cycle Alpha RC SDK Release Cycles with Prioritized Requirements Beta1 Beta2 Cycle Requirements SDK Release Increments Beta2 Beta1 RC Alpha

Release Candidate (RC) SDK release cycles T0 T0 + 2wks 2wks T0 + 4wks Alpha + 2wks T0 + 6wks Beta1 + 2wks T0 + 7wks Beta2 + 1wk T0 + 8wks RC + 1wk T0 + 9wks SysTest + 1wk Time = 0 PSP recipe received EVMs in hand Alpha (Proto1) Cycle Start Review MRD Complete SDK Req’s Increment SDK version Kickoff Nightly Builds Cycle End Build review Base SDK Requirements Fulfilled Beta1 (Proto2) Cycle Start Review Alpha results Add new features and component updates Cycle End Build review Beta1 Cycle Requirements Fulfilled Beta2 (Proto3) Cycle Start Review Beta1 results Add new features and component updates Final recipes submitted by start of 2nd wk Cycle End Build review Beta2 Cycle Req’s Fulfilled Sign off from Comp Owners Legal, OSRB & GTC approvals Release Candidate (RC) Cycle Start Review Beta 2 results No new features Bug fixes and patches only Stop Nightly Build Create Integration branch Cycle End Build review RC Cycle Req’s Fulfilled Sign off from BU System Test Cycle Start Push RC to System Test for validation Resolve Critical issues only Remove/hide components if necessary Release Note other issues Cycle End Release RC to ti.com & board vendors Re-Integration Integration patches pushed to Arago mainline Occurs after the SDK release. Cycle End Push integration patches back to Arago mainline

Nightly automation overview Open Source Mainlines Arago and OpenEmbedded Next Branches Master Branches Target Tests Publish Build and Test Results to Arago Site Build Next Branches Arago Nightly Build sdit-build01 OpenTest Target Tests Host Tests Release Host Content Build Target Content Build Productize SDK Nightly Build sdit-build01 neo OpenTest

SDK automation flow - Nightly Kernel & FS Components CCSv5 & other Proprietary SW Front End Build Server Arago baseline distro Back End Build Server SDK Installers Release Web Server Push SD Card contents Webgen contents Board Vendor SD Card Contents OpenTest TI.com software-dl & contents Target Tests Host Tests

Obtaining the SDK The Sitara SDK is provided on an SD card in the box with the EVM NOTE: Some boards like the BeagleBoard and BeagleBone may come without the SDK SD card in the box Often you will want to download the latest SDK from ti.com to get updates. There is now a central location for finding all Sitara Linux SDKs at http://www.ti.com/tool/linuxezsdk-sitara

Obtaining the SDK - Continued Each SDK page contains not only the single SDK installer, but also has many individual SDK components pulled out for smaller and quicker downloads Single Installer Individual Components

Documentation - Quick Start Guide

Documentation - Software developer’s guide This guide is a wiki based document hosted externally at http://processors.wiki.ti.com/index.php/Sitara_Linux_Software_Develop er%E2%80%99s_Guide Wiki based for instant updates & access Step by Step details How to start development using this SDK Links to additional documentation such as Component User’s Guides PSP release notes Host system configuration instructions Also provided online and within the SDK as a pdf document

Sitara Linux training There is considerable Linux training material available to our customers as well when using the Sitara Linux SDK. Within the Software Developer’s Guide there is a Sitara Linux Training link that provides both the lecture and lab content All content is licensed under Creative Commons ShareAlike (CC BY-SA v3.0) Example training sessions include: Hands On with Sitara Linux SDK (lecture/lab) Linux Qt GUI Development (lecture/labs) Optimizing Linux Boot Time U-Boot & Linux Kernel Board Port (lecture/labs) And many more…

SDK target components - Matrix Supports: All Platforms Matrix is the out-of-box experience application contained within the SDK and is launched automatically when the development board is booted Matrix is a PHP application running on an instance of the lighttpd web server on the target device and serving up HTML5 content The display is a simple Qt application using webkit to render the HTML being generated Because Matrix is a web application it can also be controlled from remote by connecting to the target board with a modern web browser This provides interaction with the running Linux system even on boards without video display capabilities

Matrix - Continued Matrix can be used to launch applications on the target system The content displayed within the Matrix screen is dynamically created by parsing .desktop files contained within the file system. Applications bring their own description data making adding additional functionality and demos as easy as installing the application Where possible the .desktop fields are based on the standard specified by freedesktop. The rest of the .desktop fields as well as additional information on Matrix can be found at http://processors.wiki.ti.com/index.php/Matrix_Users_Guide

SDK target components - Power Supports: AM37x, Beagleboard-xM Located in the “Power” submenu of matrix The power submenu has applications that show: How to transition between different CPU frequencies Suspend and resume of the device The options available can vary based on the capabilities of the device User’s Guide available at http://processors.wiki.ti.com/index.php/Power_Management_Users_Gui de

SDK target components - MultiMedia Supports: AM335x, AM35x, AM37x, Beagleboard-xM Located in the “Multimedia” submenu Based on Gstreamer media framework Allows building dynamic pipelines that describe the data input, transformation operations, and output. Pipelines are flexible and behaviour can be changed based on adjusting the elements in the pipeline All media components are open source and provided without licensing restrictions For Sitara devices with a Neon coprocessor (Cortex devices) The ffmpeg Neon codecs are used to accelerate video decode operations User’s Guide available at http://processors.wiki.ti.com/index.php/ARM_Multimedia_Users_Guide

SDK Target Components - Camera Supports: AM37x Launched with the “Camera Loopback” button For devices with a camera input this application demonstrates how to take data from the media controller interface and output to the display. User’s Guide available at http://processors.wiki.ti.com/index.php/Camera_Users_Guide

SDK Target Components - Cryptography Supports: All Platforms Located in the “Cryptos” submenu Uses the OpenSSL open source package to demonstrate a variety of cryptographic operations and performance metrics. On devices with cryptography accelerators the cryptodev API is available to allow OpenSSL to take advantage of hardware acceleration. This operation is seamless to the user and will occur automatically if the hardware is available Cryptographic software has TSU exemption filed and the software is hosted at http://software-dl.ti.com/dsps/dsps_public_sw/am_bu/crypto/latest/index_FDS.html User’s Guide available at http://processors.wiki.ti.com/index.php/Cryptography_Users_Guide

SDK Target Components - WLAN/BT Supports: AM335x, AM37x, AM180x WLAN located in the “Wi-Fi” submenu The applications demonstrate configuring the device in: SoftAP mode - the device acts as an access point WPA - connect to an existing network WiFi Direct - enables peer-to-peer connections between a group of up to 8 devices Uses the wpa-supplicant open source software stack Wpa-supplicant software has TSU exemption filed and the software is hosted at http://software-dl.ti.com/dsps/dsps_public_sw/am_bu/crypto/latest/index_FDS.html BT application is launched using the “Bluetooth” button This application shows using the device to: Connect a bluetooth HID device such as a bluetooth keyboard Connect a bluetooth audio device to stream audio data Qt based GUI for configuring bluetooth and scanning for devices Uses the bluez open source software stack Information about additional command line demos can be found at http://processors.wiki.ti.com/index.php/Open_Source_Wireless_Connectivity_WLAN_and _Bluetooth_demos

SDK Target Components - 3D Supports: AM335x, Beaglebone, AM35x, AM37x, Beagleboard-xM Located in the “3D” submenu The applications demonstrate the use of the SGX graphics accelerator on devices with an SGX for 3D operations The driver and application sources as well as the SGX libraries are provided in the Sitara SDK as part of the graphics SDK which is packaged within it. This SDK is produced by the graphics team from the Graphics DDK from Imagination Supports OpenGL ES 1.1 OpenGL ES 2.0 OpenVG

SDK Target Components - ARM Benchmarks Supports: All Platforms Located in the “ARM” submenu The following benchmars are provided Dhrystone - Measures relative CPU cycles for comparison with other processors run from L1 cache Linpack - Measures CPU speed for single-precission floating point operations Whetstone - Measures CPU speed for double-precission floating point operations Lmbench benchmarks Communication bandwidth - measure bandwidth between processes Communication latency - measure latency for various control messages DDR bandwidth - measure memory bandwidth Memory latency - measure memory latency

SDK Target Components - Profiling Supports: All Platforms Located in the “Profiling” submenu The applications in this demonstrate how to use the open source Oprofile application to: Generate different reports from assembly level to long detailed reports Allows profiling two different applications to demonstrate how Oprofile can be used An application where one thread waits on another in a busy wait loop. This shows the CPU utilization of the busy wait An application where one thread waits on another and is notified using a signal. This shows the low CPU utilization that signals can provide.

Installing the SDK The Sitara Linux SDK is delivered as a single installer NOTE: The Sitara Linux SDK will also provide the option to install CCSv5 if the CCSv5 installer in found in the local directory. When installing from the SD card the CCSv5 installer is already placed in the local directory The Sitara Linux SDK installation has been streamlined to make installation quick and easy. The customer only needs to select: The installation location Whether or not to install CCSv5 if present The installer also notifies the user of important information such as The default recommended environment Notice of GPLv3 content within the SDK and information on how to remove it The location of the setup scripts within the SDK for additional configuration The installer has been designed such that “root” permission is not required to install and evaluate the SDK.

SDK Target Development Tools These are the tools provided on the host to enable developing for the Sitara device. These tools are components of the SDK that are installed on the host that are: Run on the target Build code to run on the target Directly configure the target They include Cross Compiler Cross Libraries Board Support Packages Top-level Makefiles Setup Scripts

SDK Target Development Tools - Cross Compiler The Sitara SDK contains its own GCC 4.5.3 based ARM cross-compiler This eliminates the need for a separate toolchain download and removes the need for the customer to provide a toolchain location This toolchain is optimized for the processor family the SDK is targetting: Previous CodeSourcery toolchains were made generic to ARM so that they could support both ARM9 and Cortex-A8 devices. This meant that libraries that could take advantage of the Neon coprocessor such as libm were not utilizing the Cortex-A8 to its full potential The toolchain included with the SDK for Cortex-A8 devices has been optimized for Cortex devices and uses the Neon coprocessor The cross compiler is located in the linux-devkit/bin directory of the SDK This cross compiler is also paired with a gdbserver installed on the reference file system to allow for source code debugging

SDK Target Development Tools - Cross Libraries The Sitara SDK ships with many open source libraries already cross compiled and ready for linking The libraries are located in the linux-devkit directory of the SDK There is a script in the linux-devkit directory of the SDK called “environment-setup”. Sourcing this script will configure your development environment for cross compiling by performing actions such as: Setting standard compile variables such as CC for the cross compiler Adding the cross compiler to the PATH Setting the PKG_CONFIG and other autotools settings to the cross libraries Configuring the Qt variables Sourcing the environment setup file will prepare the host system for target development Users can identify if the environment-setup script has been sources because their prompt will change to say “linux- devkit”

SDK Target Development Tools - Board Support Package At the top-level of the SDK there is a directory called “board-support”. This directory contains the components required to port to your custom hardware. This includes: The Linux kernel sources The bootloader sources In most cases the u-boot SPL is used in place of x-loader, which has been deprecated. Driver source for out-of-tree drivers The contents of this directory are usually pieces of the SDK that will require modification/configuration/rebuilding when porting to a new hardware platform You will also find pre-built kernel and bootloader images in a “prebuilt-images” directory that can be used to boot the TI EVM

SDK Target Development Tools - Top-level Makefile At the top-level of the SDK there is a Makefile and a Rules.make file. These files can be used to build the SDK components as well as to import useful settings. Rules.make - Provides settings used by component Makefiles for building the components. These include setting for the cross compiler and machine being built. Makefile - This Makefile contains targets to build, install, and clean most of the components of the SDK such as the board-support packages and the example applications

SDK Target Development Tools - Setup Scripts At the top-level of the Sitara SDK there is a script called setup.sh. This script should be run with “root” permission and will assist in configuring the development host and EVM. The general flow is to Install required host side packages such as tftp server and nfs server Prompt the user for how they would like to configure the EVM TFTP kernel + NFS file system SD kernel + NFS file system TFTP kernel + SD file system SD kernel + SD file system Setup the TFTP and NFS images if selected Send the configuration to the EVM

SDK Host Tools These tools are intended to run on the host and assist with the configuration of Sitara devices These tools differ from the SDK Target Development tools in that they are not performing cross-compilation or contain code meant to run directly on the target Most of these tools can be found in the “host-tools” directory of the SDK

SDK Host Tools - Pinmux This tool allows users to select the peripherals and interfaces they intend to use and identifies pin conflicts if any Each platform has a default configuration file to serve as a starting point The output of the tool is a sample header file that can be used as a reference to configure the u-boot bootloader for the user’s configuration The user’s guide can be found at http://processors.wiki.ti.com/index.ph p/Pin_Mux_Utility_for_ARM_MPU_Pr ocessors

SDK Host Tools - Flash Tool This tool was created to assist customers with flashing a board that has no existing bootloaders flashed. This could be because the bootloaders were erased, or in production where clean memory devices are installed which do not have any software loaded yet. The flash tool has the following features: Open source & scalable Supports additional NAND types through configuration files Support ECC & ONFI Supports UART & USB protocols Developed in Qt

CCSv5 The Sitara SDK also comes with CCSv5 available as: Download for web updates On the 3rd partition of the in-the-box SD card CCSv5 provides the following features Eclipse based Runs on Linux for debugging Linux Multi-core debug Run-Mode Linux debug support Remote GDB debug Debug Linux applications and kernel Stop-Mode Linux support Control target using JTAG Enables examination of target and current Linux process Requires installation of emulator package In addition to the standard CCSv5 package the Sitara SDK also adds the following plugins Remote System Explorer

Driving Mainline What is it? The ability to provide our customers a stable release from the community with an incremental patch set Scope Mainline applies to all 3 primary components of our Linux solution Uboot denx.de Linux kernel kernel.org Filesystem OpenEmbedded/Yocto Each has its own *mainline* consisting of well documented development flows, release schedules, git trees & maintainers Benefits Insanely easy, “just works” Linux solutions Easy board port to customer’s platforms Continued support of Existing Devices New Device development is incremental Bandwidth to focus on more middleware/applications Potential to enable Reference Designs

For more Sitara Boot Camp sessions visit: www.ti.com/sitarabootcamp Thank you!