Разработка для PalmOS под Linux

  Автор: © David "Scooter" Lukens
Перевод: © Сергей Скороходов.


 

Резюме

На написание этого документа меня вдохновили усилия по созданию работающей среды разработки на Linux-машине. Меня так разъярили попытки собрать и увязать все необходимое в среде Cygwin, что я сосредоточился на том, чтобы заставить все заработать под Linux. Здесь вы найдете описание, какие программы надо установить, что включает в себя эмулятор, компилятор и SDK. Проблемы конфигурации системы тоже нашли свое отражение.

 

Введение

Однажды мы с другом сказали: "А не кисло бы было писать собственные проги для palm'а?".

Мысль показалась нам отличной, и я начал вникать в то, что надо собрать для создания среды разработки. Мой друг пользует в основном Win-32, а я практически полный *никсоид. Так как Win32 оказалась общей платформой, доступной нам обоим, я начал поиски имеющегося инструментария.

Под Win32 есть два основных способа приняться за разработку на C. Один -- это Metrowerk's CodeWarrior for Palm, который дороговат для нашего любительского проекта. Второй возможностью является использование инструментария PRC, работающего в среде cygwin. Если вы не знакомы с этим пакетом, то его можно найти на http://sources.redhat.com/cygwin/. Cygwin сделает вашу win32 тачку более похожей на *nix машину и содержит многие обычные *nix инструменты (ls, dd, gcc и т.д.), портированные на win32.

После недельной борьбы с инструментами для win32 и так никуда и не приплыв, я решил отправить идею разработки под этой платформой на помойку. Следовательно Linux, а конкретнее RedHat 6.0 или 6.2, стал следующим вариантом и окончательным решением.

Для того, чтобы все заработало под Linux, нужно собрать несколько частей. Вот список основных компонентов:

  • Эмулятор Palm (POSE)
  • Образ ROM для POSE
  • PRC tools (GCC с выводом в формате для PalmOS)
  • PilRC (компилятор ресурсов)
  • PalmOS SDK

 

Приступая к работе (установка эмулятора)

Первой нужной для работы деталью является эмулятор Palm POSE. Его можно скачать с http://www.palmos.com/dev/tech/tools/emulator/ вместе с различными скинами (графическими представлениями аппаратной части). Если вам приходилось раньше компилировать программы, то это вам как дважды два. POSE требуется библиотека FLTK для меню и всего остального. FLTK доступна на http://www.fltk.org. Еще раз, если вы чего-нибудь уже компилили, то все просто.

Ну ладно, POSE вы скомпилировали и установили, думаете уже все? Не совсем. В POSE не входит ни один образ ROM. Образы ROM -- это такие снимки PalmOS, которые находятся во FlashROM самого Palm'а.

Получить образ ROM можно двумя способами. Во-первых, к эмулятору прилагается palm'овская прога, которая позволяет POSE высосать образ ROM прямо из PalmOS девайса. [Круто, да?] Во-вторых, можно присоединиться к программе поставщиков решений palm.com на http://www.palmos.com/dev/program/. После этого вы получаете доступ к Provider Pavillion на http://www.palmos.com/dev/pavilion/, где есть разные образы ROM. Есть специальные версии для тестирования и отладки, есть совсем нормальные, поэтому внимательно смотрите, что хватаете. Еще, образы ROM с сайта для разработчиков обычно не предназначены для загрузки в Palm. Обновления ROM и PalmOS находятся в другом месте на том же сайте.

Ну, теперь эмулятор заработал. Кликните правой кнопкой по File:New и укажите какой файл с ROM использовать, какой девайс эмулировать, графический скин и размер оперативки. Вы должны увидеть что-то наподобие этого:

 

Установка компилятора с прибамбасами

Для того, чтобы все начало функционировать, нужно поставить еще несколько вещей. А именно, PRC tools, SDK для palm'а и PilRC. PRC tools -- это порт нашего любимого GCC, но с выходным форматом для PalmOS. В SDK находятся несколько библиотек и куча заголовков для Palm API. Наконец, PilRC нужен для компиляции ресурсов.

PRC tools можно найти на http://sourceforge.net/projects/prc-tools/. Это связка заплаток для binutils, gdb, GCC и компоновщика, дающее поддержку PalmOS. RPM'ы можно также найти на http://www.palmos.com/dev/tech/tools/gcc/dist/prc-tools-2.0-1.Linux-i386.rpm.

Далее идет SDK. Их можно взять с palm.com. SDK для PalmOS 3.5 (самый свежий на момент написания статьи) доступен только для зарегистрированных на Palm.com Provider Pavillion разработчиков. Более ранние SDK можно взять здесь: http://www.palmos.com/dev/tech/tools/gcc/dist/palmos-1-2-3.1-sdks-1.tar.gz. SDK 3.5 содержит документацию, описывающую и более ранние версии. В старых SDK ее нет.

Установка PRC создаст директорию /usr/local/palmdev. В ней SDK надо распаковать. Еще надо сделать символическую ссылку, указывающую на тот SDK, который вы собираетесь использовать. Например, вот так выглядит мой /usr/local/palmdev:

 
[scooter@scooter scooter]# ls -l /usr/local/palmdev/ 
total 28
drwxr-xr-x═══ 4 root════ root══════ ══4096 Mar═ 8═ 2000 Palm OS 3.5 Support
drwxr-xr-x═══ 3 root════ root════════ 4096 Nov═ 1 10:03 doc 
drwxr-xr-x═══ 2 root════ root════════ 4096 Dec 21═ 1999 include 
drwxr-xr-x═══ 3 root════ root════════ 4096 Nov═ 1 10:02 lib 
lrwxrwxrwx═══ 1 root════ root═══════════ 7 Nov═ 1 10:07 sdk -> sdk-3.1 
drwxr-xr-x═══ 3 root════ root════════ 4096 Feb═ 9═ 2000 sdk-1
drwxr-xr-x═══ 3 root════ root════════ 4096 Feb═ 9═ 2000 sdk-2 
drwxr-xr-x═══ 3 root════ root════════ 4096 Feb═ 9═ 2000 sdk-3.1 

Последнее, что вам потребуется -- это PilRC, который компилирует ресурсы в двоичную форму. Это нужно для кнопок, меню и замены картинок на экране. Брать здесь: http://www.ardiri.com/index.cfm?redir=palm&cat=pilrc.

После того, как все эти тулзы собраны, у вас имеется рабочая среда разработки. Для компиляции C программ на Linux мы пользовались gcc, так что компилятор для PalmOS -- m68k-palmos-gcc. Большинство из его компонентов называются по типу m68k-palmos-* .

 


Copyright © 2001, David "Scooter" Lukens.
Copying license http://www.linuxgazette.com/copying.html
Published in Issue 62 of Linux Gazette, February 2001

Вернуться на главную страницу