Пишем под WinCE на Lazarus 1.1 / FreePascal 2.6.1 (инструкция 2012)
главная страница статьи файлы о сайте ссылки

Пишем под WinCE на Lazarus 1.1 / FreePascal 2.6.1 (инструкция 2012)

Георгий Мошкин
tmtlib@narod.ru

Из этой статьи вы узнаете откуда скачать свежую сборку Lazarus и начать писать программы под WinCE. В интернете есть статьи на эту тему, но они для старых версий Lazarus-а, а в меню у него кое-что сменилось за это время. Как-то раз я прикупил девайс LJD-eWin3S китайской фирмы BOMC (http://www.bluemcu.com/), относительно недорог, имеет три последовательных порта (2 X RS-232, 1 X RS-485), разъём под SD карту, пищалку, возможно есть входы АЦП - детально ещё не смотрел, т.к. девайс валялся без дела до недавнего времени.

wince2.jpg

Знатоки я думаю сразу оценят возможности подобного экранчика для отображения параметров промышленного оборудования и прочих применений, в особенности учитывая весьма качественный сенсорный экран без глюков. Питание 12 вольт, на входе стоит линейный стабилизатор. Процессор - какой-то ARM фирмы Samsung (какой не видно из-за наклейки). Да, забыл упомянуть наличие USB порта и что-то вроде отладочного miniusb. На девайсе установлена лицензионная китайская версия Windows CE 5.0:

wince1.jpg

На диске много примеров на Microsoft Visual Studio 2005, документация в основном на китайском, где-то на английском. Из этих примеров можно подсмотреть как лучше пользоваться WinAPI на этом девайсе Для написания программ логично использовать наисвежейший Lazarus 2012 года, в нём есть много вкусностей: поддержка множества графических форматов и прелестей Delphi, и всё прекрасно портируется на WinCE.

А теперь пошаговая инструкция:

1. Скачиваем две свежие сборки Lazarus с сайта http://freepascal.dfmk.hu/test/lazarus/
Вам нужно скачать два файла, первый - это сам Lazarus, а второй добавляет необходимые файлы для компиляции под WinCE. Если у вас что-то не будет работать, попробуйте скачать версии, как у меня на картинке:
wince7.png
2. Установите сначала первый файл (win32), а потом второй (arm-wince-win32) в одну директорию.
Можно прямо в каталок c:\lazarus\, как и предлагается по умолчанию

3. Создайте новый проект, поместите пару кнопок для теста.

wince4.png

4. Настройте компилятор на создание приложений ARM под WinCE:
В меню Project > Project Options ...
wince5.png

Выбираем пункт Compiler Options, выставляем Target Os: WinCE, Target CPU family: arm:
wince6.png

В пункте Build Modes выставляем IDE macro values: LCLWidgetType: wince:
wince9.png

5. Переписываем откомпилированную программу на девайс и запускаем:
В процессе создания программы и выхода в полноэкранный режим были некоторые трудности, но о них раскажу в другой статье. Вот результат вна экране мини-пк:

wince3.jpg

Для отладки существуют более удобные способы, например эмулятор WinCE, либо подключение мини-ПК к компьютеру и настройка Lazarus-а таким образом, чтобы компилируемый файл автоматически записывался на устройство и запускался после компиляции.

Стоит отметить, что при компиляции файлы получаются по 10 мегабайт даже для маленькой формы! Эта проблема решается последовательным натравливанием на полученный EXE файл двух утилит (arm-wince-strip и UPX). Для этого можно создать bat-файл, немного автоматизировав процесс:

wince8.png

После удаления лишних секций и упаковки файл занимает где-то 600кб.