Перейти к содержанию
    

Концепции построения встраиваемого ПО

Здравствуйте.

 

Интересуют книги, статьи, методички, примеры(небольшие(Linux уж слишком объёмен)) и т.п., описывающие то, как нужно строить программы от малых и простых до больших и сложных для встраиваемых систем.

 

Под построением программы я подразумеваю следующее:

1) Архитектура программы

2) Организация проекта

3) Оформление кода

4) Оформление документации

 

Есть ли в природе такие базовые труды(желательно на русском или английском)?

Посоветуйте, пожалуйста, литературу по концепциям построения ПО.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте.

 

Если интересно, то посмотрите http://www.state-machine.com

У автора есть книга по событийной модели проектирования встроенного ПО.

Также полезно, как мне кажется, ознакомится с так называемым Test Driven Development подходом к разработке.

Есть книга Джеймса Греннинга Test-Driven Development for Embedded C.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте.

 

Если интересно, то посмотрите http://www.state-machine.com

У автора есть книга по событийной модели проектирования встроенного ПО.

Также полезно, как мне кажется, ознакомится с так называемым Test Driven Development подходом к разработке.

Есть книга Джеймса Греннинга Test-Driven Development for Embedded C.

 

 

Благодарствую)

Думать уж начал, что всем нечего посоветовать)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос ТС - вас интересует построение программ от А до Я, т.е. взаимодействие с железом, алгоритмы управления, сетевые протоколы, интерфейсы пользователя? Или что-то конкретное?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос ТС - вас интересует построение программ от А до Я, т.е. взаимодействие с железом, алгоритмы управления, сетевые протоколы, интерфейсы пользователя? Или что-то конкретное?

 

Видать неясно выразился)

 

Интересует то, как строить программы для встраиваемых систем. Какие существуют концепции(супер цикл, конечный автомат, ОС, ОСРВ). Полное описание этих концепций. Как правильно строить абстракции (HAL, API). Рекомендации: в каком случае применять ту или иную концепцию. И да, это включает в себя и взаимодействие с железом, и алгоритмы управления, и сетевые протоколы, и интерфейсы пользователя.

 

Вдобавок, организация проектов, оформление кода и документации к ПО.

 

В общем, базовая литература, применительно к встраиваемому ПО.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как я понял интересует теоретический аспект. Мог бы поделиться практическими методами реалтайма с использованием суперцикла если это не будет офтопиком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как я понял интересует теоретический аспект. Мог бы поделиться практическими методами реалтайма с использованием суперцикла если это не будет офтопиком.

 

Конечно это не будет оффотопом. Тема для того и создавалась, чтобы собрать в кучу имеющиеся у народа материалы.

А практические методы(примеры)- это действительно ценный материал. Уверен он будет полезен, и не только лично мне)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мог бы поделиться практическими методами реалтайма с использованием суперцикла если это не будет офтопиком.

Вы же уже в "общении" поделились. ;)

 

Интересует то, как строить программы для встраиваемых систем. Какие существуют концепции(супер цикл, конечный автомат, ОС, ОСРВ). Полное описание этих концепций. Как правильно строить абстракции (HAL, API). Рекомендации: в каком случае применять ту или иную концепцию. И да, это включает в себя и взаимодействие с железом, и алгоритмы управления, и сетевые протоколы, и интерфейсы пользователя.

Я не знаю, правильно ли я понял, но концепции это одно, архитектура - это ИМХО другое.

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

Применять конечный автомат в интерфейсе пользователя я думаю не получится.

Поэтому я и спрашивал насчет конкретики.

 

С точки зрения методологии для создания ПО для управления чем либо физическим в реальном времени, или обработки сигналов, то тут в настоящий момент ИМХО рулит модельно-ориентированное проектирование.

То есть создание моделей объектов управления и контроллеров для них в результате моделирования.

В данной методологии вы можете применять как классическую теорию управления, так и автоматы состояния. И ли все вместе. Главное - решить задачу.

Потом генерите код для своего встраиваемого контроллера и на этом забываете об этой части ПО. Данная методология также включает в себя создание архитектуры контроллера исходя из требований к реакции на внешние события, менеджмент самих требований, организация тестирования, и создание документации для этой части встроенного ПО

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не знаю, правильно ли я понял, но концепции это одно, архитектура - это ИМХО другое.

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

Применять конечный автомат в интерфейсе пользователя я думаю не получится.

Поэтому я и спрашивал насчет конкретики.

Согласен: концепция и архитектура- это разные вещи. Концепция стоит над архитектурой. Последняя разрабатывается исходя из первой.

Главное, чего хочу добиться, собрать информацию о имеющихся концепциях построения ПО для встраиваемых систем. Сперва обобщённую. Потом уже более детально разобранные частные случаи и рекомендации по применению.

Собрав материал в такой последовательности, и проанализировав его, можно будет себе чётко представить общую картину того, какие варианты решения задач по построению ПО встраиваемых систем имеются на данный момент и какие концепции("методологии") стоит применять при решении конкретных задач.

А далее оформление...

 

С точки зрения методологии для создания ПО для управления чем либо физическим в реальном времени, или обработки сигналов, то тут в настоящий момент ИМХО рулит

То есть создание моделей объектов управления и контроллеров для них в результате моделирования.

В данной методологии вы можете применять как классическую теорию управления, так и автоматы состояния. И ли все вместе. Главное - решить задачу.

Потом генерите код для своего встраиваемого контроллера и на этом забываете об этой части ПО. Данная методология также включает в себя создание архитектуры контроллера исходя из требований к реакции на внешние события, менеджмент самих требований, организация тестирования, и создание документации для этой части встроенного ПО

Это конкретный частный случай. Посоветуйте, пожалуйста, литературу об этой "методологии".

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это конкретный частный случай. Посоветуйте, пожалуйста, литературу об этой "методологии".

Русскоязычных материалов мало. http://matlab.ru/solutions/mbd/mbd

Все обучащие материалы на английском.

http://de.mathworks.com/solutions/model-based-design/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как правильно строить абстракции (HAL, API).

тоже интересует, есть ли какие-то общие принципы построения HAL.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Несколько итераций поисков дали следующие результаты:

1) "Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems", Bruce Powel Douglass

Серьёзная фундаментальная книга с описанием паттернов разработки систем реального времени. Недостаток- отсутствие примеров, чистая теория.

2) "Real-Time Concepts for Embedded Systems", Qing Li and Carolyn

Достаточно объёмная книга, основной уклон на ОСРВ.

3) "Embedded Software Development The Open-Source Approach", Ivan Cibrario Bertolotti, Tingting Hu

Описание процесса разработки для встраиваемых систем. Захватывает практически все вопросы разработки, кроме тестирования ПО для встраиваемых систем

4) "Programming Embedded Systems, Second Edition with C and GNU Development Tools", Michael Barr & Anthony Massa,

Полное описание разработки ПО. Затронуты MCU и embedded Linux

5) "Языки программирования Концепции и принципы", Кауфман В. Ш.

Фундаментальная книга по общей теории программирования, начиная с теории ЯП и заканчивая парадигмами софтостроения.

 

Книги очень хорошие, объёмные. Полезны будут, как в практике, так и уталении академического интереса.

 

PS: Про встраиваемые системы на русском языке солидной литературы не нашлось, покамест :laughing:

Изменено пользователем gazpar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...