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

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

Покупка
Новинка
Артикул: 767471.02.99
Доступ онлайн
998 ₽
В корзину
Из этой книги вы узнаете, как создавать автономные и сетевые встроенные системы, обеспечивать их безопасность и рациональное использование памяти. Язык программирования C++ расширяет возможности сопровождения и обладает многочисленными преимуществами по сравнению с другими языками программирования, поэтому прекрасно подходит для такой разработки. В книге описывается методика создания удобных графических интерфейсов пользователя (GUI) для встроенных систем, а также методы интеграции проверенных стратегий в конкретные проекты для достижения оптимальной производительности аппаратуры. Рассмотрены разнообразные аппаратные платформы — у вас есть возможность выбрать наилучший вариант для своего проекта. Издание будет полезно архитекторам встроенных систем и опытным разработчикам на C++.
17
106
186
337
Пош, М. Программирование встроенных систем на C++17 : практическое руководство / М. Пош ; пер. с анг. А. В. Снастина. - Москва : ДМК Пресс, 2020. - 396 с. - ISBN 978-5-97060-785-5. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2260365 (дата обращения: 08.10.2026). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Майа Пош
Программирование  
встроенных систем на 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


6    Содержание
Шаблоны.................................................................................................................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


8    Содержание
Требования к программному обеспечению...........................................................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), разработками 
в области искусственного интеллекта и исследованиями в сфере робототехники, 
а кроме того, обладает талантами литератора, музыканта и живописца.


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