Instrumenting Embedded Applications

Dave Marples

On the desktop, everyone learns to observe what their program is doing using print statements and logging. Embedded systems aren't amenable to such approaches because they run in real-time and don't have screens or memory to spare for logs, so new techniques need to be applied. Fortunately, modern CPUs provide surprisingly rich facilities for meeting these needs. In this presentation, we will introduce a range of these capabilities, from a novel twist on the simple flashing LED progressing all the way to full post-mortem instruction trace.

Modern Embedded Software Goes Beyond the RTOS

Miro Samek

Some of the most difficult problems with real-time and embedded programing are related to concurrent code execution as well as code organization, which all too often degenerates into "spaghetti code". These problems are usually intermittent, subtle, hard-to-reproduce, hard-to-isolate, hard-to-debug, and hard-to-remove. They pose the highest risk to the project schedule.

This session presents a set of best practices of concurrent programming, which are collectively known as the active object (or actor) design pattern. In this pattern, applications are built from event-driven, non-blocking, asynchronous, encapsulated threads (active objects), with the internal behavior of each active object controlled by a state machine.

While active objects can be implemented manually on top of a traditional RTOS, a better way is to use an active object framework. You will see how this leads to inversion of control, enables architectural reuse, and allows the framework to automatically enforce the best practices.

In the second part, the session will introduce modern hierarchical state machines as the powerful "spaghetti reducers". You will see how state machines complement active objects and enable graphical modeling and automatic code generation.

The session will utilize hands-on demonstrations using EFM32 Pearl-Gecko ARM Cortex-M4 board, the QP/C real-time embedded framework and the QM modeling and code-generation tool.

What the FAQ is an FPGA

Clive Maxfield

A lot of people design embedded systems. Some of them are the hardware design engineers who create the boards. Others are the software developers who program the boards. The one thing that most of them have in common (apart from mutual distrust of each other) is that they predominantly use microcontrollers (MCUs) as the primary processing element in their designs.

Most of them have heard of FPGAs, but all they typically know is that these devices can be programmed to perform different functions -- they don't know how. Similarly, most of them have heard about languages like Verilog and VHDL, but all they typically know is that FPGA designers use these languages to capture the design -- they don't know how these hardware description languages (HDLs) differ from programming languages like C/C++.

In this presentation, engineer, writer, and communicator Max The Magnificent (a legend in his own lunchtime) will rend the veils asunder and reveal all. Max says that we will be leaping from topic to topic with the agility of young mountain goats, so he urges attendees to dress appropriately.

ChatGPT for Embedded Systems - A game changer or Pure hype?

Sree Harsha Angara

ChatGPT is all the buzz these days with a stream of articles, and worst of all, unending streams of LinkedIn posts. This talk covers my explorations using ChatGPT for embedded systems use-cases, from simple snippets and questions, to a reasonably complex design on a MCU. This talk will uncover the nature of ChatGPT as we put it through its paces to try and answer the question “Are embedded engineers replaceable with AI?”.

The answer(spoiler: No), while unsurprising, leads to some very interesting thought experiments on what the future of this field looks like as we head into a new world of AI-assisted design and learning.

Tools for Embedded Systems Development

EOC Speakers

We've asked the speakers of the Embedded Online Conference to tell us about their favorite hardware and software tools for Embedded Systems development. What about you? What are your favorite tools?

TinyML for Fun and Profit

Pete Warden

Machine learning allows small, battery-powered devices to understand speech, protect wildlife, diagnose and even treat diseases. In this talk, Pete Warden, lead of the TensorFlow Lite Micro open source project, will talk about how embedded ML opens up a new world of possibilities, and will introduce some easy ways to get started.

Deep Learning Inference in Embedded Systems

Jeff Brower

The path to developing, testing, and deploying deep learning inference in embedded system products is marked by obstacles you must avoid. To do it sucessfully -- and avoid your investors and managers losing faith -- here are some crucial, high level guidlines.

Buried Treasure and Map Files

Elecia White

Often overlooked, the map file can provide a wealth of information to the intrepid developer. Map files can help:

  • optimizing for RAM usage and/or code space
  • updating firmware (with or without a bootloader)
  • debugging difficult crash bugs
  • statistical profiling

With so much information, how can you use it? Where do you look? How do you turn the wall of text and numbers into a true map of the code?

Elecia will demonstrate how to use map files. She will focus on an ARM Cortex-M but it will be relevant to other processors.

The Past, Present, and Future of Embedded Machine Learning

Pete Warden

Pete Warden, from Google's TensorFlow Lite Micro project, will be talking about how machine learning on embedding devices began, and where it's heading. ML has been deployed to microcontrollers and DSPs for many years, but until recently it has been a niche solution for very particular problems. As deep learning has revolutionized the analysis of messy sensor data from cameras, microphones, and accelerometers it has begun to spread across many more applications. He will discuss how voice interfaces are leading the charge for ML on low-power, cheap devices, and what other uses are coming. He'll also look into the future of embedded machine learning to try to predict how hardware, software and applications will be evolving over the next few years.