Научная статья на тему 'Программирование встраиваемых микроконтроллерных систем на основе гиперпроцессов'

Программирование встраиваемых микроконтроллерных систем на основе гиперпроцессов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
616
75
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВСТРАИВАЕМЫЕ СИСТЕМЫ / EMBEDDED SYSTEM / МИКРОКОНТРОЛЛЕРЫ / ПРОЦЕСС-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ / PROCESS-ORIENTED PROGRAMMING / ГИПЕРПРОЦЕССЫ / MICROCONTROLLER / HYPERPROCESS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Розов Андрей Сергеевич, Зюбин Владимир Евгеньевич, Нефедов Дмитрий Владимирович

Статья посвящена процесс-ориентированной технологии создания программного обеспечения для микроконтроллерных встраиваемых систем: предлагается математическая модель алгоритма управления, предусматривающая унифицированную обработку прерываний, и описывается программная реализация модели на языке Си. Использование технологии демонстрируется на примере задачи создания метеосервера на открытой микроконтроллерной платформе Arduino.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Розов Андрей Сергеевич, Зюбин Владимир Евгеньевич, Нефедов Дмитрий Владимирович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

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.

Текст научной работы на тему «Программирование встраиваемых микроконтроллерных систем на основе гиперпроцессов»

УДК 004.031.6

DOI 10.25205/1818-7900-2017-15-4-64-73

А. С. Розов, В. Е. Зюбин, Д. В. Нефедов

Институт автоматики и электрометрии СО РАН пр. Академика Коптюга, 1, Новосибирск, 630090, Россия

Новосибирский государственный университет ул. Пирогова, 1, Новосибирск, 630090, Россия

rozov@iae.nsk.su, zyubin@iae.nsk.su, dminefyodov@yandex.ru

ПРОГРАММИРОВАНИЕ ВСТРАИВАЕМЫХ МИКРОКОНТРОЛЛЕРНЫХ СИСТЕМ

НА ОСНОВЕ ГИПЕРПРОЦЕССОВ

Статья посвящена процесс-ориентированной технологии создания программного обеспечения для микроконтроллерных встраиваемых систем: предлагается математическая модель алгоритма управления, предусматривающая унифицированную обработку прерываний, и описывается программная реализация модели на языке Си. Использование технологии демонстрируется на примере задачи создания метеосервера на открытой микроконтроллерной платформе АМшпо.

Ключевые слова: встраиваемые системы, микроконтроллеры, процесс-ориентированное программирование, гиперпроцессы.

Введение

В последнее десятилетие микроконтроллерные платформы с открытой архитектурой (МПОА), среди которых наиболее известна линейка 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.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

rozov@iae.nsk.su, zyubin@iae.nsk.su, dminefyodov@yandex.ru

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.)

i Надоели баннеры? Вы всегда можете отключить рекламу.