Wind River Linux LTS Application Development
The Wind River® Linux LTS Application Development course provides engineers with a fast, cost-effective way to acquire the skills necessary to configure and utilize components of Wind River Linux LTS, using command-line techniques exclusively.
Course Description
The Wind River® Linux LTS Application Development course provides engineers with a fast, cost-effective way to acquire the skills necessary to deploy, monitor, and maintain a Wind River Linux system and applications.
After this course, participants will be able to perform the following:
- Configure, build, and validate a Wind River Linux application project
- Use layers and templates effectively
- Design, develop, integrate, debug, build, run, and test applications in a target-host development environment with Linux
- Write applications that take advantage of advanced Linux features
- Effectively debug multi-threaded and multi-process applications
- Prepare applications for integration with Wind River Linux–based devices
Products Supported
- Wind River Linux LTS 18
- The following targets are available: QEMU simulated target
(Intel® x86-64)
Course Format
- This four-day expert-led course consists of lectures and lab sessions.
- Attendees use Wind River Linux LTS to gain experience with the topics presented, using command-line interface techniques.
- Participants examine and exercise simulated targets in hands-on labs.
- Participants receive individual guidance from an expert engineer who has extensive experience with Wind River technologies.
Audience
- Developers who are getting started with the Yocto Project and Wind River Linux
- Developers who want to learn more about writing applications targeting Linux-based devices River Linux
- Customers who have recently purchased or are considering purchasing
Wind River Linux
Prerequisite Skills
- Basic understanding of operating systems and debugging techniques
- Understanding of makefiles
- Functional knowledge of Linux
- One year of C or C++ programming experience on Linux/UNIX
Prerequisite Courses
- Introduction to Linux
Related Courses
- Wind River Linux CLI Essentials
- Wind River Linux Device Driver and Board Support Package Development
Syllabus
Day 1
Introduction to Embedded Linux
- Overview of Linux
- Linux boot process
- Linux user space
- Cross development
- Open source software licenses
- LAB: Getting Started with the Wind River Linux Lab
Environment
Introduction to Wind River Linux
- Overview of Linux
- Linux boot process
- Creating a build environment
- Build environment structure
- Building target images
- Optimizing builds
- Package revision management
- LAB: Managing a Build Environment from the Command Line
- LAB: Customizing the Target Image
Target Management
- Hardware targets
- Cross development workflow
- Deploying to hardware targets
- Simulating a target with QEMU
- LAB: Managing Simulated Targets from the Command Line
Day 2
Application Development
- Application development workflow
- Migrating applications to a build environment
- Application debugging
- LAB: Building Applications from the Command Line
- LAB: Debugging Applications with GDB
- LAB: Debugging a Program Crash with GDB
- LAB: Profiling CPU Usage
- LAB: Profiling Memory Usage
- LAB: Analyzing Code Coverage
Software Management
- Overview
- Build lifecycle
- Managing packages
- Integrating new software
- Recipes
- LAB: Managing Packages
- LAB: Patching Packages
- LAB: Writing a Recipe
- LAB: Integrating Applications with the devtool Tool
Layers and Templates
- Layers
- Anatomy of a layer
- Templates
- Layer and template processing
- LAB: Creating Layers
- LAB: Managing Layers and Templates
Day 3
Linux Processes and Threads
- Processes
- Process lifecycle
- Threads
- Thread lifecycle
- Scheduling
- LAB: Multi-tasking in a Linux Application
- LAB: Managing the Scheduler
Memory Management
- How memory is managed
- Allocating and releasing memory
- Anonymous memory mapping
- Manipulating memory
- Common memory problems
- LAB: Allocating Memory
- LAB: Sharing Memory
File Input/Output
- Overview of files in Linux
- Basic I/O
- Buffered I/O
- Memory-mapped I/O
- Exchanging binary data
- LAB: Reading and Writing Data
- LAB: Implementing Advanced File I/O
- LAB: Working with Directories
Day 4
Inter-Process Communications
- Overview
- Files
- Pipes and FIFOs
- Message queues
- Shared memory
- Sockets
- Signals
- LAB: Communicating with Pipes
- LAB: Communicating with FIFOs
- LAB: Communicating with Message Queues
Synchronization
- Overview of concurrency
- File locks
- Semaphores
- Mutexes
- Futexes
- Condition variables
- Deadlocks
- LAB: Synchronizing Threads
Libraries
- Overview of libraries
- Static libraries
- Shared libraries
- Dynamically loaded libraries
- Common libraries
- Library tools
- LAB: Creating Libraries
- LAB: Working with Dynamically Loaded Libraries
COURSE DETAILS SUMMARY
- Duration: 4 Days
- Course Information: View
- Format: Lectures and Labs
- Type: Instructor-led