Pregunta

No tengo experiencia en hacer escritorio y programación web por unos cuantos años. Me gustaría pasar a hacer un poco de la programación del sistema de inserción. Después de pedir a la pregunta inicial , me pregunto cuales IDE de hardware / software debería comenzar en ...

O ... no importa?

¿Qué plataforma de desarrollo es el más fácil de aprender y el programa de (toma en consideración de la facilidad de uso IDE)?

¿Cuál es el más fácil de depurar si algo va mal?

Mi objetivo es aprender acerca de " cómo IO puertos de trabajo, las limitaciones de memoria / requisitos incl., posiblemente, la paginación, las rutinas de servicio de interrupción. " es mejor para aprender que voy a utilizar más adelante, o el concepto de alto nivel debe llevar a la mayoría de los micro-controladores?

Gracias!

actualización: este prog kit para un comienzo? ¿Comentario? sugerencia?

¿Fue útil?

Solución

En lo personal, me gustaría recomendar un ARM Cortex-M3 basa microcontrolador. Cuanto mayor sea la fuerza de núcleos ARM son extremadamente populares, y estas versiones de bajo consumo podría muy bien despegar en un espacio que todavía está llena de núcleos de 8/16 bits de propiedad. Aquí está un artículo reciente sobre el tema: La ARM Cortex-M3 y la convergencia del mercado de MCU .

El Arduino es muy popular para los aficionados. Atmel 's periférica biblioteca es bastante común en todos los tipos de procesador. Por lo tanto, sería suavizar una transición después de una AVR a una ARM .

no me refiero a la afirmación de que un ARM es mejor que un AVR o cualquier otro núcleo. La elección de una MCU para un producto comercial general se reduce a los periféricos y precio, seguido de herramientas de base de código y de desarrollo existentes. Además, los microcontroladores son en general mucho más simple que una PC de escritorio. Por lo tanto, no es realmente tan difícil de mover forman uno a otro después de que el cuelgue de ella.

También, mirada en FreeRTOS si usted está interesado en el desarrollo del sistema operativo en tiempo real (RTOS). Es de código abierto y contiene un agradable paseo a través de lo que es un RTOS y cómo han aplicado una. De hecho, su recorrido ejemplo incluso apunta a un AVR.


Herramientas de desarrollo para sistemas embebidos pueden ser muy costosos. Sin embargo, a menudo hay alternativas de código abierto para los núcleos más abiertos como ARM y AVR. Por ejemplo, véase la WINARM y proyectos WinAVR .

Estas herramientas cadenas están basadas en GCC y son por lo tanto también disponible (y más fácil de usar en mi humilde opinión) en plataformas que no sean Windows. Si está familiarizado con el uso de GCC, entonces usted sabe que hay una abundancia de "IDE" para satisfacer su gusto de EMACS y vi (mi favorito) a Eclipse .

Las ofertas comerciales puede ahorrar muchos dolores de cabeza para conseguir la configuración. Sin embargo, la elección de uno dependerá mucho de su hardware y presupuesto objetivo. Además, algunas soporte de hardware depuración USB directa, mientras que otros pueden requerir un caro JTAG adaptador.


Otros enlaces:


Bajo Costo Juntas Cortex-M3:


Nueva Arduino para utilizar una ARM Cortex-M3 en lugar de un microcontrolador AVR.

Otros consejos

Dado que ya tiene experiencia en programación, es posible que desee considerar la obtención de un Arduino y acabando con el firmware que hacer su propio material con AVR Studio + WinAVR. El Arduino le da un punto de partida bueno para entender el lado de la electrónica de la misma. Sacando el cargador de arranque de Arduino le daría un mejor acceso a las entrañas del Atmel.

Para llegar a las metas que estés fijan, también recomendaría la exploración de los ordenadores de sobremesa más profundamente a través de la programación x86. Es posible construir un núcleo de sistema operativo x86, por ejemplo.

ARM es la arquitectura incrustado más ampliamente utilizado y abarca una enorme gama de dispositivos de múltiples proveedores y una amplia gama de costos. Dicho esto, hay diferencias significativas entre ARM7, 9, 11, y dispositivos Cortex - especialmente la corteza. Sin embargo, si entrar en sistemas embebidos profesionalmente es su objetivo, la experiencia ARM le servirá bien.

8 arquitecturas bits son generalmente más fáciles de usar, pero a menudo muy limitado en tanto la capacidad de memoria y velocidades de núcleo. También debido a que son fáciles de usar, habilidades de 8 bits son relativamente fáciles de adquirir, por lo que es una habilidad menos atractivo para un empleador potencial, ya que es fácil de cumplir internamente o con menos experiencia (y por lo tanto menos costoso) personal.

Sin embargo, si esto es un hobby más que una carrera, el bajo costo de las piezas, juntas y herramientas, y la facilidad de uso puede hacer de 8 bits atractivo. Yo sugeriría AVR simplemente porque se apoya en la cadena de herramientas avr-gcc libre. Algunos 8 objetivos bits son compatibles por SDCC, otro compilador fuente de C abierta. Creo Zilog Z8 hacen su compilador disponible de forma gratuita, pero es posible que tenga que pagar por el hardware de depuración (aunque esto es relativamente barato). Muchos proveedores de herramientas comerciales proporcionan versiones de código de tamaño limitado de sus herramientas para la evaluación y el uso no comercial, pero cuidado con la mayoría de los depuradores requieren hardware especializado que puede ser costoso, aunque en algunos casos se puede construir por sí mismo si sólo se necesita funcionalidad básica y bajas velocidades.

Lo que sea que hagas echar un vistazo a www.embedded.com . Si elige ARM, he utilizado WINARM con éxito en proyectos comerciales, aunque no se construye para la comodidad! Una buena lista de los recursos ARM está disponible aquí . Para AVR Sin duda la salida www.avrfreaks.net

sólo recomendaría partes Microchip PIC (al menos los de gama baja) para altamente costo proyectos sensibles donde la mezcla periférica es un buen ajuste a la aplicación; No para el aprendizaje de los sistemas embebidos. PIC es más de una marca de una arquitectura, las diferentes gamas PIC12, 16, 18, 24 y PIC32 son muy diferentes entre sí, por lo que aprender sobre uno no tiene necesariamente que estar en una buena posición para usar otro - a menudo incluso necesidad comprar nuevas herramientas! Dicho esto, el dsPIC que se basa en la arquitectura PIC24 puede ser una opción buena si se quería obtener algo de experiencia DSP simple al mismo tiempo.

En todos los casos, echa un vistazo a la disponibilidad del compilador (especialmente si el soporte para C ++ es un requisito) y el costo, y los requisitos de hardware de depuración, ya que a menudo éstas serán las partes más caras de su dev-kit, los tableros y piezas suelen ser los menos parte más costosa.

Texas Instruments ha lanzado un kit de desarrollo muy interesante a un precio muy bajo: La Herramienta de Desarrollo eZ430-Cronos contiene un MSP430 con pantalla y varios sensores en un reloj deportivo, que incluye un programador USB de depuración y un punto de acceso de radio USB de 50 $

También hay un wiki que contiene montones y montones de información .

creó una propuesta para la StackExchange eZ430-Cronos Kit.

Haga lo que haga, asegúrese de obtener un buen entorno de desarrollo. No soy un fan de las herramientas de desarrollo de Microchip a pesar de que me gusta sus microcontroladores (He sido quemados demasiadas veces por MPLAB ICD +, demasiados problemas y disfunción). 2800 de la serie DSP de TI son bastante buenos y tienen un entorno de desarrollo basado en Eclipse C ++ que se puede conseguir en para 28335 ) - el enlace de comunicaciones del depurador es muy sólido; el IDE es buena, aunque yo de vez en cuando estrellarlo.

En algún lugar hay circuitos integrados y tablas que son mejores; No estoy familiarizado con el paisaje microcontrolador integrado, pero no tengo mucha paciencia para entornos de desarrollo pobres con otra cadena de herramientas de software que tengo que encontrar la manera de moverse por todos los errores.

Algunos recomiendan la ARM. Se lo recomiendo, no como una primera plataforma para aprender, sino como una segunda plataforma. ARM es un poco compleja como una plataforma para conocer los detalles de bajo nivel de encajado, porque sus requisitos del código de inicialización y de puesta en marcha son más complicados que otros muchos micros. Pero ARM es un gran jugador en el mercado integrado, por lo que bien vale la pena el aprendizaje. Así que lo recomiendo como una segunda plataforma para aprender.

El Atmel AVR sería bueno para el aprendizaje de muchos elementos esenciales incrustados, por 3 razones principales:

  1. La arquitectura es bastante recta hacia adelante
  2. kits de desarrollo disponibles, con tutoriales
  3. foro Ventilador con muchos recursos

kits de desarrollo también podría ser buena como MSP430 -aunque puede que no tengan un foro de fans. El uso de un kit de desarrollo es una forma buena para ir, ya que están dirigidos a obtener rápidamente hacia arriba y corriendo con el micro, y fomentar un aprendizaje efectivo. Son propensos a tener tutoriales orientados a empezar rápidamente .

Bueno, supongo que los kits de desarrollo y sus tutoriales son propensos a pasar por alto las cosas tales como gestores de arranque y puesta en marcha de código, en favor de conseguir su código a parpadear el LED tan pronto como sea posible. Pero eso podría ser una buena manera de empezar, y se puede explorar la cadena de acontecimientos de "encendido" a "código que se ejecuta" a su ritmo.

No soy un fan de los PIC, por lo menos los PIC16s, debido a su arquitectura . No es muy C-amigable. Y bancos de memoria son dolorosas.

Esta es la clase de pregunta difícil de responder ya que su respuesta ideal depende mucho de lo que es su interés en el aprendizaje.

Si su objetivo es sólo para bucear un poco más en el funcionamiento interno de los sistemas de computación que sería casi recomendamos que renunciar a la ruta incrustado y recoger un libro sobre cómo escribir un módulo del kernel de Linux. Escribe algo simple que lee un sensor de temperatura de la SMbus o algo por el estilo.

Si lo que buscas en entrar en alto nivel (teléfonos, etc.) el desarrollo de aplicaciones incorporado, descargar el SDK de Android, puede codificar en Java bajo Eclipse e incluso tiene un emulador agradable.

Si lo que buscas en entrar en el espacio microcontrolador "real" y realmente echar un vistazo a la programación del sistema de bajo nivel, le recomiendo que comience en una arquitectura muy simple, como un AVR o PIC, algo sin una MMU.

Buceo en el punto medio, por ejemplo un brazo con MMU y algún tipo de sistema operativo ya sea Linux o de lo contrario va a ser un poco de un choque, ya que sin un fondo es tanto la programación del sistema y hardware de interfaz creo que la transición será ser muy áspera si va a hacer mucho más que escribir aplicaciones muy simples, pulsaciones de botón contar o similar.

No importa, es necesario adquirir experiencia poco a poco a partir de sistemas más simples. Tenga en cuenta que por más simple que no vale menos potente, que media la facilidad de uso, facilidad de instalación, etc. En ese orden de ideas, le recomendaría el siguiente (I sin haber intereses creados en una cualquiera de los productos, acabo de ellos encontró la mejor):

He empezado a utilizar uno de estos (placa de desarrollo mbed). Los puntos de venta para mí fue que pude código en C o C ++, conexión directa vis USB y un entorno de desarrollo resbaladiza en línea (sin instalación de la herramienta local necesaria en absoluto!).

http://mbed.org/

Cinco minutos afer abrir la caja que tenía un programa de ejemplo Blinky (el 'hola mundo' del mundo emedded) que se ejecuta lo siguiente:

#include "mbed.h"

DigitalOut myled(LED1);

int main()
{
    while(1)
    {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
    }
}

Eso es todo! Arriba está el programa completo!

Está basado en ARM Cortex M3, rápido y un montón de memoria para proyectos embebidos (100 MHz, memoria flash 256k y 32k RAM). Las herramientas dev línea tienen una muy buena biblioteca y un montón de ejemplos y theres un foro muy activo. Un montón de ayuda sobre la conexión de dispositivos a mbed etc.

A pesar de que tengo mucha experiencia con los sistemas integrados (ARM 7/9, Renases M8 / 16/32, Coldfire, Zilog, PIC, etc) que todavía se encuentra presente un sistema refrescante y fácil de llegar a enfrentarse con el tiempo que tiene capacidad de graves .

Después de jugar con él inicialmente en un circuito básico que compró una placa base de estos chicos: http://www.embeddedartists.com/products/lpcxpresso/xpr_base.php?PHPSESSID=lj20urpsh9isa0c8ddcfmmn207 . Esto tiene una pila de dispositivos I / O (incluyendo un miniture OLED y un acelerómetro de 3 ejes). Desde el mismo sitio también compré una de las placas de procesador LCPExpresso que es barato, menos energía / memoria que el mbed pero perfecto para trabajos más pequeños (todavía martillos a la mierda de los procesadores PIC / Atmega). Los soportes de placa base tanto de la LCPExpresso y el mbed. La compra de la tarjeta del procesador LCPExpress también me me consiguió un depurador JTAG adjunto y un dev envoronment (kit de desarrollo de código rojo GCC / Eclipse basados) fuera de línea. Esto es mucho más complejo que el entorno dev mbed en línea, pero es una progresión lógica después de que has ganado estupenda experiencia con el mbed.

Con referencia a mi punto original noite que el controlador mbed es mucho más capaz que el controlador LPCExpresso, pero es mucho más fácil de usar y aprender con.

Yo uso microchips PIC, es lo que me refiero a, tengo todo va en ella debido a los 123 proyectos de microcontrolador para el libro mal genio. Tomé una clase de microprocesadores en la escuela para mi grado y aprendí un poco acerca de las interrupciones y el tiempo y las cosas, esto ayudó un montón con mis microcontroladores. Supongo que algunos de los otros programadores, etc puede ser mejor / más fácil, pero por $ 36 para el PicKit1, estoy demasiado barato para ir a comprar otro ... y francamente sin usarlos No sé si son más fácil / mejor , yo como el mío y se lo recomiendo cada vez que puedo, y me llevó para siempre a la realidad realmente mirarlo, pero yo era capaz de programar otro chip de tarjeta con ICSP finalmente. No sé lo que otros programadores lo hacen, pero para mí esa es la interfaz de cable más bonito que 5 y ya está programado. No se puede superar eso con un palo ...

Sólo he utilizado uno de ellos.

El Freescale es un chip de bien. He usado HC-algo fichas durante años para pequeños proyectos. La única salvedad es que yo no tocaría CodeWarrier incrustado con un poste de 10 pies. Se pueden encontrar pequeños compiladores y ensambladores C libres (que no recuerdo el nombre de la última que se utiliza) que hacen el trabajo muy bien. Codewarrior era grande y confuso e independientemente de lo mucho que sabía sobre la arquitectura de chip y C programación siempre parecía sólo para hacer las cosas más difíciles. Si ha utilizado Codewarrior en la parte posterior de Mac en los viejos tiempos y pensar CW es bastante limpio, bueno, no es en absoluto así. CW incrustado miradas vagamente similar, pero funciona de manera muy diferente, y no muy bien.

Un compilador de línea de comandos es generalmente bien . Profesionales que pueden desembolsar grandes cantidades de dinero consiguen entornos de desarrollo caros, y estoy seguro de que hacen las cosas mejor, pero sin que todavía es mucho mejor que la escritura de montaje código para un PC de escritorio en 1990, y de alguna manera nos las arreglamos para hacer eso muy bien . : -)

No, no importa si usted desea aprender cómo programar un dispositivo embebido. Pero lo que necesita saber el flujo de por dónde empezar y dónde ir. Porque hay muchos micro-controladores por ahí y no sabe cuál elegir. Así que es mejor tener una hoja de ruta antes de comenzar.

En mi opinión usted debe comenzar con - Cualquier AVR bordo (ATmega 328P- placas Arduino o tableros AVR) entonces usted debe ir a ARM microcontrolador - en primer lugar hacer ARM Cortex TDMI a continuación, ARM Cortex M3 board.Thus esto le dará una visión global después de lo cual se puede elegir cualquier tablero dependiendo de qué tipo de proyecto que está trabajando y cuáles son sus necesidades.

Leer más sobre incrustado situ doafco.com

considerar un RoBoard . Ahora, esta placa puede no sea lo que está buscando en términos de un microcontrolador, pero tiene la ventaja de ser capaz de ejecutar Windows o DOS y por lo tanto podría utilizar las herramientas de desarrollo, incluso C / C ++ de Microsoft .NET o de ver alrededor de cosas como servos o sensores o incluso, qué diablos, construir un robot! En realidad es un poco divertido.

También existe la Axon II, que tiene el procesador ATmega640.

De cualquier manera, ambos tableros debe ayudarle a alcanzar su objetivo.

Lo siento por la robótica se centran, pero es algo que me interesa y pensó que puede ayudar a usted también.

Yo uso PIC, pero consideraría Arduino si elegía la actualidad. Pero a partir de sus objetivos:

  • cómo IO puertos de trabajo
  • limitaciones de memoria / requisitos
  • rutinas de servicio de interrupción

Me pregunto si la mejor opción es sólo para introducirse en el núcleo de Linux?

BBC Micro Bit

https://en.wikipedia.org/wiki/Micro_Bit

Esta placa poco barato (~ 20 libras) se embaló por ARM Holdings como un dispositivo educativo y unidades de 1M se les dio de forma gratuita a los estudiantes del Reino Unido.

Contiene un ARM Cortex-M0, el núcleo ARM más pequeño de todos.

Lo recomiendo como una primera placa de micro-controlador, debido a su amplia disponibilidad, bajo coste, simplicidad, y el hecho de que es una introducción a la arquitectura ARM, que tiene muchas juntas más avanzados también disponibles para las aplicaciones más serias.

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