Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 637335)
Контекстум
Электро-2024

Руководство по микропрограммному обеспечению (1500,00 руб.)

0   0
Первый авторГанссла
ИздательствоМ.: ДМК Пресс
Страниц401
ID836741
АннотацияКнига адресована разработчикам микрокода, пишущим те самые программы, на которых работают технологии XXI века. Она заполняет важнейший пробел в литературе по встраиваемому ПО. Существует настоятельная потребность в сборнике идей и концепций, справочнике, настольной книге инженеров, куда они заглядывали бы, чтобы найти решение своих задач и освежить в памяти забытый материал. В книге описываются инструментальные средства и методы улучшения качества программного кода, эволюционная разработка ПО, встраиваемые конечные автоматы, системы реального времени, обработка и управление ошибками. Примеры сопровождаются многочисленные листингами на языках С и С++. Издание предназначено инженерам и программистам, использующих встраиваемое ПО в своей работе, а также будет полезно студентам вузов и всем читателям, интересующимся микропрограммным обеспечением.
ISBN978-5-89818-424-7
Ганссла, Дж. Руководство по микропрограммному обеспечению / Дж. Ганссла .— Москва : ДМК Пресс, 2023 .— 401 с. — ISBN 978-5-89818-424-7 .— URL: https://rucont.ru/efd/836741 (дата обращения: 01.06.2024)

Предпросмотр (выдержки из произведения)

Руководство_по_микропрограммному_обеспечению.pdf
Стр.5
Стр.6
Стр.7
Стр.8
Стр.9
Стр.10
Стр.11
Стр.12
Стр.13
Стр.14
Руководство_по_микропрограммному_обеспечению.pdf
УДК 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
Стр.5
Содержание Благодарности ...............................................................................................................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
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
СОДЕРЖАНИЕ 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 История документа DO­178B ....................................................................................... 141 Обзор стандарта DO­178B ............................................................................................. 142
Стр.8
8 СОДЕРЖАНИЕ Классификация неисправных состояний ................................................................. 143 Анализ архитектуры системы ....................................................................................... 144 Разбиение на разделы ............................................................................................... 144 Несколько версий разнородного ПО .................................................................. 145 Мониторинг безопасности ...................................................................................... 145 Документация по архитектуре системы .................................................................... 146 Жизненный цикл программного обеспечения согласно стандарту DO­178B ............................................................................................................................... 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
СОДЕРЖАНИЕ 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
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
Стр.11
СОДЕРЖАНИЕ 11 Асинхронность оборудования/микропрограммного обеспечения .................. 257 Состояние конкуренции ................................................................................................. 258 Варианты решения проблемы ....................................................................................... 259 Другие ОС реального времени ..................................................................................... 261 Метастабильные состояния ........................................................................................... 262 Микрокод, а не оборудование ....................................................................................... 264 Глава 17. Латентность прерываний .....................................................................268 Получение данных ............................................................................................................ 271 Глава 18. Как работает ваш компилятор языка C: минимизация размеров программы .................................................................................................274 Современные компиляторы языка C .......................................................................... 275 Структура компилятора .......................................................................................... 275 Смысл программы ..................................................................................................... 277 Базовые преобразования ......................................................................................... 277 Распределение регистров ........................................................................................ 279 Вызовы функций ........................................................................................................ 280 Подстановка функций .............................................................................................. 280 Сжатие кода низкого уровня .................................................................................. 281 Компоновщик .............................................................................................................. 281 Управление оптимизацией, осуществляемой компилятором .................... 282 Модель памяти ............................................................................................................ 283 Советы по программированию ..................................................................................... 283 Правильно подбирайте размер переменных ..................................................... 283 Используйте указатели наиболее подходящего типа .................................... 284 Структуры и байты заполнения ............................................................................ 285 Используйте прототипы функций ....................................................................... 286 Используйте параметры .......................................................................................... 287 Не используйте операцию получения адреса ................................................. 287 Не используйте встроенный ассемблер ............................................................. 288 Не пишите остроумный код ................................................................................... 288 Проверяйте значения битовых полей перед использованием ................... 290 Следите за использованием библиотечных функций ................................... 290 Используйте дополнительные подсказки компилятору .............................. 291 Финальные замечания ..................................................................................................... 291 Благодарности .................................................................................................................... 292 Глава 19. Оптимизация кода на языках C и C++ ...........................................293 Устанавливайте размеры структур равными степени двойки ........................... 293 Размещайте метки «case» как можно ближе друг к другу ................................... 293 Размещайте наиболее используемые метки case вначале ................................... 293 Разбивайте крупные операторы switch на вложенные операторы­переключатели ............................................................................................. 294 Минимизируйте число локальных переменных .................................................... 295
Стр.12
12 СОДЕРЖАНИЕ Описывайте локальные переменные как можно глубже внутри функций ................................................................................................................................ 295 Сокращайте число аргументов ..................................................................................... 295 Используйте ссылки при передаче параметров и возвращаемого значения для типов, имеющих длину более 4 байтов ........................................... 296 Не определяйте возвращаемое значение, если оно не используется............... 296 Учитывайте расположение ссылок относительно кода и данных .................... 296 Старайтесь использовать тип int вместо char или short ...................................... 297 Пишите облегченные конструкторы .......................................................................... 298 Старайтесь использовать инициализацию вместо присваивания ................... 298 Используйте списки инициализации конструкторов .......................................... 299 Не объявляйте функции виртуальными «на всякий случай» ........................... 299 Используйте подстановку для функций длиной в 1–3 строки ......................... 299 Глава 20. Макросы assert в системах реального времени .........................301 Проблемы встраиваемых систем .................................................................................. 301 Макросы assert в системах реального времени ....................................................... 303 V Ошибки и исправления ...............................................................................309 Введение ........................................................................................................................310 Глава 21. Реализация загружаемого микрокода с помощью флеш-памяти ................................................................................................................311 Введение ............................................................................................................................... 311 Микропрограмматор ........................................................................................................ 312 Преимущества микропрограмматоров ....................................................................... 312 Недостатки микропрограмматоров ............................................................................. 313 Получение микропрограмматора ................................................................................. 313 Базовый микропрограмматор ....................................................................................... 314 Типичные проблемы и их решение ............................................................................. 316 Отладчику «не нравятся» перезаписываемые области памяти ................. 316 Отладчикам «не нравится» код, выполняющий перемещение самого себя .................................................................................................................... 317 Невозможность генерации позиционно­независимого кода ...................... 319 Отсутствие микрокода в момент загрузки ........................................................ 320 Постоянная блокировка по времени ................................................................... 320 Неожиданное отключение питания ..................................................................... 321 Аппаратные альтернативы.............................................................................................. 322 Разделение кода и данных .............................................................................................. 323 Гибкость и надежность..................................................................................................... 323 Глава 22. Диагностика памяти ...............................................................................325 Тестирование ПЗУ ............................................................................................................ 325 Тестирование ОЗУ ............................................................................................................ 327
Стр.13
СОДЕРЖАНИЕ 13 Глава 23. Энергонезависимая память .................................................................333 Контролирующие схемы ................................................................................................. 333 Запись многобайтных значений ................................................................................... 335 Тестирование ....................................................................................................................... 339 Выводы .................................................................................................................................. 340 Глава 24. Профилактическая отладка ................................................................341 Стеки и кучи ........................................................................................................................ 341 Заполнение памяти ........................................................................................................... 344 Блуждающий код ............................................................................................................... 346 Специальные дешифраторы .......................................................................................... 348 Блоки управления памятью ........................................................................................... 349 Выводы .................................................................................................................................. 350 Глава 25. Обработка исключительных ситуаций на C++ ...........................351 Горы (ориентиры безопасности исключительных ситуаций) ............................ 352 История этой территории ............................................................................................... 353 Коварная ловушка ............................................................................................................. 354 Смола! .................................................................................................................................... 356 Самый легкий путь ........................................................................................................... 357 Оператор присваивания – специальный случай .................................................... 359 В плохую погоду ................................................................................................................ 360 Подведем итоги .................................................................................................................. 363 Литература ........................................................................................................................... 367 Глава 26. Отличный сторожевой таймер ...........................................................368 Внутренние сторожевые таймеры ............................................................................... 371 Внешние сторожевые таймеры ..................................................................................... 374 Характеристики отличных сторожевых таймеров................................................. 375 Использование встроенного сторожевого таймера ............................................... 379 Внешний сторожевой таймер ........................................................................................ 381 Сторожевые таймеры для многозадачной среды ............................................ 383 Выводы и некоторые соображения ............................................................................. 385 Приложение A. ASCII-коды ..................................................................................388 Приложение Б. Выравнивание и порядок байтов .........................................390 Ограничения, накладываемые на выравнивание байтов ..................................... 390 Для чего нужно ограничивать выравнивание байтов? ................................. 390 Общие правила выравнивания байтов ............................................................... 392 Выравнивание структур для повышения эффективности .......................... 392 Порядок байтов .................................................................................................................. 393 Почему используется различный порядок байтов? ....................................... 393 Подпрограммы преобразования ........................................................................... 393 Указатель .......................................................................................................................395
Стр.14

Облако ключевых слов *


* - вычисляется автоматически
Периодика по подписке
Антиплагиат система Руконтекст