Linux Palm 开发者快速入门指南

Jim Weller
jim@jimweller.net
2001年2月21日 星期三 04:33:07 AKST
当前版本位于 http://www.jimweller.net/palmdevqs/

目录

  1. 简介
  2. 要求
  3. 设置与安装
  4. Hello world 程序
  5. 屏幕截图
  6. 参考
  7. 下载

1. 简介

本指南旨在帮助 Palm 编程新手开始使用 Linux、PRC Tools、GNU 工具和 PalmOS© SDK 进行开发。它假设您对 Linux 和 GNU 工具 有一定的了解,并且对 PalmOS 有用户级别的理解。Windows 也有开发工具,但是随便啦。如果您觉得这有任何用处,请给我发一封 5 个字以上的电子邮件,用于炫耀统计数据。

这些是我学习这些工具的那天晚上的笔记。它将使您从一无所知到充满力量(能够编译一个 HelloWorld 程序)。我找不到可用的替代品。所以,我希望这些信息对您有所帮助,但不提供任何保证。如果您弄坏了任何东西,您就得保留这两块碎片。
[顶部]

2. 要求

您需要下载 PRC 工具、Palm 模拟器、PalmOS © SDK 和一些 GNU 开发工具(请参阅 下载 )。我下载到了 ~/palm/archive (YMMV)。

PalmOS © SDK

获取 sdk、示例和文档(隐藏在 cgi 后面,需要您阅读许可协议)
http://www.PalmOS.com/dev/tech/tools/sdk35.cgi
  • sdk35-docs.tar.gz
  • sdk35-examples.tar.gz
  • sdk35.tar.gz

    PalmOS © 模拟器

    为 Linux 构建模拟器是我目前还不想处理的另一个步骤。别担心。我是 Weller,两个 L。我很快会做这件事,并且我会重写本文档以反映这部分内容。目前我只是获取了 Windows 预构建的模拟器和皮肤。非常简单直接。您将软件包附带的 Palm 应用程序安装到您的掌上设备中。这允许您从 Palm 的 ROM 下载 PalmOS © 映像。您必须付费并签署 NDA(双重打击)才能获得其他 ROM 映像/版本。有人有存档吗 ;) 按照 readme 文件中的说明操作,然后在桌面上 Blamh 您的 Palm。此外,您可以使用常规的 hotsync 管理器和模拟器通过网络进行热同步。

    http://www.PalmOS.com/dev/tech/tools/emulator/
  • emulator-win.zip
  • emulator_skins_15.zip

    PRC 工具

    获取 PRC 工具(GNU 工具的补丁和一些 Palm 工具)
    http://www.PalmOS.com/dev/tech/tools/gcc/
  • prc-tools-2.0.tar.gz

    GNU 工具

    获取 gdb、gcc、binutils
    ftp://ftp.gnu.org/pub/gnu
  • gdb-4.18.tar.gz
  • gcc-2.95.2.tar.gz
  • binutils-2.91.tar.gz

    [顶部]

    3. 设置、构建和安装工具

    现在您已准备好解压、配置、构建和安装工具。您需要执行下面框中列出的所有命令:包括 LONG ASS COMPILE®:包含 Jim 式风格和修复。以下是关于下面框中命令的一些注意事项。

  • SDK 不适合 Linux。您会注意到从“Palm OS 3.5 Support”到 sdkpalmos-3.5 以及从 Incs 到 includes 的变化。
  • 由于在构建过程中您需要新版本的 binutils,请提前将 /usr/local/palm/bin 放入您的 PATH 中
  • 我使用 MYARCHIVEDIR 和 MYPALMDIR 变量来存储重要文件的位置
  • 默认安装位置是 /usr/local。我喜欢将内容分门别类地放在 /usr/local/<app> 中。在本例中是 /usr/local/palm。然后我将 /usr/local/palm/bin 添加到我的 PATH 中。

      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 等)。

    [顶部]

    4. Hello World 程序

    现在您可以编译一个 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 设备(有效!)。

    [顶部]

    5. 屏幕截图

    这里有一些模拟器(在 Windows 下运行)运行 hello.prc(在 Linux 下编译)的图片和屏幕截图。您会注意到应用程序的名称是在 build-prc 命令行中指定的名称。我还测试了我的 PalmIIIe 上的 hello.prc 文件。它有效!

       

    [顶部]

    6. 参考

    我从以下 URL 收集了所有这些内容。

  • PRC 工具
    http://www.PalmOS.com/dev/tech/tools/gcc/

  • 如何构建 PRC 工具(请参阅注释)
    http://www.PalmOS.com/dev/tech/tools/gcc/building.html

  • POSE PalmOS © 模拟器(必须将灵魂卖给 NDA 恶魔才能获得 ROM)
    http://www.PalmOS.com/dev/tech/tools/emulator/

  • PalmOS © SDK 3.5 版本(在 Linux 上已损坏)(请参阅注释)
    http://www.PalmOS.com/dev/tech/tools/sdk35.cgi

  • GNU(象牙塔)
    ftp://ftp.gnu.org/pub/gnu

  • POSE HOWTO
    http://www.netmeister.org/palm/POSE/POSE-HOWTO.html

  • Palm 开发 HOWTO
    http://www.orbits.com/Palm/PalmDevelopment-HOWTO.html

  • Palm 开发文章
    http://www.cyberport.com/~tangent/palm/faq/articles/gcc.html

    [顶部]

    7. 下载

    我在这里 jimweller.net 本地保存了所提及软件的副本。其中一些受许可保护。因此请务必阅读这些许可。并保持合法。连接速度只有 128K,但无论如何,给你。

    binutils-2.9.1.tar.gz
    emulator-win.zip
    emulator_skins_15.zip
    gcc-2.95.2.tar.gz
    gdb-4.18.tar.gz
    prc-tools-2.0.tar.gz
    sdk35-docs.tar.gz
    sdk35-examples.tar.gz
    sdk35.tar.gz
    hello.c

    [顶部]


    此页面上的所有商标和受版权保护的材料均归其各自所有者所有。其余版权 © Jim Weller 2001。