Sitara Linux Software Developer’s Guide

From Texas Instruments Embedded Processors Wiki

Jump to: navigation, search
Translate this page to   


TIBanner.png

Contents



For the SDG specific to your SDK release, please refer to Archived SDGs under Reference Documentation


Welcome to the Sitara Linux Software Developer's Guide

Thank you for choosing to evaluate one of our Sitara ARM microprocessors. Please bookmark this page and refer back to it as needed. It is designed to quickly provide the information you need most while evaluating the AMx microprocessor. We are always striving to improve this product.  Please let us know if you have ideas or suggestions.  



Supported Platforms & Version Information

The following Sitara ARM microprocessors are supported with this SDK version.

Platforms SDK PSP Kernel U-Boot Toolchain Release Date
BeagleBone 5.07 04.06.00.10 3.2 2013.01 gcc4.5.3 April 2013
AM335xEVM 5.07 04.06.00.19 3.2 2013.01 gcc4.5.3 April 2013
AM335x StarterKit (SK) 5.07 04.06.00.10 3.2 2013.01 gcc4.5.3 April 2013
Beagleboard-xM 5.07

       -

3.3.7 2012.04.01 gcc4.5.3 April 2013
AM37xEVM 5.07 04.02.00.07 2.6.37 2012.04.01 gcc4.5.3 April 2013
AM35xEVM 5.07 04.02.00.07 2.6.37 2011.09 gcc4.5.3 April 2013
AM180xEVM 5.07 03.21.00.04 2.6.37 2010.12 gcc4.5.3 April 2013



Linux Software Stack

The following software stack illustrates at a high level the various components provided with the Sitara Linux SDK.
NOTE - Availability of certain applications are platform dependent and clarified in the associated User Guides below.  



Sitara linux stack.png




EVM Hardware Overview

Details for various hardware platforms supported by this Sitara Linux SDK are provided before.

Platform Document EVM Provider
AM335xEVM Hardware User's Guide www.ti.com
AM335x StarterKit (SK) Hardware User's Guide www.ti.com
BeagleBone Hardware User's Guide (Rev A3) Beagleboard.org
Beagleboard-xM Hardware User's Guide Beagleboard.org
AM37xEVM Hardware User's Guide Mistral
AM35xEVM Hardware User's Guide Logic
AM180xEVM Hardware User's Guide Logic




Start your Linux Development

Before using the Sitara Linux SDK you must have a Linux development environment.  Linux development environments vary, so we recommend the following for ease of use and consistency when working together.  The next few steps will assist you in the setup & configuration of your Linux host based on the physical setup shown below.   


1. Configure a Linux Host - If you already have a Linux host machine, go to Step 2. If you do not have a Linux host machine, you can configure a Linux host machine on your Windows PC using a virtual machine.


For standard EVMs:

2.  Configure your development environment

Evm environ.png

For Beaglebone:

2. Configure your development environment

Bone environ.png

3. Install the SDK - Within your Linux host machine, Install the Sitara SDK

3. Run the START_HERE Script - When Beaglebone boots, a START_HERE directory will display on your Linux host desktop.  To start your evalaution and development using the BeagleBone, Run the START_HERE.sh script

NOTE: The START_HERE.sh script will run the setup.sh script. For Beaglebone boards before rev A5 the setup.sh script will attempt to install a udev rule to load the ftdi_sio module with the proper parameters to recognize the Beaglebone. If you experience difficulty with the Beaglebone being recognized you can load the module manually by doing:

  • sudo rmmod ftdi_sio
  • sudo modprobe ftdi_sio vendor=0x0403 product=0xa6d0


4.  Run the Setup Script - Once the SDK has been installed, Run the Setup.sh Script to guide you through the remaining development environment configuration.
NOTE: If using a VMWare image you will likely need to import the beaglebone into the VMWare image as a mass storage device using the instructions here




Configuring a Serial Connection

If you chose not to use the setup.sh script (or START_HERE.sh) to configure you connection you can always perform the following steps to configure a serial connection with the board.

  • The following steps will help you validate that you have a valid serial connection with your target board
    IMPORTANT

    These steps are written for boards like the EVM-SK and Beaglebone which use an FTDI USB-to-Serial adapter. For boards with a straight UART connection you can ignore the steps for /dev/ttyUSBx and instead just use the serial port on your Linux host that is connected to the board
    • Connect the USB cable between your Linux host and your target board
      IMPORTANT

      On the AM335x EVM-SK, the USB cable enables a USB-to-serial interface to the Linux host PC. If using a virtual machine, please insure the AM335x EVM-SK is a selected USB device.
      NOTE

      If you are running your VMWare image with Windows 7 some USB-to-Serial adapters do not properly work with Windows 7. Make sure that your adapter specifically says that it supports Windows 7. You may also need to install an additional driver for your adapter.
    • Open a terminal and run the following command to find the USB serial adapters available on the system. The FTDI chip used on the board presents two serial interfaces to the Linux host. The first interface is the JTAG interface and the second one is the serial console interface.
      ls /dev/ttyUSB*
      You should see output like:
      /dev/ttyUSB0
      /dev/ttyUSB1
      NOTE

      If using VMWare you may need to pass the "Future Technology Devices" device into the VMWare image
      • As mentioned above since the board's serial interface is the second interface you will want to open a serial console to the second device node. In this case that is /dev/ttyUSB1. This can be done by doing:
        • minicom -w -s
        • Select Serial port setup and press ENTER
        • Press A to modify the Serial Device and change the device to /dev/ttyUSB1. Press ENTER
        • Press ENTER to exit the serial setup
        • Select Exit and press ENTER
      • You should now see a minicom window.
    • Power on the board, you should see "ccccc" being printed in the window, if so the serial connection is working as expected. Go ahead and leave this console RUNNING in the background.
      NOTE

      For the EVM-SK board the power button is under the board in the upper-right hand corner. You must press and hold this button to power on the board.
      NOTE

      For the Beaglebone the board will power on as soon as the USB cable is connected. you can reset the board by pressing the reset button which should provide you with the expected output
      Sitara linux training rom boot serial output 1.png




SDK Directory Structure Overview

The Sitara Linux SDK contains the following top-level directories and files

Sitara-Linux-directory-structure.png

These directories contain the code and tools used to develop for Sitara devices.

  • bin - Contains the helper scripts for configuring the host system and target device. Most of these scripts are used by the setup.sh script.
  • board-support - Contains the SDK components that need to be modified when porting to a custom platform. This includes the kernel and boot loaders as well as any out of tree drivers.
  • docs - Contains various SDK documentation such as the software manifest and additional user's guide. This is also the location where you can find the training directory with the device training materials.
  • example-applications - Contains the sources for the TI provided example applications seen during the out-of-box demonstration.
  • filesystem - Contains the reference file systems. These include the smaller base file system as well as the full-featured SDK file system.
  • host-tools - Contains the host side tools such as pinmux and flash tool.
  • linux-devkit - Contains the cross-compile toolchain and libraries to speed development for the target device.
  • Graphics_SDK_setuplinux_<version>.bin - This is the installer for the graphics SDK. The graphics SDK components are used by the Sitara Linux SDK to provide additional demos as well as integrated with the pre-built Qt libraries to accelerate various Qt functions.
  • Makefile - Provides build targets for many of the SDK components from the top-level of the SDK.
  • Rules.make - Sets default values used by the top-level Makefile as well as sub-component Makefiles
  • setup.sh - Configures the users host system as well as the target system for development




Example Applications User's Guides

There are a number of Example Applications provided within the Sitara Linux SDK. Below are the applications available on each platform and the User's Guides associated with each component.

NOTE: The example applications below assume that you are using the default pinmux/profile configuration that the board ships with, unless otherwise noted in the individual application's User's Guide


Applications available by development platform

Applications AM335x BeagleBone AM335x SK AM180x AM35x AM37x Beagleboard-xM Users Guide Description
Matrix GUI X X X X X X X Matrix User's Guide Provides an overview and details of the graphical user interface (GUI) implementation of the application launcher provided in the Sitara Linux SDK
Power & Clocks X X X     X X Power Management User's Guide Provides details of power applications integrated into the Matrix GUI, along with helpful command line equivalents.
Multimedia X
X   X X X Multimedia User's Guide Provides details on implementing ARM/Neon based multimedia using GStreamer pipelines and FFMPEG open source codecs.
Camera


    X   Camera User's Guide Provides details on how to support smart sensor camera sensor using the Media Controller Framework
USB Profiler X X X X X X X NA  
ARM Benchmarks X X X X X X X NA  
Oprofile X X X X X X X Oprofile User's Guide Provides applications which show how Oprofile can be used for debugging and understanding system performance.
Display X
X   X X   NA  
Cryptography X X X X X X X Cryptography User's Guide Provide details on how to implement cryptography through use of OpenSSL and various example applications.
WLAN and Bluetooth X
X X
X    Open Source Wireless Connectivity WLAN/Bluetooth User's Guide Provides details on how to enable the WL1271 daughtercard which is connected to the EVM
QT Demos X X X X X X X NA  
Web Browser X X X X X X X NA  
System Settings X X X X X X X NA  




Bootloaders - How to Build & Install

The following provides instructions on how to build and install uboot and MLO.  Additional reference documentation is also provided.   




Kernel - How to Configure, Build & Install

The following provides instructions on how to configure, build and install the Linux kernel. Additional reference documentation is also provided.




Host Side Development Tools

There are number of host side development tools provided in the Sitara Linux SDK to ease your development.  See the appropriate User's Guide below for more information.

Host Tools for Target Development

These are tools that will assist in cross-compiling code for the target device or making images to run on the target device

Top-Level Makefile

The Sitara Linux SDK contains a top-level Makefile in the root of the SDK tree that can be used to rebuild many of the example applications and board support packages. See the Sitara Linux SDK Top-Level Makefile page for more information on using this Makefile.

GCC Cross-Compile Toolchain

Starting with version 05.xx of the Sitara Linux SDK there is now a GCC cross-compile toolchain available within the SDK in the linux-devkit directory. For details on using this toolchain please see the Sitara Linux SDK GCC Toolchain page.

create-sdcard.sh script

Starting with version 05.04 of the Sitara Linux SDK there is now a shell script available called create-sdcard.sh which can be used to create an SD card image for booting the various Sitara EVMs. For details on using this script please see the Sitara Linux SDK create SD card script page.


Code Composer Studio v5 User's Guide

Code Composer Studio v5 - a full featured, Eclipse based IDE that includes the Remote System Explorer plugin. CCSv5 can be used for both application development & debug using gdbserver and kernel debug using an XDSv100 JTAG emulator.

GEL files for Sitara Processors can be found at the following link

For detailed instructions based on the Beagebone on how to do Linux debugging with CCSv5 see:



Host tools for Target Configuration

These tools are intended to be run on the host and assist in configuring the target device

Pin Mux Utility User's Guides

Pin Mux Utility - a graphical utility designed to ease the pin mux configuration effort by highlighting pinmux conflicts, configuring the IO and outputting the required source code.

Flash Tool User's Guides

Linux Training

In Sitara we recognize the need for solid, real world embedded Linux training.  As we continue to enhance the features of our Sitara Linux SDK we have also focused on developing training material based on the same SDK.  That way, anything provided in the training can be easily reproduced on your side once you have installed the Sitara Linux SDK.

We have a number of modules that are complete and others we are actively working on. All of our Linux training is provided on this wiki.


If you have comment on the training or a request for Linux training that is not be captured here, please let us know using the sdk_feedback@list.ti.com mailing list


NOTE

If you are unable to access Google Drive documents you can also find this training material at www.ti.com/sitarabootcamp
Lecture Lab Description
Linux Host Configuration Sitara Linux Training: Linux Host Configuration This page details how the Linux Host is configured for Sitara Linux Training. These are the same methods to prepare laptops used in live TI training.
Introduction to Linux   - Introduces the community-based Linux ecosystem on TI platforms. What will be covered are the components that make up the ecosystem such as the boot loader, Linux kernel, device drivers, user application layer and the relationship between them.
Linux Boot Process   - Looks at all aspects of the boot process from power up to running user a application beginning with ROM boot loader progressing through secondary program loader, u-boot, kernel and finishing with user-level initialization.
Sitara Linux Training: Hands-on with the SDK Sitara Linux Training: Hands on with the SDK Learn about the various components that make up the ARM MPU Linux software development kit including the out-of-box application launcher, the CCS IDE, example applications. In addition, host tools such as the pin-mux utility and the flash tool will be introduced. All these components are packaged into a single easy to use installer from TI.com
Code Composer Studio v5 Code Composer Studio v5 Covers what the Eclipse-based Code Composer Studio is, how to use it for embedded Linux application development, debugging and additional plug-ins that are provided
Sitara Linux Training: Power Management Sitara Linux Training: Power Management Discusses how to improve product power performance by minimizing power consumption and guaranteeing system performance. In addition, power management techniques enabled via the Linux SDK will be discussed
Sitara Linux Training: Cryptography Sitara Linux Training: Cryptography Covers cryptography basics and explore cryptographic functions enabled via open source projects. In addition, cryptographic hardware acceleration access and Linux SDK example applications will be discussed.
Sitara Linux Training: Linux Board Port Sitara Linux Training: Linux Board Port Discusses the fundamentals necessary to port a TI Linux-based EVM platform to a custom target platform. Introduces the necessary steps needed to port the following components: Linux kernel.
Sitara Linux Training: U-Boot Board Port Sitara Linux Training: U-Boot Board Port Discusses the fundamentals necessary to port a TI Linux-based EVM platform to a custom target platform. Introduces the necessary steps needed to port the following components: secondary program loader, u-boot.
Sitara Linux Training: U-Boot/Kernel Debug with CCSv5 Sitara Linux Training: U-Boot Linux Debug with CCSv5 Learn about how U-Boot and Kernel Debug can be done using CCSv5 using JTAG. This presentation and accompanying lab will discuss what debug information is necessary to be built into U-Boot and the Kernel to allow source code level debug with a JTAG interface.
ARM Multimedia ARM Multimedia Introduces open-source based multimedia codecs for the ARM Cortex-A8. In addition, look at the capability of the NEON coprocessor to accelerate multimedia. Plus, introduces GStreamer, an open-source pipeline-based framework that enables access for multimedia through FFMPEG/libav support on the ARM. GStreamer will be illustrated with Linux SDK examples.
Sitara Linux Training: Hands on with QT Sitara Linux Training: Hands on with QT Learn how to develop a GUI quickly with the Linux SDK. Learn background information on QT. Learn how to use the SDK to get started developing a GUI. Learn about QT Creator and all the QT toolset.
Oprofile Oprofile Introduces the Opensource tool Oprofile. When is it useful during the development cycle. Introduce some of the more popular features. Cover both modes of operation, internal HW counters or timer interrupts. Cover internal operation details. Also point out use cases where Oprofile may not be useful.
Init Scripts Sitara Linux Training: Init Scripts Learn how the Linux init scripts work with the sysvinit system as well as how the profile scripts can be used to affect the login process.
Optimizing Linux Boot Time Sitara Linux Training: Optimizing Linux Boot Time Learn how to identify the portions of the Linux boot taking the most time and remove or defer those operations until later. The goal of this lab is to have a system booting to a display on the LCD and reading a touchscreen event in less than 3 seconds.



Other How Tos

This section provides how-to articles on additional setups and configurations you may find useful in your development.

Host How Tos

Target How Tos

Reference Documentation

Release Notes

Graphics Documentation

Linux PSP Documentation

PSP Release Notes

AM335x PSP

AM35x/AM37x PSP

AM180X PSP


PSP Features and Performance Guides

AM335x PSP


AM35x/AM37x PSP


AM180X PSP


PSP User's Guides

AM335x PSP


AM35x/AM37x PSP


AM180X PSP



Miscellaneous Documentation

QT Documentation


Archived - Software Developer's Guide



GPLv3 Disclaimer

There are GPLv3 licensed software components contained within the Sitara Linux SDK on both the target and the host.  The software manifest (software_manifest.htm) for the Siatara Linux SDK is located in the docs/ directory of the installed SDK.  All GPLv3 components for both target and host are contained in the SDK directory.


These GPLv3 components are provided for development purposes only and may be removed for production solutions. 


How to Identify the GPLv3 components

To idenitfy the GPLv3 components installed on the target file system, run the gplv3-notice script located on the target file system located here:  /etc/init.d/gplv3-notice

The gplv3-notice script will list all Sitara Linux SDK built shipped installed packages.  If you installed addtional GPLv3 components this script may not identify them until the next target reboot.  


How to Remove Target side GPLv3 Components

The gplv3-notice script also outputs how to remove the packages.  To remove individual packages from the target development file system, use the opkg remove command which is: opkg remove <package>



Software Updates

We are continually improving the quality and content of the software we provide in the EVM. Updates to the SDK may be obtained at Software Updates as they become available.



Technical Support

  • E2E Support Forums - an active community of TIers and other customer like you already using the AM37x EVM. You may find your question has already been answer with a quick Search of the Forums. If not, a quick post will likely provide you the answers you need. Support@ti.com - a support email list you may submit your question to.
  • support@ti.com



Want to Contribute?

We are always striving to improve this Sitara Linux SDK. Please let us know if you have ideas or suggestions. The sections below will give you ideas on how to best contribute to the SDK and PSP Linux kernel.

SDK Contributions

All Sitara Linux SDK contributions can be sent to the sdk_feedback@list.ti.com mailing list. This covers submitting bug fixes, new features, or any other feedback to components provided with the Sitara Linux SDK including, but not limited to:

  • u-boot
  • target file system
  • Host Tools
  • Scripts
  • Example Applications
  • Documentation


Some general guidelines to help us with your feedback are:

  • Documentation
    • Provide the URL of the document being discussed
    • Describe the section in question
    • If you have suggestions on the change requested please include them
  • Source Code/Scripts/Makefiles
    • Provide the location of the source code being discussed within the SDK
    • If possible provide a patch as this is easier to determine the changes being proposed and helps us to make sure you get credit for your work
  • Tools
    • Provide the version of the tool
    • If possible give screen captures or step-by-step instructions for reproducing any issues


Following the above guidelines will help to streamline the communication, but we would like to get your feedback no matter what.

PSP Linux Kernel Contributions

For information on how to contribute to the PSP Linux kernel please see the Contributing to the Linux PSP page.



E2e.jpg For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article Sitara Linux Software Developer’s Guide here.
Hyperlink blue.png Links
ARM Microcontroller MCU ARM Processor Digital Media Processor Digital Signal Processing Microcontroller MCU Multi Core Processor
Ultra Low Power DSP 8 bit Microcontroller MCU 16 bit Microcontroller MCU 32 bit Microcontroller MCU

Leave a Comment

Comments

Comments on Sitara Linux Software Developer’s Guide


Ydliulei said ...

I am a chinese I am poor in English ,could you translate more pdfs into chinese. thank you!

--Ydliulei 06:17, 10 December 2011 (CST)

Kedarkekan said ...

This wikipage says support for SDK 5.04 Whereas I don't find any 5.04 on the download page. The latest available version is 5.03.02. Could you please correct either the wiki page or the SDK download page? - Kedar

--Kedarkekan 11:10, 28 February 2012 (CST)

Personal tools
Namespaces
Variants
Actions
Navigation
Print/export
Toolbox