PalmOS Programlama Deneyimi [Linux]


Bu sayfanın amacı Linux ortamında Palm programlaması yapmayı amaçlayan kişilerle bir deneyimi paylaşmaktır.

Amaçlamadıklarımı aşağıdaki satırlardan çıkarımsayabilirsiniz:


Kullanılmış ortam Linux Redhat 7.0 dır.

Palm geliştirme ortamları için gösterilen kaynak site, Palm şirketinin denetimindeki platform araçları sayfasıdır. Buradan çeşitli geliştirme araçlarına erişilebilmektedir. Palm OS programlamasını C ile Linux ortamında yapmak istiyorsanız aşağıdakilere gereksinmeniz var:
 
 
PRC-Tools  C/C++ da yazılmış PalmOS uygulamaları derlemeye yönelik GCC esaslı çapraz-derleyici, GNU paketi
Palm OS SDK 3.5 (Software Development Kit 3.5)  PRC ile çalışacak 'library' ve 'header' kümesi
PilRC Kaynak derleyicisi (PalmOS geliştirmesi Kullanıcı ara yüzü elemanlarını ve dili, programdan ayırabilmeyi sağlamaktadır)
POSE (Emülatör)  Palm cihazların geliştirme ortamında kullanılan, palm cihazının 'taklidini' yapan bir program. Bilgisayar ekranına bir Palm cihazı çıkarıp, tüm denemelerinizi bu sanal alette yapmanız olanaklı

Bunları orijinal site linklerinden edinebileceğiniz gibi Redhat için olan rpm'lerini bizim sitemizden de edinebilirsiniz.
 

GELİŞTİRME ORTAMININ KURULUMU

Aşağıdaki işlemleri Linux'unuzda 'root' olarak yapın: Aslında PilRC'nin şu sıralarda 2.6 sı var, ancak ortalıkta rpm'i yok. Dolayısı ile eğer 2.6 ya gereksiniminiz varsa kaynak kodu getirip derlemeniz gerekecek.

Bu aşamada PalmOS için derleme yapacak duruma gelmiş bulunuyorsunuz. Emülatör ne yazık ki Redhat 7.0 da sağlıklı kurulamamakta. Her nedense Emülatör hep 'kaynak kod' olarak ortalıkta bulunmakta. rpm halleri de tarball biçiminde. Birden fazla nedenden kaynaklandığını varsaydığım bozukluklar dolayısı ile 'kaynak kod' Redhat 7.0 ile gelen gcc+library 'le derlenememekte. POSE'nin tartışma gurubunda sorun dile getiriliyor. Sanırım yeni sürüm ile POSE, Redhat'de kurulabilir hale gelecek. Her halükarda bu derlemeyi yapacaksanız FLTK'ya gereksiniminiz olacak. Bu, X üzerine oturan, bir 'toolbox'. Bunu, kaynak kod olarak kendi yerinden temin edebilirsiniz. POSE için ise, PalmOS altındaki sayfaya bakmanızı öneririz.

PC [Linux]  «-»  Palm [PalmOS] iletişimi

Bu pilot-link denilen bir küme programla gerçekleştirilmektedir. İlk iş olarak bu yazılımları kurmanız gerekmektedir. Yazılımı bizim sitemizden veya www.rpm.org sitesinden bulabilirsiniz. Yine 'root' kullanıcısı olarak: bu, komut yazılımı Linux'unuzda kuracaktır. Bundan sonra ilk işiniz Palm cihazınızın beşiğini bağladığınız port'a (cua1, cau2, ttys0, ttys1, den durumunuza uygun olanı)  her kullanıcı için write/read hakkı vermek olmalı. Ondan sonra da pilot isimli bir 'device' hard linki yaratmalısınız:
  Bundan sonra beşikle olacak iletişim hızını bir ortam değişkeni aracılığı ile tanımlamakta yarar var. Örneğin bash kullanıyor iseniz:
.bashrc dosyanızın içine:
PILOTRATE=115200
export PILOTRATE
satırlarını ekleyiniz, bu işi görecektir. Bu yazılım gurubu 30'u aşkın ufak komut satırından çalıştırılan programdan oluşmaktadır. Bunların ne olduklarını ve kullanımlarını
man pilot-link
diyerek öğrenebilirsiniz. Ayrıca bu linkten erişeceğiniz dökümanlar da fazlası ile yararlıdır.

Yazılım denemek bakımından en önemli program pilot-xfer  dir.

Palm'ınıza fasulye.prc programını kurmak için:

pilot-xfer /dev/pilot -i fasulye.prc
Palm'ınızın durumunu yedekleme isimli dizine yedeklemek istiyorsanız:
pilot-xfer /dev/pilot -b yedekleme
Bu işlemin tersi (yani Palm'ı yedeklemeden yeniden güncellemek) için:
pilot-xfer /dev/pilot -r yedekleme
Palmınızda kurulu programların bir listesini elde etmek için:
pilot-xfer /dev/pilot -l

İlk program,  ilk derleme

Ortalıkta bulunan örneklerin çoğunlukla SDK 3.5 ile tam uyumlu olmadığı gözlemlenmiştir. Büyük olasılıkla daha eski zamanlardan kalan bu örneklerde 'header' dosyaları farklılık göstermekte. Artık  ilk derleme için kullanılması bir ritüel haline gelmiş olan  hello.c nin düzeltilmiş hali şöyle:


#include <System/SystemPublic.h>
#include <UI/UIPublic.h>
#include <PalmCompatibility.h>

       // ---------------------------------------------------------------------
       // PilotMain is called by the startup code and implements a simple event
       // handling loop.
       // ---------------------------------------------------------------------
       DWord PilotMain( Word cmd, Ptr cmdPBP, Word 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;
       }



Nasıl Derleyeceğiz, şöyle: Anlaşıldığı üzere: Derlenilen programın Palm'a aktarılımı

Bir önceki bölümdeki pilot-link yazılım kurumu yolunda gittiyse:

    pilot-xfer  -i hello.prc
transfer işini gerçekleştirmeli. Eğer ortam değişkenlerinde bir olumsuzluk oldu ise şunu da deneyebilirsiniz:
    pilot-xfer  --port /dev/cua1  -i hello.prc

(buradaki cua1 daha önce de açıklandığı üzere cau2, ttys0, ttys1, den durumunuza uygun olan diğer bir seri iletişim cihazı (device) da olabilir)
 

Kaynakça

 
PalmOS Linux Palm OS <-> Linux ile ilgili bilgi (başka linkler içeriyor)
Palm Stuff Bu sayfanın benzeri (biraz eski, ancak çok yararlı)
Kitap (O'Reilly) "Palm Programming: The Developer's Guide" Kitabının web üzerindeki hali.  
PalmPilot Arşivi Çoğunlukla Palm yazılımlarından+iletişim listelerinden+linklerden oluşan bir arşiv sayfası
PalmPilot Sayfası Benzer diğer bir site
PalmPower'daki bir makale  PalmPower web dergisindeki "Using your Palm device with Linux" makalesi. Bu dergi her ay yayınlanmakta.
SOURCEFORGE Burada "PALM" aratınız. Bazılarının kaynak kodu da bulunan pek çok PalmOS programına erişebileceksiniz. (Siteden haberdar eden Selçuk Demiray'a teşekkürler..)
Palm Nedir Palm ile ilgili yazdığım "Genel Kültür" yazısı.
GCC TUTOR GCC ile Palm programlamayı bir örnek üzerinden ayrıntılı olarak anlatan bir döküman. Ancak 'header' dosyaları bakımından ve derleme komutlarının parametreleri bakımından güncel değil. Örnek olarak kullanılan programı ve 'resource'u (tex2hex örneğini) prc-tools-samples.tar.gz paketi içinde bulacaksınız. tex2hex.c de uygun 'header' dosya değişikliklerini yapmaya ek olarak GCC TUTOR'u (bu dökümanı) da okuyup, yazarın kasten yapmış olduğu ve nasıl düzeltileceğini açıkladığı hataları da düzeltmek gerekiyor.



Bu sayfa ile ilgili iletişim

Erişim sayacı:

Son güncelleme: 22 Kasım 2000, 16:27