Sergio Prado
Power Management on Linux: From the Hardware to the Kernel and User Space Interfaces
Status: Available NowPower 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.
Live Q&A - Power Management on Linux: From the Hardware to the Kernel and User Space Interfaces
Status: Available NowLive Q&A with Sergio Prado for the talk titled Power Management on Linux: From the Hardware to the Kernel and User Space Interfaces
Challenges and techniques to use Linux in Real-Time Systems
Status: Available NowIs 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.
Live Q&A - Challenges and techniques to use Linux in Real-Time Systems
Status: Available NowLive Q&A with Sergio Prado for the talk titled Challenges and techniques to use Linux in Real-Time Systems
Tools and Techniques to Debug an Embedded Linux System
Status: Available NowSummary: 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.
Live Q&A - Tools and Techniques to Debug an Embedded Linux System
Status: Available NowLive Q&A with Sergio Prado for the talk titled Tools and Techniques to Debug an Embedded Linux System
Introduction to Encryption for Embedded Linux Developers
Status: Available NowData 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.
Live Q&A - Introduction to Encryption for Embedded Linux Developers
Status: Available NowLive Q&A with Sergio Prado for the talk titled Introduction to Encryption for Embedded Linux Developers
Developing embedded real-time applications with heterogeneous multiprocessing systems (2020)
Status: Available NowThere 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.