Home > Speakers >

Sergio Prado

Sergio Prado has been working with embedded systems for more than 25 years, providing consulting and training services for companies worldwide. He also writes on his blog at sergioprado.blog and contributes to several free and open-source projects, including Buildroot, Yocto Project, and the Linux kernel.

Power Management on Linux: From the Hardware to the Kernel and User Space Interfaces

Available in 14 days, 23 hours and 11 minutes

Power management on modern hardware is quite complex. There are so many concepts and features provided by the hardware like frequency scaling, idle states, wake-up sources, sleep states, suspend-to-RAM, hibernation, etc! All this needs to be abstracted so kernel and user space code can properly manage power consumption.

In this talk, we will deep dive into all these concepts, from the resources provided by the hardware to standard and portable software interfaces provided by the kernel and consumed by device drivers and user space applications, including tools and techniques to monitor and improve power consumption on an embedded Linux system.

Go to Session


Challenges and techniques to use Linux in Real-Time Systems

Status: Available Now

Is the Linux kernel a good fit for real-time systems? Can we consider Linux a deterministic and fully-preemptible kernel so it can be used in real-time applications? If so, how is it possible, and what we should be aware of? Although Linux (with the PREEMPT_RT patch) is designed to be used on Real-Time Systems, it takes more than just a kernel to make sure you can meet all real-time requirements. This talk will cover the main aspects related to designing real-time applications on Linux-based operating systems, from configuring the kernel to writing real-time user space applications and measuring latencies.

Go to Session


Live Q&A - Challenges and techniques to use Linux in Real-Time Systems

Status: Available Now

Live Q&A with Sergio Prado for the talk titled Challenges and techniques to use Linux in Real-Time Systems

Go to Session


Tools and Techniques to Debug an Embedded Linux System

Status: Available Now

Summary: In this talk, we will learn how to use different tools and techniques to debug an embedded Linux system.

Description: There are several tools and techniques to debug an embedded Linux system that can be applied in both user space and kernel space. Depending on the problem, you may need different tools like addr2line for crash dump analysis, GDB for interactive debugging, ftrace for kernel tracing, valgring to catch memory-related issues, gprof for application profiling, etc! In this hands-on oriented talk, we will learn how these and many other tools and techniques can be used when debugging an embedded Linux system.

Go to Session


Live Q&A - Tools and Techniques to Debug an Embedded Linux System

Status: Available Now

Live Q&A with Sergio Prado for the talk titled Tools and Techniques to Debug an Embedded Linux System

Go to Session


Introduction to Encryption for Embedded Linux Developers

Status: Available Now

Data confidentiality is a requirement in the design of many embedded Linux devices. And encryption plays a significant role in developing products where confidentiality is a must. But there are different approaches, methods, and algorithms depending on the problem, which is not always clear to the developer. Should we use symmetric or asymmetric key encryption? What are the best algorithms for a specific situation? How to store the encryption key? In this talk, we will answer these and many other questions, covering the most common problems a developer could face to protect data-at-rest and data-in-transit when designing an embedded Linux device.

Go to Session


Live Q&A - Introduction to Encryption for Embedded Linux Developers

Status: Available Now

Live Q&A with Sergio Prado for the talk titled Introduction to Encryption for Embedded Linux Developers

Go to Session


Developing embedded real-time applications with heterogeneous multiprocessing systems (2020)

Status: Available Now

There are a lot of embedded applications that have conflicting requirements like high throughput and data processing, responsive user interface, low-latency operations and determinism to handle hard real-time events. It is very hard (and most of the times impossible) to meet all these requirements with just a single processor.

A common approach to meet these conflicting requirements is using multiple heterogeneous processors, where a high-end processor takes care of general computing like network communication, user interface and data processing, and a low-end processor is responsible to handle low-latency and real-time events. This type of system is called Heterogeneous Multiprocessing System or HMP.

In this session, we will learn all the theory behind the development of embedded applications using heterogeneous multiprocessing systems and put into practice with hands-on demonstrations based on a board with a heterogeneous multicore SoC containing both a Cortex-A and a Cortex-M processor, capable of running multiple operating systems on the different cores.

In the hands-on demonstration, we will learn how to run an RTOS (FreeRTOS) in the Cortex-M processor to handle deterministic and real-time events and report them back to a full-featured OS (GNU/Linux) running on the Cortex-A. We will study how the communication between the cores works and use an implementation of the OpenAMP standard in the hands-on.

In this session, the attendees will understand how a heterogeneous multiprocessing system works and when to use it. They will also learn how to use a heterogeneous multicore SoC and run multiple operating systems on it, understanding how the communication between the cores are implemented in the hardware level, and learning how this communication is abstracted at the software level with the OpenAMP standard.

Go to Session