Tabla de contenido

馃敹 Introducci贸n


Los lenguajes de programaci贸n para microcontroladores son un conjunto de herramientas de programaci贸n dise帽adas espec铆ficamente para programar microcontroladores, que son peque帽os microprocesadores utilizados en sistemas embebidos y dispositivos electr贸nicos.

Estos lenguajes son similares a otros lenguajes de programaci贸n, pero tienen caracter铆sticas especializadas que los hacen adecuados para programar microcontroladores con limitaciones en t茅rminos de memoria y recursos de hardware.

馃摌 Fundamento Te贸rico


Los microcontroladores pueden ser programados con una amplia gama de lenguajes de programaci贸n, incluyendo tanto lenguajes de bajo nivel como lenguajes de alto nivel. Los lenguajes de bajo nivel est谩n m谩s cerca del lenguaje de m谩quina y se escriben en c贸digo binario (0 y 1), mientras que los lenguajes de alto nivel permiten una representaci贸n gr谩fica del programa, como un diagrama de flujo, sin la necesidad de escribir l铆neas de c贸digo.

  1. C
  2. Assembly
  3. MicroPython
  4. BASIC
  5. C++
  6. Arduino

馃帤锔廚ivel de los lenguajes de programaci贸n

Untitled

馃摉 Caracter铆sticas de Lenguaje C vs ASM vs Arduino


El lenguaje C, C++y el ensamblador (ASM) son dos lenguajes diferentes utilizados para programar microcontroladores. Algunas de las caracter铆sticas que los diferencian son las siguientes:

馃搫 Lenguaje Arduino (basado en C/C++):

Untitled

馃搫 Lenguaje C:

馃搫 Lenguaje ensamblador (ASM):

Untitled

Untitled

<aside> 馃挕 La m谩s gran diferencia es que en ensamblador cuenta con un diferente set de instrucciones para cada microcontrolador mientras que el C se puede utilizar el mismo c贸digo para diferentes microcontroladores solo cambiando algunos par谩metros (portabilidad).

</aside>

<aside> 馃挕 El lenguaje C acepta instrucciones de ensamblador para hacer tareas que son dif铆ciles de realizar o acceder donde los tiempos de ejecuci贸n son cr铆ticos.

</aside>

馃摉 Lenguajes de descripci贸n de hardware (HDL)


Los lenguajes de descripci贸n de hardware (HDL, por sus siglas en ingl茅s) son lenguajes de programaci贸n especializados utilizados para describir y modelar circuitos digitales y sistemas electr贸nicos a nivel de hardware. A diferencia de los lenguajes de programaci贸n convencionales, que se centran en la programaci贸n de software, los HDL permiten a los ingenieros describir el comportamiento y la estructura de circuitos electr贸nicos de una manera que se asemeja m谩s a c贸mo operan en el mundo f铆sico.

馃搫 Aplicaciones


  1. Dise帽o de Circuitos Personalizados
  2. Modelado del Comportamiento
  3. Verificaci贸n y Simulaci贸n
  4. S铆ntesis L贸gica
  5. Descripci贸n de PLD, FPGA y ASIC
  6. Dise帽o en Paralelo

馃搫 Ejemplos de lenguajes HDL


  1. VHDL (VHSIC Hardware Description Language) (1983)
  2. ABEL - HDL (Advanced Boolean Expression Language) (1983)
  3. Verilog (1984)
  4. CHDL (C Hardware Description Language) (1992)
  5. JHDL (Java Hardware Description Language) (1996)
  6. AHDL (Altera Hardware Description Language) (1997)
  7. SpecC (1999)
  8. Handel-C (2001)
  9. SystemVerilog (2002)
  10. Bluespec SystemVerilog (2003)
  11. MyHDL (2004)

馃摉 Lenguajes de programaci贸n vs HDL

Aspecto Lenguajes de Programaci贸n Lenguajes de Descripci贸n de Hardware (HDL)
Prop贸sito Utilizados para crear aplicaciones y algoritmos que se ejecutan en los microcontroladores o procesadores. Utilizados para describir la estructura y comportamiento del hardware digital.
Nivel de Abstracci贸n Alto nivel, enfocado en instrucciones, funciones y algoritmos que implementan l贸gica o tareas espec铆ficas. Bajo nivel, describiendo componentes electr贸nicos a nivel de puertas l贸gicas y conexiones.
Utilizaci贸n Control de sistemas, procesamiento de se帽ales, interacci贸n con perif茅ricos, c谩lculos matem谩ticos, etc. Dise帽o de circuitos digitales, l贸gica combinacional, circuitos secuenciales, componentes personalizados, etc.
Ejemplos de Lenguajes C, C++, Python, Rust, Ada, entre otros. VHDL, Verilog, ABEL, AHDL, XHDL
Sintaxis Se enfoca en la secuencia de instrucciones y operaciones. Se enfoca en la conexi贸n de componentes y la l贸gica del circuito.
Dise帽o de Hardware No est谩 destinado al dise帽o de circuitos, sino a la programaci贸n de comportamientos y algoritmos. Permite dise帽ar y simular circuitos digitales antes de su implementaci贸n f铆sica.
Compilaci贸n/S铆ntesis Se compilan en instrucciones de m谩quina o bytecode ejecutable. Se compilan/sintetizan en circuitos electr贸nicos reales.
Paralelismo Puede aprovechar paralelismo mediante hilos o procesos concurrentes, pero es m谩s limitado que el hardware. Puede describir componentes y operaciones en paralelo, reflejando la arquitectura del hardware.