Lazarus. Уменьшение размера исполняемого файла

При компиляции проектов Lazarus размер исполняемого файла может привышать "разумные" размеры. Так, например, размер приложения, состоящего из одной формы, с настройками компиляции "по умолчанию", составляет 20,7 Мб и 13,9 Мб для Linux и Windows систем соответственно.

Для того что бы уменьшить размер исполняемого файла необходимо настроить параметры компиляции. Для этого в IDE Lazarus выбираем "Project -> Project Options..." ("Проект -> Параметры проекта...") и устанавливаем флажки на вкладках:

1. "Code Generation" (Генерация кода)
- "Smart linkable (-СХ)" - Умная компоновка

Lazarus. Вкладка "Code Generation" (Генерация кода)


2. "Linking" (Компоновка)
- Use external gdb debug symbol file (-Xg) - Использовать внешний файл отладочных символов GDB
- Strip symbol from executable (-Xs) - Вырезать символы из исполняемого файла
- Link smart (-ХХ) - Умная компоновка

Lazarus. Вкладка "Linking" (Компоновка)


Таким образом получается сократить размер исполняемого файла до 3,3 Мб (Linux) и 1,7 Мб (Windows).

Использовав утилиту upx (сжимает исполнительный файл, официальная страница) можно уменьшить размер дополнительно - до 1,0 Мб (Linux) и 0,6 Мб (Windows).

Для Linux мне пришлось установить пакет "upx-ucl" через Synaptic. Для Windows необходимо скачать вот этот архив.

Пример использования утилит для Linux:

upx --best путь_к_исполнительному_файлу


и Windows:

upx.exe --best путь_к_исполнительному_файлу

125kHz RFID reader

Этот считыватель предназначен для чтения 125кГц RFID ключей по протоколу EM4100. Данная реализация - это повторение авторской конструкции взятой с: http://www.serasidis.gr/circuits/RFID_reader/125kHz_RFID_reader.htm, поэтому подробности работы устройства описывать не буду.

Схема 125kHz RFID reader мной "доработана" только в части подключения звукового излучателя (бипера из старого будильника).


Схема 125kHz RFID reader


В качестве переходника USB-COM взят китайский PID_2303, от него же осуществляется и питание девайса. Выход Rx (TTL) считывателя должен быть подключен ко входу RX переходника. Связь девайса с ПК осуществляется на скорости 2400 бод.


Китайский USB-COM переходник PID_2303


Катушка намотана проводом диаметром 0,5 мм, 116 витков на оправке диаметром 60 мм. Автор рекомендует + 2-3 витка для оптимальной настройки расстояния для считывания карты (отмотал - считал карту - сделал выводы). У меня считывание карты работает на расстоянии 5-6 см от катушки с количеством ровно 116 витков.


Катушка для 125kHz RFID reader


Разработка печатной платы выполнялась в программе Sprint-Layout v. 5.0. Размер печатной платы получился 47х21 мм.


Печатная плата 125kHz RFID reader


Печатная плата, изготовленная по технологии ЛУТ:



Готовое устройство:







Девайс помещен в пластиковый корпус и залит силиконом:



Устройство в корпусе:


Общий вид 125kHz RFID reader


Пример настройки программы терминала для работы со считывателем:



Пример чтения карты собственным обработчиком RFID данных:



А это чтение RFID карты в ОС Linux в программе cu:



Видео работы 125kHz RFID reader:


Прошивка микроконтроллера ATTINY13 выполняется с помощью BAT файлов (запускаем сначала fuseprog.bat затем progprog.bat) включенных в архив, или с помощью программы AVRDUDESHELL. Программатор - USBASP настроенный на низкоскоростное программирование. Подключение программатора к девайсу - переходником версии 4.

Теперь о проблемах, которые возникли при изготовлении 125kHz RFID reader:

  • HEX файл, предоставляемый на странице автора (под ATTINY13) у меня не заработал, поэтому пришлось искать старые архивы с программой.
  • Звуковое оповещение о считывании RFID не работает. Судя по исходникам, эта функция отключена.

  • Скачать архив 125kHz RFID reader одним файлом.

    Архив содержит:

  • Схему 125kHz RFID reader.
  • Печатную плату 125kHz RFID reader в формате LAY.
  • Исходный код проекта в AVR Studio 6.
  • Скомпилированный HEX файл проекта.
  • Программу AVRDUDE для прошивки микроконтроллера.
  • BAT файлы для быстрой прошивки программы и фьюзов микроконтроллера.
  • Windows драйвер для USB\VID_067B&PID_2303&REV_0300 (китайский переходник USB-COM).
  • Программу терминала для проверки работы считывателя.

  • Девайсы. Китайский USB - COM переходник

    На этой странице можно скачать драйвер для ОС Windows 7 для китайсого переходника USB - COM с идентификатором USB\VID_067B&PID_2303&REV_0300 (PID_2303&REV_0300):


    Китайский USB - COM переходник PID_2303&REV_0300


    Скачать драйвер для ОС Windows 7 для PID_2303&REV_0300.