Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
EMS Flasher GUI
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje EMS Flasher GUI 
 
Hola amigos, estoy creando un front-end para esta aplicación.
http://lacklustre.net/redmine/projects/ems-flash/wiki

que intenta crear un controlador para linux para este dispositivo
http://store.kitsch-bent.com/product/usb-64m-smart-card

Estoy tratando de crear una biblioteca dinámica para usar en gambas
con funciones EXTERN

pero no logro compilar :S

aca el código.
Spoiler: [ Mostrar ]


Cualquier ayuda será bienvenida.
Gracias y Saludos
 



 
clsource - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: EMS Flasher GUI 
 
No tengo mucha idea de C, pero si no pones los comandos que estás usando para compilar ni la salida de error que te da y sin saber si te falta alguna otra librería, será muy difícil poder ayudarte...

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: EMS Flasher GUI 
 
Hola, gracias por responder.

Básicamente sigo los pasos de ésta guía
http://www.gambas-es.org/viewtopic.php?f=4&t=1073

Procedimiento
1.- Bajo el código de EMS Flasher http://lacklustre.net/redmine/attac...lasher-0.03.tgz
2.- Copio los archivos que cree libems.c libems.h al directorio donde esta ems.h
3.- ejecuto
Código: [Descargar] [Ocultar]
  1. gcc -c -fPIC libems.c  

4.- ejecuto
Código: [Descargar] [Ocultar]
  1. gcc -c fPIC ems.c -lusb 


y sale este error
Citar:
ems.c:11:20: error fatal: libusb.h: No existe el archivo o el directorio
compilación terminada.

 



 
clsource - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: EMS Flasher GUI 
 
Bueno, repito que yo no se C, pero leyendo de aquí y de allá he conseguido hacerlo:

Primeramente nos aseguramos de tener el paquete de desarrollo de la librería libusb, instalando lo siguiente:

sudo apt-get install libusb-1.0-0-dev


Luego dentro de la carpeta con los ficheros de C ejecutamos:

gcc -c -fPIC libems.c


Obtenemos un fichero objeto libems.o

Por último creamos la librería compartida a partir del fichero objeto:

gcc -shared -W1,-soname,libems.so.1 -o libems.so.1.0  libems.o


Obtenemos libems.so.1.0 -Además deberíamos crear los enlaces simbólicos

ln -s libems.so.1.0 libems.so.1
ln -s libems.so.1 libems.so


De esta forma tendremos libems.so apuntando a la librería correcta y lista para usar desde gambas.

Todo esto es un suponer, porque no he probado su funcionamiento ni sé si hay algún error en tu código C.


Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: EMS Flasher GUI 
 
Bueno, me he entretenido en probar si funciona en gambas 3 y parece que sí, aunque me casca al final:

Creo un módulo y lo marco como clase de inicio.


' gambas module file

Library "/home/jesus/Desktop/libems/libems" 'la ruta hacia la librería (sin la extensión)


Extern libems_version() As String  'Declaro una de las funciones exportadas con su tipo de retorno

Public Sub Main()

  Print libems_version()

End



Cuando ejecuto la aplicación me imprime correctamente la versión de la librería, pero me da un error de segmentación (sig 11). No he podido de momento depurar las causas.

Edito:


El fallo mío está en que la función libems_version() no devuelve ningún valor, por lo que no puedo imprimirlo en gambas.

Simplemente ejecutamos la función y se imprimirá por stdout, es decir, por la salida estándar.

' gambas module file

Library "/home/jesus/Desktop/libems/libems" 'la ruta hacia la librería (sin la extensión)


Extern libems_version()  'Declaro una de las funciones exportadas (no retorna ningún valor en este caso)

Public Sub Main()

    libems_version()

End


La salida es: EMS-flasher-lib 0.02


Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: EMS Flasher GUI 
 
OMG.

muchas gracias,
ahora podré continuar con la travesía.


Cree un módulo llamado emsController
aca el código de como va hasta ahora

' gambas module file

Library "/home/camilo/Documentos/Programación/gameboy64m/libems"
Extern libems_version()
Extern libems_read_sram(file As String) As Integer
Extern libems_read_rom(bank As Integer, file As String) As Integer
Extern libems_write_sram(file As String) As Integer
Extern libems_write_rom(bank As Integer, file As String) As Integer
Extern libems_rom_size(bank As Integer) As Integer
Extern libems_hardware(bank As Integer) As Integer
Extern libems_checksum(bank As Integer) As Integer

Public Sub Version()
  libems_version()
End


Lo que me gustaría saber es.

¿Cómo puedo usar siempre la ruta del ejecutable para cargar la biblioteca libems?
¿Cómo hago para obtener el stdout y guardarlo en una variable?

Muchas gracias!

PD: Adjunto la biblioteca precompilada para que puedan hacer pruebas fácilmente.

Saludos
 



 
última edición por clsource el Miercoles, 08 Febrero 2012, 18:16; editado 1 vez 
clsource - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario