Duda sobre una funcion.

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, dark_sasuke, m0skit0, LnD, ka69, zacky06

Avatar de Usuario
Darthvader38
Enteradillo
Enteradillo
Mensajes: 67
Registrado: 24 Ene 2010, 06:39

Duda sobre una funcion.

Mensaje por Darthvader38 »

Estoy aprendiendo a usar la wifi o al menos eso hare cuando resuelva este problema que no se a que se refiere o que me falta por hacer.....la cuestion es que uso esta funcion para iniciar mi codigo que usa la wifi...pero la variable "valor" toma este valor de retorno de la funcion a la que se la asigne obviamente y es ese el error que no se como solucionar...."0x8002013a"
que corrsponde a--->

SCE_KERNEL_ERROR_LIBRARY_NOT_YET_LINKED


/////////////////////////////////////////////el codigo es:


Código: Seleccionar todo

#include <psptypes.h>
#include <pspkernel.h>
#include <pspsdk.h>
#include <psppower.h>
#include <pspctrl.h>
#include <pspthreadman.h>
#include <pspmodulemgr.h>
#include <pspiofilemgr.h>
#include <stdio.h>
#include <pspwlan.h>
#include <pspnet.h>
#include <pspnet_inet.h>
#include <pspnet_apctl.h>
#include <arpa/inet.h>
#include <pspnet_adhocctl.h>
#include <psputility.h>
#include <psputility_netparam.h>
#include <pspnet_adhoc.h>

//////////#DEFINE///////////
#define screeninit pspDebugScreenInit
#define printxy pspDebugScreenSetXY
#define printf pspDebugScreenPrintf
#define screenclear pspDebugScreenClear
#define wait sceKernelDelayThread
#define printfcolor pspDebugScreenSetTextColor
#define remove_file sceIoRemove
#define waitcb sceKernelDelayThreadCB




PSP_MODULE_INFO("Thread_transp",0x1000, 1, 0);
PSP_MAIN_THREAD_ATTR(0);
//PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER);


////////////////MAIN////////////////////

int main_thread(SceSize argc, void* argp) // Thread/Hilo principal del plugin
{
int err;
struct productStruct product;
char mimac[6];
screeninit();



err =sceUtilityLoadNetModule(PSP_NET_MODULE_COMMON);printf("sceUtilityLoadNetModule(PSP_NET_MODULE_COMMON) %i\n",err);
err =sceUtilityLoadNetModule(PSP_NET_MODULE_ADHOC);printf("sceUtilityLoadNetModule(PSP_NET_MODULE_ADHOC) %i\n",err);
err =sceUtilityLoadNetModule(PSP_NET_MODULE_INET);printf("sceUtilityLoadNetModule(PSP_NET_MODULE_INET) %i\n",err);
err = sceNetInit(0x20000, 0x20, 0x1000, 0x20, 0x1000);printf("sceNetInit %p\n",err);
err = sceNetAdhocInit();printf("sceNetAdhocInit %i\n",err);
err = sceNetAdhocctlInit(0x2000, 0x20, &product);printf("sceNetAdhocctlInit %i\n",err);
err = sceNetAdhocctlConnect(0);printf("sceNetAdhocctlConnect %i\n",err);
err = sceWlanGetEtherAddr(mimac);printf("mimac: %02X:%02X:%02X:%02X:%02X:%02X\n",mimac[3],mimac[4],mimac[5],mimac[0],mimac[1],mimac[2]);
int pdpSd= sceNetAdhocPdpCreate(mimac, 0x309 , 0x400, 0);printf ("sceNetAdhocPdpCreate= %i\n",pdpSd);

return 0;
}




int module_start(SceSize args, void *argp) // En ésta parte colocaremos los threads/hilos que se ejecutarán, en éste caso solo uno.
{
   int thid = sceKernelCreateThread("Transporter", main_thread, 0x10, 0x1000, 0, NULL);
   if(thid >= 0) sceKernelStartThread(thid, args, argp);
   
   return 0; // Devolvemos 0.
}


///////////////////////////////////////////////////
//////////////MAKEFILE//////////////////////////

Código: Seleccionar todo

TARGET = thread
OBJS = main.o  ../../../OBJ/sceSysreg_driver.o ../../../OBJ/sceDisplay_driver.o ../../../OBJ/sceCtrl_driver.o  ../../../OBJ/libpspnet.a ../../../OBJ/libpspnet_adhoc.a ../../../OBJ/libpspnet_adhocctl.a ../../../OBJ/libpspnet_adhocmatching.a ../../../OBJ/libpspnet_apctl.a ../../../OBJ/libpspnet_inet.a ../../../OBJ/libpspnet_resolver.a ../../../OBJ/sceNet.o ../../../OBJ/sceNet_lib.o ../../../OBJ/sceNetAdhoc.o ../../../OBJ/sceNetAdhocctl.o ../../../OBJ/sceNetAdhocMatching.o  ../../../OBJ/sceNetInet.o ../../../OBJ/sceNetResolver.o ../../../OBJ/sceSsl.o
BUILD_PRX = 1

CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

LIBS = -lpspdisplay_driver -lpspkernel -lpsppower_driver
LIBS += -lpspwlan -lpsppower

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build_prx.mak



////Nota: Por mi falta de experiencia en los makefile añadi una buena cantidad de ficheros OBS que tengo localizados con intencion de que talvez esto arreglara el error que me sucede pero obviamente no funciono... :( lo que da la ignorancia :(
////////////////////////////////////////////////////
//////////////////////////
que me falta por hacer?
algo talvez en el makefile?
una libreria o algo? que falta!?!?!
Dato adicional: Yo uso el PSPDEV del Kit de desarrollo para torpes V-3. en una (PSP SLIM version: 5.50 GEN D3)

Ayuda! :o
Saludos!!!Espero respuestas. :|

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Duda sobre una funcion.

Mensaje por m0skit0 »

A ver, para poner código, usa las etiquetas de code, que para eso están ;) Además, ¿por qué pones los printf en la misma línea? No hay quien demonios se entere :lol:

SCE_KERNEL_ERROR_LIBRARY_NOT_YET_LINKED indica que la librería no está disponible en tiempo de ejecución. Esto es debido a que los PRXs que la importan no están cargados. La verdad a mí nunca me ha dado este error, pero si especificases en qué línea te devuelve esto, pues mejor.

Y otra cosa: te aconsejo que uses el module_start() del SDK y no pongas el tuyo a menos que lo necesites así sí o sí.

Además, en el Makefile veo que estás generando un PRX, pero no un EBOOT. ¿Cómo lo ejecutas después?

Saludos
Imagen

Avatar de Usuario
Darthvader38
Enteradillo
Enteradillo
Mensajes: 67
Registrado: 24 Ene 2010, 06:39

Re: Duda sobre una funcion.

Mensaje por Darthvader38 »

M0skit0, compilo en prx porque como ya dije antes en otros foros uso el IRSHELL :| , PSPLINK no he podido tener la fortuna de obtenerlo....ya sea

por el sistema que no he instalado Linux...porque no se como rayos compilarlo.... :( en fin cosas......oye pero bueno ejecuto el codigo que

compilo mediante el IRSHELL que es lo que tengo. :|
Ah! el error es en la funcion...

Codigo:
err = sceNetInit(0x20000, 0x20, 0x1000, 0x20, 0x1000);

ERROR--> "0x8002013a"

podrias ayudarme?? que me dices aun no resuelvo ni googleando....y si que he buscado...soy bastante persistente :x .
Nota: Como pongo la etiqueta de codigo que nombraste?! puede parecer ignorante la pregunta pero si me lo dices lo
capto y no causare mas molestias en este foro sobre ese aspecto de etiqueta.

Saludos M0skit0!!! :oki:

soulless
Desarrollador
Desarrollador
Mensajes: 64
Registrado: 23 Oct 2009, 07:56

Re: Duda sobre una funcion.

Mensaje por soulless »

No se si estas enterado que en los kernels 3.XX los homebrews (a menos que sean prx) deben estar en modo usuario???

Como usas el IRSHELL para probar, no se si tengas problema o no con eso del modo (kernel o usuario).

En fin, aquí te dejo el código que utilizo para cargar los módulos necesarios (siempre en modo usuario):

Aquí están las librerías (claro que no necesitaras todas las que pongo aquí, pero es que es tarde ya y comenzar a sacarlas como que no xDDD)

Código: Seleccionar todo

#include <pspkernel.h>
#include <pspsdk.h>
#include <pspdebug.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <psputility.h>
#include <pspnet.h>
#include <pspnet_inet.h>
#include <pspnet_apctl.h>
#include <pspnet_resolver.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/select.h>
#include <errno.h>


Y estas las mágicas funciones que cargan los módulos (pertenecen al conjunto de psputility):

Código: Seleccionar todo

sceUtilityLoadNetModule(1); 
sceUtilityLoadNetModule(3);


Por ultimo iniciamos:

Código: Seleccionar todo

pspSdkInetInit();


Con eso debería bastarte, para tener el wifi listo para trabajar con el smiles-plying_psp
"Quiero irme cuando quiero. Es de mal gusto prolongar artificialmente la vida. He hecho mi parte, es hora de irse. Yo lo haré con elegancia." -Albert Einstein.-

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Duda sobre una funcion.

Mensaje por m0skit0 »

Bueno, ya que soulless te ha aclarado las dudas, te aclaro la que te falta: seleccionas el código y le das a la etiqueta que pone "Code", que está arriba cuando vas a postear, entre "Quote" y "List". Se usa igual que las demás.

¡Un saludo!
Imagen

Avatar de Usuario
Darthvader38
Enteradillo
Enteradillo
Mensajes: 67
Registrado: 24 Ene 2010, 06:39

Re: Duda sobre una funcion.

Mensaje por Darthvader38 »

Gracias a Soulles y M0skit0....pero apostaba a que no seria tan simple....perdonenme el pesimismo...
veran....use de modelo el codigo que colgo soulles para empezar a husmear y como siempre me dio este problema que
señalo que se esta haciendo tan comun como que todos los dias tengo que respirar,caminar y dormir..... :x
intente compilar y aqui va el mensaje del compilador que por cierto añadire que uso el PSPDEV del Kit de Desarrollo para torpes v 3.0.

Mensaje:
(algo asi como..)

error: in function pspSdkInetInit-->
undefined reference to 'sceNetInit'

error: in function pspSdkInetInit-->
undefined reference to 'sceNetInetInit'

error: in function pspSdkInetInit-->
undefined reference to 'sceNetResolverInit'

error: in function pspSdkInetInit-->
undefined reference to 'sceNetApctlInit'

Que demonios significa este error!!?? me pasa siempre cada vez que exploro en cosas nuevas con respecto a codigo que intento compilar...es como si fuera comun.... :x
Y COMO puedo resolver esto!!?!!?!?!?!?!!?! :?:
Dejame ver (hoy soy pesimista) seguro sugeriran un compilador de esos que hara que tenga que intalar Linux...o
un SDK que tengo que compilar y que tambien me dara error por mi desconocimiento....en fin una cadena de cosas que eventualmente me dejara tras la "valla" en el tema de usar la wifi de PSP.... :|
Les dejo esta custion M0skit0 y Soulless...
Hola a la scene.....

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Duda sobre una funcion.

Mensaje por m0skit0 »

Darthvader38 escribió:undefined reference to 'sceNetInit'

Te falta incluir el fichero .h que define la referencia en cuestión (ya sea función, variable, macro, etc...). Ten en cuenta que el compilador no sabe qué es sceNetInit si no le dices qué es ;)
Imagen

Avatar de Usuario
Darthvader38
Enteradillo
Enteradillo
Mensajes: 67
Registrado: 24 Ene 2010, 06:39

Re: Duda sobre una funcion.

Mensaje por Darthvader38 »

Perdon pero a que ".h" te refieres? es el codigo de soulless...se supone que el tenga ya incluido
todos los ".h" necesarios....o te refieres a algo en el makefile que me falta por incluir?
Saludos!M0skit0!

-- Doble Post --

A ver si "explico" mejor la "pregunta" que tengo.....

el codigo que estoy usando y donde me salta el error al compilar es el que
Soulless posteo un poco mas arriba....que puede faltar ahi?! :?:
Y en caso de que sea un fichero podrian colgarlo? o deberia poder encontrarlo dentro
del PSPDEV?es que no se aun a que ".h" te refieres cuando !repito! me parecia que el codigo de Soulless no le faltaba nada....

soulless
Desarrollador
Desarrollador
Mensajes: 64
Registrado: 23 Oct 2009, 07:56

Re: Duda sobre una funcion.

Mensaje por soulless »

Sin duda alguna es lo que m0skit0 dice falta algun .h, en este caso la función pspSdkInetInit está en pspsdk.h y la estas incluyendo, por lo que el problema se resume, deduciendo, que lo que tienes mal es el compilador, instala el pspminw (eso si no quieres instalar linux, que es la mejor opción), el paquete que preparó marce (hace muchísimo tiempo de eso) no es del todo fiable.

Ya te digo que los errores esos tiene que ser obra de la instalación que tienes, porque el mismo main.c de donde saque esas librerias lo compilo desde Ubuntu y desde Windows (con el minpspw) sin problema alguno.

Si quieres, puedes postear el código completo que te da ese error, así lo compilo y salimos de dudas acerca del paquete que preparó marce.
"Quiero irme cuando quiero. Es de mal gusto prolongar artificialmente la vida. He hecho mi parte, es hora de irse. Yo lo haré con elegancia." -Albert Einstein.-

Avatar de Usuario
Darthvader38
Enteradillo
Enteradillo
Mensajes: 67
Registrado: 24 Ene 2010, 06:39

Re: Duda sobre una funcion.

Mensaje por Darthvader38 »

Ahora tambien estoy usando el MinpspW 0.95 gracias a ti y sigue dandome el error asi que no se si se trata del compilador...ah!
el codigo que me pides para compilarlo no es mas que una copia extacta de lo que posteaste..pues iba comenzar a trabajar y husmear ....copie tu codigo primeramente para ver si funcionaba... lo coloque del main....puse los includes arriba y al compilar de nuevo el mismo error dentro de la funcion "pspSdkInetInit"
con los mensaje de:

in function pspSdkInetInit: error
undefined reference to 'sceNetInit'

in function pspSdkInetInit: error
undefined reference to 'sceNetInetInit'

in function pspSdkInetInit: error
undefined reference to 'sceNetResolverInit'

in function pspSdkInetInit: error
undefined reference to 'sceNetApctlInit'

ya no se ni que creer.... :cry:


Sollless porque no le hechas un vistaso cuando tengas un time free?

Saludos!!!
Haber cuando podre usar la wifi.... :|

-- Doble Post --

He estado a punto de editar el tema y ponerle "pspSdkInetInit Invencible" haber si atraigo a toda la scene y a DAX de paso :lol: ...pero temia que
pudiera confundir a los que ya estamos debatiendo en este tema ya que no encontrarian "Duda sobre una Funcion".
Nada! solo saludos y un poco de humor barato!!!!

Responder