¿Está bien aprender C incrustado sin tener ningún conocimiento de microcontroladores?

Sí, pero…..

Como dicen las otras respuestas. Realmente no hay una “C incrustada”.

Los fabricantes de hardware pueden enviar algunas bibliotecas específicas para ese hardware, o los compiladores para el hardware pueden tener adiciones, pero esta no es una C.

Lo más parecido que conozco realmente es MISRA C. Una de sus primeras reglas en las versiones de 2004 y 2012 es limitar el alcance del lenguaje a una versión particular o un conjunto de versiones de C. Por lo tanto, desde el principio está afirmando que es solo C .

Otras reglas continúan para limitar el uso de ciertas características mal definidas del lenguaje, sintaxis que puede causar confusión y acciones potencialmente inseguras en el lenguaje. Sí, puede haber una discusión en contra de algunas de las reglas, pero en general es un buen trabajo.

MISRA fue creado para la industria automotriz, pero se utiliza en muchas áreas de desarrollo integrado. Sin embargo, las reglas son aplicables a algo más que incrustado. Lo he visto usado en compañías que producen sw no integrados.

Sin embargo, una de las mejores cosas al respecto es que se divide en dos partes.

Primera parte: proceso general de codificación de normas y aplicación

Segunda parte – reglas específicas de C

¿Quieres usar otro idioma? Suelta la parte 2, diseña, encuentra o roba reglas para ese idioma y úsala con la primera parte.

Este es el tipo de cosa que se entiende cuando se habla de “qué lenguaje se utiliza para desarrollar …”. Lo importante es conocer procesos reutilizables de conocimiento más general que se aplican a la mayoría o todos los idiomas. Aprenda los detalles de la herramienta según sea necesario.

Si tuviera que elegir aprender “” C incrustado “como lo define MISRA, entonces sí. Sería un largo camino para ser un empleado más valioso que alguien que no lo hace.

Si. Realmente solo hay ‘C’, aunque hay compiladores personalizados para microcontroladores que implementan solo un subconjunto ‘C’ junto con el lenguaje ensamblador apropiado.

Aprender ‘C’ te enseñará mucho de lo que necesitas saber, y eso puede ser más fácil en una computadora de uso general.

En la medida en que haya una C incrustada, es más la forma en que usa el lenguaje:

  • Puede no tener una consola, pantalla, sistema operativo, sistema de archivos, etc.
  • Es probable que tenga hardware personalizado de algún tipo
  • La asignación de memoria se maneja de manera diferente
  • Puede tener recursos muy limitados
  • Etc.

No hay ‘C incrustado’ para aprender. Es solo C. Puedes aprenderlo en cualquier lugar. Cuando se usa en un microcontrolador, sigue siendo el mismo idioma. Solo el dominio del problema es diferente. Como la diferencia entre escribir un nuevo paquete de software de contabilidad y escribir software de manipulación de imágenes en C.Todavía C.

Creo que no se puede aprender Embedded C sin la comprensión básica de los microcontroladores. Como C cuando se usa en el dominio incrustado se llama incrustado C. Entonces, si desea aprender C incrustado, le sugiero que también aprenda a aprender sobre microcontroladores.