USBaspLoader: Bootloader por USB sin ftdi

USBaspLoader es un bootloader por USB para microcontroladores AVR con al menos 2 KB flash de memoria para bootloader, por ejemplo los populares ATMega8, 168 y 328.

La ventaja es que no necesita ningún chip conversor USB-Serie ni ningún otro controlador usb ya que tiene un driver por software basado en V-USB, también de obdev.

Basicamente emula un programador USBasp que se puede usar desde avrdude, de manera que en el host USB se presenta como si hubiéramos conectado un USBasp y se programa normalmente con avrdude, por tanto las placas que lo usen se pueden integrar en el software Arduino seleccionando USBasp como método de programación.
Ejemplo de uso con avrdude para grabar un Atmega328p:

 avrdude -c usbasp -p m328p -u -U flash:w:archivo.hex

Al resetear el micro arranca el bootloader si se cumple cierta condición, normalmente el estado de un pin, que se puede ajustar con un jumper o conmutador; aunque esta condición es configurable si se editan y compilan las fuentes; si no se cumple la condición se ejecuta normalmente el programa grabado en la sección baja de la flash.

Este bootloader se puede grabar al chip con cualquier programador ICSP, pero antes hay que ajustar los fuses correctamente, esta información se puede encontrar en el makefile del firmware, por ejemplo para Atmega328 a 16 MHz:

lfuse: 0xF7
hfuse: 0xDA
efuse: 0x03

El bootloader lo podéis descargar de aquí: http://www.obdev.at/products/vusb/usbasploader.html Más info sobre V-USB: http://www.obdev.at/products/vusb/index.html

 USBaspLoader permite hacer placas de desarrollo u otros proyectos con un mínimo de hardware y por tanto de costo reducido.

Fast linked list without list

If you need a very fast way to iterate over a list of objects and call the same method on all of them, then here is a posible solution. Der...