EXCEPTIONAL TRAINING COURSES FOR IT PROFESSIONALS
LONDON UK | ONSITE | ONLINE


Embedded Linux Systems Training Course


Capita Marks and Spencer Telefonica Cisco BBC Lloyds Sony

Embedded Linux Systems training course (code: EMBLINUX)

Develop Embedded Linux Applications Using C Language - Ensure Robust Design And Real Time Behaviour



TRAINING COURSE OVERVIEW

This Embedded Linux course focuses on the interface between applications and the Linux kernel and the POSIX specification in particular. The performance and stability of a system ultimate depends on how well you use the resources of the underlying operating system. Attendees will learn about multi-threaded programming, memory management, signals and interprocess communication, including IPC using local sockets.

It is intended for engineers working on embedded Linux devices, and hence there is an emphasis throughout on robust design, efficient use of resources and real-time behaviour. All lab exercises are cross-compiled and tested on a typical embedded development board. Attendees will learn how to set up the Eclipse IDE for cross development, remote debugging and remote target management.


AUDIENCE

Software engineers and system architects



DETAILHIGHLIGHTS

Developing for embedded Linux


• The tool-chain: choosing, installing and testing
• The Linux kernel: customising and cross-compiling
• The bootloader and root file system: the final steps to having a working target board
• Embedded development using Eclipse for cross-compiling and remote debug
• Application program interfaces: the POSIX standard
• Open source licenses: GPL/LGPL, BSD, etc

Files and devices

• Files and file-related API: waiting for several things to happen with select() and poll()
• Devices: everything is a file. Interfacing with a simple device driver. Using the ioctl()
function to access device-specific operations
• Interacting with the kernel through /proc and /sys: an example using gpiolib


• Files and file-related API: waiting for several things to happen with select() and poll()
• Devices: everything is a file. Interfacing with a simple device driver. Using the ioctl()
function to access device-specific operations
• Interacting with the kernel through /proc and /sys: an example using gpiolib

Processes

• Process life cycle: fork(), exit() and exec()
• Scheduling: real-time and non-real-time policies; setting priority and niceness

Memory

• Virtual memory and its consequences
• Allocating from the heap and stack
• Mapping memory using mmap

Signals

• Standard and real-time signals
• Writing robust signal handlers
• Signal masks and how to handle signals synchronously

Inter-process communication

• Pipes
• Shared memory
• Semaphores
• Message queues
• Sockets: internet and UNIX (local). Stream and datagram connections

POSIX Threads

• Thread life cycle: pthread_create(), pthread_exit(), pthread_join()
• Scheduling threads: real-time and non-real-time
• The thread stack and how to set the stack size

Thread synchronisation

• Synchronisation using mutexes; priority inversion and priority inheritance
• Condition variables: producer and consumer threads
• Thread cancellation and clean-up operators
• Signals and threads

Time and timers

• Timer accuracy: high-resolution timers, POSIX clocks and timers
• Measuring time
• Periodic tasks

Course Overview

The performance and stability of a system ultimate depends on how well you use the resources of the underlying operating system. This course focuses on the interface between applications and the Linux kernel and the POSIX specification in particular. Attendees will learn about multi-threaded programming, memory management, signals and interprocess communication, including IPC using local sockets.


It is intended for engineers working on embedded Linux devices, and hence there is an emphasis throughout on robust design, efficient use of resources and real-time behaviour. All lab exercises are cross-compiled and tested on a typical embedded development board. Attendees will learn how to set up the Eclipse IDE for cross development, remote debugging and remote target management.

Materials

Printed copies of the presentations and lab notes plus electronic copies of the cross development tools, sample code and worked solutions for the labs.

Hands-on labs

An essential part of the training are the lab sessions, which take approximately 50% of the time.
We normally work in pairs using a modern development board such as the Beagleboard. Each group will also need a laptop or desktop to run the system development tools. We will provide a bootable USB memory stick with an appropriate version of Linux and cross tool-chain so there is no need to install Linux beforehand

Receive the latest version of this course into your inbox


 

See why people choose JBI

"At jbi even the sales team are technical so you are able to ask questions before the course"

Garima Aon

Call our Tech Team :  0800 028 6400  request info



PUBLIC COURSES (LONDON, UK)
 

13th Mar 2017 - 5 days £2500 see discount £2250
Book

see all dates


X

Show Discount for this course



PRIVATE COURSES


  Bring a JBI course to your office
  and train a whole team onsite
  0800 028 6400
or request quote


  You can customise this course to
  suit your exact needs here
  0800 028 6400 or request quote


 

 

 

 

Get in touch
0800 028 6400




 

 

view all case studies

 

 

Our inspiring and up-to-date courses gain exceptional feedback

►"great tips to help reduce build times"
► "we got access to exclusive content"
► "intensive course meant less time off"

►"what an inspiring trainer !"
► "colleagues at 2 sites joined via web"
► "I passed my exam the next day"

Newsletter ! Get exclusive news about upcoming programs, technical insights & special offers