Autor Tema: crear librerias  (Leído 3119 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado angel esahu

  • PIC10
  • *
  • Mensajes: 3
crear librerias
« en: 12 de Noviembre de 2007, 17:18:18 »
que tal gente alguien podria ayudarme necesito saber como crear librerias ya he buscado pero
 no he dado con el tema estoy programando en asembler un pic 16f pero cada que tengo un nuevo programa me veo an la necesidad de declarar los puertos segun los necesito me gustaris saber como pasar un    programa.asm  a    programa.lib  osea convertirlo en una libreria de antemano gracias

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: crear librerias
« Respuesta #1 en: 12 de Noviembre de 2007, 17:39:57 »
que tal gente alguien podria ayudarme necesito saber como crear librerias ya he buscado pero
 no he dado con el tema estoy programando en asembler un pic 16f pero cada que tengo un nuevo programa me veo an la necesidad de declarar los puertos segun los necesito me gustaris saber como pasar un    programa.asm  a    programa.lib  osea convertirlo en una libreria de antemano gracias

Has leído el manual del MPASM, MPLINK y MPLIB? Allí explica paso a paso como hacerlo.   Es importante que tengas nociones de programacion en relocatable mode.
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: crear librerias
« Respuesta #2 en: 13 de Noviembre de 2007, 13:29:44 »
habría que estudiar el verdadero significado de las librerias, puesto que la mayoría de las veces lo que se hace es redistribuir el programas en varios archivos .c, .h, .inc
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: crear librerias
« Respuesta #3 en: 13 de Noviembre de 2007, 23:24:28 »
Hola, lo que dice JCC40 es real, cada proyecto nuevo requiere seguramente incializaciones nuevas, no entendi muy bien lo que quiso decir PaliotroqueZ....
Saludos!

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: crear librerias
« Respuesta #4 en: 14 de Noviembre de 2007, 09:46:23 »
habría que estudiar el verdadero significado de las librerias, puesto que la mayoría de las veces lo que se hace es redistribuir el programas en varios archivos .c, .h, .inc

Las librerías se usan para funciones muy concretas y repetitivas, sino carecen de sentido.  Pero 'existen'.

Si usas C18, alguna vez habrás usado un

#include <stdlib.h>

Pues bien, al hacer eso no estas leyendo el .h en realidad estás leyendo un stdlib.lib que dentro tiene el stdlib.h y todos los .c que componen la librería

Esto que logra? agilizar el proceso de compilación, se hace cientos de veces más rápido.

Pero como dije antes solo para algo que lo uses siempre.



Hola, lo que dice JCC40 es real, cada proyecto nuevo requiere seguramente incializaciones nuevas, no entendi muy bien lo que quiso decir PaliotroqueZ....
Si, es cierto pero también si uno escribe el código de cierta forma podrá tener portabilidad.  De hecho las librerías de microchip tienen precondicionales en el código que permiten usar la misma librería para N diferentes tipos de pics.  Si uno ve el código fuente podrá ver varios #ifdef ... #endif 

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: crear librerias
« Respuesta #5 en: 14 de Noviembre de 2007, 14:56:04 »
Hola, permitanme disentir en algunos conceptos.
Citar
Las librerías se usan para funciones muy concretas y repetitivas, sino carecen de sentido.  Pero 'existen'.

Las librerias se utilizan para "modularizar" y tambien facilitar el proceso de linkeo.
La modularización consiste en agrupar funcionalidad, ejemplo manejo de strings, etc, facilitar el proceso de linkeo, consiste en vez de estar incluyendo muchisimos archivos solo incluir el archivo de libreria correspondiente.

Citar
Si usas C18, alguna vez habrás usado un

#include <stdlib.h>

Pues bien, al hacer eso no estas leyendo el .h en realidad estás leyendo un stdlib.lib que dentro tiene el stdlib.h y todos los .c que componen la librería

Esto que logra? agilizar el proceso de compilación, se hace cientos de veces más rápido.

Un compilador C realiza basicamente 2 tareas:
1. Preprocesado, donde todos los archivos H y C son pegados en un solo archivo, las macros y los define son reemplazados por sus respectivos valores.
2. Ensamblado de este archivo, donde el compilador va traduciendo cada estructura C en su correspondiente codigo ASM

Cuando incluis un archivo header, lo que haces es instruir al compilador en macros, constantes (defines) y lo mas importante, prototipo de funciones, esto es avisarle al compilador como son los parametros, cual es el valor que retorna, y mas importante cual es el convenio de llamada que usa la funcion en si. El compilador propiamente dicho nunca sabes nada archivos lib.
El linker es el que toma todos los archivos compilados ( objetcs ) y los linkea en una imagen final, el input del linker son estos objects y aca si los archivos de libreria correspondientes.
Saludos !










Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: crear librerias
« Respuesta #6 en: 14 de Noviembre de 2007, 15:16:46 »
Cuando incluis un archivo header, lo que haces es instruir al compilador en macros, constantes (defines) y lo mas importante, prototipo de funciones, esto es avisarle al compilador como son los parametros, cual es el valor que retorna, y mas importante cual es el convenio de llamada que usa la funcion en si. El compilador propiamente dicho nunca sabes nada archivos lib.
El linker es el que toma todos los archivos compilados ( objetcs ) y los linkea en una imagen final, el input del linker son estos objects y aca si los archivos de libreria correspondientes.

RICHI777 gracias por el aporte, de todas formas si revisas el contexto mi idea no era explicarlo con la profundidad de un manual sino simplemente explicar en palabras simples la diferencia de usar librerias (.lib) a usar el código fuente completo.   

En el .lib están los headers y los .o, todo junto.  Por eso el proceso es rápido y además recuerda la ubicación de donde estaba el código fuente de forma de que luego cuando simulas puedes ir viendo el código fuente.

Si uno hace un cambio en ese código fuente no cambiará nada en el funcionamiento del software porque no se reconstruyó la librería .lib

Un ejemplo empírico es usar la libreria XLCD con el pinout por default y compilar un proyecto.  Luego copiar los fuentes al path local del proyecto y compilarlo ahi y verificar la diferencia en velocidad.

 :) :)

Uno agrupa funcionalidades en un .lib pero cuando se trabaja con periféricos, con interrupciones y demases suele ser poco práctico usarlas ya que uno requiere hacer pequeñas modificaciones para no sacrificar perfomance o lo que sea.  La portabilidad del código suele ir de la mano de una pérdida de perfomance.  Cuando la perfomance es importante uno debe tocar los archivos uno mismo y allí es donde la portabilidad no lo es tal.

Las funciones que uno agrupe para un código pueden no reutilizarse 'exactamente igual' para otro y de allí su excaso uso.




- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado angel esahu

  • PIC10
  • *
  • Mensajes: 3
Re: crear librerias
« Respuesta #7 en: 15 de Noviembre de 2007, 13:21:58 »
    Gracias a todos por la ayuda,  !  Y vaya que son intresantes estos temas !  estoy un poco confundido con tantos terminos
    pues soy nuevo en esto de la programacion ya que solo he realizado programas sencillos pero lo que no puedo negar
    es que me han dado material suficiente como para ponerme estudiar, leer,investigar y demas; nuevamente Gracias a todos
    por lo pronto ya se donde consultar sobre el tema y que es lo que tengo que leer solo espero que sigan ayudando con las  dudas que voy teniendo  :)  :-)

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: crear librerias
« Respuesta #8 en: 17 de Noviembre de 2007, 13:29:50 »
    Gracias a todos por la ayuda,  !  Y vaya que son intresantes estos temas !  estoy un poco confundido con tantos terminos
    pues soy nuevo en esto de la programacion ya que solo he realizado programas sencillos pero lo que no puedo negar
    es que me han dado material suficiente como para ponerme estudiar, leer,investigar y demas; nuevamente Gracias a todos
    por lo pronto ya se donde consultar sobre el tema y que es lo que tengo que leer solo espero que sigan ayudando con las  dudas que voy teniendo  :)  :-)

Me parece excelente, y ojalá nunca pierdas la capacidad de asombro y de interés por cosas nuevas :)
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)