Autor Tema: Librerias usando MPLIB  (Leído 2600 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado PICPLC

  • PIC10
  • *
  • Mensajes: 8
Librerias usando MPLIB
« 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

Desconectado Almejandro

  • PIC10
  • *
  • Mensajes: 2
Re: Librerias usando MPLIB
« Respuesta #1 en: 11 de Octubre de 2010, 00:35:02 »
 :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

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: Librerias usando MPLIB
« Respuesta #2 en: 11 de Octubre de 2010, 01:47:53 »
normalmente se copia la libreria en la misma carpeta del proyecto, o en las opciones seguro que te deja redireccionar la carpeta de busqueda

Desconectado PICPLC

  • PIC10
  • *
  • Mensajes: 8
Re: Librerias usando MPLIB
« Respuesta #3 en: 11 de Octubre de 2010, 09:00:02 »
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...

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: Librerias usando MPLIB
« Respuesta #4 en: 11 de Octubre de 2010, 13:47:24 »
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.


Desconectado PICPLC

  • PIC10
  • *
  • Mensajes: 8
Re: Librerias usando MPLIB
« Respuesta #5 en: 11 de Octubre de 2010, 17:22:41 »
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.

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: Librerias usando MPLIB
« Respuesta #6 en: 12 de Octubre de 2010, 02:11:40 »
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

Desconectado PICPLC

  • PIC10
  • *
  • Mensajes: 8
Re: Librerias usando MPLIB
« Respuesta #7 en: 12 de Octubre de 2010, 14:00:36 »
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.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Librerias usando MPLIB
« Respuesta #8 en: 12 de Octubre de 2010, 14:28:26 »
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!
No contesto mensajes privados, las consultas en el foro

Desconectado PICPLC

  • PIC10
  • *
  • Mensajes: 8
Re: Librerias usando MPLIB
« Respuesta #9 en: 14 de Octubre de 2010, 17:20:16 »
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).

Desconectado PICPLC

  • PIC10
  • *
  • Mensajes: 8
Re: Librerias usando MPLIB
« Respuesta #10 en: 14 de Octubre de 2010, 17:24:36 »
Me aseguro que en la ventana de proyecto agrego la libreria .lib, creada con el mplib

Desconectado PICPLC

  • PIC10
  • *
  • Mensajes: 8
Re: Librerias usando MPLIB
« Respuesta #11 en: 16 de Octubre de 2010, 17:32:02 »
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.