Руководство по микропрограммному обеспечению
Покупка
Тематика:
Прикладное программное обеспечение
Издательство:
ДМК Пресс
Под ред.:
Ганссл Джек
Перевод:
Семенкович А. О.
Год издания: 2023
Кол-во страниц: 401
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-89818-424-7
Артикул: 651165.03.99
Книга адресована разработчикам микрокода, пишущим те самые программы, на которых работают технологии XXI века. Она заполняет важнейший пробел в литературе по встраиваемому ПО. Существует настоятельная потребность в сборнике идей и концепций, справочнике, настольной книге инженеров, куда они заглядывали бы, чтобы найти решение своих задач и освежить в памяти забытый материал. В книге описываются инструментальные средства и методы улучшения качества программного кода, эволюционная разработка ПО, встраиваемые конечные автоматы, системы реального времени, обработка и управление ошибками. Примеры сопровождаются многочисленные листингами на языках С и С++. Издание предназначено инженерам и программистам, использующих встраиваемое ПО в своей работе, а также будет полезно студентам вузов и всем читателям, интересующимся микропрограммным обеспечением.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Руководство по микропрограммному обеспечению Под редакцией Джека Ганссла
The Filmware Handbook Edited by Jack Ganssle AMSTERDAM • BOSTON • HEIDELBERG • LONDON • NEW YORK • OXFORD • PARIS SAN DIEGO • SAN FRANCISCO • SINGAPORE • SYDNEY • TOKYO Newnes is an imprint of Elsevier
Руководство по микропрограммному обеспечению Под редакцией Джека Ганссла Москва, 2023 2-е издание, электронное
УДК 004.41 ББК 32.972.1 Р85 Р85 Руководство по микропрограммному обеспечению / под ред. Дж. Ганссла ; пер. с англ. А. О. Семенкович. — 2-е изд., эл. — 1 файл pdf : 401 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-424-7 Книга адресована разработчикам микрокода, пишущим те самые программы, на которых работают технологии XXI века. Она заполняет важнейший пробел в литературе по встраиваемому ПО. Существует настоятельная потребность в сборнике идей и концепций, справочнике, настольной книге инженеров, куда они заглядывали бы, чтобы найти решение своих задач и освежить в памяти забытый материал. В книге описываются инструментальные средства и методы улучшения качества программного кода, эволюционная разработка ПО, встраиваемые конечные автоматы, системы реального времени, обработка и управление ошибками. Примеры сопровождаются многочисленные листингами на языках С и С++. Издание предназначено инженерам и программистам, использующих встраиваемое ПО в своей работе, а также будет полезно студентам вузов и всем читателям, интересующимся микропрограммным обеспечением. УДК 004.41 ББК 32.972.1 Электронное издание на основе печатного издания: Руководство по микропрограммному обеспечению / под ред. Дж. Ганссла ; пер. с англ. А. О. Семенкович. — Москва : ДМК Пресс, 2016. — 408 с. — ISBN 978-5-97060173-0. — Текст : непосредственный. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-424-7 © Издание, оформление, перевод, ДМК Пресс, 2016
Содержание Благодарности ...............................................................................................................14 Введение ..........................................................................................................................15 I Основы оборудования ..................................................................................16 Введение ..........................................................................................................................17 Глава 1. Основы электроники ..................................................................................19 Цепи постоянного тока .......................................................................................................19 Напряжение и сила тока .............................................................................................19 Резисторы ........................................................................................................................21 Электрические цепи .....................................................................................................24 Мощность.........................................................................................................................27 Цепи переменного тока ......................................................................................................28 Конденсаторы .................................................................................................................29 Индуктивности ..............................................................................................................34 Активные компоненты ........................................................................................................35 Собираем все элементы вместе – источник питания ...............................................39 Осциллограф ..........................................................................................................................43 Средства управления ...................................................................................................43 Зонды.................................................................................................................................46 Глава 2. Логические цепи ..........................................................................................49 Кодирование чисел ..............................................................................................................49 Двоичнодесятичное представление ......................................................................52 Комбинаторная логика .......................................................................................................52 Логический элемент НЕ .............................................................................................53 Логические элементы И и НЕИ .............................................................................53 Логические элементы ИЛИ и НЕИЛИ ...............................................................55 Исключающее ИЛИ .....................................................................................................55 Схемы ................................................................................................................................56 Устройства с тремя состояниями .............................................................................59 Последовательностная логика .........................................................................................59 Логическое резюме ...............................................................................................................64 Глава 3. Советы по разработке аппаратных средств .....................................65 Диагностика ............................................................................................................................65 Средства подключения .......................................................................................................66 Другие рекомендации .........................................................................................................67 Резюме ......................................................................................................................................69
СОДЕРЖАНИЕ 6 II Проектирование ..............................................................................................70 Введение ..........................................................................................................................71 Глава 4. Инструментальные средства и методы улучшения качества программного кода ...................................................................................73 Введение ..................................................................................................................................73 Традиционный цикл последовательной разработки встраиваемой системы ...................................................................................................................................73 Типичные проблемы современного рынка встраиваемых систем .......................74 Общие методы повышения качества кода и сокращения сроков выхода на рынок ....................................................................................................................75 Фиксируйте спецификацию и работайте параллельно ...................................75 Создавайте контрольные отметки ...........................................................................75 Используйте доступные ресурсы ............................................................................75 Непрерывно обучайте своих сотрудников ...........................................................76 Основные факторы, влияющие на продолжительность цикла разработки ...............................................................................................................................76 Какой этап длится дольше других? ................................................................................77 Как снизить время разработки ПО и повысить качество кода .............................77 Пишите код в соответствии с внутренним руководством по оформлению ПО .....................................................................................................77 Выполняйте проверку кода .......................................................................................79 Выбирайте подходящие инструментальные средства разработки ..............79 Повторное использование вместо повторного изобретения ..........................82 Как сократить сроки проектирования аппаратной части системы .....................83 Используйте как можно больше готовой продукции .......................................83 Тщательно подбирайте микроконтроллер ...........................................................83 Пример микроконтроллеров, сокращающих сроки выхода на рынок, – микроконтроллеры Philips .................................................................84 Резюме и перспективы ........................................................................................................84 Глава 5. Советы по улучшению функций ............................................................86 Минимизируйте функциональные возможности .....................................................86 Инкапсулируйте ...................................................................................................................87 Избавляйтесь от избыточности .......................................................................................88 Сокращайте код реального времени ..............................................................................88 Ход программы должен быть грациозным ..................................................................89 Беспощадно улучшайте программы ...............................................................................89 Применяйте стандарты и экспертизу ............................................................................90 Тщательно комментируйте программу .........................................................................91 Резюме ......................................................................................................................................93 Глава 6. Эволюционная разработка ......................................................................95 Введение ..................................................................................................................................95 1. История ...............................................................................................................................96
СОДЕРЖАНИЕ 7 2. Проблемы, решаемые методом Эво ...........................................................................97 A. Парадоксы требований ..........................................................................................97 B. Очень короткие циклы ...........................................................................................98 C. Быстрая и частая обратная связь .................................................................... 100 D. Фиксация сроков .................................................................................................. 101 E. Оценка, планирование и контроль .................................................................. 103 F. Разница между напряженной работой и выполнением заказа .............. 104 G. Обязательства ........................................................................................................ 106 H. Риски ........................................................................................................................ 107 I. Производственные совещания .......................................................................... 107 J. Волшебные слова ................................................................................................... 108 3. Как мы используем метод Эво в работе над проектом ..................................... 109 A. День Эво ................................................................................................................... 109 B. Последний день цикла ........................................................................................ 110 C. Производственное совещание .......................................................................... 111 4. Памятки ........................................................................................................................... 112 А. Критерии назначения приоритетов заданиям ............................................ 112 В. Критерии назначения приоритетных сроков завершения промежуточных этапов ............................................................................................ 112 С. Критерии завершения задания ........................................................................ 113 5. Использование метода Эво в новых проектах .................................................... 114 6. Тестирование в методе Эво ........................................................................................ 116 7. Запросы об изменениях и отчеты о проблемах .................................................. 117 8. Инструментальные средства ..................................................................................... 117 9. Выводы .............................................................................................................................. 119 Благодарности .................................................................................................................... 121 Ссылки .................................................................................................................................. 121 Глава 7. Реализация встраиваемого конечного автомата ..........................123 Конечные автоматы .......................................................................................................... 123 Пример .................................................................................................................................. 124 Реализация ........................................................................................................................... 127 Тестирование ....................................................................................................................... 130 Запуск системы .................................................................................................................. 131 Ссылки .................................................................................................................................. 131 Глава 8. Иерархические конечные автоматы ..................................................132 Пример традиционного конечного автомата ........................................................... 133 Пример иерархического конечного автомата .......................................................... 135 Глава 9. Разработка приложений, критически важных для обеспечения безопасности .............................................................................140 Введение ............................................................................................................................... 140 Надежность и безопасность ........................................................................................... 141 История документа DO178B ....................................................................................... 141 Обзор стандарта DO178B ............................................................................................. 142
СОДЕРЖАНИЕ 8 Классификация неисправных состояний ................................................................. 143 Анализ архитектуры системы ....................................................................................... 144 Разбиение на разделы ............................................................................................... 144 Несколько версий разнородного ПО .................................................................. 145 Мониторинг безопасности ...................................................................................... 145 Документация по архитектуре системы .................................................................... 146 Жизненный цикл программного обеспечения согласно стандарту DO178B ............................................................................................................................... 146 Планирование.............................................................................................................. 146 Разработка .................................................................................................................... 147 Процесс разработки ................................................................................................... 147 Виды деятельности при разработке ПО ............................................................ 148 Верификация требований к ПО ............................................................................ 148 Верификация проектирования ПО ..................................................................... 149 Верификация программного кода ........................................................................ 149 Верификация процесса интеграции .................................................................... 149 Верификация процесса верификации ................................................................ 149 Управление конфигурацией ................................................................................... 150 Обеспечение качества ПО (SQA) ......................................................................... 151 Технология объектноориентированного программирования и проблемы приложений, критически важных для обеспечения безопасности ........................................................................................................................ 151 Итеративный процесс ...................................................................................................... 152 Проблемы сертификации объектноориентированных приложений ............. 152 Автоматическая генерация кода ........................................................................... 153 Автоматическая генерация тестов ....................................................................... 155 Возможность оперативного контроля ................................................................ 155 Управление конфигурацией ................................................................................... 155 Структурный охват ................................................................................................... 156 Невыполняемые/деактивированные участки программы .......................... 156 Наследование и множественное наследование ............................................... 156 Резюме ................................................................................................................................... 157 Ссылки .................................................................................................................................. 157 Глава 10. Установка и использование системы контроля версий ...........158 Введение ............................................................................................................................... 158 Мощь и элегантность простоты .................................................................................... 159 Контроль версий ................................................................................................................ 160 Типичные признаки отказа от использования (неполного использования) системы контроля версий .............................................................. 160 Простые системы контроля версий ............................................................................. 161 Усовершенствованные системы контроля версий ................................................. 161 Для каких файлов нужно использовать контроль версий .................................. 162 Совместная работа с файлами и клиенты системы контроля версий ............. 162 Нет локального клиента, нет общей файловой системы .............................. 163 Нет локального клиента, но есть общая файловая система ........................ 163
СОДЕРЖАНИЕ 9 Есть локальный клиент, но нет общей файловой системы ......................... 163 Есть и локальный клиент, и общая файловая система ................................. 163 Проблемы интегрированной среды разработки ..................................................... 164 Проблемы графического интерфейса пользователя ............................................. 164 Спецификация SCC ......................................................................................................... 165 Интерфейс для веббраузера или клиентJavaсистем контроля версий ...... 165 Основные положения концепции контроля версий ...................................... 166 Советы ............................................................................................................................ 171 Отслеживание ошибок .................................................................................................... 174 Неконфигурационные средства управления ........................................................... 176 ПО для зеркального отображения информации ............................................. 176 Автоматизированное резервное копирование ................................................. 176 Веббраузер .................................................................................................................. 176 Группы новостей в Интернете ............................................................................... 177 Заключительные комментарии .................................................................................... 177 Рекомендованная литература, ссылки и ресурсы .................................................. 178 III Математика .....................................................................................................180 Введение ........................................................................................................................181 Глава 11. Введение в машинные вычисления ..................................................182 Введение ............................................................................................................................... 182 Целочисленная арифметика .......................................................................................... 182 Деление и отрицательные числа .................................................................................. 182 Целые типы и их размер .......................................................................................... 185 Переполнение или исчезновение значащих разрядов .......................................... 186 Математические операции с плавающей запятой .................................................. 189 Неожиданный результат .......................................................................................... 189 Форматы с плавающей запятой ............................................................................ 190 Погрешности округления ........................................................................................ 192 Ошибки при умножении и делении .................................................................... 194 Ошибки при сложении и вычитании .................................................................. 195 Обработка ошибок при вычислениях с плавающей запятой ...................... 197 Использование эквивалентных выражений для устранения катастрофической потери точности .................................................................... 199 Арифметические операции с фиксированной запятой ........................................ 201 Область применимости ............................................................................................ 201 Представление чисел с фиксированной запятой и операции над ними ........................................................................................................................ 202 Обработка ошибок при выполнении операций с фиксированной запятой ........................................................................................................................... 203 Заключение .......................................................................................................................... 204 Библиография..................................................................................................................... 204
СОДЕРЖАНИЕ 10 Глава 12. Аппроксимации для вычислений с плавающей запятой .........205 Общие замечания о тригонометрических функциях ............................................ 206 Косинус и синус .......................................................................................................... 207 Более точное вычисление косинуса ............................................................................ 213 Тангенс ................................................................................................................................... 214 Более точное вычисление тангенса ............................................................................. 219 Арктангенс, арксинус и арккосинус ............................................................................ 220 Глава 13. Математические функции ...................................................................224 Код Грея ................................................................................................................................ 224 Умножение целого на константу .................................................................................. 224 Вычисление исключающего ИЛИ ............................................................................... 224 Извлечение квадратного корня в целых числах ..................................................... 225 Важнейшие математические функции ....................................................................... 225 Глава 14. Стандарт IEEE 754 для чисел с плавающей запятой .................226 Специальные значения .................................................................................................... 227 IV Системы реального времени ....................................................................229 Введение ........................................................................................................................230 Глава 15. Ядра реального времени ......................................................................231 Введение ............................................................................................................................... 231 Что такое ядро реального времени? ............................................................................ 231 Что такое задача? ............................................................................................................... 232 Тактовый интервал таймера ........................................................................................... 235 Планирование задач ......................................................................................................... 236 Переключение контекстов .............................................................................................. 238 Службы ядра ....................................................................................................................... 239 Службы ядра. Семафоры ......................................................................................... 239 Службы ядра. Очереди сообщений ...................................................................... 243 Службы ядра. Управление памятью .................................................................... 245 Нужно ли вам ядро? .................................................................................................. 245 Можете ли вы использовать ядро? ...................................................................... 246 Выбор ядра ................................................................................................................... 247 Заключение .......................................................................................................................... 250 Глава 16. Реентерабельность .................................................................................251 Атомарные переменные ................................................................................................... 251 Еще два правила ................................................................................................................. 253 Обеспечение реентерабельности кода ........................................................................ 254 Рекурсия ............................................................................................................................... 256