经过一早上的折腾,我的Hello PSP!终于出现了!
第一次在linux下写psp代码,昨天虽然编译得差不多了,但是要写还是有点无从下手的感觉。经过一晚的沉淀,今天早上开工写,当然首先还是去找下教程吧,功夫不负有心人,果然找到一篇很适合像我这样菜的人。
http://blog.csdn.net/lee576/article/details/2033754
上面这位大哥真是好人,手把手啊!我照着上面的步骤一步步弄到最后。
make
报错!找找看。
晕,居然是在Makefile中PSPSDK=$(shell psp-config -- pspsdk-path)"--"和"pspsdk-path"之间多了一个空格!
果然C程序不好写,修复,继续make
接下来的错误就让我有点……
在经过多次反复查看后,发现代码已经跟上面大哥写得一模一样了,可是为什么不行呢!?
再上网搜,这回让我发现另一个地址:http://www.linuxgraphics.cn/psp/dev_guide.html。
上面的内容跟第一位大哥写得差不多,不过还是让我发现了一点不一样
第一位大哥代码是这么写的:
SP_MODULE_INFO("Hello World", 0, 1, 1)
新发现的是这么写的:
PSP_MODULE_INFO("Hello World", 0, 1, 1);
编译报错是指向main.c中SP_MODULE_INFO("Hello World", 0, 1, 1);的行,难道是这个问题,修改为PSP_MODULE_INFO("Hello World", 0, 1, 1);试一试。
修改后,make
成功了!!
接下来就要把生成的EBOOT.PBP文件拷到我的PSP中看看行不行。兴奋的接上PSP把EBOOT.PBP拷进去,然后从PSP中找它,结果……,PSP里什么都没有,怎么回事!
继续去找老师,经过无数前辈的点拨,原来要把“皮”一起拷过去。好吧,把之前新建的那个HelloPSP整个拷过去(连源文件的一起了,省事!)。
这回进入PSP,果然在里面发现一个可执行的东东。果断执行,熟悉的启动画面进入眼前,慢慢的浮现出一个黑底的屏幕,屏幕上赫然显示白色字体的“Hello PSP!”。成功了!!看着那黑底白字,我的眼睛湿润了!
哎,虽然以前在linux下写过点C代码,但是那是屈指可数,而且都是抄书。今天跟着无数前辈的指点,copy他们的代码,总算是不求甚解的把hello psp弄出来了。万事开头难既然已经成功开了头,路会越走越顺的,接下来我可以好好学习下了!
另:昨天的009-psplinkusb.sh没有编译成功,看来国外的兄弟没有骗我,至少现在看起来,没有影响我的Hello PSP!
下面贴出我的代码吧,差不多都是copy前辈的,但是绝对是可以的,我的是PSP 3006 6.20的系统。
main.c
//hello PSP - My First App for the PSP
/*
This program war created by(super) on (Date Here)
It is a simple "Hello World" APplication.
*/
#include <pspkernel.h>
#include <pspdebug.h>
PSP_MODULE_INFO("Hello PSP", 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;
cbid=sceKernelCreateCallback("Exit Callback",exit_callback,NULL);
sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();
return 0;
}
/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void)
{
int thid=0;
thid=sceKernelCreateThread("update_thread",CallbackThread,0x11,0xFA0,0,0);
if(thid>=0)
{
sceKernelStartThread(thid,0,0);
}
return thid;
}
int main()
{
pspDebugScreenInit();
SetupCallbacks();
printf("Hello PSP!");
sceKernelSleepThread();
return 0;
}
Makefile
TARGET=hello
OBJS=main.o
CFLAGS = -O2 -G0 -Wall
CXXFLAGS=$(CFLAGS)-fno-exceptions-fno-rtti
ASFLAGS=$(CFLAGS)
EXTRA_TARGETS=EBOOT.PBP
PSP_EBOOT_TITLE=Hello PSP
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
分享到:
相关推荐
【PSP编程开发环境的建立】涉及的主要知识点是PSP(PlayStation Portable)软件的开发流程,这包括在Visual Studio 2008(VS2008)和Eclipse集成开发环境中设置PSP的开发环境,以及编写和编译PSP程序的基本步骤。...
同年4月,由开发者Nem发布的“Hello World”程序成为首款PSP自制软件,标志着PSP Homebrew时代的开端。 随后,在2005年6月,PSP-DEV团队发现了一种名为kxploit的方法,使自制软件能够在1.5固件版本上运行,这极大地...
Chapter 18: Programming the PSP: Hello World Chapter 19: Running Homebrew Applications .Chapter 20: Installing and Running Homebrew on PSPs with Firmware Version 200 Chapter 21: Installing and ...
### 汇编语言返回DOS系统方法:程序段前缀(PSP)与返回机制 #### 一、程序段前缀(PSP)介绍 在早期的个人计算机操作系统中,特别是MS-DOS环境下,程序段前缀(Program Segment Prefix, PSP)扮演着极其重要的角色。PSP...
即将来临的支持: EUR支持Carol Vorderman's Sudoku Hello World SDK二进制有效负载要求: PSP / Vita 游戏的物理/数字副本,Carol Vorderman的Sudoku(美国/欧元版本) USB进入PSP的USB模式安装漏洞: 注意:这将...
mod_python是apache组织的一个项目,通过它,可以开发psp或cgi,mod_python功能强大,速度快,是非常优秀的web开发工具。 mod_python的一个最主要优点就是在性能上超越传统CGI。下面是一个非常粗略的测试。该测试是...
手册还包含了附加资源部分,提供了PSP文档、无线局域网、蓝牙和加密技术、应用程序启动器Matrix以及其它miscellaneous(杂项)信息,这些资源能够帮助开发者更深入地理解和使用OMAP-L138及其开发环境。 总的来说,...
- 如果一切顺利,该脚本将生成两个文件:`helloworld.ds.gba`和`helloworld.nds`。 ##### **3.2 测试方法** - **使用模拟器**:虽然存在一些bug,但模拟器仍是测试的有效手段。推荐使用的模拟器有: - **Dualis**...
#### 二、准备工作 在开始之前,你需要具备一定的 Lua 编程基础知识。如果你是 Lua 的初学者,可以参考以下资源进行学习: - [Lua 用户组织 Wiki 上的 Lua 教程](http://lua-users.org/wiki/LuaTutorial) - 使用 ...
20. ISP与PSP:ISP(Internet Service Provider)是提供接入因特网服务的代理商,而PSP(Packet Switching Protocol)是包交换协议,与题目描述不符。正确答案是错误。 21. 报表设计:报表设计视图用于设计和修改...
- **安装步骤**:下载并安装最新版本的 CodeWarrior,确保安装过程中选择合适的开发平台和工具链。 ##### 1.2 安装 MQX - **版本建议**:推荐使用 MQX 4.0 版本配合 CodeWarrior 10.3 版本使用。 - **下载地址**:...
#### 二、开始您的软件开发 ##### 2.1 设置DVSDK - **定义与目的**:DVSDK是针对TMS320DM3730的一系列软件开发工具集合,包括了编译器、库文件、示例代码等。 - **步骤详解**: - 下载与安装DVSDK:通常通过TI官网...
提供客户接入互联网的服务商简称ISP(Internet Service Provider),而非PSP。 **详细说明:** ISP是指提供互联网访问服务的公司或组织,包括拨号上网、宽带上网等服务。PSP通常是指游戏主机PlayStation Portable的...
#### 二、安装指南 ##### 2.1 预备条件 在安装 Modpython 之前,确保已经正确安装了以下组件: - **Apache HTTP Server**:推荐版本为 2.x。 - **Python**:建议使用 2.7 或更高版本。 - **Development Libraries ...
(1)执行性语句——由硬指令构成的语句,它通常对应一条机器指令,出现在程序的代码段中: 标号:硬指令助记符 操作数,操作数 ;注释 (2)说明性语句——由伪指令构成的语句,它通常指示汇编程序如何汇编源程序...
之后,通过调用特定函数,如`display.clearDisplay()`清除屏幕,`display.setCursor(x, y)`设置光标位置,`display.setTextSize(size)`设置字体大小,`display.println("Hello, World!")`打印文本。 在实际应用中,...