Palm Pre, Pixi, HP TouchPad, смартфоны, планшеты, телевизоры LG / Palm / HP / Open webOS / /Выбрать тему
Поиск по сайту
Добро пожаловать на PalmQ Online
Главная Форум Продавцы КПК Кладбище КПК
Кто в онлайне
В настоящий момент на сайте находится 54 посетителей и 0 зарегистрированных пользователей.

К сожалению, система Вас не опознала. Вы можете бесплатно зарегистрироваться здесь

Последние статьи
New! · Palm и webOS: как это было (14.10.12)
New! · HP TouchPad и Pre3. webOS против iOS (31.03.12)
New! · HP webOS, которую жалко потерять (20.11.11)
· Обзор HP TouchPad (23.07.11)
· 7 главных преимуществ HP TouchPad перед iPad 2 (19.07.11)
· Секретные материалы компании Palm (22.07.06)

Настройки
· Ваш аккаунт
· Все пользователи
· Top 10 статей
· Все статьи
· Все новости
· Программы
· Статистика сайта
· Вход с КПК
· RSS

Последние советы
New! · Запуск демонстрационного режима (Exhibition mode) из лаунчера webOS (04.02.13)
New! · Перемещение или удаление нескольких файлов одновременно (03.02.13)
New! · Добавление избранных композиций на главный экран Music Player (Remix) (28.01.13)
· Увеличение числа иконок в лаунчере HP TouchPad (25.01.13)
· Редактирование "черного списка" приложений в Preware (22.01.13)
· Изменение порядка учетных записей электронной почты [webOS 3.x] (17.01.13)
· Сортировка списков путем нажатия и удержания (11.01.13)
· Способы перезагрузки планшета HP TouchPad (09.01.13)
· Проверка даты последнего резервного копирования данных пользователя (08.01.13)
· Изменение имени webOS-устройства (05.01.13)

  

Разработка программ для Palm OS в Linux

Автор: Sergey Indlin, 18 Декабрь 2002
Кол-во прочтений/просмотров: 27374  
Кол-во слов в этом тексте: 1386
Версия для печати:  Версия для печати

Содержание

1. Введение
2. Palm OS SDK
3. Prc-tools
4. POSE
5. Guickachu и pilrc
6. Отладчик DDD
7. Среда разработки
Глава 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.

Кратко перечислю используемые программы:

Palm OS SDK

библиотеки и заголовочные файлы;

prc-tools

собственно кросс-компилятор gcc и другие инструменты для компиляции и сборки программ под Palm OS;

pose

эмулятор Palm. Позволяет отлаживать программы с помощью m68k-palmos-gdb, без риска потерять все данные на реальном устройстве;

pilrc

компилятор ресурсов для Palm OS. Преобразует rcp (текстовый файл описания ресурсов) в бинарные файлы формата Palm OS

guikachu

графический редактор ресурсов Palm OS (на базе gtk/gnome). Позволяет “рисовать” интерфейс приложений Palm OS

ddd

графический frontend к отладчику gdb, включая m68k-palmos-gdb;

gvim

редактор исходных текстов. Подойдет любой привычный редактор или среда;

Глава 2. Palm OS SDK

Для работы с gcc надо на странице http://www.palmos.com/dev/tools/sdk/ перейти в раздел нужной версии SDK и скачать архив в разделе “Unsupported Palm OS SDK 5.0 for PRC-Tools”. Я надеюсь, что rpm установит файлы куда надо, а для архива tar.gz надо делать так:

  1. создать каталог /usr/local/palmdev/sdk35 и линк на неё — /usr/local/palmdev/sdk (что-бы легко переключаться между версиями SDK):

    mkdir /usr/local/palmdev/sdk35

    ln -s /usr/local/palmdev/sdk35 /usr/local/palmdev/sdk

  2. Из архива скопировать содержимое каталога Palm OS 3.5 Support/Incs в каталог /usr/local/palmdev/sdk35/include, и Palm OS 3.5 Support/GCC Libraries — в /usr/local/palmdev/sdk35/lib

Документацию можно найти на http://www.palmos.com/dev/support/docs/ в разных форматах. Нам больше подойдет вариант в HTML или PDF.

Глава 3. Prc-tools

Скачать последнюю версию можно с домашней страницы prc-tools. На текущий момент это версия 2.2, которая поддерживает последние модели Palm-based устройств на ARM-процессорах и Palm OS SDK 5.

В пакет prc-tools входят программы:

build-prc

строит из бинарных файлов и ресурсов файл .prc готовый к установки на Palm;

m68k-palmos-ar

позволяет создавать свои библиотеки

m68k-palmos-c++

для Palm можно писать программы на C++ (это тема отдельного разговора и многочисленных споров);

m68k-palmos-gdb

отладчик программ. Можно использовать линк с реальным устройством или эмулятором POSE;

Другие инструменты

prc-tools во многом повторяет стандартный пакет gcc, и изначально являлся хаком 2.95 версии gcc. Поэтому команды и ключи prc-tools не покажутся необычными программисту, работавшему с gcc. Специфичные для Palm OS опции можно посмотреть на соответсвующей странице.

Глава 4. POSE

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. Для этого надо:

  1. Установить и настроить пакет pilot-link (см. мою статью Подключение и работа с Palm OS наладонниками в Linux);

  2. Установить на Palm программу getrom2.prc:

    pilot-xfer -i /usr/share/pilot-link/getrom2.prc

    Для старых моделей, с объёмом ROM в 512Кб можно использовать getrom.prc;

  3. Запустить на Palm установленную программу getrom и нажать кнопку Start. В Linux запустить программу pi-getrom;

  4. Полученный pilot.rom можно загружать в POSE.

Замечание

На последних моделях Palm getrom2.prc использовать нельзя. Достаточно нажать кнопку синхронизации и запустить pi-getrom.

Теперь можно запустить и настроить POSE. В открывшемся окне POSE нажатием правой кнопки мыши вызывается меню. Выберите пункт New и заполните поля:

  • В поле ROM file надо открыть пункт Other и выбрать файл, скачанный с помощью pi-getrom;

  • В поле Device появиться номер модели;

  • В поле Skin выберите шкурку;

  • В поле RAM size — размер памяти вашего виртуального Palm;

Вот как выглядит POSE, настроенный на Palm m505:

POSE, настроенный на Palm m505

Теперь можно устанавливать и отлаживать программы.

Глава 5. Guickachu и pilrc

Программа для 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:”.

Глава 6. Отладчик DDD

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 останется черный, пока не пойдет вывод из программы. Теперь можно как обычно устанавливать точки прерывания, просматривать значения переменных и т.д. Вот как выглядит сессия отладки:

Глава 7. Среда разработки

Под Linux можно собрать для себя эффективную среду разроботки. Выбор довольно широк: vi, emacs, Anjuta, KDevelop. Все эти программы можно настроить для разработки под Palm OS. Универсальным и мощным средством работы является make.

Ниже приведен примера файла Makefile с комментариями.

# Имя prc файла
PRC = name.prc
# Уникальный идентификатор приложения.
# Должен быть зарегистрирован на сайте
# http://dev.palmos.com/creatorid/
CID = TeSt
# Имя приложения, показываемое в Launcher
NAME = Name
# Объектные файлы, из которых состоит программа
OBJS = module1.o module2.o module3.o
# Файл, созданный guikachu
GUI = name.guikachu
# Файл, создаваемый в результате работы guikachu2rcp
RCP = name.rcp

# Базовая программа вызова компилятора
CCBASE = m68k-palmos-gcc -DOS35 -DPRC2 -fno-exceptions -fno-rtti 
# Для окончательного проекта эту опцию можно закомментировать
DEBUG = -g
CC = $(CCBASE) $(DEBUG) 
# Вызов команды, генерирующей зависимости файлов
DEPEND = makedepend

# Сначало надо вызывать pilrc, т.к. идентификаторы ресурсов
# уже могут использоваться в программе
all: $(RCP) $(PRC)

# rcp файл зависит от guikachu
$(RCP): $(GUI)
	guikachu2rcp $(GUI)
	pilrc -H $(NAME).h $(RCP)

# prc файл зависит от ресурсов и объектных модулей
$(PRC): $(RCP) $(OBJS)
	$(CC) $(OBJS) -o $(NAME)
	build-prc $(PRC) "$(NAME)" $(CID) $(NAME) *.bin
	# Выведем результат сборки, что-бы контролировать размер
	ls -l *.prc

# Объектные модули получаются в результате компиляции всех файлов
# с расширением .c (или .cpp) - 
# нужное раскоментировать

# .cpp.o:
.c.o:
	$(CC) -c $< 

# Для генерации зависимостей от .h файлов, используйте make dep
#dep: *.cpp
dep: *.c
	$(DEPEND) *.c

# Очистить рабочую директорию
clean:
	rm -f *.bin
	rm -f *.o
	rm -f $(NAME)
	rm -f *.grc
	rm -f *~
	rm -f $(RCP)
  

При подготовке статьи использованы материалы с сайта http://www.abc92.ru

[ Назад в Советы и секреты ]


(©) 1999-2017 PalmQ Tech. Полное или частичное воспроизведение материалов данного сайта допускается только
при условии наличия прямой активной индексируемой и видимой ссылки на сайт или на конкретный материал.
Яндекс.Метрика