Go Down

Topic: Ayuda para Modificar Librerias Core (Read 533 times) previous topic - next topic

gorgonas

Hola Buenas, a ver si alguien puede ayudarme con un tema que no tengo nada claro...

Lo que quiero hacer es modificar una funcion, de las que se encuentran en las librerias de la carpeta core del arduino. En concreto la funcion micros().

Yo para utilizar la funcion micros() no pongo en mi codigo ningun "include", suponia que automaticamente el cogia las librerias de la carpeta core, la cuestion es que modifique el archivo wiring.c, de la carpeta core y descargue el programa.

Luego para probar si la modificacion de verdad se estaba descargando, probe a borrar el archivo wiring.c y volvi a descargar el programa al arduino con sorpresa para mi, sin dar ningun error...

La duda que tengo es entonces si esa funcion micros() esta definida en wiring.c pero no la esta cogiendo de ahi porque borro el archivo y descarga sin errores...¿de donde esta entonces cogiendo la funcion micros()?...

Gracias.

gorgonas

Bueno he conseguido solucionar el problema, me respondo a mi mismo por si pudiera ayudar a alguien...

La cuestion es que cuando descargas el programa al arduino, este compila los archivos c y cpp generando un archivo con extension .o que guarda en el directorio "C:\Users\"tu_usuario"\AppData\Local\Temp\"una carpeta temporal con numeros".

Por algun motivo que desconozco, al tener el archivo wiring.o ya en el directorio temporal por mucho que modificara el archivo wiring.c no le hacia caso porque no lo volvia a compilar cogia el que ya tenia compilado, de ahi que no le afectaran los cambios que yo hacia en el archivo wiring.c. Borre el archivo .o del directorio temporal y me lo volvio a compilar con los cambios que yo habia echo, y se soluciono el problema.

Lo extraño es que luego hice varias pruebas y vi que a pesar de existir el archivo .o al descargar el programa al arduino este igualmente compilaba de nuevo el archivo .c y sobreescribia el .o de la carpeta temporal, entonces no entiendo por que no me lo sobreescribia la 1 vez, no se si por algun motivo estaria en solo lectura o algo le impedia sobreescribirlo.

Un saludo.

noter

Gracias por tu auto-respuesta.
Iba a haberte respondido esta tarde, porque suponía que se trataría de código precompilado, pero me volví loco intentando localizar dónde estaban esos datos temporales, y eso que no hace mucho estuve purgándolos, porque tuve similar problema con una librería que modifiqué.

Go Up