Makefile
TARGET = helloworld
OBJS = helloworld.o
CFLAGS = - O2 - G0 - Wall
CXXFLAGS = $(CFLAGS) - fno - exceptions - fno - rtti
ASFLAGS = $(CFLAGS)
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Hello World
PSPSDK = $(shell psp - config -- pspsdk - path)
include $(PSPSDK) / lib / build.mak
BUILD_PRX = 1
PSP_FW_VERSION = 371
HelloWorld.c
代码
/* ************************
** hellowolrd
************************ */
#include < pspkernel.h >
#include < pspdebug.h >
PSP_MODULE_INFO( " Hello World " , 0 , 1 , 1 );
#define printf pspDebugScreenPrintf
/* Exit callback */
int exit_callback( int arg1, int arg2, void * common) {
sceKernelExitGame();
return 0 ;
}
/* Callback thread */
int CallbackThread(SceSize args, void * argp) {
int cbid;
// Create callback
cbid = sceKernelCreateCallback( " Exit Callback " , exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);
// Sleep thread but service any callbacks as necessary.
sceKernelSleepThreadCB();
return 0 ;
}
/* Sets up the callback thread and returns its thread id */
int SetupCallbacks() {
int thid = 0 ;
// Create a thread.
thid = sceKernelCreateThread( " update_thread " , CallbackThread, 0x11 , 0xFA0 , 0 , 0 );
if (thid >= 0 ) {
// Start a created thread.
sceKernelStartThread(thid, 0 , 0 );
}
return thid;
}
int main( int argc, char ** argv)
{
// Initialise the debug screen.
pspDebugScreenInit();
// setup callback;
SetupCallbacks();
printf( " Hello World " );
// Sleep thread
sceKernelSleepThread();
return 0 ;
}
放在同一目录下执行 make 命令即可生成 EBOOT.PBP
放在PSP GAME下即可执行。