Introducción, con tintes educativos, a RTOS y su aplicación con el ecosistema Arduino.
arduino-avanzado
Tutoriales avanzados de Luis Llamasarduino-freertos
Fork de la biblioteca Arduino FreeRTOS de Phillip Stevens para dispositivos AVRarduino-protothreads
Ejecución de código lineal para sistemas controlados por eventosavr-simple-scheduler
Un programador de tareas realmente simplec_cpp
Recursos para trabajar con C y C++docs
Documentos varios sobre RTOS y sus aplicacionesesp-os
Un simple SO para microcontroladoresfreertos-arduino-tutorials
Tutoriales de FreeRTOS aplicado a Arduinointroduction-to-rtos
Fork de Introduction to RTOS by Shawn Hymelpython
Recursos para trabajar con Python y MicroPython
-
Arduino Avanzado
-
Arduino FreeRTOS
-
ESP-OS
-
FreeRTOS Arduino Tutorials
-
Introducción a RTOS
- Part 1: What is a Real-Time Operating System (RTOS)?
- Part 2: FreeRTOS
- Part 3: Task Scheduling
- Part 4: Memory Management
- Part 5: FreeRTOS Queue Example
- Part 6: FreeRTOS Mutex Example
- Part 7: FreeRTOS Semaphore Example
- Part 8: Software Timers
- Part 9: Hardware Interrupts
- Part 10: Deadlock and Starvation
- Part 11: Priority Inversion
- Part 12: Multicore Systems
-
Introducción a RTOS (Vídeos)
- Introduction to RTOS Part 1 - What is a Real-Time Operating System (RTOS)?
- Introduction to RTOS Part 2 - Getting Started with FreeRTOS
- Introduction to RTOS Part 3 - Task Scheduling
- Introduction to RTOS Part 4 - Memory Management
- Introduction to RTOS Part 5 - Queue
- Introduction to RTOS Part 6 - Mutex
- Introduction to RTOS Part 7 - Semaphore
- Introduction to RTOS Part 8 - Software Timer
- Introduction to RTOS Part 9 - Hardware Interrupts
- Introduction to RTOS Part 10 - Deadlock and Starvation
- Introduction to RTOS Part 11 - Priority Inversion
- Introduction to RTOS Part 12 - Multicore Systems
-
ProtoThreads
-
Python
-
Lecturas Recomendadas
- FreeRTOS book and reference manual
- What is an RTOS?
- RTOS
- Differences between FreeRTOS and ESP-IDF
- Multitasking on ESP32 with Arduino and FreeRTOS
- FreeRTOS Task Priorities
- Memory in C – the stack, the heap, and static
- The C build process
- What and where are the stack and heap?
- FreeRTOS Memory Management
- FreeRTOS Queues
- FreeRTOS Queue API
- Using queue with struct
- Atomic operations
- Atomic operations in FreeRTOS
- Difference between “lock,” “mutex,” and “semaphore”
- Mutexes and Semaphores Demystified
- FreeRTOS Semaphores (and Mutexes) API reference
- Understanding and Using FreeRTOS Software Timers
- FreeRTOS Software Timer documentation page
- FreeRTOS Software Timer API documentation
- FreeRTOS API reference (you will want to look for function calls that end in FromISR)
- Critical sections in ESP-IDF
- The Dining Philosophers challenge was ported to Arduino from this University of Virginia course’s lab
- You can try the Dining Philosophers challenge without an Arduino here (using C++)
- Another good article discussing deadlock on FreeRTOS
- What really happened on Mars Rover Pathfinder
- How to use priority inheritance
- Priority inversion
- ESP-IDF FreeRTOS SMP Changes
- ESP32 Interrupt Allocation
- Adding simple mutlicore support to FreeRTOS
-
Otros recursos
- avr-simple-scheduler
- Prevent ATMega328P crashes with a stack monitor
- Librería de Arduino que permite ejecutar tareas de forma asincrona
- Librería de Arduino que implementa una red de Petri
- Librería de Arduino que implementa una máquina de estados finita
- Repositorio Tutoriales Arduino de Luis Llamas
- ShawnHymel RTOS Repository
- Zephyr Project
Este trabajo está protegido por la Licencia MIT. Puedes acceder a la versión original de la licencia (en inglés) a través del archivo LICENSE o en línea en The MIT License (MIT). También proporcionamos una traducción no oficial desde Wikipedia:
Copyright (c) 2024 Lucas Martín Treser
Por la presente se concede permiso, libre de cargos, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el "Software"), a utilizar el Software sin restricción, incluyendo sin limitación los derechos a usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar, y/o vender copias del Software, y a permitir a las personas a las que se les proporcione el Software a hacer lo mismo, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "COMO ESTÁ", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A GARANTÍAS DE COMERCIALIZACIÓN, IDONEIDAD PARA UN PROPÓSITO PARTICULAR E INCUMPLIMIENTO. EN NINGÚN CASO LOS AUTORES O PROPIETARIOS DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑOS U OTRAS RESPONSABILIDADES, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O CUALQUIER OTRO MOTIVO, DERIVADAS DE, FUERA DE O EN CONEXIÓN CON EL SOFTWARE O SU USO U OTRO TIPO DE ACCIONES EN EL SOFTWARE.