本指南旨在帮助 Palm 编程新手开始使用 Linux、PRC Tools、GNU 工具和 PalmOS© SDK 进行开发。它假设您对 Linux 和 GNU 工具 有一定的了解,并且对 PalmOS 有用户级别的理解。Windows 也有开发工具,但是随便啦。如果您觉得这有任何用处,请给我发一封 5 个字以上的电子邮件,用于炫耀统计数据。
这些是我学习这些工具的那天晚上的笔记。它将使您从一无所知到充满力量(能够编译一个 HelloWorld 程序)。我找不到可用的替代品。所以,我希望这些信息对您有所帮助,但不提供任何保证。如果您弄坏了任何东西,您就得保留这两块碎片。
[顶部]
您需要下载 PRC 工具、Palm 模拟器、PalmOS © SDK 和一些 GNU 开发工具(请参阅 下载 )。我下载到了 ~/palm/archive (YMMV)。
为 Linux 构建模拟器是我目前还不想处理的另一个步骤。别担心。我是 Weller,两个 L。我很快会做这件事,并且我会重写本文档以反映这部分内容。目前我只是获取了 Windows 预构建的模拟器和皮肤。非常简单直接。您将软件包附带的 Palm 应用程序安装到您的掌上设备中。这允许您从 Palm 的 ROM 下载 PalmOS © 映像。您必须付费并签署 NDA(双重打击)才能获得其他 ROM 映像/版本。有人有存档吗 ;) 按照 readme 文件中的说明操作,然后在桌面上 Blamh 您的 Palm。此外,您可以使用常规的 hotsync 管理器和模拟器通过网络进行热同步。
http://www.PalmOS.com/dev/tech/tools/emulator/
export MYPALMDIR=/root/palm export MYARCHIVEDIR=$MYPALMDIR/archive export PATH=/usr/local/palm/bin:$PATH mkdir /usr/local/palmdev mkdir /usr/local/palm cd $MYPALMDIR tar -xzf $MYARCHIVEDIR/sdk35.tar.gz mv Palm\ OS \ 3.5\ Support/ /usr/local/palmdev/sdkpalmos-3.5 cd /usr/local/palmdev/sdkpalmos-3.5 mv Incs include cd $MYPALMDIR mkdir src cd src tar -xzf $MYARCHIVEDIR/binutils-2.9.1.tar.gz tar -xzf $MYARCHIVEDIR/gcc-2.95.2.tar.gz tar -xzf $MYARCHIVEDIR/gdb-4.18.tar.gz tar -xzf $MYARCHIVEDIR/prc-tools-2.0.tar.gz cat prc-tools-2.0/{binutils-2.9.1,gcc-2.95.2,gdb-4.18}.palmos.diff | patch -p0 cd prc-tools-2.0/ ln -s ../binutils-2.9.1 binutils ln -s ../gcc-2.95.2 gcc ln -s ../gdb-4.18 gdb cd .. mkdir build cd build mkdir empty ../prc-tools-2.0/configure \ --target=m68k-palmos; \ --enable-languages=c,c++ \ --with-headers=`pwd`/empty \ --sharedstatedir=/usr/local/palmdev \ --prefix=/usr/local/palm --with-build-sdk=3.5 \ --exec-prefix=/usr/local/palm; make all-install |
假设一切顺利。您将在 /usr/local/palmdev 中获得 SDK 内容,然后在 /usr/local/palm 中获得平台特定工具(m68k-palmos-gcc、m68k-palmos-c++、m68k-palmos-ranlib 等)。现在将 /usr/local/palm/bin 放入您的永久路径中(编辑 .bashrc、.cshrc、profile 等)。
[顶部]现在您可以编译一个 hello 程序了。
在阅读 SDK 头文件后,我不得不修改 HOWTO 中的所有演示。在 HOWTO 示例中,头文件名称、原始类型和编译器工具名称对于 PalmOS © SDK 3.5 版本是不正确的。此外,SDK 附带的示例似乎都具有零长度资源文件(例如 SampleCalculator.rsrc)。我编译了这些包,但它们在模拟器上崩溃了。
将以下代码片段保存在名为 hello.c 的文本文件中。
hello.c
#include <PalmOS.h> // --------------------------------------------------------------------- // PilotMain is called by the startup code and implements a simple event // handling loop. // --------------------------------------------------------------------- UInt32 PilotMain( UInt16 cmd, void *cmdPBP, UInt16 launchFlags ) { EventType event; if (cmd == sysAppLaunchCmdNormalLaunch) { // Display a string. WinDrawChars( "Hello, world!", 13, 55, 60 ); // Main event loop: do { // Doze until an event arrives. EvtGetEvent( &event, evtWaitForever ); // System gets first chance to handle the event. SysHandleEvent( &event ); // Normally, we would do other event processing here. // Return from PilotMain when an appStopEvent is received. } while (event.eType != appStopEvent); } return; } |
您可以像这样编译它。您是否已修复您的 PATH 以包含 /usr/local/palm/bin ?
m68k-palmos-gcc hello.c -o hello m68k-palmos-obj-res hello build-prc hello.prc "Hello, World" WRLD *.hello.grc |
Blamho! 现在您将拥有一个 hello.prc,您可以将其放入模拟器(有效!)或您的 Palm 设备(有效!)。
这里有一些模拟器(在 Windows 下运行)运行 hello.prc(在 Linux 下编译)的图片和屏幕截图。您会注意到应用程序的名称是在 build-prc 命令行中指定的名称。我还测试了我的 PalmIIIe 上的 hello.prc 文件。它有效!
此页面上的所有商标和受版权保护的材料均归其各自所有者所有。其余版权 © Jim Weller 2001。