¿Cómo iniciar la programación integrada? [duplicar]

Posible duplicado:
¿Cómo convertirse en un desarrollador de software integrado?

Realmente soy un novato y tengo alguna idea sobre C integrado. Quiero programar dispositivos integrados usando mi computadora e incluso quiero programar algunos de los periféricos de la computadora. Tengo algunos conceptos básicos de sistemas integrados, pero no sé por dónde empezar. ¿Qué plataforma usar? ¿Cómo entender el mecanismo? ¿Necesito saber todo sobre electrónica antes de poner mi mano en el mundo integrado? Por favor ayuda tengo demasiadas preguntas y necesito una manera. Se agradecen los enlaces a artículos relevantes.

¿No hemos tenido preguntas como esta antes?
@stevenvh sí, lo hicimos, pero las respuestas que se dan a continuación son realmente geniales. Tales respuestas no estaban allí antes :)

Respuestas (3)

Sigo pensando que programar en "bare metal" es la mejor manera de involucrarse en el mundo integrado. En mi humilde opinión, ejecutarse sobre una plataforma como Android no te da una idea real de la programación integrada.

Aunque existen muchos microcontroladores de 8 bits, el futuro es de 32 bits. Me gusta la serie PIC32 de Microchip. Puede obtener una placa de desarrollo completa de SparkFun por $40. No necesita comprar nada más para empezar, ya que hay un cargador de arranque incorporado. También puede utilizar uno de los programadores de Microchip como el PICKit 3.

ingrese la descripción de la imagen aquí

Esta placa utiliza la popular PIC32MX795, que tiene 512K de flash y 128K de RAM, por lo que no la superará en el corto plazo. Hay toneladas de bibliotecas gratuitas para facilitar la programación de los periféricos.

Microchip tiene un IDE y un compilador gratuitos que se ejecutan en Windows, Linux y Mac. (También tienen una versión paga, pero todo lo que le brinda son optimizaciones para producir un código más pequeño. No lo necesita para uso de aficionados).

La palabra incrustado significa diferentes cosas para diferentes personas. Básicamente, significa cualquier computadora que se encuentre dentro de un dispositivo, ejecutando una aplicación específica. Pero como siempre, los límites son borrosos y estoy seguro de que la gente no estará de acuerdo con mi descripción.

Una MCU o CPU integrada puede variar en rendimiento desde un pequeño chip de 8 bits con 6 pines, hasta CPU de 64 bits de muy alto rendimiento que funcionan a velocidades muy altas con RAM externa, conectividad a Internet y pantallas táctiles a color.

Empezando

Afortunadamente, si desea iniciarse en la programación integrada en una MCU de 8 bits, realmente no necesita saber casi nada sobre electrónica. Si puede conectar LED, entonces puede conectar un microcontrolador.

La verdadera dificultad es elegir un microcontrolador para empezar. Probablemente hay cientos de familias de dispositivos, fabricados por decenas de empresas.

Como eres muy nuevo en el tema, te recomendaría empezar con algo como el Arduino .

arduino

Arduino es un popular microcontrolador de placa única de código abierto diseñado para hacer que el proceso de uso de la electrónica en proyectos multidisciplinarios sea más accesible. Puedes programarlos en un lenguaje muy similar a C. Son muy fáciles de aprender, incluso para los que no son programadores. El Arduino lo cubrirá para casi cualquier proyecto con el que desee comenzar.

Hacia adelante

En algún momento, decidirá que el Arduino no satisface sus necesidades. Tal vez sea demasiado grande o no lo suficientemente potente. Probablemente para ese momento, sabrá más sobre el mundo integrado para saber qué hacer a continuación, o sabrá más sobre lo que quiere aprender para saber qué tipo de pregunta hacer.

Esta es una buena pregunta. Vale la pena volver a visitarlo cada pocos años, ya que el paisaje cambia. Recientemente traté de aprender ARM desde cero. Llegué al punto en que Microsoft Studio 11 (como dices usando mi propia computadora) pudo producir ARM ARM compilable desde C simple. Todavía no llegué al depurador JTAG. El objetivo era tener toda la cadena de herramientas completamente gratis sin usar demasiado software que no fuera de Windows o de código abierto.

El problema de estos años es que todo es una plataforma. No hay un camino fácil sin plataforma, digamos cuando puedes codificar en Pascal para convertirlo en bare metal. La mayoría de las veces se dirige a la capa muy gruesa del sistema operativo existente. Como Android o Linux. Si intenta elegir específicamente la plataforma más compacta, digamos Angstrom, encontrará que la imagen de disco típica es de 3 GB. Y este es el tamaño de la plataforma más pequeña. Es una vergüenza. Todo es un hinchado.

Otra mala noticia, la plataforma Microsoft Mobile es su mayor descarga hasta la fecha. Texas Instruments tiene una hoja de datos denominada Manual de referencia de software para un ARM reciente. El pdf tiene más de 5K páginas. Todo lo que vale la pena aprender está muy sobredimensionado y se vuelve obsoleto extremadamente rápido.

Mi sugerencia y respuesta. Si sabes x86 y más o menos puedes tolerar Windows. Permanecer allí. Puede convertirse en una buena plataforma integrada. Mire Windows 8 RT para Intel (olvídese de ARM). Eso lo decidí por mí mismo en este momento.

Suena bien, pero me gustaría volver a la época en que se hacían las cosas para que los dispositivos funcionaran y entender cómo funcionan. Gracias por tu valiosa sugerencia. yo lo tendria en cuenta :)