Инструменты для 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.
Теперь нужно загрузить и распаковать файл 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.
PerlPerl – один из самых мощных языков обработки информации и программирования для интернет-серверов и информационных систем. Его популярность обусловлена еще и тем, что для 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.
#! 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.5import 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/. Сделав это, вы получите доступ к большому количеству разных примеров использования рдсс, утилит, а также сможете задать вопросы самому Виталию Пронькину, который и разработал эту среду.Данный текст является ознакомительным фрагментом.