Система информационной поддержки разработчика программного обеспечения для микроконтроллеров
INFORMATION SUPPORT SYSTEM OF SOFTWARE DEVELOPER FOR MICROCONTROLLERS

Настоящее изобретение относится к области вычислительной техники, в частности, к области автоматизации процессов производства программного обеспечения и может быть использовано как подсистема интегрированной среды разработки программного обеспечения для микроконтроллеров.
Известен способ и устройство для реализации протоколов между устройствами связи системы радиосвязи (RU 98118571, H04L 29/02, H04Q 7/20, опубл. 20.08.2000).
Недостатки способа:
1) способ описан применительно к протоколам DECT, GAP, GSM.
2) в целом использование промежуточного протокола является неоптимальным как с точки зрения производительности полученной реализации требуемого протокола, так и с точки зрения избыточности передаваемых данных.
Известна программа для ЭВМ «Программное обеспечение для реализации протоколов внутрифирменной сигнализации "МиниКом" для взаимодействия в асинхронной мультисервисной сети» (RU 2013618896, опубл. 20.12.2013 г.), обладающая аналогичными недостатками, которая также использует стандартный протокол (SIP 2.0) для реализации проприертарного протокола сигнализации "МиниКом".
В программе для ЭВМ предлагается генерировать исходный код реализации требуемого протокола непосредственно, опираясь только на справочник сервисных функций и базис библиотечных функций по управлению аппаратным интерфейсом связи. Предлагается автоматически получать исходных код интерфейсных программных модулей, которые будут расположены во взаимодействующих микроконтроллерах. С одной стороны интерфейсный программный модуль вызывается исполняющейся пользовательской программой, с другой стороны он взаимодействует с аппаратной реализацией интерфейса связи микроконтроллера.
Архитектура интерфейсного модуля построена следующим образом: выделяется некоторый базис функций и свойств интерфейса, который должен быть предоставлен. Реализации данных функций и свойств являются аппаратно-зависимыми. При наличии базисных функций и свойств осуществляется надстройку, тем самым доработав базис интерфейса до унифицированного интерфейсного модуля, предоставляющего обобщенный набор сервисных функций.
Известна распределенная система обмена сообщениями с конфигурируемыми гарантиями (RU 2010119446, G06Q 50/00, опубл. 20.11.2011 г.), которая позволяет задавать настройку, связанную с гарантией доставки сообщений.
Недостатки: данная система реализована для больших многоцелевых многопроцессорных ЭВМ и не может быть реализована для рассматриваемого класса систем, построенных на микроконтроллерах. Кроме того, в изобретении предлагается унифицированный способ учета любых настроек протоколов, а не только настройки гарантии доставки. Возможность задания настроек протоколов в изобретении реализована за счет организации расширяемого справочника сервисных функций протокола.
Прототипом заявляемого изобретения является программа для ЭВМ «Конструктор программных средств семейства ОРС (ОРС Design Studio)» (RU 2015619113, опубл. 20.09.2015 г.), а также способ (Automatic generation of transaction level bus simulation instructions from bus protocol, US 8090564 B1, опубл. 03.11.2012 г.).
К недостаткам данных решений относится то, что они, во-первых, являются проблемно ориентированными: RU 2015619113 - используется для описания протоколов только сбора данных от устройств промышленной автоматизации; US 8090564 B1 - изобретение предлагает способ задания свойств транзакционности обмена сообщений только для моделирования взаимодействий по определенному протоколу.
Технический результат выражается в ускорение процесса производства программного обеспечения для микроконтроллеров за счет автоматизации процесса кодирования реализации протоколов взаимодействия микроконтроллеров.
Технический результат достигается тем, что в системе информационной поддержки разработчика программного обеспечения для микроконтроллеров, содержащей компьютер с модулем управления, подключенное к нему устройство ввода информации, сервер базы данных, микроконтроллер, устройство отображения информации, в состав системы введен модуль генерации исходного кода, модуль задания общих параметров генерации, модуль реализации базиса библиотечных функций по управлению интерфейсами, модуль задания настроек протокола, модуль выбора аппаратного интерфейса связи, модуль справочника сервисных функций, модуль базиса библиотечных функций по управлению интерфейсами, модуль задания сервисных функций, модуль выбора модели микроконтроллера, компилятор исходного кода; компьютер подключен управляющими выходами к серверу базы данных, к устройству отображения информации; компьютер подключен информационными выходами к серверу базы данных, к микроконтроллеру, к устройству отображения информации; устройство ввода информации подключено управляющим и информационным выходами к модулю управления; модуль управления подключен управляющими и информационными выходами к устройству отображения информации, к модулю генерации кода; модуль управления подключен управляющими выходами к модулю задания настроек протокола, модулю выбора аппаратного интерфейса связи, модулю справочника сервисных функций, модулю базиса библиотечных функций по управлению интерфейса, модулю задания сервисных функций; модуль генерации исходного кода подключен управляющими выходами к модулю задания общих параметров генерации, компилятору исходного кода; модуль генерации исходного кода подключен информационными выходами к компилятору исходного кода; модуль задания общих параметров генерации подключен информационными выходами к модулю задания настроек и модулю генерации исходного кода; модуль задания общих параметров генерации подключен управляющими выходами к модулю задания настроек; модуль реализации базиса библиотечных функций по управлению интерфейсами подключен к модулю базиса библиотечных функций по управлению интерфейсами; модуль задания настроек протокола подключен информационным выходом к модулю управления; модуль выбора аппаратного интерфейса связи подключен информационным выходом к модулю управления; модуль справочника сервисных функций подключен информационным выходом к модулю управления; модуль справочника сервисных функций подключен управляющим выходом к модулю задания сервисных функций; модуль базиса библиотечных функций по управлению интерфейсами подключен информационным выходом к модулю управления; модуль задания сервисных функций подключен информационным выходом к модулю справочника сервисных функций; модуль выбора модели микроконтроллера подключен информационным выходом к модулю управления.
Изобретение поясняется чертежом.
Чертеж - структурная схема системы,
где показаны (тонкие соединительные связи - связи управления, толстые соединительные связи - информационные).
Система содержит компьютер 101, подключенное к нему устройство ввода информации 102, сервер базы данных 103, микроконтроллер 104, устройство отображения информации 105. Компьютер 101 содержит следующие модули: модуль управления 11, модуль генерации исходного кода 12, модуль задания общих параметров генерации 13, модуль реализации базиса библиотечных функций по управлению интерфейсами 14, модуль задания настроек протокола 15, модуль выбора аппаратного интерфейса связи 16, модуль справочника сервисных функций 17, модуль базиса библиотечных функций по управлению интерфейсами 18, модуль задания сервисных функций 19, модуль выбора модели микроконтроллера 20, компилятор исходного кода 21; компьютер 101 подключен управляющими выходами к серверу базы данных 103, к устройству отображения информации 105; компьютер 101 подключен информационными выходами к серверу базы данных 103, к микроконтроллеру 104, к устройству отображения информации 105; устройство ввода информации 102 подключено управляющим и информационным выходами к модулю управления 11; модуль управления 11 подключен управляющими и информационными выходами к устройству отображения информации 103, к модулю генерации кода 12; модуль управления 11 подключен управляющими выходами к модулю задания настроек протокола 15, модулю выбора аппаратного интерфейса связи 16, модулю справочника сервисных функций 17, модулю базиса библиотечных функций по управлению интерфейса 18, модулю задания сервисных функций 19; модуль генерации исходного кода 12 подключен управляющими выходами к модулю задания общих параметров генерации 13, компилятору исходного кода 21; модуль генерации исходного кода 12 подключен информационными выходами к компилятору исходного кода 21; модуль задания общих параметров генерации 13 подключен информационными выходами к модулю задания настроек 15 и модулю генерации исходного кода 12; модуль задания общих параметров генерации 13 подключен управляющими выходами к модулю задания настроек 15; модуль реализации базиса библиотечных функций по управлению интерфейсами 14 подключен к модулю базиса библиотечных функций по управлению интерфейсами 18; модуль задания настроек протокола 15 подключен информационным выходом к модулю управления 11; модуль выбора аппаратного интерфейса связи 16 подключен информационным выходом к модулю управления 11; модуль справочника сервисных функций 17 подключен информационным выходом к модулю управления 11; модуль справочника сервисных функций 17 подключен управляющим выходом к модулю задания сервисных функций 19; модуль базиса библиотечных функций по управлению интерфейсами 18 подключен информационным выходом к модулю управления 11; модуль задания сервисных функций 19 подключен информационным выходом к модулю справочника сервисных функций 17; модуль выбора модели микроконтроллера 20 подключен информационным выходом к модулю управления 11.
Настоящий способ автоматического получения реализаций протоколов по заданному набору сервисных функций при наличии базиса библиотечных функций по управлению интерфейсами микроконтроллера и реализующая его система предусматривает выполнение следующих основных функций, реализуемых системой:
1) Осуществление задания модели микроконтроллера (команды №№1-3 системы);
2) Осуществление задания сервисных функций протокола (команды №№4-10 системы);
3) Осуществление выбора базиса библиотечных функций по управлению интерфейсами (команды №№11-17 системы);
4) Осуществление задания настроек протокола (команды №№18-25 системы);
5) Осуществление выбора аппаратного интерфейса связи (команды №№26-30 системы);
6) Осуществление генерации исходного кода (команды №№30-36 системы);
7) Осуществление компиляции исходного кода (команды №№37-9 системы);
Осуществление задания модели микроконтроллера происходит следующим образом. Для задания модели микроконтроллера оператор с помощью устройства ввода 102 указывает модель микроконтроллера (управляющая команда №1 на фиг., команды выделены курсивом). Модуль управления 11 запускает процесс выбора модели микроконтроллера модулем выбора модели микроконтроллера 20 с помощью команды №2 по завершению работы, которой модуль 20 передает модулю управления 11 информацию о выбранной модели микроконтроллера. После этого модуль управления 11 выводит на экран компьютера с помощью устройства отображения информации 105 и управляющей команды №3 полученную информацию и сохраняет выбранную модель микроконтроллер в локальной памяти.
Осуществление задания сервисных функций протокола происходит следующим образом. Оператор для задания сервисных функций реализуемого протокола с помощью устройства ввода 102 посылает модулю управления 11 команду №4, которая запускает процесс отображения возможных к выбору сервисных функций. Модуль управления 11 посылает управляющую команду №5 модулю справочника сервисных функций 19, который передает в модуль управления 11 информацию о возможных для выбора сервисных функциях. Модуль управления 11 выводит на экран компьютера с помощью устройства отображения информации 105 и управляющей команды №6 полученную информацию. Оператор, проанализировав полученную информацию, посылает модулю управления 11 команду №7, которая запускает процесс задания сервисных функций, и параметры данной команды. Модуль управления 11 посылает управляющую команду №8 в модуль задания сервисных функций 19, который выполняет частичную инстанциацию выбранных сервисных функций по шаблону из модуля справочника сервисных функций 17 за счет команды №9, которую модуль 19 посылает модулю 17. Модуль 17 выполняет подстановку переданных параметров в шаблоны выбранных сервисных функций и передает частично специфицированные шаблоны сервисных функций в модуль управления 11. Модуль управления 11 сохраняет частично специфицированные шаблоны сервисных функций в локальной памяти и с помощью команды №10, посылаемой устройства отображения информации 105, сообщает оператору об успешном задании сервисных функций.
Осуществление выбора базиса библиотечных функций по управлению интерфейсами происходит следующим образом. Оператор для выбора базиса библиотечных функций по управлению интерфейсами с помощью устройства ввода 102 посылает модулю управления 11 команду №11, которая запускает процесс отображения возможных к выбору базисов библиотечных функций. Модуль управления 11 посылает управляющую команду №12 модулю базиса библиотечных функций по управлению интерфейсами 18, который передает в модуль управления 11 информацию о возможных для выбора сервисных функциях. Модуль управления 11 выводит на экран компьютера с помощью устройства отображения информации 105 и управляющей команды №13 полученную информацию. Оператор, проанализировав полученную информацию, посылает модулю управления 11 команду №14, которая запускает процесс выбора базиса библиотечных функций по управлению интерфейсами, и параметры данной команды. После чего модуль управления 11 передает в модуль базиса библиотечных функций по управлению интерфейсами 18 управляющую команду №15. Модуль 18 запускает процесс реализации базиса библиотечных функций по управлению интерфейсами для выбранной модели микроконтроллера. Модуль управления 11 сохраняет реализованный базис библиотечных функций по управлению интерфейсами для выбранной модели микроконтроллера в локальной памяти и с помощью команды №17, посылаемой устройства отображения информации 105, сообщает оператору об успешном выборе базиса библиотечных функций по управлению интерфейсами для выбранной модели микроконтроллера.
Осуществление задания настроек протокола происходит следующим образом. Оператор для задания настроек протокола с помощью устройства ввода 102 посылает модулю управления 11 команду №18, которая запускает процесс задания настроек протокола. Модуль управления 11 посылает управляющую команду №19 модулю задания настроек протокола 15. Модуль 15 посылает запрос серверу БД 103 в форме команды 20 и получает ответ в виде возможных настроек прокола, которая передается модулем 15 в модуль управления 11. Модуль управления 11 выводит на экран компьютера с помощью устройства отображения информации 105 и управляющей команды №21 полученную информацию. Оператор, проанализировав полученную информацию, посылает модулю управления 11 команду №22, которая запускает процесс сохранения в базе данных полностью специфицированных шаблонов сервисных функций. Модуль управления 11 извлекает из локальной памяти частично специфицированные шаблоны сервисных функций, реализованный базис библиотечных функций по управлению интерфейсами и передает их модулю задания настроек протокола 15 вместе с управляющей командой №23. Модуль задания настроек протокола 15 подставляет в оставшиеся свободные параметры шаблонов сервисных функций выбранные пользователем значения настроек протокола и сохраняет полностью специфицированные шаблоны сервисных функций в сервере БД 103 с помощью команды №24. Модуль управления 11 с помощью команды №25, посылаемой устройства отображения информации 105, сообщает оператору об успешном задании настроек протокола.
Осуществление выбора аппаратного интерфейса связи происходит следующим образом. Оператор для выбора аппаратного интерфейса связи с помощью устройства ввода 102 посылает модулю управления 11 команду №26, которая запускает процесс выбора аппаратного интерфейса. Модуль управления 11 посылает управляющую команду №27 модулю выбора аппаратного интерфейса связи 16. Модуль 16 передает модулю управления 11 возможные варианты аппаратных интерфейсов связи. Модуль управления 11 выводит на экран компьютера с помощью устройства отображения информации 105 и управляющей команды №28 полученную информацию. Оператор, проанализировав полученную информацию, посылает модулю управления 11 команду №29, которая запускает сохранения выбранного интерфейса связи в локальной памяти модуля управления 11. Модуль управления 11 с помощью команды №30, посылаемой устройства отображения информации 105, сообщает оператору об успешном выборе аппаратного интерфейса связи.
Осуществление генерации исходного кода происходит следующим образом. Оператор для генерации исходного кода связи с помощью устройства ввода 102 посылает модулю управления 11 команду №31, которая запускает процесс генерации исходного кода. Модуль управления 11 посылает управляющую команду №32 модулю генерации исходного кода 12. Модуль 12 запрашивает у модуля задания общих параметров генерации 13 полностью специфицированные шаблоны сервисных функций протокола с помощью команды №33. Модуль задания общих параметров генерации 13 запрашивает полностью специфицированные шаблоны сервисных функций протокола у модуля задания настроек протокола 15 с помощью команды №34. Модуль 15 запрашивает ранее сохраненные шаблоны сервисных функций у сервера БД 103 с помощью команды №35. В результате возвращения запрашиваемой информации по цепочке модулей 102, 15, 13 модуль генерации исходного кода 12 получает специфицированные шаблоны сервисных функций протокола и выполняет по ним генерацию исходного кода реализации протокола. Сгенерированный исходный код сохраняется в локальной памяти модуля 12. Модуль управления 11 с помощью команды №36, посылаемой устройства отображения информации 105, сообщает оператору об успешной генерации исходного кода.
Осуществление компиляции исходного кода происходит следующим образом. Оператор для выбора компиляции исходного кода с помощью устройства ввода 102 посылает модулю управления 11 команду №37, которая запускает процесс компиляции исходного кода. Модуль управления 11 посылает управляющую команду №38 модулю генерации исходного кода 12, который извлекает из локальной памяти сгенерированный исходный код и передает его компилятору исходного кода 21 с помощью команды №39. Компилятор исходного кода 21 выполняет компиляцию кода и возвращает результат компиляции с помощью команды №40 модулю управления 11. В случае успешной компиляции (без ошибок) компилятор исходного кода 21 получает бинарный образ реализованного протокола и помещает его в микроконтроллер 104. Модуль управления 11 с помощью команды №41, посылаемой устройства отображения информации 105, сообщает оператору о результате компиляции.