Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

palm:develop:start

PalmOS Programmierung

mit GCC unter Linux

Der Versuch im Jahre 2012 eine funktionierende Entwicklungsumgebung aus freien Komponenten zusammenzustellen, ist eigentlich zum Scheitern verurteilt. Am besten man installiert ein altes Linux, meine Testumgebung ist ein (K)Ubuntu 10.04 LTS, in einer VM. Bis hier konnten noch alte Pakete verwendet werden. Neuere Systeme haben nicht funktioniert. Das gilt auch für Windows, die besten Ergebnisse wurden hier noch mit Windows XP erzielt.

Vorab

Das Unternehmen, unter Linux für PalmOS zu programmieren, scheint akuell nur mit immensem Aufwand bzw. ganz und gar nicht möglich zu sein. Warum? Es gibt schlicht keine Software-Quellen mehr. Zwar kann man die prc-tools noch von sf.net abrufen, aber kompilierbar sind sie nicht mehr. Aus den Ubuntu und Debian Repos sind sie inzwischen auch verschwunden. Ähnlich sieht es mit pilrc und den anderen Komponenten aus.

Alle notwendigen Ressoucen stehen hier als Download zur Verfügung. Zumindest mit dem ROM und dem SDK bewegt sich dieses Angebot in einer rechtlichen Grauzone, da diese Komponenten nie frei waren, sondern immer nur von Palm zum Download zur Verfügung gestellt wurden.

Benötigte Software

Die Pakete sollten in der angegebenen Reihenfolge installiert werden.

Getestet sind die Pakete unter Ubuntu 10.04 LTS (Hardy). Die Installation war ohne Probleme möglich. Alle anderen Abhängigkeiten konnten vom Paketsystem aufgelöst werden.

Mit Ubuntu 12.04 LTS (Precise) funktioniert das Ganze auch noch zuverlässig. Allerdings habe ich nur ein Versionsupgrade durchgeführt, keine Neuinstallation.

Was wird noch benötigt:

Das SDK entpackt man unter /opt/palmdev/sdk-5r3 und startet dann als root das Installationsskript mit dem Aufruf: palmdev-prep /opt/palmdev/sdk-5r3/. Den Rest erledigt das Skript für uns. Die ROMs entpacken wir in ein beliebiges Verzeichnis unter /home/<user>.

Dann starten wir pose und wählen einen Skin und ein ROM für den Emulator aus.

pilrcedit entpacken wir auch im User-Verzeichnis. Gestartet wird der Editor mit java -jar pilrcedit.jar. Auch hier ein recht früher Entwicklungsstand mit wenig Komfort.

Leider kann man mit dieser Konstellation keine Programme für PalmOS 5 testen. Lediglich bis 4.1 und 160 x 160 Pixel ist möglich.

Hello World!

Quelltext

hello.c
#include <PalmOS.h>
 
// Hauptprogramm**********************************************
 
UInt32 PilotMain(UInt16 cmd, void *cmdPBP, UInt16 launchflags)
{
  EventType event;
 
  if (cmd == sysAppLaunchCmdNormalLaunch)
    {
    // Hello World ausgeben***********************************
      WinDrawChars ("Hello World!", 12, 10, 10);
 
    // Behandlung der Events**********************************
        do
        {
          EvtGetEvent(&event, evtWaitForever);
          SysHandleEvent(&event);
        }
        while (event.eType != appStopEvent);
    }
    return 0;
}

Programm erstellen

Wir compilieren…

j@x32:~/projekte/palmdev/eb$ m68k-palmos-gcc -O2 -g hello.c

Ergebnis…

j@x32:~/projekte/palmdev/eb$ ls
a.out  

Wir erzeugen die notwendigen Ressourcen…

j@x32:~/projekte/palmdev/eb$ m68k-palmos-obj-res a.out

Das Verzeichnis füllt sich…

j@x32:~/projekte/palmdev/eb$ ls
a.out  
code0000.a.out.grc  
code0001.a.out.grc  
data0000.a.out.grc  
hello.c  
hello.c~  
pref0000.a.out.grc  
rloc0000.a.out.grc

Nun bauen wir alles zusammen…

j@x32:~/projekte/palmdev/eb$ build-prc hello.prc "Hello World" HeWo *.a.out.grc

Jetzt ist auch ein hello.prc dabei.

j@x32:~/projekte/palmdev/eb$ ls
a.out  
code0000.a.out.grc  
code0001.a.out.grc  
data0000.a.out.grc  
hello.c  
hello.c~  
hello.prc  
pref0000.a.out.grc  
rloc0000.a.out.grc

Dieses laden wir in den POSE und erfreuen uns am ersten eigenen Palm-Programm.

mit GCC unter Windows

Benötigte Software

Voraussetzung für die Benutzung des GCC und der prc-tools unter Windows ist die Installation von Cygwin.

Unter dem angegebenen Link findet man sowohl die notwendige setup.exe als auch eine ausführliche Installationsanleitung.

Die setup.exe unbedingt mit dem Parameter -X starten, da sonst die Installation der prc-tools wegen deren fehlender Signatur scheitert.

Wichtig bei der Auswahl der Softwarequellen ist dann, die Eintragung für das Repository der prc-tools nicht zu vergessen.

In der Paketauswahl dann unbedingt folgende Pakete auswählen:

  • gcc und binutils
  • make
  • prc-tools, prc-tools-arms und pilrc

Was wird noch benötigt:

Das SDK muss innerhalb der Cygwin-Verzeichnisstruktur installiert werden. Am besten verfährt man wie im GCC-Linux-Teil beschrieben.

PODS

ACCESS, die Firma der PalmOS letztendlich nun gehört, hatte eine komplette Entwicklungsumgebung namens PalmOS Development System (PODS) herausgegeben, die auf Eclipse und Cygwin basiert. Sie enthielt ebenfalls SDK, Simulator, Emulator, Formular-Editor und Dokumentation. Mit ihr konnte man sowohl Programme für Palms auf Motorola 68k als auch auf ARM Prozessorbasis schreiben.

Leider hat ACCESS die Downloadseiten geschlossen. Im Moment (Oktober 2012) ist keine Downloadquelle mehr bekannt. Wer sich in den Besitz einer Kopie bringen kann, erhält ein Tool zur uneingeschränkten Entwicklung von PalmOS-Programmen für alle Gerätetypen inkl. der von Palm produzierten Smartphones.

Da PODS trotz der großen Anzahl der freien Komponenten unter der Lizenz von ACCESS steht, kann das Paket hier nicht frei zum Download angeboten werden. Bei Interesse bitte ein Mail senden.

Metrowerks Codewarrior

Wer ganz großes Glück hat, kann sich eine Lizenz der Entwicklungsumgebung Codewarrior für PalmOS von Metrowerks beschaffen. CW war über Jahre die Referenz für die Softwareentwicklung für PalmOS. Sie bietet einen eigenen eigenen Compiler für C und C++ und alle notwendigen anderen Werkzeuge.

Auch in der begleitenden Literatur wird sie häufig verwendet. Vielleicht findet sich ja auch noch eine Testversion auf einer Buch-CD.

Leider hat Metrowerks den Vertrieb der Software eingestellt, allerdings wäre sie für Hobbyprogrammierer vermutlich auch zu teuer.

Mit Wine ab Version 1.5 läuft CW mit allen Zusatzprogrammen auch hervorragend unter Linux.

CASL

CASL bezeichnet hier die Compact Application Solution Language nicht die Common Algebraic Specification Language.

CASL ist eine vollständige Entwicklungsumgebung mit der man Programme für PalmOS, Windows-CE und Windows erstellen kann. Die Software ist für die nichtkommerzielle Nutzung freigegeben. CASL eignet sich hervorragend als RAD1)-Tool, sozusagen für den schnellen Hack.

Dokumentation, IDE usw. ist alles schon enthalten. Wenn man native Palm-Programme (ohne den Einsatz einer RTL auf dem Palm) erstellen will, ist es notwendig sich die Palm/Cygwin Umgebung, wie oben ausgeführt, zu installieren. POSE nicht vergessen.

1)
Rapid Application Development
palm/develop/start.txt · Zuletzt geändert: 2013/03/20 17:57 von admin