¿Qué beneficios tiene programar un MSP430 en C/C++ sobre Energia?

Comenzaré diciendo que soy nuevo en la programación de microcontroladores. He tenido algo de experiencia (alrededor de 30 años) en programación, y algo de eso fue escribir C/C++, pero esos días quedaron atrás.

Dado que apenas estoy comenzando, quiero saber qué beneficios hay al codificar mi lógica en C/C++ en lugar del lenguaje mucho más simple de Energia. Estoy buscando funciones o instrucciones específicas del MSP430 que solo se pueden programar en C/C++ en lugar de la organización del código (clases, enumeraciones, seguridad de tipos, etc.)

Control, capacidad de hacer cosas complejas no definidas dentro de ese marco. Me imagino (aunque no lo sé) que hay un tamaño de código y una penalización de ram por usar el marco. Supongo que depende de lo que estés tratando de hacer. Veo cosas como Energia como una herramienta para aficionados.
Genéricamente, los beneficios de un lenguaje más universal de nivel inferior sobre uno de nivel superior más propietario. En incrustado, el uso de C "simple" le da una buena idea de lo que está sucediendo exactamente, ya que está mucho más cerca del metal, por así decirlo, sin recurrir al ensamblador.
Es gracioso, siento que escuché estos mismos argumentos sobre el uso del lenguaje ensamblador frente a C hace muchos años.
¿Energia no es solo bibliotecas/abstracciones de estilo Arduino en C++ ? Eso haría que esta sea básicamente la pregunta directa de Arduino vs., con una ayuda adicional del msp430 que quizás tenga capacidades que no se reflejen completamente en las bibliotecas/abstracciones, quizás ligeramente influenciadas en el concepto de diseño por los diferentes chips ATmega.
Al usar C, puede hacer uso de las miles de líneas de código C de ejemplo escritas para el MSP430 que ya está en la web.

Respuestas (1)

Creo que los principales beneficios de un entorno completo (como compositor de código) sobre Energia:

1) Capaz de programar toda la familia de microcontroladores MSP430, y no solo algunos microcontroladores seleccionados como en Energia.

2) Capaz de depurar las aplicaciones estableciendo puntos de interrupción, observando variables, paso a paso, etc.

3) Capaz de usar una biblioteca mucho más capaz (Biblioteca de controladores MSP430) en comparación con una biblioteca limitada de arduino-clon. Por ejemplo, extrañé en "Energia estándar" la posibilidad de configurar un temporizador que dispare una interrupción; por supuesto, puede instalar una biblioteca de terceros para hacerlo o jugar directamente con los registros (aunque podría interferir con el código de Energia, que podría usar este periférico para algún otro propósito).

4) Por el contrario, al usar la biblioteca de controladores MSP430, puede programar todos los periféricos existentes en el microcontrolador; y sabe qué periféricos se están utilizando (porque los está programando todos en lugar de depender de un código oculto como en Energia).

Dicho esto, Energia es ideal para prototipos rápidos. Vale la pena aprender ambos entornos.

Code composer studio ahora le permite usar bocetos de energía dentro de él y depurarlos.
Además, Energia ha agregado suspensión nula (uint32_t milisegundos); void sleepSeconds(uint32_t segundos); y anula la suspensión(); funciones En el controlador MSP430G2553, las funciones sleep() usan el modo LPM3 y suspend() ingresa a LPM4.