Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Программирование встроенных систем на С++ 17

Покупка
Артикул: 739795.01.99
Доступ онлайн
999 ₽
В корзину
Из этой книги вы узнаете, как создавать автономные и сетевые встроенные системы, обеспечивать их безопасность и рациональное использование памяти. Язык программирования C++ расширяет возможности сопровождения и обладает многочисленными преимуществами по сравнению с другими языками программирования, поэтому прекрасно подходит для такой разработки. В книге описывается методика создания удобных графических интерфейсов пользователя (GUI) для встроенных систем, а также методы интеграции проверенных стратегий в конкретные проекты для достижения оптимальной производительности аппаратуры. Рассмотрены разнообразные аппаратные платформы - у вас есть возможность выбрать наилучший вариант для своего проекта. Издание будет полезно архитекторам встроенных систем и опытным разработчикам на C++.
Пош, М. Программирование встроенных систем на С++ 17 : монография / М. Пош ; пер. с анг. А. В. Снастина. - Москва : ДМК Пресс, 2020. - 394 с. - ISBN 978-5-97060-785-5. - Текст : электронный. - URL: https://znanium.com/catalog/product/1094950 (дата обращения: 23.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Майа Пош

Программирование  
встроенных систем на C++17

Hands-On Embedded 
Programming with C++17

Create versatile and robust embedded solutions  
for MCUs and RTOSes with modern C++

Maya Posch

 
B I R M I N G H A M  –  M U M B A I

Программирование  
встроенных систем на C++17

Создание универсальных и надежных встроенных  
решений для микроконтроллеров и операционных  
систем реального времени на современной версии  
языка программирования C++

Майа Пош

        Москва, 2020

УДК 004.4
ББК 32.973.202
П66

Пош М.
П66 
Программирование встроенных систем на C++17 / пер. с анг. А. В. Снастина. – М.: ДМК Пресс, 2020. – 394 с.: ил. 

ISBN 978-5-97060-785-5

Из этой книги вы узнаете, как создавать автономные и сетевые встроенные системы, обеспечивать их безопасность и рациональное использование памяти. Язык 
программирования C++ расширяет возможности сопровождения и обладает многочисленными преимуществами по сравнению с другими языками программирования, 
поэтому прекрасно подходит для такой разработки.
В книге описывается методика создания удобных графических интерфейсов 
пользователя (GUI) для встроенных систем, а также методы интеграции проверенных 
стратегий в конкретные проекты для достижения оптимальной производительности 
аппаратуры. Рассмотрены разнообразные аппаратные платформы – у вас есть возможность выбрать наилучший вариант для своего проекта.
Издание будет полезно архитекторам встроенных систем и опытным разработчикам на С++.

УДК 004.4
ББК 32.973.202

Original English language edition published by Packt Publishing Ltd., UK. Copyright © 2019 Packt 
Publishing. Russian-language edition copyright © 2020 by DMK Press. All rights reserved.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой 
бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.

ISBN 978-1-78862-930-0 (анг.) 
 Copyright © 2019 Packt Publishing
ISBN 978-5-97060-785-5 (рус.) 
© Оформление, издание, перевод, ДМК Пресс, 2020

Содержание

Об авторе ................................................................................................................10

О рецензентах ......................................................................................................11

Предисловие .........................................................................................................12

Часть I. ОСНОВЫ ПРОГРАММИРОВАНИЯ ВСТРОЕННЫХ  
СИСТЕМ И РОЛЬ C++ ......................................................................................17

Глава 1. Что такое встроенные системы ....................................................18
Разнообразие встраиваемых систем ........................................................................18
Микроконтроллеры ...................................................................................................20
TMS 1000 .................................................................................................................20
Intel MCS-48 ...........................................................................................................22
Intel MCS-51 ...........................................................................................................24
PIC ...........................................................................................................................27
AVR ..........................................................................................................................33
M68k и микроконтроллеры на основе Z80 ...........................................................38
ARM Cortex-M .........................................................................................................38
H8 (SuperH) .............................................................................................................39
ESP8266/ESP32 .......................................................................................................39
Другие микроконтроллеры ...................................................................................41
Особенности...........................................................................................................42
Одноплатный компьютер, или система на кристалле ............................................42
Особенности...........................................................................................................43
Резюме ........................................................................................................................44

Глава 2. C++ как язык программирования встроенных систем .......45
Связь C++ с C ..............................................................................................................45
C++ как язык программирования встроенных систем ...........................................47
Функциональные возможности языка C++ ..............................................................50
Пространства имен ................................................................................................50
Строгая типизация ................................................................................................51
Преобразование типов ..........................................................................................52
Классы ....................................................................................................................52
Наследование .........................................................................................................55
Виртуальные базовые классы ...............................................................................56
Встроенные функции ............................................................................................57
Информация о типах во время выполнения .......................................................58
Обработка исключений .........................................................................................58

 Содержание

Шаблоны .................................................................................................................58
Стандартная библиотека шаблонов .........................................................................59
Удобство сопровождения ..........................................................................................59
Резюме ........................................................................................................................60

Глава 3. Разработка для встроенной ОС Linux и подобных  
систем .......................................................................................................................61

Встроенные операционные системы .......................................................................61
Операционные системы реального времени ..........................................................64
Специализированные периферийные устройства и драйверы .............................65
Добавление часов реального времени .................................................................65
Специализированные драйверы ..........................................................................67
Ограничение ресурсов ..............................................................................................68
Пример: мониторинг клубного зала ........................................................................69
Аппаратные устройства ........................................................................................69
Реализация .............................................................................................................77
Конфигурация сервиса ........................................................................................101
Права доступа ......................................................................................................102
Окончательные результаты ................................................................................102
Пример: простой медиа-плеер ...............................................................................103
Резюме ......................................................................................................................105

Глава 4. Встроенные системы с ограниченными ресурсами ...........106

Общий обзор применения малых систем ..............................................................106
Пример: устройство управления лазерным резаком ........................................108
Функциональная спецификация ........................................................................110
Проектные требования .......................................................................................111
Варианты выбора реализации ............................................................................112
Интегрированные среды разработки и рабочие среды для встроенных  
систем .......................................................................................................................118
Программирование микроконтроллеров ..............................................................119
Программирование памяти и отладка устройства ...........................................120
Загрузчик..............................................................................................................124
Управление памятью ...............................................................................................124
Стек и динамически распределяемая память ...................................................126
Прерывания, ESP8266 IRAM_ATTR......................................................................127
Параллельный режим выполнения ........................................................................129
Разработка для AVR с использованием Nodate ......................................................130
Вводная информация о Nodate ...........................................................................131
Пример: инструмент тестирования интегральной микросхемы CMOS ..........132
Практическое использование .............................................................................137
Разработка для ESP8266 с использованием Sming ................................................141
Разработка для микроконтроллеров ARM .............................................................142
Использование операционной системы реального времени ...............................142
Резюме ......................................................................................................................143

Содержание  7

Глава 5. Пример: монитор влажности почвы  
с использованием протокола Wi-Fi ...........................................................145
Уход за растениями .................................................................................................145
Предлагаемое решение ...........................................................................................147
Аппаратура ...............................................................................................................148
Специализированное программное обеспечение ................................................152
Настройка рабочей среды Sming ........................................................................152
Код модуля для растения (plant) .........................................................................154
Компиляция и запись в ПЗУ ...............................................................................182
Первоначальное конфигурирование .................................................................183
Использование системы .....................................................................................184
Дальнейшие действия .............................................................................................184
Сложности ................................................................................................................185
Резюме ......................................................................................................................185

Часть II. ТЕСТИРОВАНИЕ, МОНИТОРИНГ .........................................186

Глава 6. Тестирование приложений, предназначенных  
для конкретных ОС ..........................................................................................187
Почему следует избегать разработки на реальной аппаратуре ...........................187
Кросс-компиляция для одноплатных компьютеров .............................................189
Комплексный тест для сервиса управления состоянием клубного  
помещения ...............................................................................................................190
Имитация или реальная аппаратура ..................................................................198
Тестирование с использованием Valgrind ..............................................................200
Многоцелевая система сборки ...............................................................................201
Удаленное тестирование на реальной аппаратуре ...............................................210
Резюме ......................................................................................................................212

Глава 7. Тестирование платформ с ограниченными ресурсами .....213
Снижение степени износа оборудования ..............................................................213
Планирование проектного решения ......................................................................214
Системы сборки, независимые от платформы ......................................................215
Использование кросс-компиляторов .....................................................................216
Локальная отладка и отладка на микросхеме ........................................................216
Пример: комплексный тест ESP8266 ......................................................................217
Сервер ...................................................................................................................218
Узел .......................................................................................................................239
Сборка проекта ....................................................................................................265
Резюме ......................................................................................................................266

Глава 8. Пример: информационно-развлекательная система  
на основе ОС Linux ...........................................................................................268
Одно устройство выполняет все задачи .................................................................268
Необходимая аппаратура ........................................................................................269

 Содержание

Требования к программному обеспечению ..........................................................270
Bluetooth-источники и приемники аудио .............................................................271
Организация потока в режиме онлайн ..................................................................272
Управляемый голосом пользовательский интерфейс ..........................................273
Использование сценариев ......................................................................................273
Исходный код ...........................................................................................................274
Сборка проекта ........................................................................................................282
Расширение системы ..............................................................................................283
Резюме ......................................................................................................................284

Глава 9. Пример: мониторинг и управление внутренним  
микроклиматом в здании ..............................................................................285

Растения, помещения и прочее ..............................................................................285
История разработки ................................................................................................286
Функциональные модули ........................................................................................288
Исходный код специализированного ПО ..............................................................288
Ядро ......................................................................................................................288
Модули ..................................................................................................................289
Сервер управления и контроля ...............................................................................318
Инструментальное средство администрирования ...............................................329
Система кондиционирования воздуха ..................................................................329
База данных InfluxDB для записи показаний датчиков ........................................332
Вопросы обеспечения безопасности ......................................................................334
Дальнейшие разработки .........................................................................................335
Резюме ......................................................................................................................335

Часть III. ИНТЕГРАЦИЯ С ДРУГИМИ  
ИНСТРУМЕНТАЛЬНЫМИ СРЕДСТВАМИ  
И РАБОЧИМИ СРЕДАМИ ...........................................................................337

Глава 10. Разработка встроенных систем с использованием Qt ...338

Главное преимущество правильно выбранной рабочей среды ...........................338
Использование Qt для приложений с интерфейсом командной строки .............339
Приложения с использованием графического пользовательского  
интерфейса Qt ..........................................................................................................341
Qt для встроенных систем ......................................................................................344
Графические пользовательские интерфейсы с использованием таблиц  
стилей .......................................................................................................................345
QML ...........................................................................................................................345
3D Designer ...............................................................................................................345
Пример добавления графического пользовательского интерфейса   
в информационно-развлекательную систему .......................................................346
Основной файл исходного кода (main) ..............................................................347
QmlInterface .........................................................................................................347
Резюме ......................................................................................................................364

Содержание  9

Глава 11. Разработка для гибридных систем SoC/FPGA ...................365
Организация исключительно параллельного выполнения ..................................365
Языки описания аппаратуры ..................................................................................367
Архитектура ППВМ ..................................................................................................368
Гибридные микросхемы FPGA/SoC ........................................................................368
Пример: простой осциллограф ...............................................................................369
Аппаратура ...........................................................................................................370
Код VHDL ..............................................................................................................371
Код C++ .................................................................................................................376
Сборка проекта ........................................................................................................379
Резюме ......................................................................................................................379

Приложение А. Эффективные практические методики ....................380
Тщательно продуманные планы ............................................................................380
Работа с аппаратурой ..............................................................................................381
Огромный мир периферийных устройств .............................................................381
Изучайте свои инструментальные средства ..........................................................382
Выбор асинхронных методов .................................................................................382
Изучение спецификаций ........................................................................................383
Обеспечение краткости обработчиков прерываний .............................................383
8 бит означает 8 бит .................................................................................................383
Не следует заново изобретать колесо .....................................................................384
Подумайте, прежде чем начать оптимизацию ......................................................384
Требования – это основа, а не дополнение ............................................................384
Документация жизненно важна .............................................................................385
Тестирование кода означает попытку нарушить его выполнение ......................386
Резюме ......................................................................................................................386

Предметный указатель ...................................................................................387

Об авторе

Майа Пош (Maya Posch) – ведущий разработчик на языке C++, обладающий более 
чем 15-летним опытом практической работы. Открыв для себя сначала столь увлекательную область деятельности, как программирование, а немного позже не 
менее увлекательную электронику, Майа всегда проявляла живой интерес к технологиям и охотно разделяла свое страстное увлечение с другими.
Сама Майа называет себя разработчиком на языке C, который со временем 
увлекся языками C++ и Ada. Ей нравится работать в условиях, ограничивающих 
объем программного кода и возможности аппаратуры до минимума, и создавать 
в этих условиях новые, эффективные и удобные системы.
Майа также активно интересуется разработками с использованием программируемых пользователем вентильных матриц (ППВМ – FPGA), разработками 
в области искусственного интеллекта и исследованиями в сфере робототехники, 
а кроме того, обладает талантами литератора, музыканта и живописца.

Доступ онлайн
999 ₽
В корзину