Меню Документы
Вход в систему
Облако тэгов
| Разработка программ для Palm OS в Linux |
|
|
|
Разработка программ для Palm OS в Linux Автор: Sergey Indlin, 18 Декабрь 2002 Содержание
Глава 1. Введение В этой статье я хотел бы остановиться подробнее на разработке программ для Palm OS в Linux. Я использую дистрибутив ALT Linux Master 2.0 с настроенным репозитарием пакетов Sisyphus, откуда можно легко установить большинство необходимых программ. Конечно, все используемые программы можно скачать в интернете, и использовать бесплатно. Я не буду подробно описывать технологию программирования в Palm OS - достаточно много информации по этой теме можно найти в Интернете. Главными справочниками разработчика являются Palm OS Companion and Reference. На том же сайте вы можете найти много полезной документации, предназначенной для разработчиков: http://www.palmos.com/dev/support/docs/. Неплохой форум, посвященный разработке под Palm OS можно найти на сайте http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=palmos. Из конференций (news-groups) могу порекомендовать сервер news://news.falch.net/ — конференция pilot.programmer.gcc (на английском). Хороший каталог ресурсов по разработке для Palm на OpenNet. Кратко перечислю используемые программы:
Для работы с gcc надо на странице http://www.palmos.com/dev/tools/sdk/ перейти в раздел нужной версии SDK и скачать архив в разделе “Unsupported Palm OS SDK 5.0 for PRC-Tools”. Я надеюсь, что rpm установит файлы куда надо, а для архива tar.gz надо делать так:
Документацию можно найти на http://www.palmos.com/dev/support/docs/ в разных форматах. Нам больше подойдет вариант в HTML или PDF. Скачать последнюю версию можно с домашней страницы prc-tools. На текущий момент это версия 2.2, которая поддерживает последние модели Palm-based устройств на ARM-процессорах и Palm OS SDK 5. В пакет prc-tools входят программы:
prc-tools во многом повторяет стандартный пакет gcc, и изначально являлся хаком 2.95 версии gcc. Поэтому команды и ключи prc-tools не покажутся необычными программисту, работавшему с gcc. Специфичные для Palm OS опции можно посмотреть на соответсвующей странице. POSE это эмулятор Palm OS-based машин. Существует версия для UNIX, MacOS, Windows. Исходники можно найти на соответствущей странице. Для дистрибутивов ALT Linux достаточно дать команду apt-get install pose. Так-же доступны пакеты pose-skins и pose-doc. Пакет pose-skins нужен для корректной работы с конкретными моделями Palm. Доступны шкурки для Palm, Handspring, Workpad, HandEra разных моделей. Для работы понадобиться ещё и образ системной памяти Palm (ROM Image Files), который по лицензионным ограничениям распространяться в составе дистрибутива не может. Для получения ROM Image Files необходимо подписаться на Palm OS Developer Program. Также можно скопировать ROM с самого устройства Palm. Для этого надо:
На последних моделях Palm getrom2.prc использовать нельзя. Достаточно нажать кнопку синхронизации и запустить pi-getrom. Теперь можно запустить и настроить POSE. В открывшемся окне POSE нажатием правой кнопки мыши вызывается меню. Выберите пункт New и заполните поля:
Вот как выглядит POSE, настроенный на Palm m505: ![]() Теперь можно устанавливать и отлаживать программы. Программа для Palm OS состоит из ресурсов. Сам код является специфичным типом ресурса. Также как и текст программы, ресурсы описываются текстовым файлом (стандартное расширение .rcp), который можно редактировать напрямую в текстовом редакторе. Для визуального редактирования ресурсов существуют такие программы как pilrcedit и guikachu. Pilrcedit — это Java-приложение, и мне показалось не слишком удобным. Guikachu написан под Gtk+/GNOME, использует XML, как формат сохраняемых файлов, и активно развивается. Последняя стабильная версия на текущий момент — 1.2.3. Скачать можно с домашней страницы. Для дистрибутивов ALT Linux, guikachu можно установить командой apt-get install guikachu. Чтобы преобразовать исходный файл guikachu в RCP-файл, достаточно дать команду guikachu2rcp name.guikachu или выбрать пункт Экспорт RCP из меню Файл. ![]() Guikachu поддерживает следующие типы ресурсов:
В формы можно добавлять: статический текст, поля, кнопки, списки, таблицы, пользовательские элементы. Интерфейс достаточно понятен и удобен. После получения rcp файла, его необходимо преобразовать в бинарный формат. Для этого служит программа pilrc (пользователи Sisyphus могут ее установить командой apt-get install pilrc). Синтаксис достаточно прост: pilrc -H name.h name.rcp. По этой команде создадутся необходимые .bin-файлы, и заголовочный файл с определениями идентификаторов. ЗамечаниеВсе идентификаторы ресурсов в Palm OS должны быть числовыми, но в программе удобнее пользоваться говорящими именами. Ключ -H позволяет автоматически сгенерировать заголовочный файл с “#define Имя Число”, давая возможность в программе использовать конструкции типа “case MY_BEST_BUTTON:” вместо “case 9991:”. m68k-palmos-gdb является версией стандартного gdb, пропатченного под Palm, поэтому можно использовать графические оболочки к gdb. Здесь я расскажу про отладку под ddd. Чтобы программа собралась с отладочной информацией, надо добавить ключ -g в вызове m68k-palmos-gcc. Размер окончательного .prc-файла увеличится мало — добавиться только заглушка, передающая управлению внешнему отладчику на хосте. Вся отладочная информация записывается в объектный модуль, который и надо загружать в отладчик. Для запуска ddd в качестве frontend к m68k-palmos-gdb надо дать ключ --debugger m68k-palmos-gdb: ddd --debugger m68k-palmos-gdb Первым делом стоит загрузить (Ctrl-O) объектник с отладочной информацией (тот файл, который указан в опции -o m68k-palmos-gcc). Чтобы стартовать сессию отладки в окне gdb надо дать команду target pilot localhost:6414. По указанному порту POSE общается с отладчиком. ЗамечаниеДля упрощения, можно создать в ddd кнопку. Для этого надо открыть меню Commands->Edit Buttons и в пункте Console Buttons ввести: target pilot localhost:6414. После этого над окном отладчика появиться кнопка с введенной командой. Теперь отладчик ждет, когда на pose запустят программу. При старте в эмуляторе программы, управление немедленно передастся в ddd, и экран POSE останется черный, пока не пойдет вывод из программы. Теперь можно как обычно устанавливать точки прерывания, просматривать значения переменных и т.д. Вот как выглядит сессия отладки: ![]() Под Linux можно собрать для себя эффективную среду разроботки. Выбор довольно широк: vi, emacs, Anjuta, KDevelop. Все эти программы можно настроить для разработки под Palm OS. Универсальным и мощным средством работы является make. Ниже приведен примера файла Makefile с комментариями. # Имя prc файла |




