Hlavní navigace

Programovanie pre Palm OS na Linuxe v IDE

Patrik Hornik

Tento článok popisuje možnosti vyvíjať/testovať Palm OS aplikácie na Linuxe. Toto nie je nová téma, ale my si povieme, ako debugovať Palm OS aplikácie v IDE KDevelop. U mnohých je nemožnosť pracovať a hlavne debugovať v pohodlnom a vo väčšine prípadov rýchlejšom IDE jedinou prekážkou, prečo nezmeniť OS. A riešeni na Linuxe má ešte jednu výhodu oproti Windows IDE riešeniam - je free.

Palm OS a Linux majú veĺa spoločného. A to aj v prípade, že vynecháme ich pozíciu na poli operačných systémov svojej platformy… (Bez ohĺadu na poradie samozrejme.) Tieto spoločné znaky by som nazval „čistým designom“ – dobre definovanými API a transparentnou funkčnosťou. Preto nepochybujem, že mnoho priaznivcov jednej platformy patrí zároven aj medzi priaznivcov platformy druhej.

Potrebné nástroje

Pre prácu budeme potrebovať tieto nástroje:

  • prc-tools – gcc, gdb, as a ostatné nástroje pre kompilovanie, linkovanie, debugovanie a postlinkovanie pre m68k (prípadne k dispozícii je už aj verzia pre ARM)
  • Palm OS SDK 4.0 – hlavičkové súbory, knižnice pre Palm OS 4.0
  • Palm OS Emulator (POSE) – emulátor Palm OS PDA
  • ROM pre POSE – obraz ROM pamäte PDA
  • PilRC – Palm resource kompilátor
  • Guikachu – editor Palm resourcov
  • KDevelop – IDE, ktoré je súčasťou KDE
  • patch pre KDevelop – patch pre KDevelop umožnujúci debugovanie Palm OS aplikácií v KDevelop

prc-tools a Palm OS SDK 4.0

RPM balíčky prc-tools je možné nájsť na prc-tools.sourcefor­ge.net. Palm OS SDK 4.0 sa dá stiahnuť na stránkach www.palmos.com – potrebujete verziu pre Unix vo forme .tar.gz obsahujúceho RPM. Po nainštalovaní RPMs spustite palmdev-prep, ktoré nájde a nastaví defaultné Palm OS SDK pre prc-tools. Aplikácie prekompilované s použitím SDK 4.0 pobežia bez problémov aj na nižších verziách OS, pokiaĺ použijeme volania API dostupné v príslušnej verzii OS.

Nástroje z prc-tools sú vlastne upravené originálne gcc, gdb, as a iné podporujúce novú target platformu – m68k-palmos. Preto môžete nimi kompilovať, debugovať, linkovať tak, ako ste zvyknutí s originálnymi gcc, gdb, as. Existujú samozrejme drobné odchýlky, čo sa týka najmä debugovania, pretože hotovú Palm OS aplikáciu nespúšťate na PC, ale na POSE (alebo PDA). Debugovať s m68k-palmos-gdb môžete teda takto:

  1. Pustíte m68k-palmos-gdb s výsledným súborom po linkovaní. Pozor, nie s .prc súborom, ten vznikne až spustením postlinkovacích nástrojov na tento súbor
  2. Zpustíte POSE, .prc aplikáciu si donho nahrajete z menu POSE, alebo parametrom pri spustení pose -load_apps file.prc
  3. V gdb sa príkazom target pilot localhost:2000 pripojíte na POSE
  4. Po spustení Vami debugovanej aplikácie na POSE sa generuje signál STOP a gdb zastaví na začiatku fukncie PilotMain
  5. Daĺší postup sa ničím nelíši od debugovania Linux aplikácie

POSE a ROM pre POSE

Aplikácie je možné testovať a debugovať z KDevelopu aj priamo na Vašom PDA, ale je určite nepomerne jednoduchšie a pohodlnejšie debugovať na emulátore. POSE a sadu skinov môžete nájsť na sourceforge.net/pro­jects/pose. Potrebujete RPM pose a pose-skins. Dalej potrebujete ROM nejakého Palm OS PDA so zodpovedajúcou verziou OS. Kedže na ROM sa vzťahujú isté licenčné podmienky, nie je ich možné stiahnuť z oficiálnych stránok jednotlivých výrobcov PDA. Daĺšou možnosťou je stiahnuť si ROM z vlastného PDA.

PilRC a Guikachu

Palm OS aplikácie používajú resource pre formuláre, menu a podobne. PilRC je kompilátor textových definičných súborov takýchto resourcov na binárny formát. PilRC môžete nájsť na sourceforge.net/pro­jects/pilrc. K PilRC existuje grafický viewer – pilrcui – jeho kvalita je ale diskutabilná. Naproti tomu Guikachu je editor resourcov pre Palm OS v pomerne dobrej kvalite plne postačujúci na účel, na ktorý bol vytvorený. Zopár drobných výhrad – nezobrazuje viacradkové statické texty (obsahujúce \r) na viacerých riadkoch, ked sa mu nepodarí súbor uložiť (súbor vlastnil root), nepodá o tom hlásenie. Guikachu vie resource do formátu pre PilRC len exportovať, interne používa XML. Preto je rozumné primárny súbor s resourcami udržiavať vo formáte pre Guikachu a pri buildovaní z neho vyrobiť potrebný formát pre PilRC – Guikachu má na to command line nástroj guikachu2rcp.

Guikachu využíva C++ framework pre Gnome gnomemm a gtkmm. Tieto balíky neboli v skorších verziách Redhatu. Na RH 7.2 sa ako najschodnejšia cesta javila prekompilovať gnomemm, gtkmm aj guikachu.

KDevelop a patch pre KDevelop

A teraz prichádza to najlepšie. Integrácia do KDevelop. KDevelop je IDE vytvorené najmä pre písanie QT a KDE aplikácií. Nič Vám ale nebráni ho používať aj s C, C++ a inými projektami. Posledná dostupná stabilná verzia pre KDE 2.2 aj 3.x je 2.1, konkrétne 2.1.3. KDevelop na integrované debugovanie používa gdb. Ale rozdiely vo funkčnosti gdb a m68k-palmos-gdb popísané vyššie nám bránia KDevelop úspešne použiť na debugovanie Palm OS aplikácií.

Čo teda s tým? Jednoduchá pomoc – napísal som patch pre KDevelop verzie 2.1.3, ktorý dodáva potrebnú funkcionalitu. Tento patch by sa mal bez problémov aplikovať aj na ostatné 2.1 verzie. Ako teda postupovať – stiahnuť si source KDevelop napríklad z CVS. Pozor, treba sťahovať branch KDE2_2_BRANCH, pretože vývoj pokračuje na verziu 3.0 fungujúcu iba pod KDE 3.x a zatiaĺ nie vo funkčnom stave. Spustiť patch -p1 &lt kdevelop-2.1.3-prc-tools.patch, spustiť configure, make a make install. Zatiaĺ je dostupný len patch, v prípade veĺkého záujmu o .rpm takto upraveného KDevelop 2.1.3 fungujúceho pravdepodobne na všetkých RH 7.2+ bude toto .rpm prístupné na webe. Linku nájdete v tomto článku, prípadne, ak záujemcov nebude až tak veĺa, tak bude zaslaná na email. Záujem je treba prejaviť na kdevelop@makefive.sk.

Patch obsahuje nasledovné vylepšenia KDevelop-u:

  1. Podpora pre Palm OS projekty. Je zapnutá, ked konfiguračný súbor projektu *.kdevprj obsahuje sekciu [Palm OS] a v nej definovanú položku palm_os. Vtedy pri spustení debugovania projektu spustí KDevelop pose s load_apps = definovanému prc a s run_app = menu aplikácie app, v prípade, že je v konfiguračnom súbore definované run_app. Príklad konfigurácie:
    [Palm OS]
    palm_os=1
    run_app=1
    app=Test
    prc=Test.prc
    gdb=/usr/bin/m68k-palmos-gdb
    pose=/usr/bin/pose
  2. Podporu pre m68k-palmos-gdb. m68k-palmos-gdb je spustené so zlinkovaným súborom, ktorý sa definuje v Project Options ako binary file.
  3. Pri spustení príkazu Run, Continue a Run to cursor sa okno KDevelopu dá do pozadia a naopak, pri prerušení činnosti programu – breakpoint, prijatie signálu a podobne do popredia.

Ukážkový projekt

K dispozícii je ukážkový projekt, ktorý demonštruje použitie jednotlivých nástrojov a na ktorom si je tiež možné odskúšať debugovanie v KDevelop-e.

Našli jste v článku chybu?

21. 10. 2002 10:49

Tom (neregistrovaný)

Na SuSE 7.2 pomohlo spise:
patch -p0


17. 10. 2002 18:43

Martin Koníček (neregistrovaný)

Ahojky vsichni.

Mam novy projekt ohledne univerzalniho vystupu z palma (http://www.volny.cz/martin.konicek/zapojeni/) a potreboval bych drobne pomoci s programem pro Palma. Ten by mel byt pro programatora otazkou cca 5-10 minut... Najde si nekdo cas, aby mi pomohl nekdo s timhle Open Source Harware a Software cas? :)



Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Brněnský radní chce zničit kartel operátorů. Uspěje?

Brněnský radní chce zničit kartel operátorů. Uspěje?

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...