¿Por qué programar embedded es diferente?
Comenzar arrow_downwardVienes de un mundo donde programar es... cómodo.
Lenguajes de alto nivel con abstracciones poderosas
16 GB de RAM, swap si hace falta
GHz de velocidad, múltiples núcleos
Linux/Windows maneja todo por ti
El ordenador te lo da todo hecho
Aquí no hay comodidades. Solo tu código y el hardware.
No hay sistema operativo (o solo un RTOS mínimo)
256 KB, no 16 GB. Cada byte importa.
64 MHz y un solo núcleo. La optimización es clave.
No hay filesystem, malloc infinito, ni printf mágico
"Cada byte cuenta, cada ciclo importa"
En sistemas embedded, la eficiencia es fundamental.
Dos mundos completamente diferentes
El OS te protege y te da recursos bajo demanda
No hay nadie más. Tú controlas todo directamente.
Haz clic en cada recurso para explorar las implicaciones reales de la diferencia.
import requests. BLE envia pequenos paquetes (hasta 251 bytes por PDU).
Cada transmision consume energia, asi que optimizas que, cuando y cuanto envias. No hay HTTP, no hay TCP/IP completo.
malloc infinito, no hay printf a terminal. Tu codigo ES el sistema.
Muchas cosas que dabas por sentado... ya no funcionan.
print("Hello")¿A dónde va ese texto? No hay terminal, no hay pantalla conectada por defecto. Necesitas configurar UART, RTT, o algún otro mecanismo.
import requestsEl hardware no tiene WiFi "mágico". Si quieres red, tienes que configurar el radio BLE, el stack de protocolo, y manejar cada paquete.
El código que escribes afecta directamente al sistema.
En un PC, el OS puede matar tu proceso. Aquí, tu código ES todo el sistema.
Un while(true) mal puesto y el dispositivo se cuelga para siempre.
malloc() puede fallar fácilmenteCon solo 256 KB de RAM total, pedir memoria dinámica es peligroso. En embedded, preferimos memoria estática y saber exactamente cuánto usamos.
Con limitaciones vienen habilidades únicas que ningún programador de servidor tiene.
Puedes hacer que un LED parpadee en exactamente 1 microsegundo. Ni más, ni menos. Precisión absoluta.
Tu dispositivo puede funcionar meses con una pila de botón. mA vs Watts - órdenes de magnitud de diferencia.
Tu código no procesa datos en la nube - controla motores, lee sensores, enciende luces. Tocas la realidad.
Puedes garantizar que una tarea se ejecute cada 10ms exactos. Sin garbage collector, sin scheduler impredecible.
La diferencia de consumo es de varios órdenes de magnitud.
"Tu código controla directamente el hardware"
De todos los microcontroladores disponibles, Nordic destaca por varias razones.
ARM Cortex-M4 con FPU, ideal para aprender arquitectura moderna
Radio BLE de bajo consumo listo para usar, perfecto para IoT
Wearables, IoT, dispositivos médicos - tecnología de industria
nRF Connect SDK, VS Code extension, documentación completa
Habilidades directamente transferibles al mercado laboral
Menos recursos, más control. No hay OS que te proteja.
256 KB de RAM. No puedes desperdiciar. Piensa antes de programar.
Control total, tiempo real, bajo consumo, acceso directo al hardware.
Ahora que entiendes las diferencias, vamos a explorar qué hay dentro del nRF52840. CPU, memoria, periféricos, y cómo se comunican entre sí.
Continuar al Módulo 0.2 arrow_forward