How not to code a state machine in C++ for an embedded system

The premise is simple: try to write a state machine in C++ for embedded systems following the State Pattern. But before you start coding there's a catch: you cannot use dynamic memory: Embedded systems based on low resources microcontrollers might not have support for malloc()/free() functions.A safe embedded system should not use dynamic memory.Just for …

Tareas estáticas en FreeRTOS y porqué debemos preferirlas.

Los sistemas de tiempo real no sólo tienen que entregar un resultado correcto, también deben hacerlo a tiempo. Por esta razón deberíamos evitar el uso de la memoria dinámica. Y a pesar de que los expertos en sistemas embebidos (por ejemplo) respaldan esta afirmación la forma tradicional de crear tareas en FreeRTOS (xTaskCreate()) implica indirectamente …

Arduino Day 21/03/20

Arduino Day, CDMX, 21/03/20 Fui invitado a dar una charla en el evento Arduino Day en la CDMX. Tenía dos temas potenciales: Arduino desde la línea de comandos, o Arduino y FreeRTOS. Me decanté por este último. Arduino Arduino no es un sistema embebido de tiempo real; los desarrolladores no pensaron en esto cuando iniciarion …

Static tasks in FreeRTOS

Static tasks in FreeRTOS Before release 9.0 of FreeRTOS all tasks were created using dynamic memory, using one of five memory schemes (aka malloc() versions). However, since release 9.0 the programmer can create tasks in a static manner too. Even better, all mechanisms in FreeRTOS (tasks, timers, semaphores, queues) can be created now in a …