Error al ejecutar pero no en compilacion...

Hola...

Soy novato en esto de la programacion de la PSP, pero tengo mucha experiencia en programacion en varios lenguajes, entre ellos c/c++...

He instalado lo necesario para programar y compilar para la PSP, todo me va bien pero cuando he realizado el primer ejemplo y he creado el EBOOT.PBP lo meto en PSP/GAME/ejemplo% y al ejecutarlo me da el siguiente error 8002014C, me he dado cuenta que aunque cree el EBOOT.PBP da muchos warning al compilar, no es algo que sea grabe pero tampoco es bueno...

Creando Archivo... Espere...

psp-gcc -I. -IC:/PSPDev/psp/sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150 -c -o main.o main.c
In file included from main.c:5:
Astaroth.h: In function 'writetoflashone':
Astaroth.h:96: warning: implicit declaration of function 'open'
Astaroth.h: At top level:
Astaroth.h:237: warning: 'pspDebugScreenPrintf' is an unrecognized format function type
Astaroth.h: In function 'loadusb':
Astaroth.h:301: warning: implicit declaration of function 'pspSdkLoadStartModule'
Astaroth.h: At top level:
Astaroth.h:364: warning: 'pspDebugScreenPrintf' is an unrecognized format function type
Astaroth.h:489: warning: 'struct SceKernelLoadExecVSHParam' declared inside parameter list
Astaroth.h:489: warning: its scope is only this definition or declaration, which is probably not what you want
Astaroth.h:500: warning: 'struct SceKernelLoadExecVSHParam' declared inside parameter list
Astaroth.h:511: warning: 'struct SceKernelLoadExecVSHParam' declared inside parameter list
Astaroth.h:522: warning: 'struct SceKernelLoadExecVSHParam' declared inside parameter list
Astaroth.h:533: warning: 'struct SceKernelLoadExecVSHParam' declared inside parameter list
Astaroth.h:544: warning: 'struct SceKernelLoadExecVSHParam' declared inside parameter list
Astaroth.h:555: warning: 'struct SceKernelLoadExecVSHParam' declared inside parameter list
main.c: In function 'main':
main.c:50: warning: unused variable 'currentPad'
main.c:54: warning: control reaches end of non-void function
psp-gcc -I. -IC:/PSPDev/psp/sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150 -L.
-LC:/PSPDev/psp/sdk/lib main.o -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lc -lpspnet -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel -o MiPrograma.elf
psp-fixup-imports MiPrograma.elf
psp-strip MiPrograma.elf -o MiPrograma_strip.elf
pack-pbp EBOOT.PBP PARAM.SFO NULL \
NULL NULL NULL \
NULL MiPrograma_strip.elf NULL
rm -f MiPrograma_strip.elf

Terminado

Bueno buscando, buscando y buscando como loco pues he encontrado esto (creo que es de este mismo foro):
// Hola Mundo - mi primera Aplicacion para PSP

La siguiente parte del programa es donde decimos a recopilador qué archivos son principales (header) y cuáles se incluyen para utilizar en nuestro programa.
Básicamente #include copia el código del archivo que indiques en el header del programa. Esto permite que crees un programa simple, mientras que usas el código avanzado que ya esta escrito. El directorio include puede incluir cualquier archivo header que viniera con el compilador (o que agregues al compilador), o los archivos header específicos para el proyecto en el cual estes trabajando. La forma de indicar cuál de éstos quieres incluir se marca con < > para incluir un archivo o si utilizamos " " comillas para hacerlo. Menorque y mayorque incluyen un archivo del recopilador include el directorio, y las comillas incluyen un archivo del mismo directorio que el archivo, incluyendo ellas. Incluiremos dos archivos en nuestro programa. El primero es pspkernel.h. Este archivo deberá incluirse en cada programa que escribas para el PSP. Contiene todo lo específico del código para PSP. Tu programa no funcionará en la PSP si no incluyes este archivo. El segundo archivo que vamos a incluir es pspdebug.h. Este archivo contiene varias funciones útiles para eliminar errores de tus programas, pero incluye específicamente la función que vamos a utilizar para escribir el texto a la pantalla. Así pues, agregamos este código a nuestro programa.

#include < pspkernel.h > (Nota: esto > va junto, lo que no me deja ami aqui)

#include < pspdebug.h >

He prestado mucha atencion a este texto: "El primero es pspkernel.h. Este archivo deberá incluirse en cada programa que escribas para el PSP. Contiene todo lo específico del código para PSP. Tu programa no funcionará en la PSP si no incluyes este archivo.". En el ejemplo en cuestion no esta puesto ese include (#include < pspkernel.h >), aqui pongo el codigo completo del ejemplo:
// Mi primer Ejemplo para la PSP //

#include "Astaroth.h" // Incluimos la libreria Astaroth //

PSP_MODULE_INFO("Mi Programa", 0, 1, 0); // Definimos el nombre del modulo //
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER); // Definimos el MODO de la aplicacion en este caso es MODO USER //

void menu() // Definimos nuestro Menu (Esto es un ejemplo de como crear una funcion propia) //
{
     clearscreen(); // Limpia la Pantalla //
     printf(" Pulse X para Ocultar la Carpeta PHOTO\n"); // Imprime texto en Pantalla //
     printf(" Pulse O para Mostrar la Carpeta PHOTO\n\n"); // Imprime texto en Pantalla //
     printf(" Pulse Triangulo para Salir de la Aplicacion"); // Imprime texto en Pantalla //
     CtrlData pad; // Define el control del pad //
     while (1) // Comenzamos la definicion de botones //
     {
           CtrlBuffer(&pad, 1); // Lectura del Buffer de los botones definidos anteriormente //
           if (pad.Buttons & cross) // Definimos al pulsar el Boton Equis //
           {
                 clearscreen(); // Limpia la Pantalla //
                 printf("Ocultando Carpeta... Espere..."); // Imprime texto en Pantalla //
                 rename("ms0:/PSP/PHOTO","ms0:/PSP/TOPSECRET"); // Renombra el Archivo o Carpeta //
                 delay(1*1000*1000); // Retardo de Tiempo (1 Segundo) //
                 menu(); // Regresa al menu //
           }
           
           if (pad.Buttons & circle) // Definimos al pulsar el Boton Circulo //
           {
                 clearscreen(); // Limpia la Pantalla //
                 printf("Mostrando Carpeta... Espere..."); // Imprime texto en Pantalla //
                 rename("ms0:/PSP/TOPSECRET","ms0:/PSP/PHOTO" ); // Renombra el Archivo o Carpeta //
                 delay(1*1000*1000); // Retardo de Tiempo (1 Segundo) //
                 menu(); // Regresa al menu //
           }
           
           if (pad.Buttons & triangle) // Definimos al pulsar el Boton Triagulo //
           {
                 clearscreen(); // Limpia la Pantalla //
                 printf("Saliendo... Espere..."); // Imprime texto en Pantalla //
                 delay(2*1000*1000); // Retardo de Tiempo (2 Segundo) //
                 exit(); // Sale de la Aplicacion //
           }
     } // Siempre que vamos a definir un comando,se abre el "{" recordad que luego ahy que cerrarlos todos "}"
}

int main() // Definimos aqui el Programa //
{
    CtrlData currentPad, lastPad; // Define el control del pad //
    CtrlBuffer(&lastPad, 1); // Lectura del Buffer de los botones definidos anteriormente //
    screeninit(); // Inicia Pantalla para poder Escribir en ella //
    menu(); // Llama a nuestra Definicion (En este caso a nuestro menu) //
}

Habrer si alguien me puede ayudar porque estaba ilucionado cuando hice el primer programa para mi psp, pero ahora tengo montones de ideas pero nada para reflejarlos...

[b]EDITOR PARA DECIR:
He estado mirando el fichero Astaroth.h y tiene estos include:
#include "psppower.h"

#include <pspdisplay.h>
#include <pspgu.h>
#include <png.h>
#include <stdio.h>
#include "graphics.h"

#include <pspiofilemgr.h>
#include <pspdebug.h>
#include <pspusb.h>
#include <pspusbstor.h>
#include <pspctrl.h>
#include <pspumd.h>
#include <pspkernel.h>
#include <pspkerneltypes.h>
#include <psploadexec.h>
#include <pspthreadman.h>
#include <pspmodulemgr.h>
#include <string.h>

Por lo tanto el include del pspkernel.h si que esta. El fichero graphics.h que esta en la misma carpeta que el programa fuente no tiene ningun include dentro de el...


Salu2...[/b]
El eboot se mete en GAME150/CARPETA/EBOOT.PBP
No en GAME150/CARPETA%/EBOOT.PBP, Ya que no es 1.00
Hola...

MIL GRACIAS rubensvaldemo, lo he metido en PSP/GAME/ejemplo y ha funcionado....

Que alegria da ver ejecutandose algo echo por uno mismo en un dispositivo, ahora a estrujarme las ideas que tengo rondando mi azotea, asi que os dare mas de una vez la paliza con preguntas y problemas con vuestro permiso claro...

Salu2...
2 respuestas