Arduino Con Asamblea?


12

Desde mi aventura en el microprocesamiento decidí ir con Atmel AVR debido a la gran cantidad de recursos disponibles. Y Arduino parece tener mucho también, sin mencionar que sus kits de inicio parecen más "a mi nivel"

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

Gracias

editar: Me gustaría ir con el ATMEL STK500 pero ... para un primer temporizador parece MUY complicado? ¿Hay alguna razón por la que no pueda obtener un AVR de 8 bits y ponerlo en una placa de prueba y experimentar de esa manera? (Supongo que tendría que descubrir cómo conectarlos como tales ...)

edit2: Esto es lo que estaba pensando

http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=193


¿Cómo te está yendo? Entonces, ¿qué solución has considerado? Compré Arduino Uo y también busco una forma de desarrollarme en ensamblador
todo el

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. Luego obtiene la ventaja de la depuración a bordo.

Como sugirió, puede simplemente colocar un chip ATMEL en una placa e ir a la ciudad.

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


Sí, quisiera seguir con No ponerlo en mi propio tablero en este momento jaja. No soy tan bueno con los circuitos.

@Sauron - ja - de cualquier manera es bueno. ¡Lo que sea que te enganche! Lo bueno es que las fichas individuales son bastante baratas (un par de dólares más o menos).
RQDQ


2

Por lo que yo sé no debería haber nada específico sobre el cargador de arranque de Arduino que podrían impedir el uso de montaje en lugar de C. El Arduino IDE puede hacer que sea difícil para subir archivos .hex es el propietario, pero parece que el gestor de arranque de Arduino es compatible STK500 por lo deberías poder usarlo con avrdude.


Sí, en realidad, el IDE de Arduino usa avrdude para realizar la carga.
Chris Stratton

1

Las placas Arduino (Uno y Duemilanove en cualquier caso) 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 admite ensamblador y C. Un programador adecuado es el AVRISP MkII, y el AVR Dragon ofrece programación y depuración. Obtendría el último, es más caro a $ 50, pero la instalación 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.


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 un poco de azúcar sintáctica que los desarrolladores han agregado para que sea un poco más parecido a Processing / Java). Existe la posibilidad de que el IDE reconozca archivos .s o .S en el mismo directorio que un boceto estándar (.pde), pero no me quedaría con eso.

No hay nada especial sobre el hardware. Es una placa agradable y amigable con muchas características ingeniosas que los neófitos µC apreciarán, pero si solo desea programar el AVR a través del encabezado ISP, también puede hacerlo. Necesitará algo como Atmel AVRISP mkII , o cualquier otro programador que funcione con el conector de fila 2x3 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 suerte horrible y terminé comprando el Atmel que vinculé por menos de $ 40 de Mouser.


1
Extraña, he tenido nada más que buenas experiencias con el IDE Atmel y el usbtiny, también buspirate se duplicará como un ISP para muchas plataformas diferentes, gran herramienta poco
crasic

1

No es difícil en absoluto.

http://www.dwelch.com/arduino/

Tienes que mirar Creo que ser.c en mi página para elegir qué tarjeta. algunos usan diferentes velocidades de puerto serie de manera predeterminada y diferentes esquemas de reinicio para ingresar al modo de programación. Si observa el firmware de arduino, encontrará que casi ninguno de los comandos de programación avr son realmente compatibles. Realmente no los necesito de todos modos.


1

El Aruduino se puede programar absolutamente en conjunto. ¡Y ni siquiera necesita un cable ICSP para hacerlo!

De acuerdo, para ser justos, esto no es lo mismo que programarlo 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 TVOut , que permite que el Arduino envíe NTSC / PAL a un televisor.

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

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

¡La mejor de las suertes!


2
En realidad, también puede crear archivos fuente de ensamblaje, solo tiene que omitir el IDE de Arduino e interactuar con las herramientas de back-end como avr-gcc (o lo que sea que use como ensamblador) y avrdude directamente.
Chris Stratton

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.