Возможно вы искали: 'Great Pyramids: Romanc...'

May 15 2025 18:17:14
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Разработка программ для PalmOS под Linux (palm gcc debug)

Разработка программ для PalmOS под Linux (palm gcc debug)

Ключевые слова: palm, gcc, debug, (найти похожие документы)

From: Сергей Индлин <indlin на abc92 тчк ru>
Date: Mon, 2 Aug 2004 14:31:37 +0000 (UTC)
Subject: Разработка программ для PalmOS под Linux

Оригинал: http://www.abc92.ru/articles/palm/linuxdev

Разработка программ для PalmOS(TM) под Linux

Сергей Индлин
<indlin на abc92 тчк ru>
JID: serj на abc92 тчк ru

История переиздания

Издание 0.3 05 Dec 2002 Alexandre Prokoudine
Разметка оптимизирована для проекта документации ALT Linux.
Издание 0.2 04 Dec 2002
Добавлена лицензия FDL
Издание 0.1 02 Dec 2002
Начальный вариант


Аннотация

Эта статья посвящена программам под Linux, позволяющим разрабатывать
приложения для PalmOS(TM).


Содержание

1. Введение
2. PalmOS SDK
3. Prc-tools
4. POSE
5. Guikachu и pilrc
6. Отладчик DDD
7. Среда разработки


Глава 1. Введение
-----------------

В этой статье я хотел бы остановиться подробнее на разработке программ
для PalmOS(TM) в Linux. Я использую дистрибутив ALT Linux Master
2.0 (http://www.altlinux.ru/) с настроенным репозитарием пакетов
Sisyphus (http://www.altlinux.ru/index.php?module=sisyphus ), откуда можно
легко установить большинство необходимых программ. Конечно, все
используемые программы можно скачать в интернете, и использовать
бесплатно.

Я не буду подробно описывать технологию программирования в PalmOS(TM)
-- для этого много документации можно найти в Интернете. Главными
справочниками разработчика являются Palm OS Companion and
Reference (http://www.palmos.com/dev/support/docs/palmos50-html.zip).

На том же сайте вы можете найти много полезной документации,
предназначенной для разработчиков: http://www.palmos.com/dev/support/docs/.

Неплохой форум, посвященный разработке под PalmOS(TM) можно найти на сайте
http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=palmos.

Из конференций (news-groups) могу порекомендовать сервер
news://news.falch.net -- конференция pilot.programmer.gcc (на
английском). Хороший каталог ресурсов по разработке для Palm на
OpenNet (http://www.opennet.ru/prog/sml/71.shtml).

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

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

prc-tools
собственно кросс-компилятор gcc и другие инструменты для
компиляции и сборки программ под PalmOS(TM);

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

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

guikachu
графический редактор ресурсов PalmOS(TM) (на базе gtk/gnome).
Позволяет "рисовать" интерфейс приложений PalmOS(TM)

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

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


Глава 2. PalmOS 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
(http://prc-tools.sourceforge.net/). На текущий момент это версия 2.2,
которая поддерживает последние модели Palm-based устройств на
ARM-процессорах и PalmOS 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. Специфичные для
PalmOS(TM) опции можно посмотреть на соответсвующей странице
(http://prc-tools.sourceforge.net/doc/prc-tools.html).


Глава 4. POSE
-------------

POSE это эмулятор PalmOS(TM)-based машин. Существует версия для
UNIX(TM), MacOS(TM), Windows(TM). Исходники можно найти на
соответствущей странице (http://www.palmos.com/dev/tools/emulator/).
Для дистрибутивов 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
(http://www.palmos.com/dev/tools/emulator/#roms ). Также можно
скопировать ROM с самого устройства Palm. Для этого надо:

1. Установить и настроить пакет pilot-link (см. мою статью
Подключение и работа с PalmOS наладонниками в Linux,
http://www.abc92.ru/articles/palm/synclinux);

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;

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


Глава 5. Guikachu и pilrc
-------------------------

Программа для PalmOS(TM) состоит из ресурсов. Сам код является
специфичным типом ресурса. Также как и текст программы, ресурсы
описываются текстовым файлом (стандартное расширение .rcp), который
можно редактировать напрямую в текстовом редакторе.

Для визуального редактирования ресурсов существуют такие программы как
pilrcedit и guikachu. Pilrcedit (http://www.wn.com.au/rnielsen/pilrcedit/)
-- это Java-приложение, и мне показалось не слишком удобным.
Guikachu написан под Gtk+/GNOME, использует XML, как формат сохраняемых
файлов, и активно развивается. Последняя стабильная версия на текущий
момент -- 1.2.3. Скачать можно с домашней страницы (http://cactus.rulez.org/projects/guikachu).

Для дистрибутивов ALT Linux, guikachu можно установить командой
apt-get install guikachu. Чтобы преобразовать исходный файл guikachu
в RCP-файл, достаточно дать команду guikachu2rcp name.guikachu или выбрать
пункт Экспорт RCP из меню Файл.

Guikachu поддерживает следующие типы ресурсов:
* Форма;
* Диалог;
* Меню;
* Строка;
* Списки строк;
* Текстовые поля;

В формы можно добавлять: статический текст, поля, кнопки, списки,
таблицы, пользовательские элементы. Интерфейс достаточно понятен и
удобен.

После получения rcp файла, его необходимо преобразовать в бинарный
формат. Для этого служит программа pilrc
(http://www.ardiri.com/index.php?redir=palm&cat=pilrc) (пользователи Sisyphus
могут ее установить командой apt-get install pilrc).

Синтаксис достаточно прост: pilrc -H name.h name.rcp. По этой команде
создадутся необходимые .bin-файлы, и заголовочный файл с определениями
идентификаторов.

Замечание

Все идентификаторы ресурсов в PalmOS(TM) должны быть числовыми, но в
программе удобнее пользоваться говорящими именами. Ключ -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. Все эти программы можно
настроить для разработки под PalmOS(TM). Универсальным и мощным
средством работы является 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://forum.abc92.ru/phpBB2/viewforum.php?f=7

Данная статья распространяется под лицензией GNU Free Documentation License
версии 1.2 (http://www.gnu.org/copyleft/fdl.html ). Исходный текст в формате
docbook доступен для загрузки (http://www.abc92.ru/articles/palm/linuxdev/linuxdev.docbook).

© "A.B.C.-92" 2002
1148 Прочтений •  [Разработка программ для PalmOS под Linux (palm gcc debug)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Разработка программ для PalmOS под ... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка