УДК 004.031.6
DOI 10.25205/1818-7900-2017-15-4-64-73
А. С. Розов, В. Е. Зюбин, Д. В. Нефедов
Институт автоматики и электрометрии СО РАН пр. Академика Коптюга, 1, Новосибирск, 630090, Россия
Новосибирский государственный университет ул. Пирогова, 1, Новосибирск, 630090, Россия
[email protected], [email protected], [email protected]
ПРОГРАММИРОВАНИЕ ВСТРАИВАЕМЫХ МИКРОКОНТРОЛЛЕРНЫХ СИСТЕМ
НА ОСНОВЕ ГИПЕРПРОЦЕССОВ
Статья посвящена процесс-ориентированной технологии создания программного обеспечения для микроконтроллерных встраиваемых систем: предлагается математическая модель алгоритма управления, предусматривающая унифицированную обработку прерываний, и описывается программная реализация модели на языке Си. Использование технологии демонстрируется на примере задачи создания метеосервера на открытой микроконтроллерной платформе АМшпо.
Ключевые слова: встраиваемые системы, микроконтроллеры, процесс-ориентированное программирование, гиперпроцессы.
Введение
В последнее десятилетие микроконтроллерные платформы с открытой архитектурой (МПОА), среди которых наиболее известна линейка Arduino, настолько активно используются специалистами при создании встраиваемых систем, что это уже стало мейнстримом. Привлекательные стороны подхода - сокращение сроков разработки аппаратуры и надежность, обеспечиваемая за счет серийного изготовления и доступности, богатый выбор периферийных устройств (shields), в том числе плат расширения для связи по Ethernet и WiFi, компактность, широкий температурный диапазон, низкое энергопотребление и дешевизна. Последнее приводит к существенному перекосу в трудозатратах при разработках встраиваемых систем на основе МПОА (ВС МПОА): затраты на создание программного обеспечения (ПО) могут на несколько порядков превышать стоимость аппаратной части. Поэтому вопросы снижения трудоемкости программирования ВС МПОА активно дискутируются в профессиональном сообществе. Доминирующий подход - использование объектно-ориентированного программирования (ООП) и так называемых операционных систем реального времени (RTOS) [1]. Основная проблема использования RTOS - тяжеловесность. Даже в минимальной конфигурации под системные нужды RTOS резервирует 1 Кб ОЗУ и 10 Кб ПЗУ (Flash), что автоматически делает подход неприменимым для ВС МПОА на базе микроконтроллеров ATmega48/88/168 [2] в силу отсутствия такого количества памяти и существенно ограничивает возможность его использования на более развитых моделях микроконтроллеров. Использование RTOS и ООП также затрудняют создание устойчивого (robust) ПО: необходимость обрабатывать события, поступающие от внутренней и внешней периферии микроРозов А. С., Зюбин В. Е., Нефедов Д. В. Программирование встраиваемых микроконтроллерных систем на основе гиперпроцессов // Вестн. НГУ. Серия: Информационные технологии. 2017. Т. 15, № 4. С. 64-73.
ISSN 1818-7900. Вестник НГУ. Серия: Информационные технологии. 2017. Том 15, № 4 © А. С. Розов, В. Е. Зюбин, Д. В. Нефедов, 2017
контроллера, вынуждает разработчиков решать возникающую при этом проблему параллелизма средствами «сложных низкоуровневых примитивов» [3], что, как следствие, приводит к большому количеству плохо отслеживаемых и отлаживаемых ошибок в таких программах [3, 4]. Сложность вызывает не только процесс тестирования встраиваемых систем, при котором трудозатраты на регрессионное тестирование в сотни раз превышают трудозатраты на локализацию ошибки и исправление кода [5], но и обновление исправленных версий на оборудовании, которое, как правило, территориально распределено, размещается в труднодоступных местах и предполагает прошивку программного обеспечения только на территории изготовителя (то есть конструктивно не имеет штатных интерфейсов и не сопровождается программными средствами загрузки обновленного ПО) [6].
Характерные для ВС МПОА проблемы, связанные с событийной (event-driven) природой алгоритмов, эффективно решаются за счет создания альтернативных ООП методик и инструментария, в первую очередь основанных на модификациях конечных автоматов [7-9]. Наиболее продвинутая модификация модели конечного автомата - модель гиперпроцесса, созданная в рамках процесс-ориентированного программирования, радикально расширяет понятийный аппарат конечного автомата и позволяет описывать такие свойства алгоритмов управления, как параллелизм, событийность и синхронизм [10]. Модель гиперпроцесса поддержана языковыми и инструментальными средствами (язык процесс-ориентированного программирования Reflex и его транслятор), которые при использовании в задачах промышленной автоматизации показывают высокую эффективность при описании сложных логически параллельных алгоритмов [11]. Программная модель предполагает обработку входных / выходных сигналов в режиме round-robin, а интерфейсы к устройствам связи с объектами (УСО) (в том числе, предполагающие обработку прерываний) инкапсулируются и абстрагируются через отдельно создаваемые системные библиотеки. Такой подход оправдан в случае крупных проектов по автоматизации, в которых вычислительная платформа, как и номенклатура используемых УСО, практически неизменны, а основные усилия разработчиков направлены на создание управляющей логики (число взаимодействующих процессов в таких системах исчисляется сотнями [12]). В случае микроконтроллерных встраиваемых систем ситуация иная: при том, что число параллельных процессов не так велико, от проекта к проекту существенно изменяется периферийное оборудование и используемые протоколы, при реализации которых активно используется механизм прерываний.
С учетом этих обстоятельств, в случае ВС МПОА описание высокоуровневых управляющих конструкций и процедур обработки прерываний унифицированными средствами представляется перспективным подходом, который обеспечивает снижение трудоемкости создания ПО ВС МПОА. Подход предполагает разработку понятийного аппарата и программно-алгоритмических решений, ориентированных на гомогенную спецификацию алгоритмов ВС МПОА, как в части управления, так и в части аппаратных прерываний микроконтроллера [13].
В статье рассматривается задача адаптации методик промышленной автоматизации к разработке встраиваемых систем и предлагается процесс-ориентированный подход к программированию микроконтроллеров. Предлагается модель алгоритма управления, предусматривающая механизм представления прерываний микроконтроллера в виде гиперпроцессов. Описывается реализация этой модели на языке Си и приводится пример апробации подхода на задаче разработки метеосервера на Arduino-совместимой микроконтроллерной платформе.
1. Абстрактная математическая модель алгоритма управления
Процесс-ориентированная модель алгоритма управления, отвечающая специфике программирования микроконтроллеров во встраиваемых системах [14], базируется на понятийном аппарате процесс-ориентированного программирования, основным концептом которого является модель гиперпроцесса. В оригинальной модели алгоритм управления описывается одним гиперпроцессом, активирующимся с заданным периодом в основном цикле программы. Предложенная модель алгоритма управления ВС МПОА задается множеством гиперпроцессов с различными источниками активации.
В предложенной модели алгоритм управления представляется как множество гиперпроцессов H. Гиперпроцесс h е H определяется множеством параллельных процессов P с общим источником активации a и выделенным начальным процессом pj:
h = (a, P, д).
Процесс pi е P представлен модифицированной моделью конечного автомата и задается множеством функций-состояний Fi, начальным состоянием f}, текущим состоянием ffur и временем с момента последнего перехода между состояниями Tip:
р, = (F, f1, fcur, тр).
Функция-состояние fi е F, задается множеством событий Е/, множеством реакций R/, отображением g{, задающим соответствие реакций событиям, и временем тайм-аута T/:
f/ = (Е/, R, g/, Т/).
Функции-состояния разделяются на активные и пассивные. Процесс имеет только две пассивные функции-состояния - штатный «останов» и «останов по ошибке». Событие определяется как произвольная суперпозиция фактов о внешней среде и состоянии самой системы (ее переменных).
Отображение gi : Е/ ^ R, ставит в соответствие каждому событию efk е Е/, определенному для этого состояния, реакцию rfk е R,. Состояние может иметь безусловную реакцию r/°, исполняющуюся всегда. Безусловной реакции соответствует пустое событие e/°.
Время Ti определяет допустимый промежуток времени нахождения процесса в текущем состоянии. В случае, когда процесс находится в одном состоянии слишком долго, то есть Tip > Ti, служба времени создает специальное событие - тайм-аут. Время Т/ может быть бесконечным - в случае если функция-состояние не определяет реакцию на событие тайм-аута.
В качестве реакций рассматриваются произвольные упорядоченные наборы действий. Эти действия могут быть вычислительными (изменение значений переменных) или управляющими.
Определяются следующие управляющие действия:
• смена текущей функции-состояния - процесс переходит в другую функцию-состояние;
• запуск / останов процесса - переводит процесс р, в его начальную функцию-состояние ffur / в пассивную функцию-состояние «останов»;
• запуск / останов гиперпроцесса - включает / выключает источник активации гиперпроцесса.
Таким образом, процесс может менять свою (и только свою) текущую функцию-состояние, запускать и останавливать себя и другие процессы, а также запускать и останавливать гиперпроцессы путем управления источниками активации. Изначально при запуске гиперпроцесса активен только его начальный процесс pi.
2. Модель исполнения алгоритма управления на микроконтроллерах
Рассмотрим описанную модель алгоритма управления в приложении к построению систем на микроконтроллерах. Введение понятия источника активации гиперпроцесса позволяет описывать прерывания микроконтроллера в рамках этой модели. Источником активации гиперпроцесса может выступать прерывание. Гиперпроцесс в таком случае описывается функцией-обработчиком прерывания (Interrupt Service Routine). Фоновый гиперпроцесс описывается в основном цикле программы.
На каждом цикле активации (такте) гиперпроцесса последовательно исполняются текущие функции-состояния всех активных процессов этого гиперпроцесса (рис. 1). Во время исполнения функции-состояния проверяются все обрабатываемые ей события и выполняются реакции, определенные для этих событий.
Рис. 1. Активация гиперпроцессов прерываний и фонового гиперпроцесса
Взаимодействие между гиперпроцессами определено операциями запуска и останова процессов и гиперпроцессов, а также проверками их состояния - процесс может проверить, активен ли другой процесс и запущен ли источник активации гиперпроцесса. Действия запуска / останова и проверки активности гиперпроцессов прерываний осуществляются путем изменения или чтения битов в регистрах микроконтроллера, отвечающих за разрешение / запрет соответствующих прерываний. Останов фонового гиперпроцесса, в зависимости от возможностей микроконтроллера, может быть запрещен либо определен как переход в спящий режим для уменьшения энергопотребления. Для обеспечения работы тайм-аутов задей-ствуется один из встроенных таймеров / счетчиков микроконтроллера.
3. Реализация модели на языке Си
Предложенная модель позволяет описывать процесс-ориентированные алгоритмы управления на микроконтроллерах с использованием аппаратных прерываний. Для полноты описания предлагаемого подхода необходимо также рассмотреть программную реализацию этой модели.
В ходе работы разработана реализация предложенной модели алгоритма управления на языке Си. Процессы реализуются в виде инструкций «switch» по переменным, хранящим их состояния. Код внутри каждого пункта «case» реализует одну из функций-состояний процесса. Фоновый гиперпроцесс реализуется бесконечным циклом, гиперпроцессы прерываний реализуются функциями-обработчиками прерываний (ISR):
ISR(INTERRUPT_VECTOR) //гиперпроцесс прерывания {
switch(process[PROC_ENUM].state) //процесс {
case START: //начальная функция-состояние
if(some_event){ //обработка события
change_state(PROC_ENUM, SOME_STATE);
}
timeout(500){ //миллисекунды ... //обработка события тайм-аута
}
break; case SOME_STATE: break;
case STOP: break;
}
}
Команды смены состояния, запуска, останова и проверки состояния процессов, команда сброса тайм-аута и само утверждение «timeout» реализуются макроопределениями - это позволяет избежать накладных расходов на вызов подпрограмм:
#define set_newfs(p,fs) process[p].fsp = fs; process[p].T = SysTime_cur;
#define startp(p) process[p].fsp = FS_START; process[p].T = SysTime_cur;
#define stopp(p) process[p].fsp = FS_STOP
#define check_active(p) (process[p].fsp != FS_STOP)
#define check_passive(p) (process[p].fsp == FS_STOP)
#define resetT(p) process[p].T = SysTime_cur;
#define timeout(p, N) if((SysTime_cur - process[p] .T) >= N)
Для каждого процесса создается объект структуры Process, содержащей переменную f°ur текущего состояния процесса и время Tf в миллисекундах, которое процесс провел без смены состояния:
typedef struct {
unsigned int fsp; //текущая функция-состояние f°ur unsigned long T; //время Tf }Process;
Process process[PROC_NUM];
В приведенном примере временные значения хранятся в миллисекундах в четырех байтовых целочисленных переменных, что позволяет отслеживать промежутки до 50 суток. Специфика встраиваемых систем, с одной стороны, требует работы с очень небольшими временными промежутками (порядка 1 мкс), а с другой стороны, предполагает исполнение системы на протяжении длительного времени. Некоторые задачи могут потребовать отслеживания
временных промежутков до нескольких суток. В случаях, когда при этом требуется также работа с микросекундными промежутками, четырех байт оказывается недостаточно. Такой счетчик будет обновляться приблизительно каждый час. Для решения этой проблемы предлагается использовать две переменные для хранения временных промежутков - в миллисекундах и в микросекундах.
Для идентификаторов процессов и состояний используются перечисляемые типы (enum). Значения этих идентификаторов используются в качестве индексов в массиве структур типа Process.
4. Апробация подхода на задаче разработки метеосервера на микроконтроллерной платформе
В качестве примера программной реализации модели предлагается рассмотреть задачу разработки метеосервера на Arduino-совместимой платформе.
Многие научные и образовательные учреждения имеют собственные метеостанции и предоставляют возможность просмотра получаемых погодных данных в сети Интернет. Такие системы реализуются преимущественно с использованием ПК. Предложено реализовать систему предоставления погодных данных на микроконтроллерной платформе, используя данные о температуре и давлении с электронного табло ПК-Электроникс ОЗАК-280-Р1;-485. Система периодически считывает информацию с табло через интерфейс RS-485, отрисовывает ее на баннере с логотипом Института автоматики и электрометрии СО РАН и предоставляет полученное изображение по запросу через Ethernet по протоколу HTTP. Также имеется возможность связи с ПК для вывода отладочной информации и задания настроек.
В качестве аппаратной платформы для метеосервера выбрана плата Seeeduino Mega v1.23 на базе микроконтроллера Atmel ATmega1280. Связь с табло осуществляется через протокол UART с использованием микросхемы-преобразователя интерфейса MAX485. Ethernet-соединение обеспечивается модулем Wiznet Ethernet Shield на базе микросхемы W5100, работающей через шину SPI (рис. 2). Протоколы UART и SPI реализуются за счет встроенной аппаратной периферии микроконтроллера.
Seeeduino Меда vi .23
АТтеда UART FTDI USB
1280 FT232R —
ПК
Wiznet Ethernet Shield
TTTT
HTTP-клиенты
МАХ485 М—
МАХ485 Module
Электронное табло 03AK-280-Pt-485
Рис. 2. Аппаратная архитектура метеосервера
Разработанная процесс-ориентированная архитектура ПО микроконтроллера представлена на рис. 3.
Система описывается пятью процессами, исполняющимися в трех гиперпроцессах. Считывание данных с табло предполагает передачу команды, ожидание и прием ответа. Прием и передача сырых данных посредством встроенного модуля USART3 осуществляется двумя процессами - процесс приема реализован в фоновом гиперпроцессе, процесс передачи использует прерывание USART3 Buffer Empty.
Процесс верхнего уровня «Запросы RS-485» периодически считывает текущие значения температуры и давления с табло, используя процессы приема и передачи через USART3, и отрисовывает их на изображении.
Процесс «HTTP-сервер» ожидает и обрабатывает запросы клиентов: при первом запросе отсылается код на языке JavaScript, при исполнении этого кода на клиенте отправляется второй запрос, по которому пересылается изображение. Первый запрос необходим для окружения изображения HTML-кодом, выводящим значения температуры и давления при наведении мыши. Во время отрисовки изображения процессом «Запросы RS-485» процесс «HTTP-сервер» останавливается.
Процессы «Запросы RS-485» и «HTTP-сервер» используют процесс «Печать отладочной информации», реализованный в прерывании USART0 Buffer Empty. Следует отметить, что, хотя все эти процессы используют общие данные, это не влияет на поведение системы - все управляющее взаимодействие между процессами осуществляется командами запуска, останова процессов и проверки их состояния.
Рис. 3. Архитектура ПО микроконтроллера
Метеосервер продемонстрировал стабильную работу в условиях стресс-тестирования Ethernet-запросами и на протяжении длительной эксплуатации в штатных условиях. Подход обеспечивает однородное описание алгоритма. При реализации алгоритма кода непосредственно на Си присутствует большое число рутинных операций. Другой недостаток подхода -отсутствие средств семантических проверок: например, обнаружение недостижимых или замкнутых функций-состояний обнаруживается только визуально или во время исполнения программы.
В ходе эксплуатации системы выявлена ошибка, вызванная проблемами нестабильной работы микросхемы W5100. Для устранения нестабильной работы добавлен тайм-аут в процесс HTTP-сервера - по тайм-ауту HTTP-запросов микроконтроллер перезагружает микросхему W5100. Использованный подход показал простоту расширяемости кода при последующем добавлении процессов работы с памятью EEPROM [15]. Разработанный метеосервер внедрен в Институте автоматики и электрометрии СО РАН и интегрирован c CMS Joomla (рис. 4).
Рис. 4. Баннер с текущими температурой и давлением на сайте ИАиЭ СО РАН, формируемый созданным метеосервером
Заключение
В работе представлен подход к программированию микроконтроллеров на основе расширенной модели гиперпроцесса, в которой алгоритм задается множеством гиперпроцессов, в частности, активируемых от источников аппаратных прерываний. Гиперпроцессы задаются совокупностью процессов, каждый из которых представляет собой набор функций-состояний, между которыми происходит переключение. Предложена программная реализация модели на языке Си в виде набора макросов. Программная реализация опробована на задаче разработки метеосервера. Реализованное программное обеспечение прошло стресс-тестирование и внедрено.
В дальнейшем планируется реализовать разработанный подход в специализированном языке программирования IndustrialC, что позволит устранить рутинные операции и обеспечить семантический контроль создаваемого кода.
Список литературы
1. Сафронов А. Ю., Намиот Д. Е. Среда разработки программного обеспечения для встраиваемых систем на основе JME // International Journal of Open Information Technologies. 2013. Т. 1, № 2. С. 17-24. URL: http://injoit.org/index.php/j1/article/view/12
2. ATmega48/88/168 Automotive. 8-bit Atmel Microcontrollers with 4/8/16KBytes In-system Programmable Flash. Datasheet // Atmel Corporation. 2014. 308 p.
3. БушенкоД. ООП, ФП, параллелизм и смена парадигмы // Компьютерные вести. 2010. № 30 URL: https://www.kv.by/archive/index2010301105.htm
4. Василевич П. С., Егоров С. М., Бобренок С. И., Загурских Е. А. Решение проблемы синхронизации процессов при обращении к разделяемой памяти под управлением Boost // Вестн. Новосиб. гос. ун-та. Серия: Информационные технологии. 2015. Т. 13, № 2. С. 28-33.
5. Лотохов А. Тестирование встраиваемых систем - один аспект, о котором почему-то мало говорят // TechMedia. Портал «Хабрахабр». 2014. URL: https://habrahabr.ru/post/239403/
6. Пронин А., Ванюлин В. А., Починок И. В. Тестирование встроенного программного обеспечения // Мир компьютерной автоматизации: встраиваемые компьютерные системы. 2015. Т. 1, № 1. С. 19-24.
7. Шалыто А. А., Туккель Н. И. Программирование с явным выделением состояний // Мир ПК. 2001. № 8. С. 116-121. № 9. С. 132-138.
8. Шалыто А. А., Туккель Н. И. SWITCH-технология — автоматный подход к созданию программного обеспечения "реактивных" систем // Программирование. 2001. № 5. С. 45-62.
9. Harel D., Politi M. Modeling Reactive Systems with Statecharts. New York, NY, USA: McGraw-Hill. 1998. 258 p.
10. Зюбин В. Е. Язык Рефлекс. Математическая модель алгоритмов управления // Датчики и системы. 2006. № 5. С. 24-30.
11. Зюбин В. Е. Программирование ПЛК: языки МЭК 61131-3 и возможные альтернативы // Промышленные АСУ и контроллеры. 2005. № 11. С. 31-35.
12. Зюбин В. Е., Котов В. Н., Котов Н. В., Курочкин А. В., Лубков А. А., Лылов С. А., Оку-нишников С. В., Петухов А. Д. Базовый модуль, управляющий установкой для выращивания монокристаллов кремния // Датчики и системы. 2004. № 12, С. 17-21.
13. Rozov A. S., Zyubin V. E. Process-oriented approach in MCU programming // American Journal of Control Systems and Information Technology. 2013. Vol. 1, No 1. P. 18-21.
14. Розов А. С., Зюбин В. Е. Расширенная модель гиперпроцесса для программирования микроконтроллеров // Промышленные АСУ и контроллеры. 2016. № 9. С. 34-38.
15. Нефедов Д. В. Разработка подсистемы хранения и отображения данных метеосервера на открытой микроконтроллерной платформе // Материалы 55-й Международной научной студенческой конференции МНСК-2017: Информационные технологии. Новосиб. гос. ун-т. Новосибирск. 2017. С. 90.
Материал поступил в редколлегию 11.05.2017
A. S. Rozov, V. E. Zyubin, D. V. Nefedov
1 Institute of Automation and Electrometry SB RAS 1 Academician Koptyug, Novosibirsk, 630090, Russian Federation
2 Novosibirsk State University 1 Pirogov St., Novosibirsk, 630090, Russian Federation
[email protected], [email protected], [email protected]
HYPERPROCESS-BASED APPROACH FOR EMBEDDED MICROCONTROLLER PROGRAMMING
The rapidly developing market of embedded systems provokes interest in effective methods for microcontroller software development. In this paper we introduce a process-oriented approach for microcontroller programming. The approach is based on a mathematical model of control software, which embeds handling of hardware interrupts into a process-oriented system. An example implementation of the approach is demonstrated on control software for an embedded weather server using an open microcontroller platform.
Keywords: embedded system, microcontroller, process-oriented programming, hyperprocess.
References
1. Safronov A. Yu., Namiot D. E. IDE for embedded systems software based on JME. // International Journal of Open Information Technologies. 2013. Vol. 1, No. 2. P. 17-24. URL: http://injoit.org/index.php/j1/article/view/12 (In Russ.)
2. ATmega48/88/168 Automotive. 8-bit Atmel Microcontrollers with 4/8/16KBytes In-system Programmable Flash. Datasheet // Atmel Corporation. 2014. 308 p.
3. Bushenko D. OOP, FP, Parallelism and Paradigm Shift // Computer News. 2010. No. 30 URL: https://www.kv.by/archive/index2010301105.htm (In Russ.)
4. Vasilevich P. S., Egorov S. M., Bobrenok S. I., Zagurskikh E. A. Resolving the Process Synchronization Problem When Working with Shared Memory Managed by Boost // Vestnik NSU. Series: Information Technologies. 2015. Vol. 13, No. 2. P. 28-33. (In Russ.)
5. Lotokhov A. Embedded Systems Testing - an Aspect Which is Little Discussed on Some Reason. // TechMedia."Habrahabr" portal. 2014. URL: https://habrahabr.ru/post/239403/ (In Russ.)
6. Pronin A., Vanyulin V., Pochinok V. Embedded Software Testing. // The World of Computer Automation: Embedded Computer Systems. 2015. Vol. 1, No. 1. P. 19-24. (In Russ.)
7. Shalyto A. A., Tukkel'N. I. State-based programming // PC World. 2001. No. 8. P. 116-121. No. 9. P. 132-138. (In Russ.)
8. Shalyto A. A., Tukkel'N. I. SWITCH-Technology: An Automated Approach to Developing Software for Reactive Systems // Programming and Computer Software. 2001. No. 5. P. 45-62. (In Russ.)
9. HarelD., PolitiM. Modeling Reactive Systems with Statecharts. New York, NY, USA: McGraw-Hill. 1998. 258 p.
10. Zyubin V. E. Reflex language. Mathematical model of control algorithms // Sensors and Systems. 2006. No. 5. P. 24-30. (In Russ.)
11. Zyubin V. E. PLC programming: the IEC 61131-3 languages and possible alternatives // Industrial Automatic Control Systems and Controllers. 2005. No. 11. P. 31-35. (In Russ.)
12. Zyubin V. E., Kotov V. N., Kotov N. V., Kurochkin A. V., Lubkov A. A., Lylov S. A., Okunishnikov S. V., Petukhov A. D. A control module for silicon crystal growing unit // Sensors & Systems. 2004. No. 12, P. 17-21. (In Russ.)
13. Rozov A. S., Zyubin V. E. Process-oriented approach in MCU programming // American Journal of Control Systems and Information Technology. 2013. Vol. 1, No 1. P. 18-21.
14. Rozov A. S., Zyubin V. E. Extended Process-oriented Model for MCU Programming // Industrial Automatic Control Systems and Controllers. 2016. No. 9. P. 34-38. (In Russ.)
15. Nefedov D. V. Development of a subsystem for storage and display of weather server data on an open microcontroller platform // Proceedings of the 55 th International Students Scientific Conference. Information Technology. Novosibirsk State University. Novosibirsk. 2017. P. 90. (In Russ.)
For citation:
Rozov A. S., Zyubin V. E., Nefedov D. V. Hyperprocess-Based Approach for Embedded Microcontroller Programming. VestnikNSU. Series: Information Technologies, 2017, vol. 15, no. 4, p. 64-73. (In Russ.)