Customized Training

Focused learning. From experts.

Timesys offers private, on-site, customized courses typically for teams who have made the strategic decision to embrace open source Linux for their embedded systems and want to pick from a broad array of training content. (Other Timesys University Programs are either non-custom or much narrower in scope and length.) Courses range from a few hours to 4 days, can be offered in-person or online, and consist of concepts and hands-on activities.

Courses that can be grouped and customized to meet your development plans, target hardware, schedule, and more

 

Introduction and Overview

Introduction to Embedded Linux (EL201)

Embedded Linux development can be easy! This training is designed to give you an understanding of the concepts and best practices behind embedded Linux development. No prior embedded Linux experience is required.

The course introduces a variety of concepts, technologies, and techniques used in the embedded Linux space. Through theory, discussion, and hands-on labs, this course gradually guides attendees through the process of developing embedded Linux based solutions. The hands-on labs are designed to utilize open source tools and frameworks, as well as Timesys tools.

To enable acceleration of their learning experience, all attendees will be provided with their development environment and tools.

Course options:

  • 2-Day Course: This abbreviated format focuses on building an embedded Linux knowledge baseline.
  • 4-Day Course: This extended format further expands on the topics discussed in the 2-Day course to include more in-depth basic application and system level development and system optimizations.

Who Should Attend:

This course is designed for engineers who are new to building embedded Linux solutions and have no prior experience with Linux. It is also designed for engineers who require a refresher course on embedded Linux basics, have a UNIX background, or have developed in the embedded space, but not with Linux.

The course will provide an overview of:

  • Embedded Linux basics including licensing, structure and development approaches
  • Embedded Linux concepts including board support package (BSP), software development kit (SDK), toolchain, cross-environment, kernel space, user space, RFS and APIs
  • How to setup a development environment setup through an SDK and how to deploy Linux to embedded system through a BSP
  • How to build / deploy and debug software in cross-environment
  • Basic system and application programming (a series of lectures and hands-on exercises)
  • How to analyze performance, execution paths and memory, including memory leak detection

Course Objective:

    • To give students the knowledge to immediately apply these concepts to their current or next embedded Linux project.

Getting Started with the Yocto Project Build System (YP201)

This course will provide attendees with an introduction to embedded Linux development using the Yocto Project build system.

Through a mix of theory and hands-on assignments, participants will gain a practical understanding of the Yocto Project build process. The class will introduce Poky — the build engine behind Yocto Project, and it will provide an overview of BitBake which is used to build packages. Attendees will gain an understanding of configurations and recipe files used to create a custom distribution.

In addition, this course will introduce the concept of layers as they relate to the Yocto Project build system, and it will introduce Yocto Project-based board support packages (BPSs). Attendees will create a BSP using the Yocto Project build system and will learn how to use it to deploy Linux in emulated environment and jump start their application development.

Course options:

This training is offered as a 1-day course.

Who Should Attend:

This course is designed for engineers who are new to embedded Linux build systems and/or are considering use of the Yocto Project build system for their embedded Linux-based development.

Prerequisites:

Basic understanding of C programming, Linux and script writing.

The course will provide an overview of these primary topics:

  • Embedded Linux basics / Introduction to embedded Linux
  • Yocto Project build system basics / Introduction to Yocto Project
  • Configuring Poky, the Yocto Project build engine
  • Using BitBake and recipes to create a custom distribution
  • Yocto Project “layers”
  • Yocto Project build process
  • Introduction to Yocto Project build system-based customizations
  • Yocto Project based BSPs
  • Native vs. Cross environment
  • Runtime and development environment setup with Yocto Project based BSP

Course Objective:

  • To give students the knowledge to immediately apply these concepts to their current or next embedded Linux project.
Introduction to Timesys Tools (TS201)

Summary:

This course introduces Timesys’ Factory Build System and TimeStorm Eclipse-based IDE. Attendees will learn how the use of the make-based build system offered by Timesys helps complete system integration and customization.

This course focuses on how to enhance a host development environment with desktop tools that help in the development of value-add software. Developers will learn how to jumpstart application development with the use of LinuxLink’s Factory Web-based UI — followed by how to perform advanced system customization with the powerful LinuxLink Factory Desktop development cross-tools that have been built, integrated, configured, and tested for their development kit. Included is an overview of a Board Support Package and matching Software Development Kit (BSP / SDK) and requirements for booting the hardware, and an introduction to the typical process of remote debugging, tracing, and testing the target application using TimeStorm.

Course options:

This training is offered as a 1-day course.

Who Should Attend:

This course is designed for new and experienced engineers who are building embedded Linux solutions using Timesys’ tools. It is also targeted at experienced developers requiring a refresher course on Timesys’ tools.

The course will provide an overview of:

  • How to quickly build a custom Board Support Package and Software Development Kit (BSP / SDK) using the LinuxLink Factory Web-based UI
  • How to set up your development environment, including host environment to cross develop applications
  • How to install and manage your software development kit (kernel, cross toolchain, root filesystem and documentation)
  • How the Target Manager Plugin makes TimeStorm interaction with target boards easy
  • How to use cross toolchains in TimeStorm
  • How to develop an application with a modern IDE
  • How to code, compile and build
  • How to debug on target
  • How to analyze performance, execution paths and memory, including memory leak detection

 

Mid-Level

Building Your Next Custom Product with the Yocto Project Framework (YP202)

This course is designed to provide attendees with practical skills and knowledge necessary to leverage the Yocto Project system to build custom embedded Linux-based software.

Throughout the course, attendees will learn about the complete Yocto Project build process and customizations, how to add custom hardware definitions, and how to customize the Linux software stack. Attendees will build Board Support Packages (BSPs) and use Application Development Kits (ADKs). The course will include many hands-on exercises, ensuring deep technical exposure to covered topics. Attendees will work with native, emulated, and cross build / runtime environments.

Who Should Attend:

The course is designed for experienced engineers who want to use the Yocto Project as the primary build system for their next embedded Linux based project. The course not only focuses on the Yocto Project build system, but also covers application development aspects, team collaboration, and Yocto Project integration with CRMs.

Prerequisites:

Proficient in C programming for Linux / Unix, basic understanding of Linux, basic script writing skills, basic understanding of a build system and SCM concepts.

The course will provide an overview of these primary topics:

  • Introduction to Yocto Project
  • Yocto Project and OpenEmbedded
  • Poky and the Yocto Project build process
  • Using BitBake and recipes to create a custom distribution
  • Yocto Project set up
  • Yocto Project “layers”
  • Customizations using the Yocto Project framework
    • Adding a package
    • Configuration changes
    • Kernel recipes
    • Setting up a target development board
  • Yocto Project based Board Support Packages (BSPs)
  • Native vs. Cross environment
  • Runtime and development environment setup with Yocto Project based BSP
  • Application development toolkit
  • SCM integration

Course Objective:

  • To give students the knowledge to immediately apply these concepts to their current or next embedded Linux project.
Developing Applications on Linux (EL202)

Summary:

The course focuses on the development and creation of applications in an embedded Linux context using the Timesys TimeStorm IDE. The course focuses on acquiring an understanding of the basic Linux Operating System, highlighting areas of concern for embedded Linux applications development with a focus on embedded development.

The course provides advanced training in the design, development, debugging, profiling, testing, performance measurement, and optimization of embedded Linux applications including deployment considerations for embedded Linux applications software. The course leverages Yocto or Factory built SDK and can be delivered on Linux or Windows 10 development hosts.

Who Should Attend:

This course is designed for engineers who are developing advanced applications based on embedded Linux. It is also targeted at experienced developers requiring a refresher course on embedded Linux applications development. This course will clearly demonstrate the methods and tools used for application development including debug, test, performance optimization, and system deployment.

Course Objectives:

  • To provide an understanding of embedded Linux and advanced applications development.
  • To gain an understanding of the complexities of embedded Linux Distributions and their use in embedded systems.
  • To understand methods for debugging, profiling and testing embedded Linux applications.
  • To provide an overview of Linux application performance measurement and optimization.
  • To give students the confidence to immediately apply these concepts to their current or next embedded Linux project.
Developing Complex UI based Applications with Qt (EL203)

Summary:

The course focuses on the development and creation of complex user interface based applications in an embedded Linux context using Qt and Timesys’ LinuxLink Qt SDK. The course focuses on acquiring an understanding of the basic Linux OS, highlighting areas of concern for embedded Linux UI applications development with a focus on embedded development, debugging, and testing. It covers developing a Linux based platform and a Qt based value-add UI application and how the use of make-based build system offered by Timesys helps complete system integration and customization. The course provides advanced training in the design, development, debugging, profiling, testing, performance measurement, and optimization of embedded Linux applications including detailed memory management approaches for embedded systems and deployment considerations for embedded Linux applications software.

Who Should Attend:

This course is designed for engineers who are developing connected devices requiring advanced UI applications based on embedded Linux. It is also targeted at experienced developers requiring a refresher course on embedded Linux applications development. This course will clearly demonstrate the use of Qt for creating state-of-the-art user interfaces and methods and tools used for application development including debug, test, performance optimization, and system deployment.

Course Objectives:

  • To provide an understanding of embedded Linux and advanced UI applications development.
  • To gain an understanding of the tools for creating feature-rich applications and how to use them to build modern graphical UIs.
  • To understand methods for debugging, profiling and testing embedded Linux applications.
  • To provide an overview of Linux application performance measurement and optimization.
  • To give students the confidence to immediately apply these concepts to their current or next embedded Linux project.

 

Advanced

Developing Linux Device Drivers (EL306)

Summary:

This four-day technical training course provides advanced training in the development of device drivers. It covers embedded Linux device driver development including key device driver decisions.

Who Should Attend:

This course is designed for engineers who are building device drivers for embedded Linux solutions. It is also targeted at experienced developers requiring a refresher course on device drivers for embedded Linux.

Course Objectives:

  • To provide a basic understanding of the Linux I/O Subsystem and the device driver models provided with embedded Linux distributions
  • To gain an in-depth understanding of character-based device drivers in embedded Linux.
  • To understand key device driver subsystems including relatively slow I/O interconnects such as I2C, SPI and USB as well as high-speed interfaces such as USB 3.0.
  • To give students the confidence to immediately apply these concepts to their current or next embedded Linux project.
Kernel Internals & Debugging (EL307)

Summary:

This four-day technical training course provides an overview of Linux OS and kernel architecture. The course focuses on Linux kernel customizations and debugging. It covers the Linux boot process, interfacing with the Linux kernel and Linux device drivers as well as build, authoring and debug tools, and source code management (SCM).

Who Should Attend:

This course is designed for engineers who want to learn to build and debug Linux kernel code. It is also targeted at experienced developers requiring a refresher course on kernel customizations and debugging.

Course Objectives:

  • To gain an understanding of the Linux operating system and Linux kernel architecture.
  • To provide a basic understanding of object oriented model of devices, drivers and devices, loadable kernel modules, and userspace drivers in embedded Linux.
  • To gain an in-depth understanding kernel customizations, including platform / board files and device trees.
  • To provide an understanding of the necessary tools for kernel authoring, building, debugging and source code management.
  • To give students the confidence to immediately apply these concepts to their current or next embedded Linux project.
Optimizing Your Design for Fast Boot (EL411)

Summary:

The course focuses on Linux platform integration, testing and optimization. The course features acquiring an understanding of the basic Linux Operating System, highlighting areas of concern for embedded Linux applications development with a focus on performance measurement and optimization of embedded Linux applications. The course covers detailed memory management approaches for embedded systems and deployment considerations for embedded Linux applications software.

Who Should Attend:

This course is designed for engineers who are developing advanced embedded Linux applications requiring a small footprint and fast boot time. It is also targeted at experienced developers requiring a refresher course on embedded Linux applications testing and integration. This course will clearly demonstrate the methods and tools used for testing, performance optimization, and system deployment. Options for achieving ~1 second boot time will be discussed.

Course Objectives:

  • To provide an understanding of Linux platform integration.
  • To provide an overview of Linux application testing, performance measurement and optimization.
  • To gain an understanding of common Linux techniques for achieving a small footprint end product with a fast boot time including the development of scripts used to auto launch different features of the product at boot time.
  • To give students the confidence to immediately apply these concepts to their current or next embedded Linux project.

 

Technology Partners

           

<div align="center"><h2>Want to get your team started on your embedded Linux development?</h2><p>Contact us for a free, 30-minute consultation to discuss how Timesys can optimize a training program for your team, so you can get your embedded Linux development up and running, quickly and easily. Please schedule a complimentary consultation via our online form, email us at <a href="mailto:sales@timesys.com?subject=I'd like to more information about Timesys' customized training"><strong>sales@timesys.com</strong></a> or call us at <strong>1.866.392.4897</strong> (toll-free) or <strong>+1.412.232.3250</strong>.</p><p><a class="et_pb_promo_button et_pb_button darker" href="/software-services/engagement-process/contact-us/" style="letter-spacing: normal;">Request Consultation</a></p></div>