PAULA CARRILLO October Processor SDK & PRU-ICSS Industrial software

Similar documents
PDK (Platform Development Kit) Getting Started. Automotive Processors

PDK (Platform Development Kit) Getting Started. Automotive Processors 4 th Dec 2017

Building and Running Inter-Processor Communication (IPC) Examples on the AM572x GP EVM. Sahin Okur Embedded Processor Catalog Applications

Introduction to Sitara AM437x Processors

MYD-C437X-PRU Development Board

Introducing the AM57x Sitara Processors from Texas Instruments

C55x Digital Signal Processors Software Overview

Speeding AM335x Programmable Realtime Unit (PRU) Application Development Through Improved Debug Tools

Simplifying Multiprotocol Industrial Ethernet Communication. Sandeep Kumar December 2016

Hands-on with the Sitara Linux SDK

C55x Digital Signal Processors Software Overview

MYC-C437X CPU Module

Closed-loop Delfino Control Systems: Multiple Industrial Protocol Support using the AMIC110 Sitara Processor

How to add Industrial Ethernet to Computer Numeric Control (CNC) Router Machine

Kinetis SDK Release Notes for the TWR-K24F120M Tower System Module

(Software offering for Single Chip TI mmwave RADARs) Thu 5/11/2017

TDA3xx Secondary Bootloader (SBL)

Closed-loop Delfino Control Systems: Multiple Industrial Protocol Support using the AMIC110 Sitara Processor

Getting Started with FreeRTOS BSP for i.mx 7Dual

Designing with ALTERA SoC Hardware

Lab 1. OMAP5912 Starter Kit (OSK5912)

Doing more with multicore! Utilizing the power-efficient, high-performance KeyStone multicore DSPs. November 2012

PRU Hardware Overview. Building Blocks for PRU Development: Module 1

Debugging with System Analyzer. Todd Mullanix TI-RTOS Apps Manager Oct. 15, 2017

Chapter. Overview. Tornado BSP Training Workshop Copyright Wind River Systems 1-1 Wind River Systems

U-Boot and Linux Kernel Debug using CCSv5

Simplify rich applications & hard real-time

Simplifying DSP Development with C6EZ Tools

Reduce SW Development Time with DAVE 3. March, 2012

Designing Embedded Processors in FPGAs

Parallella Linux - quickstart guide. Antmicro Ltd

Quick start with ecos 3.0 on Sitara AM335x processors

Freescale Kinetis Software Development Kit Release Notes

ARM+DSP - a winning combination on Qseven

Multi-protocol controller for Industry 4.0

esi-risc Development Suite Getting Started Guide

Copyright 2014 Xilinx

TI TMS320C6000 DSP Online Seminar

Kinetis SDK v Release Notes for the MK21DA5 and MKW24D5 Devices

MYC-AM335X CPU Module MYC-AM3352 MYC-AM3359

GET STARTED FAST WITH THIS COMPREHENSIVE ENABLEMENT OFFERING FOR LPC800 MCUS

Kinetis SDK v Release Notes for KV5x Derivatives

2 ABOUT VISUALDSP++ In This Chapter. Figure 2-0. Table 2-0. Listing 2-0.

Introducing StellarisWare

Fujitsu System Applications Support. Fujitsu Microelectronics America, Inc. 02/02

Test and Verification Solutions. ARM Based SOC Design and Verification

AM437x Industrial Communications. Sitara ARM Processors

High-Performance, Highly Secure Networking for Industrial and IoT Applications

Designing with ALTERA SoC

Boot Loader. Bootloader

S32 SDK for Power Architecture Release Notes Version EAR

mbed OS Update Sam Grove Technical Lead, mbed OS June 2017 ARM 2017

Hands-On Workshop: Developing with the Kinetis Software Development Kit

Copyright 2016 Xilinx

EMBEDDED SYSTEMS WITH ROBOTICS AND SENSORS USING ERLANG

Sherpa R-IN32M3 EtherNet/IP adapter communication stack for Renesas Electronics Corporation s R-IN32M3 series industrial Ethernet controller

Pengwyn Documentation

ARM Powered SoCs OpenEmbedded: a framework for toolcha. generation and rootfs management

Kick Start your Embedded Development with Qt

Software Development Using Full System Simulation with Freescale QorIQ Communications Processors

Lightning (DSPC-8681E) User Guide

How to configure the BlueNRG-1 and BlueNRG-2 devices in network coprocessor mode. Main components Bluetooth Low Energy wireless system-on-chip

Keystone ROM Boot Loader (RBL)

ECE 471 Embedded Systems Lecture 12

Enabling IoT OSs for Intel Quark MCU Platforms: the fast way. OpenIoT Summit Europe Andre Guedes

Very Large FFT Multicore DSP Implementation Demonstration Guide

μez Software Quickstart Guide

μc/probe on the element14 BeagleBone Black

Introduction to Intel Boot Loader Development Kit (Intel BLDK) Intel SSG/SSD/UEFI

EtherCAT : Errata for Industrial SDK

Embedded HW/SW Co-Development

Kinetis KE1xF512 MCUs

S2C K7 Prodigy Logic Module Series

ARM Processors for Embedded Applications

Bare Metal User Guide

ARM TrustZone for ARMv8-M for software engineers

Lesson 2 Prototyping Embedded Software on Arduino on Arduino boards. Chapter-9 L02: "Internet of Things ", Raj Kamal, Publs.: McGraw-Hill Education

System Energy Efficiency Lab seelab.ucsd.edu

Booting Linux Fast & Fancy. Embedded Linux Conference Europe Cambridge, Robert Schwebel

ADI Solution for Industrial Communications

μez Software Quickstart Guide

A Seamless Tool Access Architecture from ESL to End Product

Application C/C++ Master Core. Class A or Class B. Windows (32/64 Bit) Linux (32/64 Bit) Windows CE/EC. OnTime RTOS-32

Digital Signal Processors: fundamentals & system design. Lecture 2. Maria Elena Angoletta CERN

Linux. For BCT RE2G2. User Guide. Document Reference: BCTRE2G2 Linux User Guide. Document Issue: Associated SDK release: 1.

KeyStone Training. Bootloader

AN OPEN-SOURCE VHDL IP LIBRARY WITH PLUG&PLAY CONFIGURATION

Lab 4: Interrupts and Realtime

MYD-JA5D2X Development Board

Software Driven Verification at SoC Level. Perspec System Verifier Overview

RZ/N1 Multi-Protocol Industrial Ethernet Made Easy

MYC-AM335X CPU Module MYC-AM3352 MYC-AM3358

Intel SoC FPGA Embedded Development Suite (SoC EDS) Release Notes

Linux Driver and Embedded Developer

MV 4412 Android 4.0 Compilation

Flashing binaries to DRA7xx factory boards using DFU

AM57x, 66AK2Gx processors for Space/Avionics/Defense designs. Texas Instruments Catalog Processors June 2017

SmartFusion2 SoC FPGA Demo: Code Shadowing from SPI Flash to SDR Memory User s Guide

Hands-On Workshop: ARM mbed : From Rapid Prototyping to Production

NFC Framework and NT3H1201 Device Driver v1.1

Transcription:

PAULA CARRILLO October 2017 Processor SDK & PRU-ICSS Industrial software

AGENDA 01 02 PRU-ICSS INDUSTRIAL SOFTWARE PROTOCOLS PAULA CARRILLO October 2017

CHAPTER AGENDA PSDK Descriptions Download webpage PSDK-RTOS Overview Software components Download webpage Software package exploration Platform Development Kit (PDK) overview PDK components: CSL, LLD, OSAL, Board Library and SBL Migration to custom board.

DESCRIPTION WHAT IS PSDK? It is a unified software platform for TI embedded processors Common API s interfaces across all supported platforms Consolidates all platform specific software into a single SW component It provides out-of-the-box (OOB) benchmarks and demos. Releases are consistent across TI s broad portfolio. This allows software to be reused across devices. Supported Operating Systems (OS) are Linux and TI-RTOS. It provides well-defined APIs abstraction layers. Available as free download Download Page for AM335x Download page for AM437x Download page for AM57x

PSDK RTOS OVERVIEW PSDK RTOS IS A SINGLE PRODUCT THAT SUPPORTS MULTIPLE SoCs Contains Chip Support Libraries (CSL), drivers, and basic board-support utilities. Includes source code and prebuilt libraries. Contains a basic networking stack. Contains bootloaders and boot utilities. Compiler: Linaro GNU compiler collection (GCC) tool chains. RTOS A light-weight, Real-Time (RT), embedded OS for TI devices. Multi-task scheduler. Is an event-driven OS (Hwi, Swi, task). Provides a set of SW building blocks, for RT app development. Has a small and adaptive footprint. Linker only links what is necessary. Offers an efficient context switching.

PSDK RTOS: SOFTWARE COMPONENTS APPLICATIONS IMPLEMENTED ON TOP OF THE OS, AND MAY BE ARCHITECTURE DEPENDENT. OPERATING SYSTEM DEPENDENT COMPONENTS TI-RTOS KERNEL, OSAL, TOOLS, UTILITIES, DRIVERS. CORE-SPECIFIC / OS-INDEPENDENT COMPONENTS OPTIMIZED LIBRARIES. SoC -DEPENDENT / OS-INDEPENDENT COMPONENTS DEVICE AND PLATFORM DRIVERS.

PSDK RTOS: SOFTWARE COMPONENTS SoC components: The basic low level components of the software consists of the CSL and LLD which are OS agnostic. LLD: builds on top of the CSL layer and provides an interface to operate and control the peripherals on the device. CSL: contains low-level registerlevel definitions and basic functionality to configure cores and registers on the device. Device/platform-dependent OS-dependent Core-specific optimized library Applications

PSDK RTOS: SOFTWARE COMPONENTS Bare-metal code for configuring platforms and interacting with board specific components on EVM platforms. Device/platform-dependent OS-dependent Core-specific optimized library Applications

PSDK RTOS: SOFTWARE COMPONENTS C66x optimized libraries. DSPLIB: FFT, Filters, etc. IMGLIB: Image processing MATHLIB: Standard math functions (sin, cosin, sqrt) Each release directory has a C66 DSP-optimized code as well as a standard ANSI C implementation of all the functions. The standard ANSI C implementation is used to validate the results of the optimized library functions Device/platform-dependent OS-dependent Core-specific optimized library Applications

PSDK RTOS: SOFTWARE COMPONENTS OS-agnostics elements. Can be used across various OSes or in an OS-less system. Device/platform-dependent OS-dependent Core-specific optimized library Applications

PSDK RTOS: SOFTWARE COMPONENTS The TI RTOS components include SYSBIOS kernel that provides all the OS services. FC which can be used to manage resources such as EDMA memory between algorithms or tasks. OSAL, that acts as a bridge between the OS and the baremetal code underneath. Network stack (NDK) which provides network services and a transport layer. Device/platform-dependent OS-dependent Core-specific optimized library Applications

PSDK RTOS: SOFTWARE COMPONENTS IPC provides standard APIs to communicate between threads: Same APIs for all SoCs Same APIs for all CPU. Same APIs regardless of the OS Same APIs regardless of the transport mechanism Device/platform-dependent OS-dependent Core-specific optimized library Applications

PSDK RTOS: SOFTWARE COMPONENTS The PRU-ICSS-SW Industrial adds Applications that provide a starting point for developers. The industrial Communications, Drive, and Board libraries Device/platform-dependent OS-dependent Core-specific optimized library Applications

PSDK RTOS DOWNLOAD WEBPAGE Download Page for AM335x

PSDK RTOS: SOFTWARE PACKAGE EXPLORATION - AM335X bios folder includes the RTOS OS kernel (scheduler and utilities). cg_xml and xdctools folders contain sets of utilities used to build and configure OS modules using a GUI interface or ASCII configuration file. processor_sdk_rtos_am335x_version bios_version cg_xml edma3_lld_version ndk_version pdk_am335x_version processor_sdk_rtos_am335x_version xdctools_version_core

PSDK RTOS: SOFTWARE PACKAGE EXPLORATION - AM335X edma folder includes multiple EDMA controllers, management drivers, and the resource manager. The ndk folder includes the TCP/IP stack. Includes the following: IPv6 and IPv4 compliant TCP/IP stack Layer 3 & 4 network protocols High-level network applications including HTTP server and DHCP processor_sdk_rtos_am335x_version bios_version cg_xml edma3_lld_version ndk_version pdk_am335x_version processor_sdk_rtos_am335x_version xdctools_version_core

PSDK RTOS: SOFTWARE PACKAGE EXPLORATION - AM335X pdk folder contains a collection of CSL and low-level drivers. The processor_sdk_rtos folder contains collateral, documentation, scripts, makefiles, and examples. processor_sdk_rtos_am335x_version bios_version cg_xml edma3_lld_version ndk_version pdk_am335x_version processor_sdk_rtos_am335x_version xdctools_version_core

PSDK RTOS: SOFTWARE PACKAGE EXPLORATION AM437X processor_sdk_rtos_am437x_version bios_version cg_xml edma3_lld_version ndk_version pdk_am437x_version processor_sdk_rtos_am437x_version xdctools_version_core

PSDK RTOS: SOFTWARE PACKAGE EXPLORATION AM57X framework components folder includes a set of utilities to manage the target board hardware memories, interfaces, etc. ipc folder contains a set of utilities used to facilitate inter-processor communications. Internal and external device communication. processor_sdk_rtos_am57xx_version bios_version cg_xml ctoolslib_version dsplib_c66x_version edma3_lld_version framework_components_version imglib_c66x_version ipc_version mathlib_c66x_xml ndk_version pdk_am57xx_version processor_sdk_rtos_am57xx_version uia_version xdais_version xdctools_version_core THE AM57X RELEASE IS A SUPERSET OF RTOS FEATURES.

PSDK RTOS: SOFTWARE PACKAGE EXPLORATION AM57X dsplib, imglib, mathlib, folders optimized libraries for C66x cores. xdais folder includes a set of standard DSP interfaces that enable easy integration of XDAIScompatible algorithms (voice and video codecs) into applications. processor_sdk_rtos_am57xx_version bios_version cg_xml ctoolslib_version dsplib_c66x_version edma3_lld_version framework_components_version imglib_c66x_version ipc_version mathlib_c66x_xml ndk_version pdk_am57xx_version processor_sdk_rtos_am57xx_version uia_version xdais_version xdctools_version_core THE AM57X RELEASE IS A SUPERSET OF RTOS FEATURES.

PSDK RTOS: PDK OVERVIEW PLATFORM DEVELOPMENT KIT (PDK) PROVIDES Low Level software device drivers (LLD), Chip support software (CSL) LLD and CSL configure and manage HW, and provide I/O capabilities OS Abstraction layer (OSAL) Board library DEVICE DRIVERS Device Drivers maintain common APIs for all supported SoCs Scalability advantage: Customer applications can be easily ported to another supported SoCs. STARTERWARE is included in PSDK-RTOS AM335x and AM437x for backwards compatibility with ISDK 2.1 This will be maintenance only (bugs will be fixed, no new features) FOR APPLICATIONS that already depend on StarterWare from Industrial SDK 2.1 on AM335x/AM437x, those APIs remain in Processor SDK in: AM335x SoC: pdk_am335x_1_0_x/ti/starterware AM437x SoC: pdk_am437x_1_0_x/ti/starterware

PDK COMPONENTS: CHIP SUPPORT LIBRARY (CSL) CSL constitutes a set of well-defined APIs that abstract low-level details of the underlying SoC device. Users can configure, control (start/stop, etc.) and have read/write access to peripherals without having to worry about register bit-field details. CSL Implements distinctive modules, which correspond with underlying SoC device modules. CSL APIs follow consistent style and uniformity across processors. Increase portability. API s for each module are orthogonal One module s API doesn t internally call an API from another module. For more information see - http://processors.wiki.ti.com/index.php/processor_sdk_rtos_csl

PDK COMPONENTS: CHIP SUPPORT LIBRARY (CSL) OVERVIEW (Almost) All peripherals are controlled by Memory Mapped Registers (MMR). The CSL has two layers: The first layer assigns a standard name to MMR. Uses macros and type definitions. The second layer is a set of C functions to manipulate these registers. The application or LLD needs only to know the API of the CSL functions in order to access the HW registers.

PDK COMPONENTS: LLD AND CSL Low Level Drivers (LLD) hide the details of CSL from the application. In general apps are recommended to use the Driver APIs. However, some IP and peripherals do not have LLD. In those cases application can use CSL Functional layer directly. Also, some LLD can access the hardware directly (and not via CSL).

PDK COMPONENTS: LOW LEVEL DRIVERS (LLD) OVERVIEW LLDs are hardware drivers that talk directly, or via CSL, to the hardware registers. LLDs are used to hide (abstract) hardware implementation, or CSL, details from the user. Most peripheral and SoC specific configuration is done using the LLDs. Most of LLD code and pre-build libraries are located in the PDK directory. For more information visit Device Drivers sections: http://processors.wiki.ti.com/index.php/processor_sdk_rtos_software_developer_guide

PDK COMPONENTS: LOW LEVEL DRIVERS (LLD) PDK AM57x device drivers pdk_am57xx_<version>\packages\ti\drv PDK AM335x-AM437x device drivers pdk_<device>_<version>\packages\ti\drv

PDK COMPONENTS: OS ABSTRACTION LAYER (OSAL) pdk_<device>_<version>\packages\ti\osal OSAL provides the wrappers, and APIs for encapsulating OS functions Makes drivers OS independent OSAL is a starting point for projects that use a different OS. Examples of OSAL s utilities are: Interrupt Handling Semaphore Handling

PDK COMPONENTS: BOARD LIBRARY pdk_<device>_<version>\packages\ti\board The Board Library is a thin utility layer on top of CSL Provides uniform configuration APIs for all supported boards (EVMs). Hides the HW details of the board to the drivers. This helps users to write portable applications for all the supported EVMs The board library provides a high level abstraction for configuring: PinMux, Device Clock tree, DDR features, PLL, Memory Map, Board specific components like PMIC, PHY, Flash, IO expanders, etc.

PDK COMPONENTS: SECONDARY BOOTLOADER (SBL) ROM BOOTLOADER (RBL) FUNCTIONS: RBL is the first SW to run on SoC on Power-on-reset RBL read SYSBOOT pins and choose booting device If not valid booting device, RBL checks for the next device. If a valid bootloader is found then, RBL configures and initialize the boot media Ex: Clocks and peripherals for the booting device (MPU, I2C, MMCSD, USB, SPI, QSPI, Ethernet etc). RBL gets SBL image size and load address by checking TI image header appended on bootloader binary (.bin). Loads SBL image to internal memory, at the address fetched from TI image header. Passes control to Secondary Bootloader(SBL) Wiki documentation: http://processors.wiki.ti.com/index.php/processor_sdk_rtos_boot_am335x/am437x

PDK COMPONENTS: SECONDARY BOOTLOADER (SBL) SBL FUNCTIONS: Sets up SoC: PLL clock, PinMux, PRCM. Powers on the I/O Peripherals, initializes the DDR. Read multi-core image from boot media. Loads the application image from memory device into DDR (typically). Wakes up secondary cores from reset. Populates boot addresses. Passes control to application. Cores start executing their associated code. Wiki documentation: http://processors.wiki.ti.com/index.php/processor_sdk_rtos_boot_am335x/am437x

PDK COMPONENTS: SECONDARY BOOT LOADER (SBL) <pdk_am57xx>_<version>\packages\ti\boot\sbl SBL includes tools and utilities to support multi-core deployment of applications from boot. It also provides SoC-dependent functions To initialize the SoC To perform slave core boot-up. For single core devices (AM335x and AM437x), SBL is not necessary as they can boot directly from ROM However SBL gives additional flexibility to enable features that are not supported in RBL. Pre-built version of the SBL is provided in the PSDK The PSDK demos and diagnostics application use SBL booting scheme to load and run applications from an SD card on non-volatile memory on the boards.

EtherCAT Slave Profinet RT/IRT slave Example Applications Profibus Master Add in some cool Ethernet/IP DSP enablement Profibus Slave HSR/ PRP MIGRATION TO A CUSTOM BOARD OS Software EtherCAT slave stack Profinet RT/ IRT slave stack Ethernet/ IP slave stack Industrial Libraries ProfiBus master stack ProfiBus slave stack HSR/ PRP driver Industrial Board Lib PSDK-RTOS simplifies the porting process by consolidating all HW specific SW into the board library. Inter-processor communication Framework Components. Modifying the board library is the major step required while porting the software to the custom platform. Non-OS Software Aside from the Board library - the SBL and diagnostics components may need to be modified. Application level changes are limited as all of the high level drivers and application relies on this board library for hardware configuration. Components that may require modification Components that will require modification

Custom HW: May or may not be based on TI s EVM Board library will need to reflect custom board changes. MIGRATION TO CUSTOM BOARD: FUNCTIONAL VIEW Components that may need modification* *Depend if peripheral instant from custom board matches or not TI EVM Components that will definitely need modification.

The Board diagnostics is a sample test code to validate the hardware, for manufacturing and component defects MIGRATION TO CUSTOM BOARD: FUNCTIONAL VIEW Can be loaded and executed over emulator (JTAG), or run directly from an SD card in system boot Diagnostics uses LLDs and board library so it may require some modification based on custom board changes. Components that may need modification* *Depend if peripheral instant from custom board matches or not TI EVM Components that will definitely need modification.

App build on top of the CSL and LLD and also depend on the board library to initialize and configure the hardware. MIGRATION TO CUSTOM BOARD: FUNCTIONAL VIEW May require changes, for example if custom board uses a different instance of a peripheral, or if the application requires a peripheral mode that is not supported on the TI s EVM. Components that may need modification* *Depend if peripheral instant from custom board matches or not TI EVM Components that will definitely need modification.

MIGRATION TO CUSTOM BOARD: FUNCTIONAL VIEW LLD relies on the board library to provide board specific initialization and configurations and will remain unchanged while moving to the custom platform. OSAL remains unchanged in the software migration process. CSL remains unchanged on custom platform as both TI EVM and custom platforms use the same SoC. Components that may need modification* *Depend if peripheral instant from custom board matches or not TI EVM Components that will definitely need modification.

MIGRATION TO CUSTOM BOARD: FUNCTIONAL VIEW SBL uses board library for initializing clocks and peripherals (which are not init by RBL). And relies on pre-defined Memory Map of the device memory. Also depends on chosen device media for booting (typically flash). Then, some changes might be needed in SBL for a new custom board. Components that may need modification* *Depend if peripheral instant from custom board matches or not TI EVM Components that will definitely need modification.

WHY CHANGE FROM ISDK TO PSDK RTOS? MAXIMIZE SOFTWARE REUSE TI DEMO APPLICATION ON TI EVALUATION PLATFORM Customers typically start the application development with a TI EVM boards. Tools (UIA) LLD DEMO APPLICATION EDMA, Etc IPC CSL Industrial Protocol & NDK TI Platform TI EVMs has all the functionality and features of the processor tested out PSDK offers application examples. PSDK software consolidates all of the platform specific information into a single software component. No modifications required. May be used as is or customer can implement value-add modifications. Needs to be modified or replaced with customer version. Light green and yellow components rely on TI Platform components to configure the underlying hardware.

WHY CHANGE FROM ISDK TO PSDK RTOS? MAXIMIZE SOFTWARE REUSE TI DEMO APPLICATION ON TI EVALUATION PLATFORM DEMO APPLICATION TI DEMO APPLICATION ON CUSTOMER PLATFORM DEMO APPLICATION AFTER THE PROTOTYPING STAGE, DEVELOPERS MIGRATE THEIR SW TO A CUSTOM PLATFORM. Tools (UIA) LLD EDMA, Etc IPC CSL Industrial Protocol & NDK TI Platform Tools (UIA) LLD EDMA, Etc IPC CSL Industrial Protocol & NDK Custom Platform Typically, based of the TI hardware design but may have significant variations. Due to the consolidation of the platform software in the PSDK, developers can just modify the board library. No modifications required. May be used as is or customer can implement value-add modifications. Needs to be modified or replaced with customer version. PLATFORM MIGRATION Developers need to change Board init based on the requirement of their application and custom board. Board diagnostic software included in the SDK allows for quick validation of the board functionality.

WHY CHANGE FROM ISDK TO PSDK RTOS? MAXIMIZE SOFTWARE REUSE TI DEMO APPLICATION ON TI EVALUATION PLATFORM TI DEMO APPLICATION ON CUSTOMER PLATFORM CUSTOMER APPLICATION ON CUSTOMER PLATFORM DEMO APPLICATION DEMO APPLICATION CUSTOM APPLICATION Tools (UIA) LLD EDMA, Etc IPC Industrial Protocol & NDK TI Platform Tools (UIA) LLD EDMA, Etc IPC Industrial Protocol & NDK Custom Platform Tools (UIA) LLD EDMA, Etc IPC Industrial Protocol & NDK Custom Platform CSL CSL CSL PLATFORM MIGRATION APPLICATION MIGRATION No modifications required. May be used as is or customer can implement value-add modifications. Needs to be modified or replaced with customer version.

WHY CHANGE FROM ISDK TO PSDK RTOS? MAXIMIZE SOFTWARE REUSE TI DEMO APPLICATION ON TI EVALUATION PLATFORM TI DEMO APPLICATION ON CUSTOMER PLATFORM CUSTOMER APPLICATION ON CUSTOMER PLATFORM CUSTOM APP ON NEXT GENERATION TI SOC PLATFORM DEMO APPLICATION DEMO APPLICATION CUSTOM APPLICATION CUSTOMER APPLICATION Tools (UIA) LLD EDMA, Etc IPC Industrial Protocol & NDK TI Platform Tools (UIA) LLD EDMA, Etc IPC Industrial Protocol & NDK Custom Platform Tools (UIA) LLD EDMA, Etc IPC Industrial Protocol & NDK Custom Platform Tools (UIA) LLD EDMA, Etc IPC Industrial Protocol & NDK Next Gen TI Platform CSL CSL CSL CSL PLATFORM MIGRATION APPLICATION MIGRATION FUTURE PROOF No modifications required. May be used as is or customer can implement value-add modifications. Needs to be modified or replaced with customer version. This approach protects software investments made by embedded developers on existing TI parts, as all software releases for future TI SoC platforms will use this software methodology. From App view, even if SoC is different, APIs are the same (CSL, LLD, etc).

PSDK: USEFUL LINKS PSDK Training series: https://training.ti.com/processor-sdk-training-series Introduction to PSDK-RTOS http://software-dl.ti.com/public/hpmp/software/intro_procsdk_rtos_p1/index.html http://software-dl.ti.com/public/hpmp/software/intro_procsdk_rtos_p2/index.html Application development using PSDK-RTOS https://training.ti.com/application-development-using-processor-sdk-rtos?cu=519268 EMAC Porting Guide http://processors.wiki.ti.com/index.php/industrial_sdk_emac_porting_guide

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU ICSS SOFTWARE / CHAPTER AGENDA PRU-ICSS INDUSTRIAL SW PROTOCOL Description. Why change from ISDK to PRU-ICSS software modules. Modular Industrial protocols. Advantages. Download webpage. Architecture. Software package exploration. How to create, build and run PRU-ICSS INDUSTRIAL SW protocols demos.

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU ICSS INDUSTRIAL PROTOCOLS DESCRIPTION INDUSTRIAL PROTOCOL PACKAGE is a single scalable software platform for Industrial Protocols that offers streamlined development across different TI Sitara Processors. Enables real-time industrial communications for TI Sitara processors. Built on top of PSDK-RTOS. Offers optimized Ethernet/fieldbus Firmware. Includes PRU-ICSS driver for ARM (Inside PDK). And other associated drivers. Includes stack adaptation layer. Includes evaluation version of protocol stacks libraries. Includes sample application. HOW IT WORKS: PRU-ICSS firmware (Time critical processing code) runs on the PRU cores PRU-ICSS driver provides simple access to the PRU-ICSS resources from ARM

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU ICSS: WHY CHANGE FROM ISDK MODEL TO A MODULAR MODEL? Separate Industrial protocol packages provide: Better support Ease of migration to other platforms Improved maintenance of existing protocols Simplifies the addition of new protocols PROTOCOL 1 Protocol Stack API Protocol Drivers PRU-ICSS-SW Model PROTOCOL N Protocol Stack API Protocol Drivers This change is transparent for stack engagement with third parties. No change is required from third parties. API Protocol Firmware API Protocol Firmware Bootloader Processor SDK RTOS TI-RTOS Tools Peripherals Drivers

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU ICSS: MODULAR INDUSTRIAL PROTOCOLS AS SEPARATE ADD-ON PACKAGE INDUSTRIAL SDK (AM335X, AM437X) PRU-ICSS-SW INDUSTRIAL LIBRARY MODEL (AM335X, AM437X, AM57X) AM335x PROTOCOL 1 Protocol Stack PROTOCOL N Protocol Stack Industrial Application API TI-RTOS API Protocol Drivers API Protocol Drivers ARM Protocol Stack API API Peripheral Drivers Protocol Driver API Protocol Firmware Bootloader, Tools ARM PRU-ICSS Protocol Firmware TI-RTOS API Bootloader Tools API Protocol Firmware Processor SDK RTOS Peripherals Drivers PRU-ICSS ARM Third Party or Customer TI

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU ICSS INDUSTRIAL PROTOCOLS ADVANTAGES Industrial package has been modularized Each industrial protocol has a separate add-on package that can be used with PSDK-RTOS. Easier migration to custom platforms because platform changes are consolidated in board software. Incremental software changes, when moving to newer TI platforms like AM57xx and K2G. Improved maintenance of existing protocols. For any Industrial protocol, a release with a bug fixed, or a new feature can be updated easier instead of pushing a release for the whole ISDK. One device enables multiple protocols: Profibus, Profinet, Sercos, Ethernet/IP, POWERLINK, EtherCAT, and more. Supports Master and Slave. Simplifies the addition of new protocols. TI industrial communications solutions are tested, certified, and supported. Available as free download: PRU-ICSS-INDUSTRIAL-SW

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU ICSS INDUSTRIAL DOWNLOAD WEBPAGE PRU-ICSS-INDUSTRIAL-SW

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU ICSS SW: INDUSTRIAL ARCHITECTURE INDUSTRIAL APPLICATION OS OSAL PROTOCOL STACK ARM PRU-ICSS PROTOCOL DRIVER PROTOCOL FIRMWARE PRU-ICSS

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS DATASHEETS: Gives a list of features covered, description of implementation, performance, memory and other HW details EtherCAT Slave Datasheet PRU ICSS SW: PROTOCOL PACKAGE EXPLORATION PRU-ICSS SOFTWARE PACKAGE: RELEASE NOTES: Gives a list of what is new, what is and what is not supported, PRU-ICSS Firmware Revision, and a list of fixed and known issues Profinet Slave Release Notes USER GUIDE: Gives information on how to generate CCS project, and how to run the demo application Profibus User Guide docs folder contains Datasheet, Release Notes, User Guide, Getting Started Guide, and Manifest. examples folder contains board, and application files. board folder has the board files for different TI industrial EVMs boards. protocols folder contains stack files (ex EtherCAT), CCS config files, CCS project and include folder. third_party folder contains prebuild stack libraries from third party partners.

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU ICSS SW: PACKAGE EXPLORATION EXAMPLES FOLDER Inside examples\<protocol_name> folder we can find application files. Also examples folder could contain osal folder, or tools folder depending on the protocol. example\board folder is organized per supported TI industrial EVM board. Here we can find board library information that is not cover in the PDK.

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU ICSS SW: PACKAGE EXPLORATION PROTOCOLS FOLDER Protocols folder includes docs folder has Protocol API details. firmware, as header files, per board. (some protocols have) drivers: additional protocol driver files, for example DLR for EIP. (some protocols have) stack: EtherCAT Slave Stack Code (SSC) can be patched. Complete slave stack source code goes here. projects folder there are scripts for generating CCS projects.

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU ICSS SW: PACKAGE EXPLORATION THIRD_PARTY FOLDER All third party files, headers and stack library, go here: stack_lib folder contains pre-build stacks libraries per supported platform: Newer stack, from a stack partner, will go here. And, probably some header would need to be update it.

Install PRU-ICSS-EtherCAT_Slave-01.00.04.02-Windows-x86-Install.exe 02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU ICSS SW: EXAMPLE ON HOW TO CREATE AND BUILD DEMO Let s install, and build PRU-ICSS EtherCAT demo application Download links: http://www.ti.com/tool/pru-icss-industrial-sw http://software-dl.ti.com/processor-industrial-sw/esd/pru_icss_ethercat_slave/latest/index_fds.html

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU ICSS SW: EXAMPLE ON HOW TO CREATE AND BUILD DEMO Processor SDK is also required. Check in User Guide which PSDK version is required for a specific industrial protocol release. For example, for PRU-ICSS-EtherCAT_Slave-01.00.04.02, it is PSDK 4.0.0 Download links for TI RTOS PSDK 4.0.0 for AM335x: http://www.ti.com/tool/processor-sdk-am335x http://software-dl.ti.com/processor-sdk-rtos/esd/am335x/04_00_00_04/index_fds.html Install PSDK in C:/TI/

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU-ICSS SW: EXAMPLE ON HOW TO CREATE AND BUILD DEMO / CCS PROJECT CREATION Setup environment variables. Run <processor_sdk_rtos_device_version>\setupenv.bat

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU-ICSS SW: EXAMPLE ON HOW TO CREATE AND BUILD DEMO / CCS PROJECT CREATION RUN PROJECTCREATE.BAT <PRU-ICSS-SW_version>\protocols\ethercat_slave\projects>projectCreate.bat AM335x arm ethercat_slave_demo Demo creation - workshop script

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU-ICSS SW: EXAMPLE ON HOW TO CREATE AND BUILD DEMO / CCS PROJECT CREATION

02 PRU-ICSS INDUSTRIAL SW PROTOCOLS PRU ICSS SW: APP RUNNING FROM SD CARD HOW TO CREATE A BOOTABLE SD CARD: http://processors.wiki.ti.com/index.php/processor_sdk_rtos_creating_a_sd_card_with_windows Image location: <processor_sdk_rtos_device_version>\prebuilt-sdcards\<evmdevice>\sd_card_img FILES TO COPY INTO SD CARD SBL for SD card (MLO) location: <processor_sdk_rtos_device_version>\prebuilt-sdcards\<evmdevice>\sd_card_files App binary location: <PRU-ICSS SW_version>\protocols\ethercat_slave\projects\ethercat_slave_demo_<device>_arm\<device>_relea se