Инструменты для On-Board программирования

Инструменты для On-Board программирования

Pocket ViC

Созданная Джимом Стюартом программа совмещает в себе текстовый редактор Vi и компилятор языка C. Программу можно загрузить с одного из указанных в начале главы сайтов.

Установка этой программы предельно проста. Нужно загрузить файл, распаковать архив в каталог ViC, после чего этот каталог можно скопировать на устройство. Программа запускается на Pocket PC с процессорами ARM (vicarm110.exe) и MIPS (vimips.exe).

После запуска программы активируется окно редактора Vi (рис. 7.12).

Рис. 7.12. Окно редактора Vi.

Если до сих пор вы не сталкивались с linux-системами в минимально необходимой конфигурации, то вы вряд ли имели возможность соприкоснуться с этим редактором. Скорее всего, вашей первой реакцией будет недоумение. Ведь текстовый редактор не позволяет даже печатать! Но сначала нужно прочитать файл readme.txt и обратить внимание на раздел vi editing keystrokes. Чтобы перейти в режим редактирования, необходимо нажать сочетание клавиш `+o или `+i. Перемещаться по редактируемому тексту при помощи клавиш управления курсором тоже не получится. И многое еще в этом редакторе покажется странным для программиста, привыкшего к полноценным редакторам больших IDE. Но на самом деле все в этом редакторе вполне логично. Ведь он был сделан системными Unix-программистами, привыкшими барабанить по клавишам с пулеметной скоростью и не желающими перемещать пальцы на несколько сантиметров в сторону, чтобы дотянуться до клавиш со стрелками.

Таким образом, эта программа подходит двум категориям энтузиастов – тем, кто хочет в дороге немного освоиться в языке C, и тем, кто вдруг вознамерился сделаться системным администратором на Unix-системе.

И у тех, и у других должны быть крепкие нервы, чтобы, осваивая Vi, не разбить свой Pocket PC.

Python

Надо сказать, что я долгое время находился в заблуждении относительно этого языка. Мне почему-то казалось, что Python это достаточно простой, легкий и весьма ограниченный в возможностях язык. Более близкое знакомство с Python меня удивило. Список преимуществ этого языка достаточно обширен.

? Объектно-ориентированный.

? Мощная поддержка математики.

? Встраиваемый язык (имеет API для встраивания в программы на любом языке).

? Расширяемый язык (имеет API для подключения модулей на C и C++).

? Свободно распространяемый язык.

Поскольку Python все шире применяется сейчас по всему миру, то его стоит изучить. Получить Python для Pocket PC можно с сайта разработчика www.murkworks.com.

Установка и запуск чрезвычайно просты. Необходимая последовательность действий приведена в следующем списке.

? Распаковать загруженный архив, в результате чего будут созданы каталоги Program Files и Windows.

? Скопировать оба каталога в корневой каталог Pocket PC.

? Войти в каталог WindowsStart Menu, и запустить файл Pocket PC Python.exe.

После этого на экране в интерактивном режиме будет выведена среда выполнения Python (рис. 7.13).

Рис. 7.13. Интерактивная оболочка Python.

Можно набрать в строке приглашения 2+3, а затем нажать клавишу Enter. На экран будет выведен результат. Убедившись, что обещанная мощная математика на месте, можно отправиться на сайт www.python.ru и загрузить книгу «Язык программирования Python», Г. Россум, Ф. Л. Дж. Дрейк, Д. С. Откидач и др.

Scheme

А это совсем другой язык и совсем другое программирование. В отличие от большинства привычных алгоритмических языков программирования, scheme (урезанный диалект языка Lisp) относится к языкам функционального программирования. Pocket Sheme, так же как и Pocket Python, вряд ли найдет применение непосредственно на Pocket PC, но идеален, как учебное пособие для желающих изучить этот язык.

Сайт разработчика располагается по адресу www.mazama.net/scheme/pscheme.htm.

Со страницы Download нужно загрузить соответствующий cab-файл, скопировать его на Pocket PC и установить.

После установки в каталоге Program FilesPocket Scheme будут размещены файлы pscheme.exe и pscmedit.exe. Файл pscheme.exe запускает интерпретатор sсheme в интерактивном режиме (рис. 7.14).

Рис. 7.14. Интерпретатор sсheme в интерактивном режиме.

Файл pscmedit.exe запускает простой редактор текстов scheme-программ с элементарной поддержкой некоторых особенностей синтаксиса этого языка.

Запустив scheme, и, возможно, выполнив пару-другую функций, подсмотренных на рисунке, вы захотите разработать более содержательную программу. В рунете крайне мало информации о sсheme, но начальное представление можно получить, прочитав перевод руководства по адресу www.shounen.ru/docs/guile-ref. А если перевод и программирование на этом языке вас увлекут, то окончательно втянуться в процесс вам поможет сайт www.schemers.org.

DSForth

Форт – еще один «странный» язык. Если вам очень нравится программировать на очень низком уровне, если вы до судорог в пальцах хотите научиться создавать программы, при взгляде на которые программистов на других языках будет пробивать холодный пот, – Форт как раз для вас. В Форте почти все делается при помощи стека. Все введенные числа попадают в стек, чтобы сложить два числа их надо поместить в стек, результат операции тоже помещается в стек. Форт похож на очень сложный макроассемблер, а синтаксис его больше, чем у какого-либо еще языка схож с логикой организации машинных кодов.

Найти Форт для Pocket PC можно на сайте разработчика www.delosoft.com. Нужно загрузить файл ds2.ARM.CAB, скопировать его на устройство и запустить. После этого Форт будет установлен.

Запускать Форт придется в два этапа.

1. Сначала в каталоге Program FilesDsforth нужно запустить файл dsforth2.exe. Он выдаст одно сообщение (щелкните на кнопке OK), а затем через некоторое время он выдаст сообщение о том, что все сохранено успешно. Второе сообщение можно ждать долго. Если оно не появится примерно через минуту, нужно активировать список настроек, запустить инструмент управления распределением памяти, в списке запущенных программ найти сообщение от Forth и активизировать его.

2. После того как dsforth2.exe отработает, в папке Dsforth появится файл ds2c.exe. Это, собственно, и есть сам Forth. После запуска этого файла на экран будет выведен Forth в интерактивном режиме (рис. 7.15).

Рис. 7.15. Forth в интерактивном режиме.

Сейчас самое время остановиться и вспомнить, что в Forth все операции описываются при помощи стека и обратной нотации, и если вы попытаетесь взаимодействовать с этой программой, как с любой другой средой в интерактивном режиме, ничего кроме сообщений об ошибках вы не получите.

Нужно зайти на сайт www.forth.org.ru, открыть раздел Литература и скачать все учебники. После этого нужно скопировать с Pocket PC на настольный компьютер файл ds2c.str. Это словарь. Читайте книги, сравнивайте те команды, которые находите в книгах со словами в словаре, и таким образом осваивайте этот странный, но увлекательный язык. Если вас не затрудняет чтение на английском, то стоит обратить внимание на страницу www.forth.org/tutorials.html.

К сожалению, встроенной справки для этого языка не существует. Разработчики отправляют программистов читать стандарт на английском языке, но на сайте www.forth.org.ru этот же стандарт есть на русском языке.

Утилиты с сайта www.rainer-keuchel.de

На этом сайте расположено множество утилит и языков программирования, портированных в Pocket PC из соответствующих программ GNU (свободного программного обеспечения). Соответственно, они бесплатны (это плюс) и обновляются тогда, когда у автора до них доходят руки (это минус).

Все программы, которые будут рассмотрены в этом разделе, загружаются либо из списка, расположенного на странице www.rainer-keuchel.de/wince/dirlist.html, либо из списка www.wince-devel.org/wince/dirlist.html.

Работа всех программ основана на библиотеках celib и cedialogs. Кроме этого, большинство программ требует некоторой конфигурации и записи ключей в реестр. По этой причине мы начнем знакомство с программами сайта с установки данных библиотек и описания некоторых утилит, используемых на рабочей станции для отладки и конфигурации Pocket PC.

celib и cedialogs

Необходимо загрузить файлы cedialogs-1.05-all-platforms.tar.gz, celib-3.13-dll-bin-all-platforms.tar.gz и распаковать их. С этой задачей прекрасно справляется WinZip. В каталог Windows на устройстве Pocket PC нужно скопировать файл celib.dll из каталога wince-arm-pocket-wce300-release и файлы cedialogs.dll и cedialogsx.dll из каталога wince-arm-pocket-wce300.

Desktop tools

Теперь нужно загрузить и распаковать файл wince-desktop-tools.tar.gz. Поскольку эти утилиты будут использоваться на настольном компьютере, их надо скопировать в каталог, который будет доступен из интерпретатора команд Windows. Затем нужно запустить интерпретатор команд Windows. Для этого следут выполнить команду Пуск ? Выполнить, затем набрать cmd и нажать клавишу Enter.

Назначение и использование утилит расшифровывается в следующем списке.

? Файл cecopy.exe копирует файлы между Pocket PC и рабочей станцией. Формат команды достаточно прост: cecopy.exe <источник> <приемник>. Команда cecopy.exe се: WindowsAlarml.wavрс: с: копирует файл Alarml.wav из каталога Windows на Pocket PC в корневой каталог на диске C: рабочей станции.

? Файл cedel.exe удаляет указанный файл на Pocket PC. Формат команды достаточно прост: cedel.exe <имя_файла>. Команда cedel.exe l.txt удалит файл l.txt в корневом каталоге Pocket PC.

? Файл cedir выводит в окно командного интерпретатора на рабочей станции содержимое указанного каталога на Pocket PC. Формат команды достаточно прост: cedir [-1] <имя_каталога>. Ключ -1 включает детализированный вывод. Команда cedir -1 Temp выводит подробный список файлов в каталоге Temp. Корневой каталог нужно обозначать символом .

? Файл ceexec.exe позволяет удаленно запускать указанную программу. Формат команды: ceexec.exe <имя_программы> <ключи_командной_строки>]. Команда ceexec.exe Windowscalc.exe запускает калькулятор на Pocket PC.

? Файл cegetinfo.exe выводит на рабочей станции информацию о занятой памяти на рабочей станции.

? Файл cemkdir.exe создает каталог на Pocket PC. Формат команды: cemkdir.exe <имя_каталога>. Команда cemkdir.exe MyTmp создает папку MyTmp в корневом каталоге Pocket PC.

? Файл cereg.exe вносит одну строку в реестр Pocket PC. Формат команды не так уж и сложен: cereg – к <ключ_реестра> – п <имя> – v <значение>. Команда cereg – k HKLMXEnvironment – n PATH – v MyProgin добавляет в раздел реестра HKLM Environment ключ PATH со значением MyProgin.

Утилита cereg.exe понадобится прямо сейчас. Для правильной работы библиотеки celib.dll в реестр необходимо добавить несколько значений. Поскольку cereg.exe добавляет только одну строку, проще всего будет создать выполняемый файл, который будет содержать вызовы cereg.exe для каждой строки. Код соответствующего командного файла приведен в листинге 7.1.

Листинг 7.1

@echo off

cereg – k HKLMEnvironment – n COMPUTERNAME – v Pocket

cereg – k HKLMEnvironment – n EMACSDATA – v «Storage Cardemacsetc»

cereg – k HKLMEnvironment – n EMACSDIR – v «Storage Cardemacs»

cereg – k HKLMEnvironment – n EMACSDOC – v «Storage Cardemacsetc»

cereg – k HKLMEnvironment – n EMACSLOADPATH – v «Storage Cardemacslisp»

cereg – k HKLMEnvironment – n EMACSPATH – v «Storage Cardemacsin»

cereg – k HKLMEnvironment – n HOME – v «Storage CardVolkov»

cereg – k HKLMEnvironment – n PATH – v «Storage Cardin»

cereg – k HKLMEnvironment – n SHELL – v cmd

cereg – k HKLMEnvironment – n TEMP – v Temp

cereg – k HKLMEnvironment – n TMP – v Temp

cereg – k HKLMEnvironment – n TMPDIR – v Temp

cereg – k HKLMEnvironment – n USERNAME – v Volkov

cereg – k HKLMEnvironment – n UNIXROOTDIR – v «Storage Card»

Этот файл нужно сохранить с именем myreg.bat в том же каталоге, в котором находится файл cereg.exe. Теперь нужно запустить этот файл из окна командного интерпретатора. После некоторой паузы в окно вернется приглашение командной строки. Записи внесены в реестр.

ПРИМЕЧАНИЕ.

Конечно, имя пользователя, имя домашнего каталога и расположение других каталогов в вашем случае могут быть иными. Я использую Storage Card, чтобы экономить место в основной памяти.

Редактор ED

Загрузить файл editor-wince-arm-pocket-wce300.tar.gz, распаковать его, и файл editor.exe скопировать в каталог Storage Cardin на Pocket PC. Теперь можно его запускать. В вашем распоряжении появился простой и легкий редактор для редактирования текстов программ на разных языках (рис. 7.16).

Рис. 7.16. Редактор ED.

Редактор EMACS и язык LISP

Загрузить и распаковать файлы emacs-wince-all-platforms.tar.gz и emacs-wince-arm-xbuild-2.03.tar.gz. Затем нужно скопировать папки emacs, etc, home из emacs-wince-all-platforms в каталог Storage Card на устройстве. Файл emacs.exe из emacs-wince-arm-xbuild-2.03 нужно скопировать в папку Storage Cardemacsin на устройстве. Поскольку все необходимые данные в реестр уже внесены, то программу можно сразу запускать (рис. 7.17).

Рис. 7.17. Редактор Emacs.

Внешний вид редактора тоже непривычен программисту, привыкшему к работе в Windows. Этот редактор тоже пришел на Pocket PC из Unix-систем. Стоит обратиться к документации, расположенной на странице, находящейся по адресу http://www.linux.org.ru/books/GNU/emacs/emacstoc.html.

Кроме этого, Emacs позволяет практически беспредельно расширять свою функциональность, но для этого надо изучить еще один язык программирования Emacs LISP. Он описан на странице http://www.gnu.org/software/emacs/emacs-lisp-intro/htmlmono/emacs-lisp-intro.html.

Perl

Perl – один из самых мощных языков обработки информации и программирования для интернет-серверов и информационных систем. Его популярность обусловлена еще и тем, что для Perl существует огромное количество готовых наработок, модулей, скриптов практически на все случаи жизни.

Нужно загрузить файл perl-wince-arm-pocket-wce300.tar.gz, распаковать его и выполнить простую последовательность действий.

? Файл perl.exe нужно скопировать в папку Storage Cardin<$]interface> на устройстве.

? Файл perl56.dll нужно скопировать в папку Windows на устройстве.

? Папку lib нужно скопировать в папку Storage Cardusr на устройстве.

Теперь нужно открыть блокнот и набрать текст, приведенный в листинге 7.2.

Листинг 7.2

@echo off

set perlexe="Storage Cardinperl.exe"

set perllib="Storage Cardusrlibperl5"

cereg – k «HKLMEnvironment» – n «PERL5LIB» – v «%perllib%»

cereg – k «HKCR.pl» – n "" – v «perlfile»

cereg – k «HKCRperlfile» – n "" – v «Perl Script»

cereg – k «HKCRperlfileDefaultIcon» – n "" – v «%perlexe%,-1»

cereg – k «HKCRperlfileShellopencommand» – n "" – v «%perlexe% %%1»

Этот файл нужно сохранить с именем perlreg.bat в тот же каталог, где находится файл cereg.exe, после чего его нужно будет запустить.

На Pocket PC следует запустить редактор ED. Нужно создать файл me.pl, код которого приведен в листинге 7.3.

Листинг 7.3

#! inperl

$me = 5;

print $me;

Этот файл нужно сохранить и скопировать его в корневой каталог устройства. Потом следует запустить командный процессор (cmd.exe в каталоге Windows), набрать в строке приглашения команду cd Storage Cardin, а потом команду perl me.pl.

Если перейти в корневой каталог Pocket PC, то можно найти там файл perl-stdout.txt. Если в нем написано число 5, то все установлено правильно и работает. После этого стоит посетить страницу www.perl.org.ru/documentation и прочитать все рекомендации по использованию языка Perl.

Kaffe

Эта программа представляет больше учебный и исследовательский, нежели практический интерес. Возможно, именно вы сделаете из нее полноценное приложение. Kaffe это Java-система, предназначенная для запуска и компиляции Java-программ.

Нужно загрузить файлы kaffe-common.tar.gz и kaffe-wince-arm-hpc-wce300.tar.gz, распаковать их и скопировать содержимое папок kaffe-commonkaffe и kaffe-wince-arm-hpc-wce300kaffe в папку kaffe, созданную в корневом каталоге устройства.

Теперь нужно открыть блокнот и набрать в нем код, приведенный в листинге 7.4.

Листинг 7.4

@echo off

set kaffedir_f=kaffe

set kaffedir_b=kaffe

set kaffexe=kaffekaff.exe

cereg – k «HKLMEnvironment» – n «KAFFEHOME» – v «%kaffedir_f%»

cereg – k «HKLMEnvironment» – n «KAFFELIBRARYPATH» – v «%kaffedir_f%»

cereg – k « HKLMEnvironment» – n «KAFFECLASSPATH» – v".; %kaffedir_f%Klasses.jar"

cereg – k «HKCR.class» – n "" – v «javaclass»

cereg – k «HKCRjavaclass» – n "" – v «Java Class»

Нужно сохранить это файл с именем kaffereg.bat в тот же каталог, где находится файл cereg.exe, после чего можно запустить его.

Теперь о грустном. Сколько я ни пытался запустить хотя бы один jar-файл, это сделать мне не удалось. По этой причине не заработал у меня и OnBoard-компилятор kjc.jar. Тем не менее, java-программы можно запускать в этой среде. Для этого они должны быть скомпилированны с совместимостью java 1.2 и не содержать в себе классов JFCSWING.

Можно привести соответствующий пример. Для его выполнения на рабочей станции должен быть установлен JDK с версией не меньше 1.2. В Блокноте нужно набрать код, приведенный в листинге 7.5.

Листинг 7.5

import java.awt.*;

class Main extends Frame {

Main() {

super("Draw Example ");

setBackground(Color.black);

setBounds(20,80,200,200);

show();

}

public void paint(Graphics g) {

Insets insets = this.getInsets();

int x = insets.left, y = insets.top;

int w = getSize(). width-insets.left-insets.right;

int h = getSize(). height-insets.top-insets.bottom;

g.setColor(Color.red);

while (w > 0 && h > 0) {

g.clearRect(x++, y++, w, h);

g.fillRect(x++, y++, w-2, h-2);

w – = 4;

h – = 4;

}

}

static public void main(String[] args) {

new Main();

}

}

Нужно сохранить этот код в файле с именем Main.java в корневом каталоге диска C:. Теперь его нужно скомпилировать. Для этого следует открыть интерпретатор команд, перейти в корневой каталог диска C: и выполнить следующую команду:

javac main.java

Чтобы команда была выполнена, ваш компьютер должен знать путь к файлу javac.exe. Если в переменной PATH этого пути нет, то его надо набрать полностью. При успехе выполнение команды завершится без сообщений, а в корневом каталоге диска C: вы найдете файл Main.class. Это и есть java-программа. Теперь нужно скопировать файл Main.class в каталог kaffe на Pocket PC, запустить cmd.exe и перейти в корневой каталог устройства. Затем нужно выполнить команду:

kaff kaffeMain

Эта команда загрузит файл Main.class на выполнение. Результат работы программы показан на рис. 7.18.

Рис. 7.18. Выполнение Java-программы на Pocket PC.

Все остальное – в ваших руках. Вы можете писать программы на Java и выполнять их на Pocket PC. Также вы можете взять с сайта www.rainer-keuchel.de код kaffe и усовершенствовать его, добавив в него поддержку всех основных классов Java 2.

PGCC

Это полноценный On-Board СС++ компилятор для Pocket PC. Как говорили древние римляне – «ничего, кроме хорошего». На самом деле это отлично сделанная российским программистом система. Загрузить сам компилятор можно с одного из указанных в начале главы сайтов.

После загрузки архива и его распаковки вы обнаружите в архиве три файла:

? pgcc.ARM.CAB – сама программа.

? cmd.arm.cab – интерпретатор командной строки от Microsoft.

? pocketconsole.arm.cab – интерпретатор командной строки от SymbolicTools.

Нужно скопировать их на Pocket PC и установить.

В корневом каталоге будет создана папка рдсс, содержащая в себе компилятор, необходимые библиотеки и пример их использования. Пример взят из Pocket PC SDK и практически без изменений компилируется под PGCC. Для того чтобы откомпилировать и запустить пример, надо войти в папку pgccsamp, и запустить файл menu.bat. Некоторое время программа будет компилироваться, и в каталоге pgccsampmenu после компиляции можно найти файл menu.exe. После его запуска станет видно, как можно создавать сложное основное меню и разные виды контекстных меню.

Проанализировав файл menu.bat, вы поймете, в какой последовательности компилируется и собирается любой проект. Для дальнейшей работы нужно читать книги по C++ и страничку www.opennet.ru/docs/RUS/gcc. Кроме того, не забудьте оформить членство в группе http://groups.yahoo.com/group/pocketgcc/. Сделав это, вы получите доступ к большому количеству разных примеров использования рдсс, утилит, а также сможете задать вопросы самому Виталию Пронькину, который и разработал эту среду.

Данный текст является ознакомительным фрагментом.