¿Cuál es la mejor manera de aprender C incrustado?

El lenguaje de programación C no es diferente en los sistemas integrados que en cualquier otro lugar. La diferencia está en qué problemas resuelve. Entonces, solo aprende C usando plataformas de programación convencionales, donde es más conveniente y productivo.

El dominio del problema es algo diferente en los sistemas integrados, ya que su código probablemente necesitará acceder al hardware de alguna manera. Casi con certeza, esto implicará aprender sobre el hardware hasta cierto punto, pero esto no es parte de C. En la mayoría de los casos, se accede a los registros de hardware a través de punteros que se inicializan con las direcciones de los registros de hardware, por lo que aprender sobre los punteros es bastante exhaustivo. una buena idea. Además, probablemente sea útil comprender algo acerca de cómo un compilador genera código y cómo eso puede afectar la lectura y escritura de registros. Puede ser importante comprender cómo puede ocurrir una búsqueda de datos de un registro en búsquedas múltiples o únicas, ya que los periféricos de hardware pueden reaccionar de manera diferente en diferentes casos. Nuevamente, esto no es tanto parte de C, sino más bien un compilador específico combinado con hardware específico.

Donde puede invertir algo de aprendizaje es en cómo crear y usar cadenas de herramientas del compilador de C, incluidas todas las partes que se utilizan para compilar su código de forma cruzada y cargarlo en el host de destino incrustado. Dado que la mayoría de los sistemas embebidos funcionan implica una separación clara de los hosts de desarrollo y de destino, y muchos o la mayoría de los sistemas embebidos no cargan programas de un sistema de archivos alojado en el sistema operativo, deberá aprender cómo se traduce el código fuente C en módulos de objeto que se pueden instalar para ejecución en el objetivo. Comprender los detalles de los vinculadores, cargadores y tipos de archivos de código de objeto y cómo se combinan a menudo es muy importante para poner en funcionamiento los sistemas integrados. Esto se trata de las cadenas de herramientas cruzadas en C, pero relativamente poco sobre el lenguaje C en sí.

Algunas personas le dirán que use pequeños ecosistemas que se han construido para permitir que la gente no aprenda la mayoría de los detalles anteriores. Dado que especificó el aprendizaje como un objetivo principal, considero que los gustos de Arduino y sistemas similares no ayudan o incluso obstaculizan el proceso de aprendizaje. Utilizan un dialecto arcano / subconjunto de C & C ++, que se ha simplificado deliberadamente para protegerlo del proceso de aprendizaje de muchos sistemas integrados. Son excelentes para los aficionados a la formación de cosas que funcionan, pero no son excelentes entrenadores para C en sistemas integrados. Dado que también dijo “mejor” en lugar de “más rápido” o “más fácil”, creo que esto encaja perfectamente con su pregunta.

Primero intentemos comprender la diferencia entre C regular y C. incrustado

No hay nada llamado Embedded C. Solo hay un lenguaje C. Si usa C en computadoras, entonces se llama C. normal. Si usa C en electrónica, entonces se llama “Embedded C”. En ambos casos, el programa del compilador C es ejecutado solo por el microprocesador. La principal diferencia entre C en computadoras y C en electrónica es Entrada / Salida.

scanf -> read_pin – Entrada
printf -> write_pin. – Salida

Pero en “Lenguaje de programación C” del libro de K&R en el Capítulo 7 “Entrada y salida”, Dennis Richie había mencionado que Entrada y Salida no son parte del lenguaje C. Si elimina E / S, entonces no hay diferencia entre C y Embedded C. Esa es la razón por la cual la Industria Embebida requiere buenos profesionales de programación C.

En esencia, si eres bueno en la programación en C, no necesitas aprender nada adicional para Embedded C. Debes comprar una placa de desarrollo de microcontroladores y comenzar a practicar C en eso. Dominará automáticamente la programación de Embedded C.

Todo lo mejor.

Escrito 27 abr • Ver votos a favor

La respuesta es muy simple.

Practica, aprende, crea cosas increíbles, una vez más Practica, aprende, crea cosas increíbles

Te diré cómo aprendo C incrustado, en realidad no puedes aprender C incrustado, también necesitas un hardware para eso

cuando era un principiante completo hace cuatro años,

No sabía nada sobre C o Hardware. Fue fascinante cómo una pequeña caja negra como esa hace todas esas cosas, así que decidí aprender sobre AVR primero, fue muy difícil porque no estaba familiarizado con muchos términos utilizados en embebido y soy estudiante de electricidad, así que no tengo ninguna profundidad programa de estudios en incrustado.

Entonces, al comenzar, me siento demasiado frustrado y estratificado escribiendo Código en la plataforma arduino, pronto comencé a pensar que soy Dios, puedo crear cualquier cosa (ese fue un momento divertido si lo recuerdo ahora), pronto me di cuenta de que no estaba haciendo nada para aprender la programación real de hardware

(Intente codificar atmega 328-PU en su arduino en lugar de Atmega328P-PU, se dará cuenta de lo que estoy hablando)

Todo lo que puedo hacer es usar las funciones y la biblioteca predefinidas para que funcione, no puedo trabajar en una situación real o no puedo programar un microcontrolador que no sea compatible con la plataforma arduino y luego me di cuenta de que soy un NOOBS (Nuevo Out of Box) y script kiddie que ahora no sabe cómo funcionan las cosas poco a poco, pero puede hacer mi trabajo copiando a otros.

Entonces, pronto comencé a aprender sobre el microcontrolador nuevamente, pero fue difícil, primero comencé a leer la hoja de datos de un microcontrolador. Si no conozco algún término utilizado en la hoja de datos, investigo en Google y luego vuelvo a la hoja de datos, pero no fue suficiente. necesito hacer un programa para ello, así que necesito saber el lenguaje C o el ensamblaje, así que comencé con C comprando el libro “Guía absoluta para principiantes de C” y aprendí sobre el lenguaje C en un mes practicando diariamente sobre él y luego comencé a aprendí el código para Atmega32 en C usando el bloc de notas WinAvr Programmer lo que hice primero busqué el código en Google como “Programa Blink Led para Atmega 32” y luego comencé a aprender en la hoja de datos sobre qué es DDRB, qué es PORTB y muchas cosas, luego comencé a desarmar el código y pronto comencé a trabajar en un microcontrolador con C incorporado, pero es frustrante cuando no sabes qué hacer a continuación, así que también compré un libro escrito por Mazidi que tiene muchos capítulos sobre la descripción de la arquitectura interna de AVR y yo Con este conjunto de instrucciones, tiene una muy buena introducción al lenguaje de ensamblaje y algunos protocolos también, así que aprendo a diario y, durante el aprendizaje, he creado muchos proyectos pequeños que me ayudan a aprender mejor sobre microcontroladores

He creado muchos proyectos en AVR y los vendo a mis amigos y estudiantes universitarios. Todavía estoy aprendiendo y ahora estoy aprendiendo sobre el microcontrolador STM32.

así que para aprender sobre C incrustado necesitas mucha práctica, mientras trabajas en C incrustado es muy importante comenzar a trabajar en un microcontrolador real (no simulaciones) y crear proyectos implementando lo que has aprendido en la práctica

No aprenda C incrustado para ningún tipo específico de microcontrolador en lugar de eso aprenda cómo usar el lenguaje C de acuerdo con la implementación de hardware en el microcontrolador para que en el futuro pueda trabajar en cualquier microcontrolador con solo leer una hoja de datos

si quieres comenzar, te recomendaré que elijas un microcontrolador específico y luego lo practiques, juegues con él y luego pases a otros microcontroladores.

Embedded C es solo el lenguaje C utilizado en el caso de microcontroladores y demás. Entonces, casi no hay diferencia en sus conceptos.
Aprenda C bien (no hay alternativa) y podrá hacer Embedded C, siempre que pueda comprender las pocas diferencias en la declaración y los comandos utilizados en él. Solo como guía, puede leer el libro Embedded C de Michael Pont . Se basa en 8051, así que antes de comenzar, tenga una idea sobre las características de 8051. Practique los programas que contiene, tenga una idea, luego intente hacer algunas cosas elementales, solo. Una vez que tenga la confianza suficiente, cambie a otros tipos de microcontroladores. Atmega es la siguiente mejor opción.
En resumen, compre un microcontrolador y comience a explorarlo. Embedded C o cualquier otra programación no será un problema si conoce C bien. También puede comenzar con Arduino, aunque no utiliza Embedded C, pero a los aficionados de todo el mundo les encanta por su simplicidad.

Esta pregunta ya se ha hecho muchas veces y algunos profesionales en este campo ya han escrito algunas respuestas realmente buenas como @Vinay Chaddha, @Balajee Seshadri, @Hrishikesh Kamat y muchos otros.

Antes de ingresar al campo incrustado, es preferible que se familiarice con la programación en lenguaje C.

Embedded C no es más que una aplicación de hardware del lenguaje C.

Para comenzar a utilizar sistemas embebidos (especialmente si desea utilizar Arduino)

Respuesta del usuario de Quora a Como principiante, ¿con qué microcontrolador debo comenzar?

También puede seguir este enlace.

Diferencia entre C y C incrustado

Todo lo mejor.

Si tiene un fuerte deseo de obtener un conocimiento profundo del dominio de Embedded C, unirse a una buena capacitación en línea puede ser la opción ideal para usted. Una capacitación adecuada puede brindarle información sobre la inteligencia elemental de los sistemas integrados y también puede obtener experiencia práctica para implementar esta inteligencia de una mejor manera.

Multisoft Virtual Academy es uno de esos institutos que brinda a los aspirantes una manera fluida de aprender Embedded C. Esta capacitación ayuda a los estudiantes a comprender el tipo de datos, operadores, declaraciones y bucles de Embedded C. Aquí los aspirantes también obtendrán información detallada sobre las pautas , que define la lógica del programa, agrega estructura al código e implementa la sintaxis correcta. Esta capacitación le proporciona familiaridad con los siguientes temas.

Introducción al sistema embebido

Introducción a Embedded C

Programación de sistemas integrados en C

Hola mundo incrustado

Agregar estructura a su código

Programación e interfaz con C incrustado

El principal atributo de esta capacitación en línea es que aprenderá cosas de la manera que desee. Tiene la posibilidad de seleccionar la hora, el lugar y el ritmo propios y puede estudiar cosas sin distraerse. Incluso si ya está trabajando en la industria integrada y electrónica y desea mejorar sus conocimientos en Embedded C, puede unirse fácilmente a esta capacitación sin obstaculizar su trabajo. Para saber más sobre este programa de capacitación, puede visitar el sitio web

http: //www.multisoftvirtualacade

Sistemas integrados: el uso de ensamblado y C es el mejor libro para aprender c integrado. El libro está escrito en un lenguaje simple y comprensible y contiene todos los contenidos en un solo libro.

Acerca del libro: Este libro de texto cubre las características de hardware y software del 8051 de manera sistemática. Usando la programación en lenguaje ensamblador en los primeros seis capítulos, en Proporciona a los lectores una comprensión profunda de la arquitectura 8051. Del Capítulo 7, este libro utiliza tanto el ensamblaje como la C para mostrar la interfaz 8051 con dispositivos del mundo real, como LCD, teclados, ADC, sensores, relojes en tiempo real y motores DC y paso a paso. El uso de una gran cantidad de ejemplos ayuda al lector a ganar dominio del tema rápidamente y pasar al tema del diseño de proyectos de sistemas integrados.

Gracias.

Según yo, primero debes borrar tus fundamentos en el lenguaje ‘C’, desde los tipos de datos hasta la estructura de los datos, archivos y punteros y todo eso.

Le ayudará a aprender ‘C’ incrustado. En realidad, para cada microcontrolador, tienen su propia biblioteca c y oraciones de programación, por lo que difiere de una plataforma a otra. Entonces, primero borre sus fundamentos en el lenguaje ‘C’. Luego, comprenderá y escribirá fácilmente el código para cualquier plataforma en lenguaje incrustado ‘C’.

  1. Introducción a la programación en C por Reema Thareja

Oxford publicaton. Este libro es bueno para comprender la codificación, los programas de patrones y muchos programas interesantes de C.
Puedes probar este libro para la codificación C.

Tener un buen conocimiento de operadores bit a bit, macros, estructura, unión, punteros de función, mapa de memoria básico C.

no hay una gran diferencia entre C y C incrustado, para comenzar a escribir código C incrustado, primero debe tener un buen conocimiento de su microcontrolador.

libros:

La referencia completa C.

The C Puzzle Book

Cómprate un Arduino o (si quieres más de un desafío, un ESP8266), son muy baratos.

Conecte algunos interruptores, los LED pueden ser algún tipo de sensor, y escriba algún software para controlarlos.

Para aprender Embedded C primero debe aprender sobre el controlador con el que trabajará.

Ahora, ¿por qué es importante?

La respuesta es porque Embedded C no es solo C …… es diferente en el contexto del archivo de encabezado y las palabras clave. Las palabras clave son las resistencias del controlador, que se utilizarán para controlar sus actividades.

Por lo tanto, primero debe aprender sobre el controlador que va a utilizar en su proyecto integrado.

Y para aprender Embedded C encuentre un buen entrenador, ya que los libros son buenos para leer, pero si quiere llevarlo al mundo real, un entrenador lo ayudará.

Para obtener más detalles, visite http://www.samriddhitechnologies.in

Realiza un proyecto práctico de construcción.

Primero aprenda lo básico del microcontrolador y su propósito, uso, diagramas de pin del libro de texto con el título ‘ El microcontrolador 8051 y sistemas integrados’ de ‘Muhammad Ali Mazidi, Janice G Mazidi, Rolin D McKinlay’ del editor de Pearson. Esto encontrará programas en C incrustados con la explicación adecuada.

Escribí una respuesta similar a la respuesta de Nabeel Omer a Quiero comprar un dron para aprender a programar, pero no tengo dinero. ¿Qué tengo que hacer? Hace unos minutos atrás.
Te sugiero lo mismo, compra un Arduino.

Probablemente, comenzar con algunos controladores pequeños y dispositivos de este tipo que pueda desarrollar proyectos caseros simples sería útil. Embedded C no es muy diferente de otros entornos de C, si solía desarrollar programas sin interfaces de usuario.

Primero aprenda C de Dennis Ritchie, luego comience a codificar en tableros de desarrollo, comprenderá fácilmente la diferencia y sobresaldrá 🙂

Todo lo mejor !

Audite el curso Sistemas Embebidos de la Universidad de Texas Austin en EdX. Es posible que el curso no esté disponible en este momento, pero encontrará sus videos en YouTube. El curso le dará una idea básica de cómo usar un procesador de brazo y luego podrá construir proyectos y aprender.

Pruebe cursos en línea o tutoriales.
si tiene una idea básica sobre el lenguaje ‘C’ no importa, pero necesita una idea básica sobre hardware, sistemas operativos, controladores, etc.