13 HappyDev-lite-2014. Андрей Казимиров. Особенности...

23
Особенности разработки ПО для встраиваемых систем и промышленного оборудования НПО «МИР», Казимиров Андрей

Transcript of 13 HappyDev-lite-2014. Андрей Казимиров. Особенности...

Page 1: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Особенности разработки ПО для встраиваемых систем

и промышленного оборудования

НПО «МИР», Казимиров Андрей

Page 2: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

• операционные системы

• клиентские приложения

• игры

• корпоративные системы, бизнес-ПО

• серверное ПО

• приложения для гаджетов

Какое бывает ПО

Page 3: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Что такое «встраиваемое ПО»?

Привет участникам

соревнований

Привет участникам

соревнований

Page 4: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Чем отличается встраиваемое ПО • повышенная надежность • высокая цена ошибки • ограниченность ресурсов • предсказуемость во времени • жесткие условия эксплуатации • долгий срок жизни

Page 5: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Надежность и цена ошибки Завис Skype ? Я перезвоню ! Глючит Angry Birds ? Я переустановлю !

Улетел не туда Фобос-Грунт ?

???

Page 6: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Использование ресурсов

Кто круче ?

CPU 1 ГГц, 2 ядра

8Г FLASH

1Г RAM

WiFi 150 Мбит/с

экран 1280*720

CPU 80 МГц

512к FLASH

96к RAM

Zigbee 10кбит/с

экран 128*32

Page 7: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Использование ресурсов Ресурсов мало и поэтому приходится думать

• архитектура ПО важна, как никогда

• любая универсальность избыточна

• «про запас, на всякий случай» не бывает

Кто из них умеет считать копейки ?

Page 8: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Реальное время и многозадачность

Что такое «реальное» время ?

• телеком: микросекунды и меньше

• системы управления: 1 мс и меньше

• автомобиль: 10…100 мс

• медицинское оборудование: 100 мс…1 сек

• «обычные компьютеры»: секунды

Page 9: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Реальное время и многозадачность

Время обработки данных м многозадачность

ВРЕМЯ

Page 10: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Реальное время и многозадачность

• приоритеты задач

• вытесняющая и кооперативная многозадачность

• устойчивость к «ненормальным» данным

ЦЕЛЬ: предсказуемость системы

Page 11: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

«Поставить процессор помощнее»?

А действительно – почему бы не облегчить жизнь программисту ?

• стоимость для low-mid-end продуктов CPU – от $1 до $10

• достаточность ресурсов при грамотной разработке, консервативность

• ограниченность существующих технологий

• жесткие условия эксплуатации

Page 12: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Существующие технологии

• в России – либо дорого, либо невозможно

• в Китае – нужна серийность десятки тысяч

Результат: далеко не все, что есть, можно применить в разработке

Page 13: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Условия эксплуатации

• жесткие нормы к излучаемым помехам

• выше частота – больше помех

• выше частота – больше энергопотребление

• далеко не все «бытовые» технологии применимы в промышленности

Page 14: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Ресурсов мало, но достаточно

Компромисс железо-софт

Типовые характеристики систем:

• частоты CPU от 10…20 до 200…400 МГц

• объемы памяти от 10 кБайт до 1Гб

• часто только целочисленная арифметика

• отсутствие файловых систем, динамической памяти и других радостей

Отдельный класс: Linux/WindowsCE-системы

Page 15: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Квалификация пользователя Уровень техники растет, а квалификация

персонала падает !!!

Что делать ? • скрыть все от пользователя • что нельзя скрыть - сделать

интуитивно понятным

ПОЛЬЗОВАТЕЛЬ НЕ УМЕЕТ ПРОГРАММИРОВАТЬ

Page 16: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Защита от дурака Типовые случаи действий пользователя:

• неправильное конфигурирование • включение всех функций «на всякий случай» • ПО обновили, конфигурацию – нет • обновили конфигурацию каналов связи по

этим же каналам связи

Переполнение переменных – штатный случай ! проблемы 2000 быть не должно

Page 17: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Обновление ПО Есть отрасли, где ПО обновлять нельзя !!! то есть нельзя ошибаться??? ДА, НЕЛЬЗЯ !!! При обновлении ПО нельзя удалять старую версию При обновлении ПО нельзя терять накопленные архивные данные

Page 18: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Использование готового кода Шаблоны, фреймворки,

библиотеки, сторонний код

• слабая предсказуемость

• занимаемые ресурсы

• «индусский код»

Единственный плюс:

скорость освоения

Page 19: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Безопасность и защита Проблема взлома встраиваемых систем гораздо менее актуальна, чем на ПК Исключение – системы охраны

ВАЖНО: защита данных от сбоев

• контрольные суммы всех важных данных • дублирование данных • корректное восстановление после сбоев

Page 20: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Что в итоге ? Встраиваемое ПО не сложнее и не проще, чем игра или WEB-клиент, оно ДРУГОЕ • ограниченность ресурсов • предсказуемость во времени • повышенная надежность • долгий срок жизни

Page 21: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Немного о нас НПО «МИР» – это разработка, производство, внедрение автоматизированных систем сбора данных и управления для электроэнергетики

Page 22: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

Разработка • измерения и цифровая

обработка сигналов • сбор и передача данных • серверное ПО, СУБД • клиентские места,

WEB-технологии

Page 23: 13 HappyDev-lite-2014. Андрей Казимиров. Особенности разработки по для встраиваемых систем и промышленного

С чего начать путь в embedded ? • Arduino • STM Discovery • Raspberry PI • практика в НПО «МИР»

СПАСИБО ЗА ВНИМАНИЕ !!!