ПОРТИРОВАНИЕ ЯДРА СИСТЕМЫ ЧПУ НА ARM ПЛАТФОРМУ ИСПОЛЬЗУЯ ОДНОПЛАТНЫЙ КОМПЬЮТЕР RASPBERRY PI
Задачи:
1. Анализ целевых аппаратных платформ
2. Анализ возможных методов и способов кроскомпиляции.
3. Разработка способа кросскомпиляции и портирования ядра системы ЧПУ на целевые плафтформы
4. Тестирование и апробация полученных результатов
Современные ПК проводят полный сбор сведений об объекте управления и различных входных воздействиях с целью решения всех задач управления без дополнительной аппаратной поддержки, программным путем.При использовании систем реального времени для выполнения функций ядра системы управления обычно используются платформы x86 и x64,Intel-архитектура процессора.Для сохранения конкурентоспособности необходимо постоянно развивать продукт, добавляя новый функционал, который позволит улучшать различные характеристики продукта при снижении его себестоимости.Одним из возможных решений является разработка способа портирования разрабатываемого продукта на большинство современных платформ с различными архитектурами.
Теоретическое исследования в работе базируются на использовании методов объектно-ориентированного подхода.
При решении поставленных задач использовались методы объектно-ориентированного проектирования (декомпозиции, абстракции), концепция объектно-ориентированного программирования, автоматизация OLE ( object linking and embedding ), стандарт OPC (OLE for process control), сетевые технологии и язык описания разметки XML (eXtensible Markup Language).
В качестве применяемых материалов использовались свободно распространяемый дистрибутив GNU Linux Ubuntu kernel 4.4 на аппаратной плафторме intel core i5 6gb ram (PC-архитектура), Ubuntu ARM kernel 3.18 на аппаратной плафторме ARM Cortex-A7 CPU (Raspberry Pi2 model B).
В качестве инструмента для сборки методом кросскомпиляции исользовался LinaroToolChain.
Для портирования ядра системы ЧПУ был взят за основу одноплатный компьютер Raspberry PI 2
Таким образом была поставлена задача по портированию платформу ARM ядра управления системы ЧПУ разрабатываемого в МГТУ «СТАНКИН», так как данная платформа является наиболее перспективной и на сегодняшний день быстро развивающейся.
Используя кроссплатформенные библиотеки возможно производить сборку и непосредственно на самой ARM платформе, но процесс компиляции зачастую занимает достаточно много времени, что снижает время разработки программного обеспечения, поэтому было решено воспользоваться методом кросс-компиляции.
Сборка ядра ОС Linux с патчем PREEMPT_RT производилась по средством кросс- компиляции с использованием ARM Toolchain (arm-none-eabi) на машинах с архитектурами x86 и x64 с последующим переносом на целевую платформу. С предустановленной ОС Ubuntu Raspberry pi2 был скопирован файл конфигурации настройки поддерживаемого оборудования по умолчанию ядром Linux, в него тем самым необходимо было также включить те функции, которые предоставляет патч PREEMPT_RT. Следующим шагом была необходимость переноса исходников с последующим созданием символьных ссылок на них. Это требовалось для того, чтобы обеспечить корректную работу дополнительных модулей ядра (драйверов), обеспечивающих взаимодействие периферийных устройств и системы ЧПУ.
Для упрощения отладки проекта использовалась кросс-платформа IDE Codeblocks.
Для проверки работоспособности данный одноплатный компьютер реального времени с настроенным ПО был подключен к стенду управления знакосинтезирующим индикатором посредством динамической индикации с использованием программно-реализованного контроллера электроавтоматики SoftPLC. При этом на стенде была запущена программа отображения местного времени.
Если перейти к количественным характеристикам, то сборка ядра нативным образом на Raspberry Pi 2 занимает порядка 15-20 мин, в то время как процесс сборки ядра на PC и последующим переносом на целевую платформу не более 1,5-2 мин. Это существенно сокращает время откладки и всего процесса разработки.
Работоспособность и длительная наработка на отказ системы ЧПУ с портированным ядром ARM-платформу с использованием стенда показывает правильность решенной задачи, а возможность быстрой перекомпиляции ядра системы управления после внесения правок и изменений позволяет сократить время разработки рассматриваемого ПО системы ЧПУ.
Работа докладывалась на конференции АИТ 2016 (МГТУ СТАНКИН 18-21 апреля 2016), где была высоко оценена членами жюри и удостоена первого места в номинации "Информационные технологии". Результаты работы широко применяются на кафедре "Компьютерные системы управления" МГТУ СТАНКИН при разработке ядра отечественной системы ЧПУ "АксиОМА Контрол".
2.Мартинов Г.М., Любимов А.Б., Бондаренко А.И., Сорокоумов А.Е., Ковалев И.А. Подход к построению мультипротокольной системы ЧПУ // Автоматизация в промышленности. 2012. №5. с.8-11.
3.И.А. Ковалев, М.С. Бабин, Р.В. Травкин Реализация управления знакосинтезирующим индикатором посредством динамической индикации с использованием программно-реализованного контроллера электроавтоматики SoftPLC. (МТИ-2014). - М.: ФГБОУ ВПО МГТУ "СТАНКИН", 2014. - с.5-8.
4. Building Linux Kernel for Raspberry Pi https://wiki.aalto.fi/download/attachments/84751497/compiling_kernel_final.pdf?api=v2
5. Инструменты кросскомпиляции для ARM https://habrahabr.ru/post/114230/