Customized, Hands-on Training for Building Embedded Linux Products with NXP Processors

Focused learning relevant to your NXP processor-based hardware. 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. Courses range from a few hours to 4 days, can be offered in-person or online, and consist of concepts and hands-on exercises using NXP processors and associated hardware.

Courses that can be grouped and customized to meet your development plans, NXP processor-based target hardware, schedule, and more include:

 

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/exercises are designed to utilize open source tools and frameworks, NXP processors, and 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 through an SDK, and how to deploy Linux to embedded system through an NXP provided 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 (BSP). Attendees will create a BSP for their NXP processor based development board using the Yocto Project build system. They will learn how to use it to deploy Linux in an 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” and NXP meta 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 for NXP processor based hardware

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 the Timesys Factory Build system and the Timesys 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, and how it enables them to leverage all the features and functionality of NXP processors in the design of their embedded Linux based products.

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 in this training is an overview of a Board Support Package (BSP) and matching Software Development Kit (SDK) and requirements for booting their NXP processor based hardware. In addition, attendees are introduced 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 NXP processors and 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 BSP and SDK for the NXP processor based development board using the Timesys Factory build system web environment
  • How to set up a development environment, including host environment to cross develop applications
  • How to install and manage an SDK (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 for devices using NXP processors.

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 and use NXP processors, 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” and NXP meta layers
  • Customizations using the Yocto Project framework
    • Adding a package
    • Configuration changes
    • Kernel recipes
    • Setting up a target development board
  • Yocto Project based BSPs for NXP hardware
  • 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 application 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. The hands-on labs/exercises in this course are designed to utilize NXP processors and associated hardware.

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

Timesys is an NXP Proven Partner                        

<div align="center"><h2>Want to get your team started on developing embedded Linux products using NXP processor-based hardware?</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" onclick="_gaq.push(['_trackEvent', 'email-button', 'Email', 'emailSalesAt-NXPtraining-page']);"><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="/solutions/software-services/contact-us" style="letter-spacing: normal;">Request Consultation</a></p></div>