Pregunta

Estoy buscando aprender sobre programación integrada (principalmente en C, pero espero repasar mi ASM también) y me preguntaba cuál sería la mejor plataforma.Tengo algo de experiencia en el uso de Atmel AVR y en su programación con el stk500 y descubrí que es relativamente fácil.Me gusta especialmente AVR Studio y el depurador que te permite ver el estado de los registros.

Sin embargo, si tuviera que tomarme el tiempo para aprender, preferiría aprender sobre algo que prevalece en la industria.Estoy pensando en ARM, a menos que alguien tenga una sugerencia mejor.

También estaría buscando algún material de referencia, encontré la sección de libros en el sitio web de ARM y si uno es técnicamente un libro mejor que otro, agradecería que me avisaran.

Lo último que buscaría es una placa de programación/prototipo como la STK500 que tenga algunos botones, etc.

Gracias =]

¿Fue útil?

Solución

"Programación integrada" es un término muy amplio.AVR está bastante bien en esa categoría, pero está un paso por debajo de ARM, ya que es más simple de usar y menos potente.

Si solo quieres jugar con ARM, compra una Nintendo DS o una Gameboy Advance.Estos son muy baratos en comparación con el hardware interno (maravillas de la producción en masa) y ambos tienen cadenas de herramientas de desarrollo gratuitas basado en gcc que puede compilar con ellos.

Si quieres jugar con Linux integrado, BeagleBoard Parece ser una buena opción, sólo $150 y tiene un montón de características.

Personalmente, creo que AVR es mejor para las plataformas más pequeñas de 8 bits y ARM es mejor para las plataformas más grandes y potentes basadas en 32 bits.Como a muchos fanáticos de AVR, no me gusta PIC.Simplemente parece peor en casi todos los sentidos.También evita cualquier cosa que requiera que escribas cualquier tipo de BASIC.

Otros consejos

Si solo quieres jugar con él, te sugiero la plataforma Arduino (http://www.arduino.cc).Está basado en ATmega168 o ATmega8, según la versión.Utiliza un lenguaje tipo C y tiene su propio IDE.

Yo mismo he trabajado en programación integrada durante 9 años y tengo experiencia en TI MSP430, Atmel AVR (un par de versiones) y pronto usaré un ARM.

Mi sugerencia es elegir algo que tenga algunas características adicionales en el procesador, como un controlador Ethernet y un controlador CAN, incluso conseguir dos o tres si puedes.Es agradable trabajar con dispositivos integrados, pero una vez que pueden comunicarse con otros dispositivos similares a través de CAN o conectarse a una red, puede resultar mucho más divertido jugar con ellos.

ARM tiene el mejor conjunto de instrucciones de las plataformas integradas más utilizadas, lo que le permite aprender los principios generales de escritura de software para plataformas integradas sin atascarse en detalles extraños como registros no ortogonales o ranuras de retardo de rama.Hay muchos emuladores: el de ARM, aunque no es gratuito, tiene ciclos precisos;y una gran variedad de hardware programable basado en ARM también es barato y fácil de conseguir.

IDA aleta negra es otra opción ya que es una arquitectura bastante sencilla de programar, pero también puede hacer algunas cosas DSP bastante importantes si decide seguir ese camino.Ayuda que el lenguaje ensamblador también sea bastante sensato.

El aleta negra ESTAMPILLA Los tableros son una forma económica (~ $ 100 la última vez que revisé) y son compatibles con las herramientas gratuitas GCC y uClinux.

Cualquiera que sea la arquitectura que elija, definitivamente recomendaría descargar primero la cadena de herramientas\SDK y revisar los proyectos y tutoriales de muestra; en general, jugar un poco.A menudo es posible familiarizarse con la arquitectura mediante la simulación sin siquiera tocar ningún hardware.

El TIMSP430 es una gran plataforma para aprender a programar microcontroladores.TI tiene una variedad de Herramientas GRATIS y algo tableros de evaluación baratos (desde $20).Además, es un microcontrolador moderno de bajo consumo.

Una buena opción sería PIC18 de Microchip.

  • Tiene bastante material, documentación, tutoriales y proyectos en internet.

  • IDE y compilador gratuitos.

  • puedes crear tu propia grabadora flash en unos minutos.(Aunque para que un depurador funcione necesitarás trabajar más duro)

  • Si eres estudiante (o tienes una dirección de correo electrónico de estudiante), Microchip te enviará chips de muestra gratuitos.Básicamente, puedes tener un entorno de desarrollo completo por casi nada.

  • Los PIC son bastante frecuentes en la industria.Específicamente como controladores de robots por alguna razón, aunque pueden hacer mucho más.

arduino Parece ser la plataforma elegida hoy en día por los principiantes, aunque hay muchas otras.me gusta el olimex tablas personalmente, pero en realidad no son para principiantes.

PastillaLa gama de CPU PIC de también es excelente para principiantes, especialmente si desea programar en ensamblador.

Por cierto, Assembler no se usa tanto como antes.La regla general con incrustado es que si tienes 4k de memoria o más, usa C.Obtiene portabilidad y puede desarrollar código más rápido.

Supongo que depende de tu nivel de habilidad y de lo que quieras hacer con el chip.Normalmente elijo qué chip integrado usar según los periféricos disponibles.Si desea un puerto USB, busque uno con USB incorporado, si desea analógico a digital, busque uno con un ADC, etc.Si tiene una aplicación simple, use 8 bits, pero si necesita hacer cálculos numéricos serios, opte por 32 bits.

Me gustaría sugerir el beagleboard de TI.Tiene un Omap3.Se trata de una CPU Cortex-A8 ARM11, un DSP C64x+ y también un acelerador de vídeo.

La placa no necesita un costoso dispositivo jtag.Un cable serie y una tarjeta SD es todo lo que necesita para comenzar.La pensión cuesta sólo $150 y hay una comunidad muy activa.

www.beagleboard.org

Su pregunta ha sido respondida en esta pregunta.

Además de eso, la industria de los procesadores integrados está muy segmentada, no tiene un jugador importante como Intel/x86 para la industria de los procesadores de "escritorio".El procesador ARM tiene una gran participación, al igual que MIPS, creo, y hay muchos chips más pequeños y específicos como microcontroladores disponibles (como el MSP430, etc. de TI).

En cuanto a la documentación, hago desarrollo integrado para un trabajo diario y la documentación a la que tenemos acceso (como desarrolladores de software) es bastante escasa.Lo mejor que puede hacer es utilizar la documentación disponible en el sitio del fabricante del procesador.

Echa un vistazo a Procesando y las placas Arduino y de cableado asociadas.

Si solo quieres divertirte, prueba el chip Parallax Propeller.La plataforma de juegos HYDRA parece una maravilla.Ahora hay un compilador C de 100 dólares.

Comencé con sellos BASIC, pasé por chips SX y PIC hasta 8051, luego 68332, varios DSP, procesadores de software FPGA, etc.

Los 8051 son más útiles en el mundo real...las cosas no desaparecerán.Hay TONELADAS de derivados y cosas locas para ellos.(Manténgase alejado del DS80C400) La industria energética está absolutamente llena de ellos.

Empiece con algo pequeño.Si tienes RAM externa y muchos registros...¿Cuál es la diferencia entre eso y un SBC?

Hace muchas lunas trabajé con 8 bits como 68HC05 y Z80, luego AVR y MSP430 (16 bits).Sin embargo, los proyectos más recientes estaban en ARM7.Varios fabricantes ofrecen controladores ARM, en todos los colores y tamaños (bueno, no realmente en colores).

ARM(7) está reemplazando la arquitectura de 8 bits:tiene más rendimiento (RISC de 32 bits con ciclos de instrucción más rápidos que la mayoría de los de 8 bits), tiene más memoria y está disponible con varias configuraciones de E/S.Trabajé con controladores NXP LPC2000, que también son económicos (¡<1 USD por un 32 bits!).

Si estás en Europa http://www.olimex.com/dev/index.html Tiene algunas buenas placas de desarrollo de bajo costo.Funciona en el resto del mundo también :-)

Para probar un proyecto divertido, eche un vistazo a xgamestation

Pero para una programación de solución de un chip usada más industrial, mire FOTO

Para mi curso de Arquitectura de Computadores tuve que trabajar tanto con un PIC como con un AVR;En mi opinión, fue más fácil trabajar con PIC, pero quizás eso se deba a que es con lo que trabajamos más y a lo que tuvimos más tiempo para acostumbrarnos.Usamos el AVR tal vez solo un par de veces, por lo que no pude entenderlo perfectamente, pero tampoco fue nada demasiado complicado, o al menos no más frustrante que el otro.

Creo que también puede solicitar muestras de microprocesadores en el sitio web de Microchip para poder comenzar con eso.

Segundo que:

plataforma arduino http://www.arduino.cc

HT

Para aprender, no puedes pasar el AVR.Los chips son baratos y funcionan sin componentes externos; también suministran suficiente corriente para alimentar un LED directamente desde el puerto.

Puedes empezar con un programador barato como el de lady-ada. USBTinyISP (USD$22 por un kit) que puede alimentar su placa con 5V desde el puerto USB.Obtenga las herramientas gratuitas WinAVR (basada en GCC) y AVRStudio y ponga a funcionar un pequeño proyecto en poco tiempo.

Sí, los AVR tienen limitaciones, pero el desarrollo de software para microcontroladores consiste en gran medida en gestionar recursos y afrontar esos problemas.Es poco probable que experimente problemas como quedarse sin espacio en la pila, RAM o ROM cuando realice proyectos hobbist para plataformas ARM potentes.

Dicho esto, ARM también es una gran plataforma que se usa ampliamente en la industria; sin embargo, para aprender recomiendo encarecidamente los AVR.

Yo sugeriría la serie PIC18F de Microchip.Acabo de empezar a desarrollar para ellos con el emulador de circuito RealICE, pero el pickit2 es un depurador decente por el precio.También se podría decir lo mismo de los AVR, pero hay muchos seguidores para el dispositivo en toda la web.Pude tener un dispositivo USB integrado, con errores pero funcional, ejecutándose en cuestión de días debido a toda la charla relacionada con PIC.

Lo único que no me gusta de los PIC es que gran parte del código de muestra está MUY entrelazado en los tableros de demostración.Eso puede hacer que sea difícil eliminar las secciones que necesita y aún tener una aplicación que se compilará y ejecutará para su aplicación.

Texas Instruments ha lanzado un kit de desarrollo muy interesante a un precio muy reducido:El Herramienta de desarrollo eZ430-Chronos Contiene un MSP430 con pantalla y varios sensores en un reloj deportivo, incluido un programador de depuración USB y un punto de acceso de radio USB. por 50$

También hay una wiki que contiene muchísima información.

Ya tengo creó una propuesta de intercambio de pila para el kit eZ430-Chronos.

Debería intentar aprender de los kits de desarrolladores proporcionados por Artistas integrados.Después de obtener el kit, consulte los videos instructivos y los videos proporcionados por NXP, que no son tan detallados como podrían ser, pero cubren muchas cosas.Los problemas al aprender ARM como su primera arquitectura e intentar hacer algo práctico son:

  • Necesitas comprar dev.equipo.
  • Necesitas un buen libro aprender a ensamblar ARM, porque tarde o temprano te encontrarás con el código de inicio de ARM, lo cual es todo un negocio para un principiante.El libro que mencioné también cubre algo de programación en C.
  • Combine el libro mencionado anteriormente con una guía de usuario para su procesador específico como Éste.Asegúrese de obtener esto, ya que estudiarlo en combinación con el libro anterior es la única forma de aprender su proceso ARM.en detalle.
  • Si desea realizar una transferencia del ensamblaje ARM a la programación C, deberá leer esto libro, que cubre un procesador ARM diferente pero es más fácil para principiantes en C.La desventaja es que no explica ningún ensamblaje de ARM, pero es por eso que necesitas el primer libro.

No hay manera fácil.

mikroElektronika tiene un buen brazo tableros y C, Pascal y Básico compiladores que podría satisfacer sus demandas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top