KeyStone Multicore Software Development Ecosystem

Slides:



Advertisements
Similar presentations
Using MapuSoft Instead of OS Vendor’s Simulators.
Advertisements

Sundanc e High-tech DSP solutions. Giving you the freedom to design Multiprocessor Technology Ltd SOFTWARE UTILITY TOOLS.
Media Player for the i.MX31 Advanced Embedded Systems Architecture Class Project May 14, 2011 Rafael Castro Ryan Ugland Carlos Cabral.
Yaron Doweck Yael Einziger Supervisor: Mike Sumszyk Spring 2011 Semester Project.
KeyStone Multicore Software Development Ecosystem.
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.
MotoHawk Training Model-Based Design of Embedded Systems.
Digital Signal Processing and Field Programmable Gate Arrays By: Peter Holko.
Code Composer Studio TM Integrated Development Environment v2 First Intelligent IDE To Offer DSP Application Development For Multi-Processor, Multi-User,
Operating Systems High Level View Chapter 1,2. Who is the User? End Users Application Programmers System Programmers Administrators.
Phones OFF Please Operating System Introduction Parminder Singh Kang Home:
Chapter 13 Embedded Systems
Figure 1.1 Interaction between applications and the operating system.
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
Introduction to K2E Devices
Multicore Design Considerations. Multicore: The Forefront of Computing Technology “We’re not going to have faster processors. Instead, making software.
111 Development Tools for ARM-Powered Devices Name of presenter RealView Microcontroller Development Kit ULINK2 USB/JTAG Adapter Evaluation Boards.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
UFCFX5-15-3Mobile Device Development Android Development Environments and Windows.
KeyStone Software Ecosystem Overview
Detailed Technical Feature Presentation Background Information The Importance of Software Software Roadblocks Development Environment DSP Development Cycle.
Anne Mascarin DSP Marketing The MathWorks
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.
Getting Started With DSP A. What is DSP? B. Which TI DSP do I use? Highest performance C6000 Most power efficient C5000 Control optimized C2000 TMS320C6000™
Keil Products in a Single Slide
Introduction to CCSv5. Outline  Intro to CCSv5 Intro to CCSv5  Functional Overview Functional Overview  Perspectives Perspectives  Projects Projects.
Multicore Software Development Kit (MCSDK) Training Introduction to the MCSDK.
MDK-ARM Microcontroller Development Kit MDK: Microcontroller Development Kit.
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.
Multicore Software Development Kit (MCSDK) Training Introduction to the MCSDK.
Real-Time DSP System Design Course and DSP/BIOS II David J. Waldo Associate Professor Oklahoma Christian University 2501 E. Memorial Rd. Oklahoma City,
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
So just what is the Sedona Framework? –The Framework is an embedded device programming and control environment with two major facets –Open Source Free.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Android Programming By Mohsen Biglari Android Programming, Part1: Introduction 1 Part1: Introduction By Mohsen Biglari.
LiNK: An Operating System Architecture for Network Processors Steve Muir, Jonathan Smith Princeton University, University of Pennsylvania
ELG6163 Presentation Geoff Green March 20, 2006 TI Standard for Writing Algorithms.
A DSP-Based Platform for Wireless Video Compression Patrick Murphy, Vinay Bharadwaj, Erik Welsh & J. Patrick Frantz Rice University November 18, 2002.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
CHAPTER FOUR COMPUTER SOFTWARE.
1 LabVIEW DSP Test Integration Toolkit. 2 Agenda LabVIEW Fundamentals Integrating LabVIEW and Code Composer Studio TM (CCS) Example Use Case Additional.
Introduction to Interactive Media Interactive Media Tools: Software.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Guide to Linux Installation and Administration, 2e1 Chapter 2 Planning Your System.
TMS320 DSP Algorithm Standard: Overview & Rationalization.
Challenges in KeyStone Workshop Getting Ready for Hawking, Moonshot and Edison.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
Customers work faster and smarter crafting more innovative real-time embedded systems with off-the-shelf software Customer Success Enabled with Proliferation.
BridgePoint Integration John Wolfe / Robert Day Accelerated Technology.
eXpressDSP Modular Application Software Solutions for TMS320 DSPs
KeyStone SoC Training SRIO Demo: Board-to-Board Multicore Application Team.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Network Coprocessor (NETCP) Overview
KeyStone Multicore Software Development Ecosystem.
Linux C6x Syslink. 1.What is Syslink? 2.Syslink Architecture 3.SharedRegion 4.What is Syslink-c6x? 5.Syslink-c6x Features 6.Syslink-c6x Dependency 7.Demo.
TI Information – Selective Disclosure Implementation of Linear Algebra Libraries for Embedded Architectures Using BLIS September 28, 2015 Devangi Parikh.
1. TMS320C6X DSP Programming with Simulink – TI C6000 DSP Target i) TI C6000 DSP target enables simulink blocks to model or program signal processing algorithm.
KeyStone SoC Training SRIO Demo: Board-to-Board Multicore Application Team.
Embedded Real-Time Systems Introduction to embedded software development Lecturer Department University.
Fermilab Scientific Computing Division Fermi National Accelerator Laboratory, Batavia, Illinois, USA. Off-the-Shelf Hardware and Software DAQ Performance.
Mobile Device Development
Texas Instruments TDA2x and Vision SDK
CMPE419 Mobile Application Development
QNX Technology Overview
Chapter 2: The Linux System Part 1
CMPE419 Mobile Application Development
Presentation transcript:

KeyStone Multicore Software Development Ecosystem

Agenda Multicore Development Ecosystem Code Composer Studio (CCS) Multicore Software Development Kit (MCSDK) Third Party Software C66x Lite Evaluation Module (EVM)

Software System Basics Utilizing system hardware peripherals Low level drivers (LLD) to abstract communication with the hardware layer, including device-specific modules/interfaces (from one or more manufacturers) One or more layers of utility APIs (routines, structures, variables, etc.) that connect the application to the LLD Running applications Management, scheduling, and prioritization of threads Managing memory, processors, and input/output devices Standard API for utilities: Print Networking (sockets) Monitoring Application development ecosystem: Integrated Development Environment (IDE) tools: Source code editing Build automation Debugging Libraries (code, sub-routines, values, etc.)

TI DSP Software Support SYS/BIOS (formerly DSP/BIOS) Real-time Operating System (RTOS) support for DSP-only and DSP+ARM devices, including: Scheduling (hardware/software interrupts, tasks) Memory management Communications Performance monitoring Optimized algorithm libraries Framework components Easy access to peripherals and other resources (DMA) Abstracts hardware from the application (CSL) IDE for single core and multicore devices Code Composer Studio (CCS) Code Generation (CodeGen) Debug, emulation, monitoring, profiling

KeyStone Advantages & Requirements KeyStone SoC devices offer many advantages: Multiple cores Advanced core performance Distributed memory architecture Multiple peripherals and co-processors High-speed transport mechanisms Challenge: How to simplify programming and development of optimized applications on KeyStone devices? Solution: A fully integrated software development ecosystem built upon the Multicore Software Development Kit (MCSDK)

TI Software Development Ecosystem Multicore Performance, Single-core Simplicity Eclipse IDE Multicore Software Development Kit (MCSDK) Code Composer StudioTM Third Party Plug-Ins Host Computer Target Board Emulator

TI Software Development Ecosystem Code Composer Studio + Eclipse IDE Multicore Software Development Kit (MCSDK) Code Composer StudioTM Third Party Plug-Ins Host Computer Target Board Emulator

Code Composer Studio (CCS) Code Composer Studio (CCS) is an Eclipse-based IDE that supports application development on multiple cores/devices: GUI interface for SYS/BIOS, project-based system to build drivers and utilities for developer’s target platform. Multiple perspectives (default and custom) Advance debugging, monitoring, and profiling Multiple configurations allow a single executable or multiple executables to be generated for the same project. Editor Integrated compiler tools Support for OpenMP Simulator Debug/Emulation Remote Debug Instrumentation Visualization

TI Software Development Ecosystem Multicore Software Development Kit Eclipse IDE Code Composer StudioTM Editor Compiler Tools Multicore Software Development Kit (MCSDK) Third Party Plug-Ins Simulator Debug/Emulation Remote Debug Instrumentation Visualization Host Computer Target Board Emulator

MCSDK Overview Standard set of APIs to configure and utilize peripherals, accelerators, and other hardware resources Compliant implementation of packet- and network-based protocols Utilities to boot, test, debug, and monitor execution Individual core-based real-time operating system Communication and facilitated cooperation between processes, cores, and devices, as well as between peripherals and cores Optimized, ready-to-use algorithm libraries, example code, and demonstration applications

MCSDK Advantages Provides the core foundational building blocks for customers to quickly start developing embedded applications on TI high-performance multicore DSPs: Uses either the SYS/BIOS or Linux real-time operating system Accelerates time-to-market by focusing on ease of use and performance Provides multicore programming methodologies and utilities Simplifies porting of applications: To a standard evaluation platform From a standard evaluation platform to customer’s target platform To next generation platform hardware Available as a free download on TI.com, bundled in one installer as source code along with pre-built libraries

BIOS-MCSDK Software Layers Hardware SYS/BIOS RTOS Software Framework Components Inter-Processor Communication (IPC) Instrumentation (MCSA) Communication Protocols TCP/IP Networking (NDK) Algorithm Libraries DSPLIB IMGLIB MATHLIB Demonstration Applications HUA/OOB IO Bmarks Image Processing Low-Level Drivers (LLDs) Chip Support Library (CSL) EDMA3 PCIe PA QMSS SRIO CPPI FFTC HyperLink TSIP … Platform/EVM Software Bootloader Platform Library Power On Self Test (POST) OS Abstraction Layer Resource Manager Transports - IPC - NDK

Development Requirements > MCSDK Solutions Hide hardware details from the user to simplify process of porting to new hardware. Chip Support Library (CSL) is the only MCSDK layer that depends on the hardware. This layer is completely transparent to the user/application. Standard API to talk to peripherals, accelerators, and other resources Low Level Drivers (LLD) provide standard API to initialize, configure, and utilize peripherals and other resources. LLD blocks include SRIO, PCIe, PA, CPPI, QMSS, FFTC, and many more. Utilities to facilitate system operations Platform/EVM Software provides platform-level utilities such as bootloader, Power On Self Test (POST), resource manager, and platform utilities. Efficient real-time individual core operating system SYS/BIOS provides an efficient, mature, real-time operating system with a low memory footprint. Reliable interface to external networks Network Development Kit (NDK) provides a standardized interface for common packet- and network-based communication protocols (e.g., IPV4 and IPV6-compliant TCP/IP). Coordination of tasks/process across multiple cores Inter-Processor Communication (IPC) provides several-high level utilities and libraries to communicate between cores and enable multiple cores to work together. Facilitate application development Optimized algorithm libraries with standard APIs. A starting point for multicore application development Demonstration applications (e.g., Image Processing) show how to build and run a complete multicore application.

Communication via LLD and CSL Layers

MCSDK Algorithm Libraries Algorithm libraries contain C66x C-callable, hand-coded, assembly-optimized functions for specific usage: DSPLIB provides signal-processing math and vector functions: Adaptive filtering Correlation FFT (e.g. FFT functions for ‘npoint’ FFTs) Filtering and Convolution (e.g., FIR, IIR filter functions, etc.) Matrix (e.g., single and double precision matrix multiplication, etc.) IMGLIB provides image/video processing functions: Compression & Decompression (e.g., forward and inverse DCT, motion estimation, quantization, etc.) Image Analysis (e.g., edge detection, histogram, thresholding, etc.) Image Filtering and Conversion (e.g., color space conversion, convolution, correlation, error diffusion, etc.) MathLIB provides floating-point math functions: Single-precision (e.g., cosine/sine/tangent of a floating point number, etc.) Double precision (e.g., similar functions as above with argument type and return values to be of type double) More info: http://processors.wiki.ti.com/index.php/Software_libraries

Inter-Processor Communication (IPC) Usage IPC provides a standard interface between processes/threads in the same core, between two cores, and between two devices. Device 1 SoC Hardware and Peripherals Core 1 IPC Process 1 Process 2 BIOS Core 2 Device 2 IPC Transports Task to Task Core to Core Device to Device Shared Memory x Navigator/QMSS Serial Rapid IO (SRIO) Device 1 SoC Hardware and Peripherals Core 1 SysLink Process 1 Process 2 Linux Core 2 IPC BIOS Core 3 Core N

Simplified Development & Migration CSL TI Platform Network Dev Kit (NDK) Demo Application TI Demo Application on TI Evaluation Platform IPC LLD LIB Tools CSL Customer Platform TI Demo Application on Customer Platform IPC LLD Network Dev Kit (NDK) LIB Tools Demo Application CSL Customer Platform Network Dev Kit (NDK) IPC LLD LIB Tools Customer Application on Customer Platform Customer Application CSL Next Gen TI SoC Platform Network Dev Kit (NDK) IPC LLD LIB Tools Customer App on Next Generation TI SOC Platform Customer Application Software may be different, but API remain the same (CSL, LLD, etc.) May be used “as is” or customer can implement value-add modifications Needs to be modified or replaced with customer version No modifications required

MCSDK Top-level Directory Folders /pdk /edma3 /bios /dsplib /imglib /mathlib /ipc /ndk

TI Software Development Ecosystem Third Party Software Plug-ins Eclipse IDE Multicore Software Development Kit (MCSDK) Code Composer StudioTM Editor Compiler Tools Third Party Plug-Ins Simulator Debug/Emulation Remote Debug Instrumentation Visualization Host Computer Target Board Emulator

Third Party Plug-Ins Eclipse allows developers to integrate third-party software tools that provide additional multicore programming, profiling and analysis capabilities: Poly-Platform from PolyCore http://polycoresoftware.com is a development framework consisting of tools and run-time software that provide a programming model for applications to scale from one to many cores. Prism from CriticalBlue http://www.criticalblue.com provides multicore analysis and exploration tools to evaluate parallelization strategies of existing software applications. Optima from ENEA http://www.enea.com includes overview and management tools for multicore systems, profiling tools showing resource usage, and debug tools that track execution of application and operating system events. Diamond from 3L http://www.3l.com is a tool-suite and model that provides a highly automated development flow from concept through to applications running in multiprocessor hardware.

TI Software Development Ecosystem Multicore Performance, Single-core Simplicity Eclipse IDE Multicore Software Development Kit (MCSDK) Code Composer StudioTM Third Party Plug-Ins Editor PolyCore Compiler Tools Critical Blue Simulator ENEA Optima Debug/Emulation 3L Remote Debug Instrumentation Visualization Host Computer Target Board Emulator

Linux/BIOS MCSDK C66x Lite EVM Details EVM Flash Contents NAND 64 MB NOR 16 MB EEPROM 128 KB POST IBL BIOS MCSDK “Out of Box” Demo Linux MCSDK Demo DVD Contents Factory default recovery EEPROM: POST, IBL NOR: BIOS MCSDK Demo NAND: Linux MCSDK Demo EEPROM/Flash writers CCS 5.0 IDE C667x EVM GEL/XML files BIOS MCSDK 2.0 Source/binary packages Linux MCSDK 2.0 Online Collateral TMS320C667x processor website http://focus.ti.com/docs/prod/folders/print/tms320c6678.html http://focus.ti.com/docs/prod/folders/print/tms320c6670.html MCSDK website for updates http://focus.ti.com/docs/toolsw/folders/print/bioslinuxmcsdk.html CCS v5 http://processors.wiki.ti.com/index.php/Category:Code_Composer_Studio_v5 Developer’s website Linux: http://linux-c6x.org/ BIOS: http://processors.wiki.ti.com/index.php/BIOS_MCSDK_2.0_User_Guide 22

For More Information MCSDK Product Folder: http://www.ti.com/tool/bioslinuxmcsdk Download CCSv5 and MCSDK software: http://software-dl.ti.com/sdoemb/sdoemb_public_sw/bios_mcsdk/latest/index_FDS.html KeyStone C66x Multicore Wiki Resources http://processors.wiki.ti.com/index.php/Keystone_Device_Architecture For questions regarding topics covered in this training, visit the support forums at the TI E2E Community website http://e2e.ti.com