TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: PICPLC en 10 de Octubre de 2010, 14:24:11
-
Ante todo un saludo coordial, miren he trabajado con librerias en asembler pero simplemente creando una inclusion de un archivo con la directiva INCLUDE. Necesito
Crear ahora optimamente las librerias enlazando varias de estas con MPLIB. Ya he leido sobre esto, pero no se como hacerlo, les agradezco su ayuda. Comentarios,
Manuales y cualquier aporte. Gracias
-
:5]
Bueno, yo tengo mas o menos la misma pregunta, mas que todo por el hecho que yo tengo mis librerias en una carpeta personal, y que para incluirlas en el proyecto, tengo que apuntar usando toda la direccion, me gustaria poder darle a mplab otra carpeta en la que tambien busque por defecto las librerias, y de esa forma no tengo que estar copiando y pegando todo la direccion, que ademas se ve feo. Me interesa lo que otros puedan ayudarte, yo encontre este documento que supuestamente viene de mplib, pero no logre entender como usarlo. Esta en ingles.
http://www.google.com/url?sa=t&source=web&cd=3&ved=0CBsQFjAC&url=http%3A%2F%2Fgputils.sourceforge.net%2F33014g.pdf&rct=j&q=mplib&ei=f4KyTLO_FcGC8gaRh_ShCQ&usg=AFQjCNFgyftk9ASbM7QwJsS95WuN2mRkAg&sig2=KIV-ZzzrUC6IfxDoPlWcKQ&cad=rja
-
normalmente se copia la libreria en la misma carpeta del proyecto, o en las opciones seguro que te deja redireccionar la carpeta de busqueda
-
Saludos. Yo he trabajado las librerias de esa forma teniendolas en una carpeta e incluir las que voy a usar. Pero de esta manera el codigo no esta optimizado porq estas colocando en la memoria del micro toda la informacion que esta en dicho archivo.
Ahora con el MPLIB es diferente porq segun lo poco que he encontrado de esto, se puede enlazar varios archivos asm y crear de esta manera un .lib, y al utilizar este solo se consumira de memoria la parte de las rutinas que se utilicen de dicho .lib.
Voy a revisar el archivo que enviastes almjandro y gracias a ambos por sus respuestas.
Por favor sigan aportando todos. Les agradezco...
-
mas menos si utilizas la directiva MACRO-ENDM puedes llamar desde el programa principal solo esas partes de codigo que necesitas, por ej una libreria para mates que tiene divisiones, multiplicaciones, sumas de varios bytes.... y solo vamos a usar la de dividir
macro dividir
division
cacahuete??
endm
include <<lib-mates.inc>>
division ; cada vez que escribas "division" te pondra en la memoria del micro lo que este en la macro, y no toda la libreria.
-
alogic.on, correcto estoy claro con lo de los macros y gracias por tu respuesta, pero lo del mplib es otra cosa porq una macro cada vez que la invoques estas colocando en esa parte del programa ese codigo con que hicistes la macro.
-
claro eso es lo que hace, lo uso para colocar las rutinas en diferentes partes de la memoria, aunque esten en el mismo archivo, ademas solo las que se necesiten. y las utilizo desde el programa principal con goto u call
-
Correcto alogic.on yo entiendo lo que especificas, pero a lo que consiga lo del mplib paso un ejemplo por aqua asi comparamos los 2 metodos.
-
Creo que todo lo que necesitas está en la carpeta de Microchip. Allí tienes el archivo de ayuda hlpMPLINKLinker donde indica como crear archivos .lib. Se hace por medio de linea de comandos teniendo los archivos .o obtenidos de compilar los archivos fuentes en asm.
Ahora en el proyecto, seguramente tienes que indicarle la carpeta donde tienes las librerías para que sepa donde están y utilizarlas adecuadamente.
Saludos!
-
Muchas gracias suky por tu respuesta sabes he intentado crear la libreria .lib como comentas atravez de los .o pero me sale un error en el programa que estoy utilizando como codigo principal al llamar a una subrutina que esta en uno de los .o con que cree la libreria. He incluso me estoy asegurando que en la ventana de proyecto agregar dicha libreria (.o).
-
Me aseguro que en la ventana de proyecto agrego la libreria .lib, creada con el mplib
-
Ya tengo esto casi listo sres. Cree 2 project cada uno con diferentes subrutinas los llame nand y biblio2. Y los compile como codigo relocalizable. Luego desde el msdos cree la libreria con MPLIB.
Luego cree un programa y su project donde invoco a las subrutinas de cada archivo y todo funciona bien. Pero cuando llamo en este programa una subrutina de cada archivo en el mismo codigo me da un error
Al compilar. Alguien sabra algo de esto por favor.