Leanpub Header

Skip to main content

Firmware sin RTOS: Multitarea cooperativa en sistemas embebidos

Conceptos clave, multitarea cooperativa y máquinas de estado con ejemplos en C

This book is 70% completeLast updated on 2026-06-29
+50% in the last 30 days

Tu microcontrolador puede hacer varias cosas a la vez. Sin RTOS. Sin bloqueos. Y de manera muy simple.

Minimum price

$25.00

$30.00

You pay

Author earns

$

Also available for 1 book credit with a Reader Membership

PDF
About

About

About the Book

El presente libro es una guía práctica para estructurar el firmware de un microcontrolador de manera ordenada y eficiente, permitiendo que el sistema ejecute múltiples tareas de forma simultánea sin bloquearse ni perder el control. Se explican los conceptos fundamentales de los sistemas embebidos, el procesamiento cooperativo y las máquinas de estado, con ejemplos escritos en lenguaje C, aunque los conceptos son aplicables a otros lenguajes.

Se asume que el lector ya tiene experiencia básica con algún microcontrolador y conocimientos de programación en C, por lo que este libro no es una introducción a la programación ni a los microcontroladores, sino un paso adelante hacia un firmware más profesional y estructurado.

Share this book

Author

About the Author

Fabián Romo

En la universidad cuando empecé a estudiar los microcontroladores, fue algo que me gustó y me apasioné tanto por esas pequeñas máquinas que hasta el día de hoy disfruto aprendiendo y diseñando algún tipo de sistema microcontrolado.

El primer microcontrolador con el cual empecé a jugar fue el PIC16F877, en aquella época lo programaba en lenguaje ensamblador. Prácticamente el resto de mi carrera fue realizar varios proyectos de automatización en base a ese dispositivo.

Cuando terminé mis estudios pasé al siguiente nivel con el DSC dsPIC30F® pero aún mantenía la idea que programar en lenguaje ensamblador era lo mejor. Con dicho dispositivo construí un osciloscopio de 3 canales de baja frecuencia y la información adquirida se la visualizaba en una aplicación de PC. La información que adquiría el dsPIC® era enviada por comunicación USB al computador. Este proyecto solamente fue un pasatiempo.

Cuando empezó a llegar diferentes trabajos independientes, un amigo que ya se dedicaba a este tipo de negocio utilizaba el compilador en lenguaje C de CCS® con el cual conseguía resultados inmediatos en sus proyectos, así que poco a poco la idea de utilizar un lenguaje de alto nivel me empezó a gustar y empecé aprender por cuenta propia la utilización del compilador C18® de Microchip Technology para su familia de microcontroladores PIC18F®.

Luego trabajé en diferentes empresas en las cuales refiné aún más mi experiencia con microcontroladores PIC® de 8 bits y de 32 bits. Cada día aprendiendo y mejorando mis conocimientos. 

Actualmente trabajo en una empresa como desarrollador de firmware y hardware para sistemas embebidos.

Contents

Table of Contents

Índice

Capítulo 1. Conceptos básicos de Sistemas Embebidos
  • 1.1 ¿Qué es un sistema embebido? 1
  • 1.2 ¿Qué es una tarea? 2
  • 1.3 ¿Qué es una multitarea? 3
  • 1.4 ¿Qué es DeadLine? 4
  • 1.5 ¿Qué es Prioridad? 6
  • 1.6 ¿Qué es un Planificador? 8
  • 1.7 ¿Qué es un RTOS? 8
  • 1.8 ¿Qué es Concurrencia? 11
  • 1.9 ¿Qué son Recursos Compartidos? 14
  • 1.10 ¿Qué es Sincronización? 15
  • 1.11 ¿Qué es Inanición? 17
  • 1.12 ¿Qué es Punto Muerto? 17
  • 1.13 ¿Qué es Mutex? 20
  • 1.14 ¿Qué es un Semáforo? 20
  • 1.15 ¿Qué es un Proceso Concurrente? 22
  • 1.16 ¿Qué es Jitter y Latencias? 24
  • 1.17 ¿Qué es Concurrencia Verdadera? 25
  • 1.18 ¿Qué es Concurrencia Virtual? 27
  • 1.19 ¿Qué es Tarea Cooperativa? 28
  • 1.20 Analogía del tráfico vehicular con sistema embebido 29
  • 1.21 ¿Qué es condición de carrera? 30
  • 1.22 ¿Qué es un Heisenbug? 32
  • 1.23 ¿Qué es una Operación Atómica? 39
  • 1.24 ¿Qué es un Bloqueo Mutex? 41
  • 1.25 Operación Atómica sin deshabilitar interrupciones 42
  • 1.26 ¿Qué es el método Productor-Consumidor? 43
  • 1.27 Principios Fundamentales de Concurrencia 44
    • 1.27.1 Desempeño 45
    • 1.27.2 Eficiencia 46
    • 1.27.3 Escalabilidad 47
  • 1.28 ¿Qué sigue? 48
Capítulo 2. Tareas Sincrónicas y Asincrónicas
  • 2.1 ¿Qué es una tarea sincrónica? 49
  • 2.2 ¿Qué es una API bloqueante? 52
  • 2.3 Ventajas del modelo sincrónico 54
  • 2.4 Desventajas del modelo sincrónico 55
  • 2.5 ¿Qué es una tarea asincrónica? 56
  • 2.6 ¿Qué es una API no bloqueante? 59
  • 2.7 Ventajas del modelo asincrónico 62
  • 2.8 Desventajas del modelo asincrónico 63
Capítulo 3. Retardos Asincrónicos
  • 3.1 ¿Qué es un retardo en un sistema embebido? 65
  • 3.2 ¿Qué es un retardo sincrónico? 65
  • 3.3 Retardos asincrónicos por polling 68
  • 3.4 La base de tiempo para retardos asincrónicos 69
  • 3.5 ¿Por qué es mejor un temporizador de 32 bits? 70
    • 3.5.1 Temporizador de 16 bits 71
    • 3.5.2 Temporizador de 24 bits 72
    • 3.5.3 Temporizador de 32 bits 72
    • 3.5.5 ¿Qué hay del pre y post escalado de un temporizador? 73
  • 3.6 Conclusiones del uso del temporizador de 32 bits 75
  • 3.7 ¿Cómo generar un retardo asincrónico por polling? 77
  • 3.8 Retardos asincrónicos por polling con temporizador libre 79
  • 3.9 Retardos asincrónicos por callback 86
  • 3.10 Múltiples retardos simultáneos con callback 88
Capítulo 4. Tareas con máquinas de estado.
  • 4.1 ¿Qué es una máquina de estados? 92
  • 4.2 Estados, transiciones y eventos 94
  • 4.3 Implementación en C – switch-case y enum 98
  • 4.4 Completando la tarea 105
    • 4.4.1 Estado de inicialización 105
    • 4.4.2 Estado de reposo 106
    • 4.4.3 Estado de transmisión 106
    • 4.4.4 Estado de recepción 108
  • 4.5 Retardos asincrónicos en los estados de máquina 112
  • 4.6 Conclusiones 113
Capítulo 5. Bucles largos sin bloqueo.
  • 5.1 ¿Qué es un bucle? 117
  • 5.2 Bucle simple sincrónico 118
  • 5.3 Bucle anidado sincrónico 119
  • 5.4 Bucle asincrónico 120
  • 5.5 Conclusiones 126

Get the free sample chapters

Click the buttons to get the free sample in PDF or EPUB, or read the sample online here

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earned over $15 million writing, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub