Arduino-lite core alternativo para Arduino
Página 1 de 1.
Arduino-lite core alternativo para Arduino
Arduino-lite es un core alternativo para Arduino, orientado a apliciones que necesiten más velocidad y/o ejecutables mas pequeños.
Sustituye algunas de las funciones arduino por macros, como digitalWrite por DIGITAL_WRITE, que pasan de generar varias decenas de instrucciones a sólo un par de ellas o sólo una en el mejor caso.
La diferencia en tamaño puede ser apreciable en según que casos, por ejemplo el blinkled de los ejemplos arduino pasa de unos 1400 bytes a unos 700.
Pero donde realmente se nota es en velocidad cuando se hace uso intensivo de escritura/lectura de pines, por ejemplo imprimir un bitmap en un glcd Nokia 5110 (84x48) con Arduino original tarda unos 90 ms y con el lite unos 10 ms.
La diferencia está en que con arduino-lite puedes mantener 20 FPS y todavía te sobran 40 ms por frame para hacer captura de datos, muchos cálculos o lo que sea, por ejemplo para hacer un osciloscopio sencillo. Mientras que con arduino esto se hace imposible.
Uso en Linux desde linea de comandos:
El arduino-lite se puede usar directamente desde consola, para usarlo en Linux hay que cambiar algunas cosillas del makefile:
Archivo: arduino-lite/scripts/mak_avr_def.inc
diff -w mak_avr_def-Linux.inc mak_avr_def.inc
20,25c20,25
< REMOVE := rm -f
< MV := mv -f
< MKDIR := mkdir -p
< SED := sed
< FIND := find
> REMOVE := $(TOOL_ROOT)/win32/posix/rm -f
> MV := $(TOOL_ROOT)/win32/posix/mv -f
> MKDIR := $(TOOL_ROOT)/win32/posix/mkdir -p
> SED := $(TOOL_ROOT)/win32/posix/sed
> FIND := $(TOOL_ROOT)/win32/posix/find
> DIRNAME := $(TOOL_ROOT)/win32/posix/dirname
27c27
> AVRDUDE := $(TOOL_ROOT)/win32/avrdude-arduino.exe
50c50
>AVR_TOOLS_PATH = $(WINAVR_HOME)/bin
110,116c110,116
< CC = avr-gcc
< CXX = avr-g++
< OBJCOPY = avr-objcopy
< OBJDUMP = avr-objdump
< AR = avr-ar
< SIZE = avr-size
> NM = avr-nm
> CC = $(AVR_TOOLS_PATH)/avr-gcc
> CXX = $(AVR_TOOLS_PATH)/avr-g++
> OBJCOPY = $(AVR_TOOLS_PATH)/avr-objcopy
> OBJDUMP = $(AVR_TOOLS_PATH)/avr-objdump
> AR = $(AVR_TOOLS_PATH)/avr-ar
> SIZE = $(AVR_TOOLS_PATH)/avr-size
> NM = $(AVR_TOOLS_PATH)/avr-nm
Integración en IDE Arduino:
Arduino-lite también se puede usar desde la IDE Arduino, en arduino 0.22 es muy sencillo:
En principio valdría con copiar y pegar (sobreescribiendo) los archivos de arduino-lite/src/core a arduino/hardware/arduino/cores/arduino
, pero así se pierde la posiblidad de compilar sketches arduino normales.
Para mantener la IDE con sus capacidades originales se puede crear otro "core".
Lo voy a llamar "lite" pero se le puede poner el nombre que sea:
Crear la carpeta: arduino/hardware/arduino/cores/lite
Copiar los archivos de arduino/hardware/arduino/cores/arduino a la carpeta creada.
Copy&paste (sobreescribiendo) los archivos de arduino-lite/src/core a la carpeta creada.Ya tenemos el nuevo core, ahora para compilar con el hay que crear nuevos "boards", para ello editar arduino/hardware/arduino/boards.txt, copiar la entrada de la placa que queremos usar con lite y cambiar el nombre y core, por ejemplo para mega1280:
Ahora nos aprece una nueva placa en la lista: "Arduino Mega (ATmega1280) LITE"
Elegimos esa para compilar codigo que use arduino-lite.
En arduino 1.0 basicamente es lo mismo, pero hay que cambiar algunas cosas más, igual otro día lo explico.
Más información:
http://www.robopeak.net/blog/?p=131
http://www.robopeak.net/blog/?p=151
Manual:
http://www.robopeak.net/blog/?p=185
Descarga:
http://code.google.com/p/arduino-lite/
Sustituye algunas de las funciones arduino por macros, como digitalWrite por DIGITAL_WRITE, que pasan de generar varias decenas de instrucciones a sólo un par de ellas o sólo una en el mejor caso.
La diferencia en tamaño puede ser apreciable en según que casos, por ejemplo el blinkled de los ejemplos arduino pasa de unos 1400 bytes a unos 700.
Pero donde realmente se nota es en velocidad cuando se hace uso intensivo de escritura/lectura de pines, por ejemplo imprimir un bitmap en un glcd Nokia 5110 (84x48) con Arduino original tarda unos 90 ms y con el lite unos 10 ms.
La diferencia está en que con arduino-lite puedes mantener 20 FPS y todavía te sobran 40 ms por frame para hacer captura de datos, muchos cálculos o lo que sea, por ejemplo para hacer un osciloscopio sencillo. Mientras que con arduino esto se hace imposible.
Uso en Linux desde linea de comandos:
El arduino-lite se puede usar directamente desde consola, para usarlo en Linux hay que cambiar algunas cosillas del makefile:
Archivo: arduino-lite/scripts/mak_avr_def.inc
diff -w mak_avr_def-Linux.inc mak_avr_def.inc
20,25c20,25
< REMOVE := rm -f
< MV := mv -f
< MKDIR := mkdir -p
< SED := sed
< FIND := find
> REMOVE := $(TOOL_ROOT)/win32/posix/rm -f
> MV := $(TOOL_ROOT)/win32/posix/mv -f
> MKDIR := $(TOOL_ROOT)/win32/posix/mkdir -p
> SED := $(TOOL_ROOT)/win32/posix/sed
> FIND := $(TOOL_ROOT)/win32/posix/find
> DIRNAME := $(TOOL_ROOT)/win32/posix/dirname
27c27
> AVRDUDE := $(TOOL_ROOT)/win32/avrdude-arduino.exe
50c50
>AVR_TOOLS_PATH = $(WINAVR_HOME)/bin
110,116c110,116
< CC = avr-gcc
< CXX = avr-g++
< OBJCOPY = avr-objcopy
< OBJDUMP = avr-objdump
< AR = avr-ar
< SIZE = avr-size
> NM = avr-nm
> CC = $(AVR_TOOLS_PATH)/avr-gcc
> CXX = $(AVR_TOOLS_PATH)/avr-g++
> OBJCOPY = $(AVR_TOOLS_PATH)/avr-objcopy
> OBJDUMP = $(AVR_TOOLS_PATH)/avr-objdump
> AR = $(AVR_TOOLS_PATH)/avr-ar
> SIZE = $(AVR_TOOLS_PATH)/avr-size
> NM = $(AVR_TOOLS_PATH)/avr-nm
Integración en IDE Arduino:
Arduino-lite también se puede usar desde la IDE Arduino, en arduino 0.22 es muy sencillo:
En principio valdría con copiar y pegar (sobreescribiendo) los archivos de arduino-lite/src/core a arduino/hardware/arduino/cores/arduino
, pero así se pierde la posiblidad de compilar sketches arduino normales.
Para mantener la IDE con sus capacidades originales se puede crear otro "core".
Lo voy a llamar "lite" pero se le puede poner el nombre que sea:
Crear la carpeta: arduino/hardware/arduino/cores/lite
Copiar los archivos de arduino/hardware/arduino/cores/arduino a la carpeta creada.
Copy&paste (sobreescribiendo) los archivos de arduino-lite/src/core a la carpeta creada.Ya tenemos el nuevo core, ahora para compilar con el hay que crear nuevos "boards", para ello editar arduino/hardware/arduino/boards.txt, copiar la entrada de la placa que queremos usar con lite y cambiar el nombre y core, por ejemplo para mega1280:
- Código:
##############################################################
megalite.name=Arduino Mega (ATmega1280) LITE
megalite.upload.protocol=arduino
megalite.upload.maximum_size=126976
megalite.upload.speed=57600
megalite.bootloader.low_fuses=0xFF
megalite.bootloader.high_fuses=0xDA
megalite.bootloader.extended_fuses=0xF5
megalite.bootloader.path=atmega
megalite.bootloader.file=ATmegaBOOT_168_atmega1280.hex
megalite.bootloader.unlock_bits=0x3F
megalite.bootloader.lock_bits=0x0F
megalite.build.mcu=atmega1280
megalite.build.f_cpu=16000000L
megalite.build.core=lite
##############################################################
Ahora nos aprece una nueva placa en la lista: "Arduino Mega (ATmega1280) LITE"
Elegimos esa para compilar codigo que use arduino-lite.
En arduino 1.0 basicamente es lo mismo, pero hay que cambiar algunas cosas más, igual otro día lo explico.
Más información:
http://www.robopeak.net/blog/?p=131
http://www.robopeak.net/blog/?p=151
Manual:
http://www.robopeak.net/blog/?p=185
Descarga:
http://code.google.com/p/arduino-lite/
Temas similares
» Pingüino - Arduino con PIC
» Simulador integra Arduino
» SimulIDE Simulador de circuitos Pic, Avr y Arduino
» Fritzing, diseño, desarrollo y enseñanza de Arduino y proptotipos
» chipKIT Uno32: Pic 32 bits en una placa compatible Arduino
» Simulador integra Arduino
» SimulIDE Simulador de circuitos Pic, Avr y Arduino
» Fritzing, diseño, desarrollo y enseñanza de Arduino y proptotipos
» chipKIT Uno32: Pic 32 bits en una placa compatible Arduino
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.