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
Respuestas:
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).
fuente
El IDE de Arduino se puede "arreglar" para acomodar el código de ensamblaje. Aquí está el wiki: http://www.cs.nmsu.edu/~jcook/arduino/index.php?n=Notes.AssemblyMods
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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!
fuente
el arduino se puede programar con el ensamblaje utilizando el ensamblador en línea GCC-AVR. Consulte este enlace para obtener el libro de cocina del ensamblador en línea GCC-AVR
http://web.stanford.edu/class/ee281/projects/aut2002/yingzong-mouse/media/GCCAVRInlAsmCB.pdf
fuente