放假啊,这叫玩啊,天天不务正业,还玩些可能和未来工作无关的技术!内心充满了罪恶感啊
写HelloWorld太无聊了,转了一圈PSPSDK发现有自带sample,方便快速上手的好东西,位置在开发包/psp/sdk/samples下 面,其中包括声音,控制器,红外,usb,wifi,电源等等。还真不少,先挑简单的看看。恩~~我看controller挺简单!就看这个!
打开controller/base目录,只有一个main.c 和 Makefile。肯定不会很难,先make一个试试,还好很顺利,编译得到四个文件: main.o controller_basic.elf EBOOT.PBP PARAM.SFO。
main.o 不用说肯定是main.c的生成的目标文件。
controller_basic.elf 我知道ELF是linux下的二进制文件格式,可能PSP也是这个格式。
EBOOT.PBP 这个就是最终的执行文件了,这个应该是包装过的,其中包含一些图标文件什么的。
PARAM.SFO 这个我就不知道,有高手可以告诉我,(我怀疑!我猜测!是源码中定义的那些宏有关,是一些信息,最后打包到EBOOT.PBP。不要太相信,只是个思路)。
然后就是插上usb,靠到psp/game下,建个文件夹,叫什么名都可以!然后把EBOOT.PBP(不要改名字!)放进去,运行就可以了。
也看了运行后什么模样了!下面就是分析源码了,分析都写成注释了!
以下是源码 :
* PSP Software Development Kit - http://www.pspdev.org
* -----------------------------------------------------------------------
* Licensed under the BSD license, see LICENSE in PSPSDK root for details.
*
* main.c - Basic Input demo -- reads from control pad and indicates button
* presses.
*
* Copyright (c) 2005 Marcus R. Brown <mrbrown@ocgnet.org>
* Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
* Copyright (c) 2005 John Kelley <ps2dev@kelley.ca>
* Copyright (c) 2005 Donour Sizemore <donour@uchicago.edu>
*
* $Id: main.c 1095 2005-09-27 21:02:16Z jim $
*/
/**/ /* psp的一些头文件,从文件名应该能看出来时干嘛使得 */
#include < pspkernel.h >
#include < pspdebug.h >
#include < pspctrl.h >
/**/ /* psp sdk中自带标准c库和标准c++库 */
#include < stdlib.h >
#include < string .h >
/**/ /* 定义模块信息 包括版本 */
/**/ /* Define the module info section */
PSP_MODULE_INFO( " CONTROLTEST " , 0 , 1 , 1 );
/**/ /* 定义主线程属性 还没具体研究,有时间再改上*/
/**/ /