surgir sistemas qué pueden programables posibles plataformas para operativos medicina los ingenieria incrustados embebidos embebidas ejemplos consumo complicaciones clasificacion bajo embedded microcontroller arduino codewarrior avr-studio4

embedded - sistemas - ¿Importa qué microcontrolador usar para el primer programador de sistema embebido?



sistemas embebidos programables (13)

ARM es la arquitectura integrada más utilizada y cubre una enorme gama de dispositivos de múltiples proveedores y una amplia gama de costos. Eso dice que hay diferencias significativas entre los dispositivos ARM7, 9, 11 y Cortex, especialmente Cortex. Sin embargo, si su meta es ingresar profesionalmente a los sistemas integrados, la experiencia ARM le servirá.

Las arquitecturas de 8 bits son generalmente más fáciles de usar, pero a menudo muy limitadas tanto en capacidad de memoria como en velocidades de núcleo. Además, debido a que son fáciles de usar, las habilidades de 8 bits son relativamente fáciles de adquirir, por lo que es una habilidad menos atractiva para un empleador potencial porque es fácil de cumplir internamente o con personal menos experimentado (y por lo tanto menos costoso).

Sin embargo, si se trata de un hobby en lugar de una carrera, el bajo costo de las piezas, los tableros y las herramientas, y la facilidad de uso, pueden hacer que sea un poco más atractivo. Sugeriría AVR simplemente porque es compatible con la cadena de herramientas avr-gcc gratuita. Algunos objetivos de 8 bits son compatibles con SDCC, otro compilador de C de código abierto. Creo que Zilog hace que su compilador Z8 esté disponible de forma gratuita, pero puede que tenga que pagar por el hardware de depuración (aunque esto es relativamente barato). Muchos proveedores de herramientas comerciales proporcionan versiones limitadas de tamaño de código de sus herramientas para evaluación y uso no comercial, pero tenga cuidado de que la mayoría de los depuradores requieren hardware especializado que puede ser costoso, aunque en algunos casos puede construirlo usted mismo si solo necesita funcionalidad básica y velocidades bajas

Hagas lo que hagas, echa un vistazo a www.embedded.com . Si eliges ARM, he utilizado WinARM con éxito en proyectos comerciales, ¡aunque no está hecho para tu comodidad! Una buena lista de recursos de ARM está disponible here . Para AVR definitivamente echa un vistazo a www.avrfreaks.net

Solo recomendaría piezas Microchip PIC (al menos las de gama baja) para proyectos altamente sensibles a los costos donde la mezcla periférica se adapta bien a la aplicación; no para aprender sistemas integrados. El PIC es más una marca que una arquitectura, los diversos rangos PIC12, 16, 18, 24 y PIC32 son muy diferentes entre sí, por lo que aprender en uno no necesariamente te hace ser útil para usar otro; a menudo incluso necesitas para comprar nuevas herramientas! Dicho esto, el dsPIC que se basa en la arquitectura PIC24 puede ser una buena opción si quieres obtener una experiencia DSP simple al mismo tiempo.

En todos los casos consulte la disponibilidad del compilador (especialmente si es necesario el soporte de C ++) y el costo, y los requisitos de hardware del depurador, ya que a menudo estas serán las partes más costosas de su dev-kit, las placas y piezas son a menudo la parte menos costosa.

Tengo experiencia en hacer programación de escritorio y web durante algunos años. Me gustaría pasar a hacer algo de programación de sistemas integrados. Después de hacer la pregunta inicial , me pregunto en qué hardware / software debería comenzar ...

O ... ¿no importa?

¿Qué plataforma de desarrollo es la más fácil de aprender y programar (teniendo en cuenta la usabilidad de IDE)?

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

Mi objetivo es aprender sobre "cómo funcionan los puertos IO, las limitaciones / requisitos de memoria, incluida la posibilidad de paginación, rutinas de servicio de interrupción". ¿Es mejor aprender uno que usaré más adelante, o el concepto de alto nivel debería transferirse a la mayoría de los microcontroladores?

¡Gracias!

actualización: ¿cómo es este kit de desarrollo para empezar? ¿Comentario? ¿sugerencia?


Algunos recomiendan el ARM. Lo recomendaría, no como una primera plataforma para aprender, sino como una segunda plataforma. ARM es un poco complejo como plataforma para aprender los detalles de bajo nivel de embedded, porque su código de inicio y los requisitos de inicialización son más complicados que muchos otros micros. Pero ARM es un gran jugador en el mercado integrado, por lo que vale la pena aprenderlo. Así que lo recomendaría como una segunda plataforma para aprender.

El Atmel AVR sería bueno para aprender muchos elementos esenciales integrados, por 3 razones principales:

  1. La arquitectura es razonablemente directa
  2. Buenos kits de desarrollo disponibles, con tutoriales
  3. www.avrfreaks.net con muchos recursos

Otros micros con kits de desarrollo también podrían ser buenos, como el MSP430 aunque es posible que no tengan un foro de fans. Usar un kit de desarrollo es una buena forma de hacerlo, ya que están orientados a comenzar a usar el micro rápidamente y fomentar el aprendizaje efectivo. Es probable que tengan tutoriales orientados a comenzar rápidamente .

Bueno, supongo que es probable que los kits de desarrollo y sus tutoriales pasen por alto cosas como los cargadores de arranque y el código de inicio, a favor de que el código parpadee el LED lo antes posible. Pero esa podría ser una buena manera de comenzar, y puede explorar la cadena de eventos desde el "encendido" hasta el "código en ejecución" a su ritmo.

No soy fanático de los PIC, al menos los PIC16, debido a su arquitectura . No es muy amigable para C Y los bancos de memoria son dolorosos.


Dado que ya tienes experiencia en programación, es posible que desees considerar obtener un Arduino y eliminar el firmware para hacer tus propias cosas con AVR Studio + WinAVR. El Arduino te proporciona un buen punto de partida para comprender el lado de la electrónica. Sacar el gestor de arranque Arduino te daría un mejor acceso a las entrañas de Atmel.

Para llegar a los objetivos que está planteando, también recomendaría explorar las computadoras de escritorio más profundamente a través de la programación x86. Puede construir un núcleo del sistema operativo x86, por ejemplo.


Esta es una pregunta difícil de responder ya que su respuesta ideal depende mucho de lo que le interesa aprender.

Si su objetivo es simplemente sumergirse un poco más en el funcionamiento interno de los sistemas informáticos, casi le recomendaría que abandone la ruta incorporada y busque un libro sobre cómo escribir un módulo de kernel de Linux. Escriba algo simple que lea un sensor de temperatura del SMbus o algo así.

Si estás buscando obtener un desarrollo de aplicaciones integrado de alto nivel (teléfonos, etc.), descarga el SDK de Android, puedes codificar en Java en eclipse e incluso tiene un buen emulador.

Si está buscando ingresar al espacio del microcontrolador "real" y realmente está echando un vistazo a la programación de bajo nivel del sistema, le recomendaría que comenzara en una arquitectura muy simple, como un AVR o PIC, algo sin una MMU.

Bucear en un término medio, por ejemplo, un ARM con MMU y algún tipo de sistema operativo, ya sea Linux o de lo contrario va a ser un shock ya que sin antecedentes es tanto la programación del sistema como la interfaz de hardware, creo que la transición será muy difícil si planeas hacer mucho más que escribir aplicaciones muy simples, contando botones presionados o similares.


Hagas lo que hagas, asegúrate de obtener un buen entorno de desarrollo. No soy partidario de las herramientas de desarrollo de Microchip, aunque me gustan sus microcontroladores (me han quemado demasiadas veces con MPLAB + ICD, demasiada molestia y disfunción). Los DSP de la serie 2800 de TI son bastante buenos y tienen un entorno de desarrollo C ++ basado en Eclipse que puede obtener por menos de US $ 100 (obtenga uno de los kits de experimentador basados ​​en "controlCARD" como el del 28335 ) - enlace de comunicación del depurador es realmente sólido; el IDE es bueno, aunque de vez en cuando lo cuelgo.

En algún lugar, hay circuitos integrados y placas que son mejores; No estoy tan familiarizado con el panorama del microcontrolador integrado, pero no tengo mucha paciencia para los IDE pobres con otra cadena de herramientas de software que tengo que encontrar la manera de evitar todos los errores.


Puede consider un RoBoard . Ahora, esta placa puede no ser lo que está buscando en términos de un microcontrolador, pero tiene la ventaja de poder ejecutar Windows o DOS y, por lo tanto, podría usar las herramientas de desarrollo de Microsoft .NET o incluso C / C ++ para virar alrededor con cosas como servos o sensores o incluso, qué demonios, ¡construye un robot! En realidad es un poco divertido.

También está el Axon II , que tiene el procesador ATmega640.

De cualquier manera, ambos tableros deberían ayudarlo a lograr su objetivo.

Perdón por el enfoque de la robótica, simplemente algo que me interesa y pensé que podría ayudarte también.


Sí importa, necesita adquirir experiencia gradualmente comenzando con sistemas más simples. Tenga en cuenta que por más simple no me refiero a menos potente, me refiero a facilidad de uso, facilidad de configuración, etc. En ese sentido, recomendaría lo siguiente (no tengo ningún interés personal en ninguno de los productos, los encontré mejor):

Empecé a usar uno de estos (placa de desarrollador MBED). Los grandes puntos de venta para mí fueron que pude codificar en C o C ++, conexión directa con USB y un entorno de desarrollo en línea pulido (¡no se requiere instalación de herramienta local en absoluto!).

http://mbed.org/

Cinco minutos después de abrir la caja, tuve un programa de muestra parpadeante (el ''mundo de hola'' del mundo emeditado) que 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! ¡Arriba está el programa completo!

Está basado en ARM Cortex M3, rápido y con mucha memoria para proyectos integrados (100mhz, 256k flash y 32k ram). Las herramientas de desarrollo en línea tienen una biblioteca muy buena y muchos ejemplos, y hay un foro muy activo. Mucha ayuda para conectar dispositivos a MBED, etc.

A pesar de que tengo mucha experiencia con sistemas integrados (ARM 7/9, Renases M8 / 16/32, Coldfire, Zilog, PIC, etc.) todavía encuentro que este es un sistema refrescantemente fácil de manejar a la vez que tiene una capacidad seria.

Después de jugar inicialmente con él en una tableta básica compré una placa base de estos tipos: http://www.embeddedartists.com/products/lpcxpresso/xpr_base.php?PHPSESSID=lj20urpsh9isa0c8ddcfmmn207 . Esto tiene una pila de dispositivos de E / S (incluyendo un miniture OLED y un acelerómetro de 3 ejes). Desde el mismo sitio, también compré uno de los tableros de procesadores LCPExpresso que es barato, con menos energía / memoria que el MBED, pero perfecto para trabajos más pequeños (todavía daña los procesadores PIC / Atmega). La placa base admite tanto el LCPExpresso como el MBED. Comprar la placa del procesador LCPExpress también me consiguió un depurador JTAG adjunto y un entorno de desarrollo sin conexión (kit de desarrollo basado en GCC / Eclipse de Code Red). Esto es mucho más complejo que el entorno de desarrollo de MBED en línea, pero es una progresión lógica después de que haya obtenido experiencia con el MBED.

Con referencia a mi punto original noite, el controlador MBED es mucho más capaz que el controlador LPCExpresso PERO es mucho más simple de usar y aprender.


Seré el segundo ARM Cortex-M3 o incluso basado en ARM7. Como mencionó la E / S, sugiero probar diferentes proveedores. Algunos proveedores lo hacen leer-modificar-escribe en registros para cambiar los valores de salida, otros lo simplifican sin la lectura-modificación-escritura, pero ese método también tiene sus inconvenientes. vaya a sparkfun.com y mire a través de las juntas de desarrollo. Olimex (vendido a través de sparkfun y otros) tiene una amplia variedad de placas eval de bajo costo, perfectas para lo que estás haciendo.

Prefiero el conjunto de instrucciones del msp430 para el ensamblador de aprendizaje (se requiere cierto ensamblaje si realmente desea incrustarlo). Arm es un segundo IMO cercano. Puede recoger un ez430 de ti por unos 20 dólares o más, luego, por $ 10 más, puede recoger otros tres tableros de msp430. Desafortunadamente, el AVR, que es probablemente la arquitectura más popular para los aficionados (la foto solía ser) es un conjunto de instrucciones realmente desagradable, tienes que usar C para evitarlo. También podría ir con algo limpio que esté limpio, tanto en su conjunto de instrucciones, lo que hace que los compiladores trabajen mucho más fácilmente, haciendo que el resultado de C también sea un código más limpio. tanto el msp430 como el brazo de la familia tienen soluciones gcc, así como también es fácil de usar construir y usar llvm con su clang (llvm tiene un problema de 64 bits con su extremo frontal gcc).

Mi conclusión es si realmente quieres aprender sobre las E / S incorporadas y las interrupciones relacionadas con E / S. ve a sparkfun agarra un par de $ 30 arm7s desde lpc y st, y el stm32, consigue algo de stellaris, el 1968 o el 811 quizás. Un ez430 de ti (la familia stellaris ahora es parte de ti). Ah, y de nuevo a sparkfun y agarra un arduino mini, o lily pad uno de los sub $ 20, pero asegúrate de tener el usb a la cosa de serie que tanto lo alimenta y te da acceso de serie / depuración a él. Estaba realmente muy decepcionado con las unidades de demostración stm32 de st o en realidad era un proveedor de rtos. Todavía estoy muy cerca de nunca comprar de nuevo st como resultado.

EDITAR

Wow me puse nervioso con mi primera respuesta. Probablemente golpee un poco más con la edición.

Hay un par de maneras de hacerlo. Una es la cosa del tipo de registro único. la solución de lectura-modificación-escritura. Si desea cambiar una salida de E / S necesita leer el registro, cambie el bit que corresponde al pin de E / S (para que no cambie los otros pines de E / S) y vuelva a escribirlo. Esto consume instrucciones, lo cual es malo para los integrados, voluminosos y esporádicos si lo haces en un lenguaje de alto nivel. Otra solución se adapta al golpeteo de bits. Hay un registro para establecer los pines de E / S cuando escribe en él, coloca un 1 en la ubicación para el pin de E / S o los pines que desea establecer y luego escribe, los bits que escribe cero permanecerán sin cambios. Y otro registro que cuando se escribe un 1 borra el pin de E / S correspondiente. Estos son excelentes para golpear los bits. Pero malo si no sabes cuál es el valor de los datos. Si está tomando datos de una entrada y solo los pasa al pin de E / S, entonces tiene que hacer un si es uno y luego escribir aquí escriba allí. De vuelta a lo voluminoso y lento. El punto de mi respuesta fue que ambas soluciones existen, algunos chips dan los dos, otros tienen solo una de las dos soluciones. Es una compensación, y algo que vale la pena experimentar, los vendedores son lo suficientemente diferentes a este respecto y otros. Otro ejemplo de diferencias entre proveedores y chips es que algunos proveen cable o salidas y pull ups o pull ups en las entradas que pueden marcar la diferencia si tiene que comenzar a agregar partes discretas para cada pin de E / S cuando podría haber elegido otro vendedor y ahorró tiempo y dinero a todos. Ese tipo de cosas te dejarán sin empleo rápidamente.

Cortex-M3, las opciones que conozco son las STM32 de ST que compraría (lo hice) de sparkfun. Y la familia Stellaris anteriormente Luminary Micro, ahora propiedad de TI. Evitaría el 811 eval board, el reloj era un número que era más difícil de encontrar que los otros. También cerré mi primer ladrillo en unas pocas horas y tuve que pedir y esperar otro. Los otros son menos fáciles de ladrillo. Si tiene cuidado con sus habilitaciones y direcciones de IO, y solo quiere aprender / jugar, el 811 está bien. Hmm, ¿acabo de ver que LPC tiene ahora una corteza m3? Si no, lo harán, todos en el negocio del brazo y algunos que no lo harán probablemente tomarán la corteza-m3 para el mercado integrado. Cuando observas todos los factores de las herramientas, los programadores disponibles, el costo por unidad, el costo de desarrollo, el rendimiento, la potencia, etc., estas cosas son difíciles de superar.

Las desventajas de utilizar el cortex-m3 frente al brazo7 basado en primer lugar es que con el brazo7 puede aprender primero el conjunto de instrucciones del brazo y luego cambiar al subconjunto del pulgar. Con el cortex-m3, todo lo que tienes es pulgar y pulgar2. También la tabla de vectores de interrupción es tonta en comparación con los brazos normales. No tonto como en malo o estúpido pero tonto como en diferente. Muchos considerarían el modo ARM como tonto, sí, entendido y de acuerdo. el cortex-m3 es más una excepción a la familia del brazo que la regla, por lo tanto, sugeriría que lo aprenda como su segundo o el NEM ARM, no el primero. Una vez más, todas las cosas buenas que vale la pena conocer quieren saber sobre este mercado y su entorno. La placa str711 de olimex que puedes obtener en sparkfun es una buena para empezar. Creo que fue en el sam7-64 en el que pasé más tiempo. Los LPC son bastante populares. sparkfun tiene un par con el puerto serie de 9 pines en las placas para que no tengas que agregar uno.

Aparte de algunas líneas para arrancar lo que muchas otras personas ya han escrito, sí es posible sin usar o aprender ASM. Tocaré más los nervios con estas afirmaciones pero embebido significa que los recursos y el rendimiento son limitados, por lo que muchas reglas de programación tradicionales salen por la puerta, como por ejemplo, no usar globales. Los lenguajes de alto nivel como C pueden volverse bastante dolorosos especialmente para conjuntos de instrucciones incorrectas como el PIC. Debido a que está tan cerca del metal, una cantidad notable de su código no es portátil de una familia de chips a otra o incluso dentro de la misma familia de chips algunas veces. Entonces, usar C para la portabilidad no es un argumento válido. La mayoría de los compiladores son basura, por ejemplo, el gcc es marginal (en el mejor de los casos, una talla para todos cabe por definición). Depende de cuánto quieras controlar y cuánto quieras ser esclavo de los demás. Al estar interesado en sistemas integrados para mí significa que quiere tener el control, eso significa entender la tabla de vectores, saber cuándo y dónde y por qué su compilador está tirando el 50% o más de su rendimiento, podría haber hecho que el control remoto dure más tiempo con una batería en lugar de requerir tres para simplemente chillar simplemente por no saber las herramientas y lo que están haciendo. La gran mayoría de los programadores en el mundo ejecuta sus programas a la mitad de velocidad o menos y duplica el tamaño. Voluminosos y lentos, solo piensa en los ahorros de electricidad y almacenamiento. Normalmente no ves esto en un escritorio, pero lo harás cuando estés integrado. Ahora, diciendo que casi todo mi código está en C, normalmente solo tengo unas pocas líneas de ensamblador para configurar la pila y el arranque y algunas funciones de línea aquí y allá donde el compilador nunca competirá o para cubrir problemas que los compiladores tienden a tener .

Quería un stm32, siendo en ese momento el único otro cortex-m3. Quería algo para comparar con la familia stellaris. Cuando llegaron, descubrí que tenías que vivir en su caja de arena. Tengo cero uso para el rtos, quiero que se elimine y quiero usar mi propio bootloader y código. Al menos en el momento en que era un artículo de costo extra por algo que ya había pagado el doble de lo que normalmente pagaría por los productos de la competencia. Entonces están en su caja, nunca serán reabiertos ni usados. Eventualmente ser arrojado. Sí, la mitad del problema fue que no hice suficiente investigación, había asumido que los tableros eran como otros tableros de evaluación normales, esta fue una quemadura por primera vez para mí. Burn me una vez la vergüenza me quema dos veces la culpa de mí. Y fue el vendedor de rtos, no ST, el verdadero culpable. Así que una vez que la placa olimex stm32 estuvo disponible desde sparkfun compré una.

El arduino tiene este problema de espacio aislado también. Por lo tanto, la mayoría de las búsquedas que busca información estarán dentro de ese entorno limitado. La diferencia es que todo está abierto para ver, la información está ahí si quieres hacer lo tuyo y tener el control del tablero. El arduino no es tan fácil como la mariposa AVR para aquellos que recuerdan esa plataforma.

La mariposa AVR y ahora la Arduino es increíble en el sentido de los seguidores que ha dibujado. Tal vez Atmel es más fácil de usar que una empresa para superar el conjunto de instrucciones y herramientas. No se limitan al AVR BTW, también tienen una línea ARM y probablemente más cosas, no las he buscado en mucho tiempo. Definitivamente no necesitarás para obtener ayuda si vas con un arduino. Y no necesitarás ningún ensamblador si no quieres. Y con arduino mini o lillypad de sparkfun, el costo para jugar es casi nulo.

Creo que podrían hacer mucho más con el msp430. Claro que tienen este súper mercado de baja potencia al que quieren llegar. Pero el conjunto de instrucciones tenía esta sensación del pdp-11 cuando lo vi por primera vez. Muy limpio, recomiendo el msp430 primero para aquellos que quieran aprender ensamblaje, luego cambien a ARM, para entonces verán que todos los lenguajes ensamblados son solo sintaxis en cuanto a aprendizaje. El rendimiento y el dolor y otras cosas son otra historia, por supuesto. Creo que podrían expandir fácilmente la velocidad del msp430 y permitir un mayor uso del espacio de direcciones. Recientemente he pasado un tiempo jugando con un msp430 de Opencore que puedes poner en una fpga y obtener más memoria y velocidad, y funciones si lo deseas, incluso puedes agregar usb si lo deseas. No en un paquete de potencia súper baja, por supuesto. También incursioné en escribir mi propio clon msp430 solo para aprender un poco de hdl, no terminé pero me divertí.


Solo he usado uno de esos.

El Freescale es un buen chip. He usado chips HC-something durante años para pequeños proyectos. La única advertencia es que no tocaría CodeWarrier incrustado con un poste de 10 pies. Puedes encontrar pequeños compiladores y compiladores de C gratuitos (no recuerdo el nombre de la última que utilicé) que hacen bien el trabajo. Codewarrior era grande y confuso e independientemente de lo mucho que sabía sobre la arquitectura de los chips y la programación de C siempre parecía hacer las cosas más difíciles. Si has usado Codewarrior en la Mac en los viejos tiempos y piensas que CW es bastante limpio, bueno, no es para nada así. CW incrustado se ve vagamente similar, pero funciona de manera muy diferente, y no muy bien.

Un compilador de línea de comandos generalmente está bien . Los profesionales que pueden pagar mucho dinero obtienen entornos de desarrollo costosos, y estoy seguro de que mejoran las cosas, pero sin eso, es mucho mejor que escribir código ensamblador para una PC de escritorio en 1990, y de alguna manera logramos hacerlo bien . :-)



Uso PIC, pero consideraría Arduino si quisiera hoy. Pero de tus objetivos:

  • cómo funcionan los puertos IO
  • limitaciones / requisitos de memoria
  • interrumpir las rutinas de servicio

Me pregunto si lo mejor es apostar por el kernel de Linux.


Utilizo PIC de microchips, es en lo que comencé, principalmente lo hice debido a los 123 proyectos de microcontroladores para el malvado libro de genios. Tomé una clase de Microprocesadores en la escuela para obtener mi título y aprendí un poco sobre interrupciones y tiempos y cosas, esto ayudó mucho con mis microcontroladores. Supongo que algunos de los otros programadores, etc. pueden ser mejores / más fáciles, pero por $ 36 para el PicKit1, soy demasiado barato para comprar otro ... y francamente sin usarlos, no sé si son más fáciles / mejores. , Me gusta la mía y la recomiendo cada vez que puedo, y me llevó mucho tiempo realmente mirarla, pero finalmente pude programar otro chip fuera de borda con el ICSP. No sé lo que otros programadores lo hacen, pero para mí esa es la mejor interfaz de 5 hilos y estás programado. No se puede superar eso con un palo ...


Personalmente, recomendaría un microcontrolador basado en ARM Cortex-M3 . Los núcleos ARM mayor potencia son extremadamente populares, y estas versiones de bajo consumo de energía podrían despegar en un espacio que todavía está plagado de núcleos propios de 8/16 bits. Aquí hay un artículo reciente sobre el tema: El ARM Cortex-M3 y la convergencia del mercado de MCU .

El Arduino es muy popular para los aficionados. La biblioteca periférica de Atmel es bastante común en todos los tipos de procesadores. Por lo tanto, suavizaría una transición posterior de un AVR a un ARM .

No pretendo afirmar que un ARM sea mejor que un AVR o cualquier otro núcleo. La elección de una MCU para un producto comercial por lo general se reduce a los periféricos y el precio, seguidos por la base de códigos y las herramientas de desarrollo existentes. Además, los microcontroladores son en general mucho más simples que una PC de escritorio. Entonces, realmente no es tan difícil moverse de uno a otro después de que lo domines.

Además, consulte FreeRTOS si está interesado en el desarrollo de sistemas operativos en tiempo real (RTOS). Es de código abierto y contiene un recorrido por lo que es un RTOS y cómo lo han implementado. De hecho, su ejemplo paso a paso incluso apunta a un AVR.

Las herramientas de desarrollo para sistemas integrados pueden ser muy costosas. Sin embargo, a menudo hay alternativas de código abierto para los núcleos más abiertos como ARM y AVR. Por ejemplo, vea los proyectos de WinARM y WinAVR .

Esas cadenas de herramientas se basan en GCC y, por lo tanto, también están disponibles (y son más fáciles de usar en mi humilde opinión) en plataformas que no son de Windows. Si está familiarizado con el uso de GCC, entonces sabe que hay una gran cantidad de "IDE" para satisfacer su gusto de EMACS y vi (mi favorito) para Eclipse .

Las ofertas comerciales pueden ahorrarle muchos dolores de cabeza al configurarlo. Sin embargo, la elección de uno dependerá en gran medida de su hardware y presupuesto objetivo. Además, algunos hardware admiten la depuración directa de USB, mientras que otros pueden requerir un adaptador JTAG caro.

Otros enlaces:

Tarjetas Cortex-M3 de bajo costo:

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