¿Arduino con ensamblaje?

12

Ya que para mi incursión en el microprocesamiento, decidí ir con Atmel AVR debido a los vastos recursos disponibles. Y Arduino también parece tener mucho, sin mencionar que sus kits de inicio parecen más "a mi nivel"

El problema es que primero quiero aprenderlo en Ensamblado y luego ir a C / C ++ o w / e Arduino utiliza, pero he oído que Arduino no tomará el ensamblaje AVR. ¿Es esto cierto? ¿Hay alguna manera de evitar eso?

Gracias

edit: Me gustaría ir con ATMEL STK500 pero ... ¿por primera vez parece MUY complicado? ¿Hay alguna razón por la que no pueda obtener un AVR de 8 bits y ponerlo en una placa y experimentar de esa manera? (Supongo que tendría que averiguar cómo interactuar con ellos como tales ...)

edit2: Esto es lo que estaba pensando

enlace

    
pregunta

8 respuestas

5

Las placas Arduino se pueden programar en ensamblaje. Todo lo que necesita es un cable ICSP (programador en serie en circuito) y la cadena de herramientas AVR (sin ATMEL) para escribir en la pizarra. A continuación, obtendrá la ventaja de la depuración a bordo.

Como sugirió, solo puede dar una palmada a un chip ATMEL en una placa de pruebas y dirigirse a la ciudad.

El kit al que hace referencia parece un gran punto de partida. Puede sacar el chip del tablero y pegarlo en su propia placa de pruebas (siempre que se haya regulado correctamente la potencia y se tenga en cuenta el reloj).

    
respondido por el RQDQ
3

El IDE de Arduino se puede "arreglar" para acomodar el código de ensamblaje. Aquí está el wiki: enlace

    
respondido por el Dr_ZAP
2

Por lo que sé, no debería haber nada específico sobre el gestor de arranque Arduino que pueda impedirle utilizar el ensamblaje en lugar de C. El IDE de Arduino puede dificultar la carga de sus propios archivos .hex, pero se parece al gestor de arranque Arduino < a href="http://www.ladyada.net/library/arduino/bootloader.html"> es compatible con STK500 , por lo que debería poder usarlo con avrdude.

    
respondido por el jpc
1

Las placas Arduino (Uno y Duemilanove, como sea) tienen un conector de programación AVR estándar que es compatible con los programadores y depuradores de Atmel a través de AVR Studio. Studio es compatible con ensamblador y C. Un programador adecuado es el AVRISP MkII, y el AVR Dragon ofrece programación y depuración. Yo obtendría lo último, es más caro a $ 50, pero la facilidad de depuración es invaluable. También puede usar esas herramientas con un chip AVR estándar (no Arduino) conectado a una placa de pruebas o una PCB.

    
respondido por el Leon Heller
1

El Arduino se compone de dos piezas: el hardware y el IDE. El IDE principalmente (si no completamente) lo restringe a C y C ++ (con algo de azúcar sintáctica que los desarrolladores han lanzado para hacerlo un poco más como Processing / Java). Existe la posibilidad de que el IDE reconozca los archivos .s o .S en el mismo directorio que un boceto estándar (.pde), pero no colgaría de ello.

No hay nada especial en el hardware. Es un tablero agradable y amigable con muchas características ingeniosas que los neófitos de µC apreciarán, pero si solo desea programar el AVR a través del encabezado del ISP, también puede hacerlo. Necesitará algo como Atmel AVRISP mkII , o cualquier otro programador que trabaje con El conector de 2x3 filas en la placa Arduino. Busque los que sean compatibles con el programa avrdude que usará para cargar sus aplicaciones. Manténgase alejado de USBtinyISP de Adafruit; Tuve una mala suerte con eso y terminé comprando el Atmel One que vinculé por menos de $ 40 de Mouser.

    
respondido por el blalor
1

No es difícil en absoluto.

enlace

Debes mirar Creo que hay ser.c en mi página para elegir qué tarjeta. algunos utilizan diferentes velocidades de puerto serie de forma predeterminada y diferentes esquemas de reinicio para entrar en el modo de programación. Si observa el firmware de arduino, verá que casi ninguno de los comandos de programación avr es realmente compatible. Realmente no los necesito de todos modos.

    
respondido por el old_timer
1

El Aruduino puede ser programado en conjunto. ¡Y ni siquiera necesita un cable ICSP para hacerlo!

De acuerdo, para ser justos, esto no es no lo mismo que programarlo en ensamblaje puro desde cero.

Pero puede ensamblar en línea en C. Lo que significa que puede cargar código en su Arduino que tiene ensamblaje en línea, que luego se ejecutará. Considere la biblioteca de salida de TV , que permite a Arduino enviar NTSC / PAL a un televisor.

Esa biblioteca es muy sensible al tiempo (ya que se está enviando a un televisor, cada línea de escaneo debe escribirse en el momento correcto). Por lo tanto, utiliza el ensamblaje en línea para acelerar el proceso. Mirando línea 89 de este archivo de la biblioteca, la el autor está utilizando algunas de las macros de ensamblaje que escribió.

Ahora. Sospecho que no los escribió utilizando el IDE de Arduino predeterminado. Pero esta biblioteca recurre a su código asm en línea, que cualquier persona puede importar, compilar y ejecutar a través de su interfaz.

¡La mejor de las suertes!

    
respondido por el rascher
1

el arduino se puede programar con el ensamblaje utilizando el ensamblador en línea GCC-AVR consulte este enlace para ver el libro de cocina del ensamblador en línea GCC-AVR

enlace

    
respondido por el jad

Lea otras preguntas en las etiquetas