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下即可执行。