TimeStorm Introduction

TimeStorm Overview

TimeStorm is an Eclipse-based integrated development environment (IDE) for embedded application development. TimeStorm 5.4.0 is an IDE based on Eclipse Project 2019-12 and CDT 9.10. TimeStorm 5.3.6 is an IDE based on Eclipse Neon (Eclipse 4.6.3, CDT 9.2.1).

TimeStorm supports:

  • C/C++ application development
  • Kernel Development
  • Kernel Module Development
  • Bootloader
  • Python Development
  • SDK Management
  • Remote Target Management
  • Remote Target Console
  • Remote Run / Debug of applications
  • Gprof
  • Gcov
  • LTTng
  • OProfile
  • Perf
  • Valgrind

Installing TimeStorm

Host System Requirements:

Hardware:

You will need a 64-bit or 32-bit machine with a minimum of 1GB RAM and 1GB free disk space to run TimeStorm.

Operating System:

You will need a 64-bit or 32-bit latest Linux distribution. TimeStorm 5.1.0 is tested on Ubuntu 14.04 and Fedora 20, however you should be able to run TimeStorm on any latest Linux distributions like Red Hat, Debian, CentOS or SUSE. If you just have a Windows machine, you can run TimeStorm in a virtual machine running Linux.

Software Packages:

Java: TimeStorm 5.4.0 & 5.3.6 requires Java version 8. You can install either Oracle Java or OpenJDK. Timesys recommends using Oracle Java. Follow the instructions below to install 64-bit or 32-bit Java depending on your host OS.

Installing 64-bit or 32-bit Oracle Java on Ubuntu: Run these commands:

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java8-installer

Installing 64-bit or 32-bit Oracle Java on Fedora: Download the 64-bit or 32-bit jdk rpm from http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html and install the rpm by running

sudo rpm –Uvh

Installing 64-bit or 32-bit OpenJDK on Ubuntu:

  1. Add a line to /etc/apt/sources.list like this:
  2. deb http://ubuntu.cs.utah.edu/ubuntu utopic main universe

    You may replace ubuntu.cs.utah.edu/ubuntu with other mirrors listed here:

    http://packages.ubuntu.com/utopic/amd64/openjdk-8-jdk/download

  3. sudo apt-get update
  4. sudo apt-get install openjdk-8-jdk

Installing 64-bit or 32-bit OpenJDK on Fedora: Run these commands:

32-bit:sudo yum install java-1.8.0-openjdk.i686

64-bit: sudo yum install java-1.8.0-openjdk-1.8.0.25.x86_64

You can check the version of installed Java by running: java –version

If Java is not path, you may edit the path or point TimeStorm to Java 8 during launch.

Native-platform application development: For building applications that run on the local host, install the compiler for building C/C++ applications by running:

Ubuntu: sudo apt-get install build-essential

Fedora: yum groupinstall "C Development Tools and Libraries"

Cross-platform application development: For building applications that run on a remote hardware target, install an SDK for the target platform which also includes the cross compiler. You can download and install a pre built SDK for the target platform or build an SDK on your local host and install it.

TimeStorm supports Timesys Factory SDK and Yocto SDK and you can install the SDK of your choice.

Timesys Factory SDK: Timesys Factory SDK includes the cross compiler, bootloader, kernel image, RFS and kernel sources for your target platform.

  1. Download and install Factory SDK: You can download a pre built Factory SDK by visiting https://linuxlink.timesys.com/dashboard/ and install it by following the instructions on the board- specific SDK download page.

  2. Build and install Factory SDK: You can build an SDK using Timesys Factory for your target platform by following this: https://linuxlink.timesys.com/docs/wiki/factory/FactoryGSG

Yocto SDK: Yocto does not provide a single installer for the cross compiler, kernel and RFS. They have to be downloaded separately.

  1. Download and install Yocto SDK: You can download a pre-built Yocto toolchain from http://downloads.yoctoproject.org/releases/yocto/yocto-1.6/toolchain/ and install it by following the instructions in here: http://www.yoctoproject.org/docs/current/yoctoproject-qs/yocto-project-qs.html
  2. Build and install Yocto SDK: You can build a Yocto SDK on your host and install it by following: http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-projectqs.html

Additional Packages: If you will be working on kernel projects to customize and build a Linux kernel, you will be using either menuconfig or xconfig to configure the Linux kernel. You will need libncurses5-dev and xterm packages for menuconfig, and qt3-dev-tools or qt4-dev-tools package and xterm for xconfig.

Target Software Requirements

TimeStorm can use scp to download files and ssh/serial to communicate with the remote hardware target. Pre-built Timesys Factory SDKs include the packages that are required for TimeStorm to communicate with the target. If you are building a custom SDK, choose the packages from the list below depending on your target communication choice and include them in your target RFS.

  1. For scp: dropbear, openssh
  2. For ssh: dropbeah or openssh

For tools that include uploading files from the remote target to host (OProfile, LTTng, Valgrind) you should have openssh server running on the target.

Download TimeStorm

You can download TimeStorm by visiting: https://linuxlink.timesys.com/ide. You can download a 64-bit or 32-bit tarball depending on your operating system. You can check whether you are running a 32-bit or 64-bit OS by running uname –m in a terminal. If the response is i686, you are running a 32-bit OS. If the response is x86_64, you are running a 64-bit OS.

Install TimeStorm

Installing TimeStorm involves just un-tarring the tarball. You can un-tar the tarball using the GUI, or by running tar –zxf timestorm-full-install-5.4.0.-<..>.tgz. TimeStorm will be installed in timestorm-5.4.0 folder.

Create a License

TimeStorm 5.4.0 uses a node-locked license which is a text files with .lic extension. A node-locked license enables TimeStorm features on one machine only and is restricted to the MAC address of the machine. Once a license is installed and used, it cannot be moved to a machine with a different MAC address. To use TimeStorm on another machine, you have to create and install another license for the machine.

To create a license for TimeStorm tools, you must have a LinuxLink seat assigned to you.

  • You can create a new license for TimeStorm three times within the life of the subscription.
  • If you need to create additional licenses beyond this limit, contact Timesys. These requests are handled on a case-by-case basis.
  • Manager — If you are the Manager of your LinuxLink account, you can create a license for all the seats within your account.
  • Developer — If you are a Developer, you can create licenses for the seats assigned to you.

To create a TimeStorm license:

  1. Note the MAC address of the machine on which you will be using TimeStorm. You can view the MAC address by running ifconfig. You may use the MAC address of any of the active network interfaces. If you are running TimeStorm in a Virtual Box environment, make sure you use the MAC address of the NIC inside the virtual machine.
  2. Log into your LinuxLink account https://linuxlink.timesys.com/, and then:
    • If you are a Manager, click on the account name at the top of the page, and click on a username link in the Members section.
    • If you are a Developer click on the user name at the top of the page and click My Profile.
  3. Scroll to the bottom of the page, and click the ‘Edit Licenses’ button in the Active Licenses section.
  4. Click the ‘Create’ button located to the right of the seat for which you want to create the license.
    • Enter the MAC address and a descriptive name for the license. It can be helpful to include the type of operating system and computer that will use the license.
    • The license expiration date and the user’s email address are entered automatically.
    • Click ‘Create’ to generate the license. The license is created, emailed to the user and displayed in the web page

Install License

Installing a license involves copying your license file into the appropriate directory on the TimeStorm host. You can obtain the license online by visiting https://linuxlink.timesys.com/user/edit/licenses.xhtml or from the attachment of the email sent to you. Save the license file in one of these locations:

  1. /.timesys/timestorm/licenses
  2. The TimeStorm user's home directory is typically something like /home/ on Linux systems.

    • Licenses copied to this location will work for this user for all version-compatible TimeStorm installations on this computer.
  3. /licenses
  4. TimeStorm checks for a directory named ‘licenses’ that is located within the TimeStorm installation directory.

    • This licenses directory is created automatically when TimeStorm is installed. Licenses installed in this directory will work for this installation of TimeStorm only.

Run TimeStorm

To run TimeStorm, cd to the TimeStorm installation directory and run ./timestorm

TimeStorm requires Java 8. If Java is not on path, or Java other than version 8 is found you will see an error dialog as below. You can either add Java 8 to path, or launch TimeStorm by running:

./timestorm –vm

TimeStorm will launch and prompt you for the workspace to use, a location on your file system to store all your application projects and related information, as shown below

The default workspace location is /home//workspaces/TimeStorm-workspace. You may leave this unchanged. You can select the ‘Use this as the default and do not ask again’ checkbox to avoid being prompted for the workspace every time TimeStorm is run

Click OK to continue and you will see TimeStorm running as shown below.

Documentation

Documentation for TimeStorm and Eclipse can be viewed by clicking Help > Help Contents. If you are new to Eclipse, we recommend you to read the first chapter “Workbench User Guide” to get used to TimeStorm terminology and “C/C++ Development User Guide” to get used to C/C++ project development.

Embedded Development with TimeStorm

This chapter explains the various steps involved in embedded development using TimeStorm:

  • Setup application development environment by installing SDK: Setup includes installing an SDK that includes a cross compiler for building applications. TimeStorm supports Factory, Yocto or any other SDKs. You can download a pre-built SDK and install it or locally build an SDK on your host and install it. For more information, please refer to How to manage SDK's in TimeStorm
  • Create and Build an application project: Application projects are created by using the New C or C++ Project wizard. TimeStorm uses the existing CDT C and C++ Project wizards, but adds the ability to select an SDK to use to build the project. For more information, please refer to How to Start a New Application project (C/C++)
  • Run the application on the remote target:
  • Debug the application that is running on the target: To debug an application, build the project using the debug build configuration that has the toolchain settings to include complete debug information in the binary. For more information, please refer to How to Debug Example Applications in Timestorm
  • Profile the application on the remote target: You can profile your application’s code coverage, memory and timing by using many tools included in TimeStorm:
    • LTTng - Linux Trace Toolkit, is a high-performance tracing tool for Linux that efficiently handles large amounts of trace data. Initially focused on the Linux kernel, its technology has been extended to support user space tracing (UST). From TimeStorm, you can configure and control LTTng, collect the trace data, and visualize and analyze the trace data. For more information, please refer to How to setup LTTNG for use with TimeStorm IDE
    • OProfile - A powerful profiling tool and using TimeStorm you will be able to configure OProfile, gather OProfile data and visualize it. In addition to the OProfile tool from Eclipse, TimeStorm includes a “Linux Profiling Suite” for easily profiling applications using OProfile. Linux Profiling Suite is explained in the next section. For more information, please refer to How to Use Oprofile with TimeStorm
    • Valgrind - A powerful tool that can be used from TimeStorm for profiling applications. TimeStorm adds support to use valgrind on a remote target. For more information, please refer to How to use Valgrind with TimeStorm
    • Gcov - Test code coverage in program using gcov and visualize the gcda and gcno files generated by gcov intrumentation. To learn how to use gcov with TimeStorm, read How to Use Gcov with TimeStorm
    • GProf - Profile an application using gprof and visualize the gmon.out files generated by gprof instrumentation. To learn how to use gprof with TimeStorm, read How to Use Gprof with TimeStorm
  • Integrate the application into your build system: After you have developed your application in TimeStorm, you can integrate the project into desktop factory that is used by your company’s build system. The project will be built using the toolchain that is used by desktop factory. For more information, please refer to How to Integrate a TimeStorm Project into Factory
  • Share the application code by saving it in a version control system: To share your projects with other developers, build and test systems, and to manage your project code it is recommended to include your project in a version control system. You can use any version control system of your choice like Perforce, Subversion, Clearcase etc. Eclipse plugins are available for most of the version control systems. TimeStorm includes EGit plugins that simplify using Git as your version control system. Refer to EGit Documentation in TimeStorm help for more details.