Pages: [1]   Go Down
Author Topic: Novato: Se puede leer el programa subido a arduino?  (Read 4154 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La cuestion es que he guardado tantas versiones de un programa que no se cual tengo metida actualmete, por eso realizo esta pregunta, ya que ignoro su respuesta...
Se puede leer el programa subido a arduino? si es asi, como puedo leerlo o descargarlo?

Muchas gracias.
Logged

Málaga, Spain
Offline Offline
Edison Member
*
Karma: 41
Posts: 2182
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Con el ISP Lo puedes hacer, te vuelca el binario claro.
Logged

   

0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1413
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

si quieres recuperar el código fuente...no se puede.
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Con el ISP Lo puedes hacer, te vuelca el binario claro.

@fm se haría con la consola usando avrdude?
Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Málaga, Spain
Offline Offline
Edison Member
*
Karma: 41
Posts: 2182
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

No, tendrías que usar avrdude y un ICSP o ICSP + AVR studio de Atmel. Es la única forma que se me ocurre.
Logged

   

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, me ha quedado claro, muchisimas gracias.
Logged

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Con avrdude se podría hacer, este es el comando a ejecutar con el avrdude que viene con el IDE v1.0 (más que nada para usar la nueva versión)
http://code.google.com/p/arduino/wiki/Arduino1

El ejecutable/binario del avrdude está en: arduino-1.0-rc2\hardware\tools\avr\bin
Code:
avrdude -C PATH_AL_IDE_ARDUINO/arduino-1.0-rc2/hardware/tools/avr/etc/avrdude.conf -patmega328p -carduino -P\\.\NOMBRE_PUERTO_SERIE -b115200 -D -Uflash:v:PATH_AL_HEX/TU_HEX.cpp.hex:i

Suponiendo que tienes conectado una placa con el micro atmega328p, si es otro modelo, pues deberás cambiar el argumento -p al que corresponda.
Esto verificará/comparará el hexadecimal (sketch compilado) que le indiques con el que el Arduino tenga en memoria, por lo que si la verificación es correcta, significará que ese es el que está subido.
Para sacar el hexadecimal, en el IDE (para la versión 0022 que supongo será la que estés usando), pulsa Shift mientas le das al play, eso hará que en la consola de abajo aparezca la ruta donde se almacena el hexadecimal correspondiente al sketch.

Un saludo
« Last Edit: November 07, 2011, 08:45:31 am by chiva » Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

Málaga, Spain
Offline Offline
Edison Member
*
Karma: 41
Posts: 2182
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Una pregunta, se descarga el binario por el puerto serie?

Supongo que tendré que leer el manual de avrdude.
Logged

   

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

El comando anterior sólo hace el paso de verificación en vez del de programación y verificación.
La verificación será la razón por la que el led TX de los Arduino con FTDI se enciende en la segunda parte de la programación, le manda de vuelta el hex al avrdude para verificar. Si no, no tendría sentido.
Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

Forum Moderator
Madrid - Spain
Offline Offline
Full Member
*****
Karma: 5
Posts: 180
'arduinomaníaco'
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La receta de chiva es la ideal para localizar el sketch en cuestión a partir de la comparación de sus binarios. Como te dice chiva la ruta del binario (.hex) del sketch que deseas comparar se obtiene, en las últimas versiones del IDE de arduino, al compilar manteniendo la tecla SHIFT. Haciendo esto te aparecerá la ruta entre los mensajes de compilación que se mostrarán en la ventana de mensajes de la parte inferior del IDE.

Un truquillo que uso yo, siempre que puedo, es utilizar la clase Serial en la función setup(), al comienzo del sketch, para mostrar un mensaje por consola con la versión del sketch y otros datos. Pero claro, se tienen que cumplir grosso modo unos requisitos:
- Llevar un control de versiones de un sketch. Tienes que tener todas las versiones del sketch y que el texto que se imprime corresponda realmente con cada versión.
- Que no necesite los pines 0 y 1 desde el principio del sketch para otros menesteres.
- Y que dispongas de suficiente memoria para ello. Hay veces que un sketch necesita toda la memoria y hay que escatimar el uso de Serial.

Code:
#define VERSION "Skecth v.1.3"

void setup(){
  Serial.begin(9600);
  Serial.println(VERSION);
}

void loop()
{
}

Si estos requisitos se cumplen pues no tienes más que mirar en la consola el mensaje que te aparece smiley-wink y así podrás dirigirte al código fuente de tu sketch que tendrás almacenado.

Una cosa similar a esto, pero de forma externa y automática, con webservices, un gestor de base de datos en un sistema y alguna cosilla más la estuve usando para las pruebas que hice hace tiempo en el proyecto de 'arduino y la nube (cloud computing)'. Para que cuando los usuarios del 'sistema en cloud' subieran sus sketches el identificador devuelto del .hex compilado sirviese para localizar el fuente que lo había generado smiley-wink

Saludos.

coLe.
Logged

Consejos para hacer un correcto uso de los foros.

http://arduino.cc/playground/Es/Consejos

Málaga, Spain
Offline Offline
Edison Member
*
Karma: 41
Posts: 2182
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Chiva, leyendo el comando veo que es para verificar. Es mas, yo tengo el entorno configurado en modo verbose. Pero la pregunta que hacia era para recuperar una imagen que hay en la flash vía arvdude.

Hasta el momento las estaba recuperando vía ICSP con AVR studio. Alguno de vosotros lo ha hecho/probado?
Logged

   

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

fm, creo que he dicho 'verificar' unas cuantas veces smiley-grin
Si quieres volcar la flash, cambia:

Code:
-Uflash:v:PATH_AL_HEX/TU_HEX.cpp.hex:i
por:
Code:
-Uflash:r:PATH_DONDE_GUARDAR.hex:i

Destacar que descarga toda la flash al completo

Importante que avrdude tenga permisos para guardar en donde le digas (mejor si lo ejecutas desde una consola con permisos de admin), si lo guardas en Windows 7 en la partición en la que está instalada el SO, acabará en: C:\Users\USUARIO\AppData\Local\VirtualStore
que es la ruta donde se guardan los datos de los programas que no tienen permisos de escritura en la ruta indicada y dentro de VirtualStore estará en la ruta que le hayas puesto a partir de C:
« Last Edit: November 07, 2011, 10:36:33 am by chiva » Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

Málaga, Spain
Offline Offline
Edison Member
*
Karma: 41
Posts: 2182
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

chiva, si disculpa pero estoy en un terminal de unas pocas pulgadas, por unas pocas pulgadas y la vista ya no es lo que era... ;-)

Ya he visto, que efectivamente se puede leer, escribir, volcar a fichero, en el manual de avrdude.

Como ejemplo ponen:
avrdude -p m128 -c stk500 -U flash:r:"c:/diag flash.bin":r

Esta noche probaré en modo interactivo "-t" a ver que saco.
Logged

   

Pages: [1]   Go Up
Jump to: