- •Встроенные микропроцессорные системы
- •Оглавление
- •2. Программное обеспечение встроенных систем ……….
- •Введение
- •Модуль 1
- •Аппаратные средства встроенных систем
- •1.2. Элементы архитектуры процессоров встроенных систем
- •1.2.1. Множество команд
- •1.2.3.1. Адресное пространство
- •1.2.3.2. Порядок байт
- •1. 2.3.3. Когерентность памяти
- •1. 2.3.4. Защита памяти
- •1. 2. 4. Модель прерываний
- •1.2. 5.Модель управления памятью
- •1.2.5.1. Страничная организация памяти
- •1.2.5.2. Сегментация памяти
- •1.3. Типы процессоров
- •1.4. Формы параллелизма в процессорах
- •1.4.1. Конвейеризация
- •1.4.2. Параллелизм уровня команд
- •1.5.Технологии памяти
- •1.5.1. Оперативная память
- •1.5.1. 1. Статическое озу
- •1.5.2. Постоянное запоминающее устройство (rom)
- •1.6. Иерархия памяти
- •1.6.1. Распределение или карта памяти
- •1.6.2. Блокнотная и кэш память
- •1.6.2.1. Кэш-память прямого отображения
- •1.6.2.2. Ассоциативная по множеству кэш-память
- •1.6.2.3. Обновление кэш-памяти.
- •1.6.2.4. Протокол когерентности кэширования с обратной записью
- •1.7. Магистраль микропроцессорной системы
- •1.8. Базовые устройства ввода-вывода встроенных систем
- •1.8.1. Порты ввода-вывода общего назначения
- •1.7.2. Таймер-счетчик
- •1.8.3. Импульсно-кодовая модуляция.
- •1.8.4. Многоканальный аналого-цифровой преобразователь
- •1.9. Базовые последовательные интерфейсы ввода-вывода
- •1.9.2. Последовательный интерфейс spi
- •1.9.4.1. Введение в usb
- •1.9.4.2. Интерфейс Open Host Controller для usb
- •Вопросы для самоконтроля
- •Модуль 2
- •1.10. Язык проектирования аппаратуры vhdl
- •1.10.2. Введение в vhdl
- •1.10.2.1. Программирование на vhdl для моделирования и синтеза [19]
- •1.10.2.2. Entity и architecture
- •1.10.2.3. Операторы присваивание и process [19]
- •1.10.2.4. Цикл моделирования vhdl
- •1.10.2.5. Многозначная логика и стандарт ieee 1164
- •1.11. Проектирование устройств ввода-вывода и контроллеров
- •1.12. Интегрированная среда разработки аппаратных средств
- •Вопросы для самоконтроля
- •Модуль 3
- •2. Программное обеспечение встроенных систем
- •2.1 Модель вычислений
- •2.2 Автомат с конечным числом состояний
- •2.3. Асинхронный язык проектирования sdl
- •2.4. Синхронный язык проектирования Lustre
- •2.5. Многозадачность.
- •2.5.1. Язык программирования Си
- •2.5.2. Потоки
- •2.5.2.1. Реализация потоков
- •2.5.2.2. Взаимное исключение
- •2.5.2.3. Взаимная блокировка
- •2.5.2.4. Модели непротиворечивости памяти
- •2.5.2.5. Проблемы с потоками
- •2.5.3. Процессы и передача сообщений
- •2.6. Интегрированная среда разработки прикладного программного
- •2.6.2. Комплект программ Telelogic Tau sdl Suite
- •2.6.3. Средства разработки программного обеспечения
- •2.7.1. Моделирование, эмуляция и макетирование
- •2.7.2. Формальная верификация
- •2.7.3. Оценка производительности
- •2.7.3.1. Оценка wcet
- •2.7.3.2. Исчисление реального времени
- •1 2 3 E
- •2.7.4. Модели энергии и мощности
- •2.7.5. Тепловая модель
- •Вопросы для самоконтроля
- •Заключение
- •Задания
- •1. Конвейеризация
- •2. Иерархия памяти
- •3. Базовые устройства ввода-вывода встроенных систем
- •5. Многозадачность
- •6. Валидация и оценка проекта
- •Библиографический список
- •Встроенные микропроцессорные системы
Вопросы для самоконтроля
Когда целесообразно использовать реконфигурируемую логику?
Как в реконфигурируемой логике реализуется многообразие логических функций?
Почему для моделирования и синтеза используются разные подмножества языка VHDL?
Почему одна entity может содержать несколько архитектурных тел?
Почему оператор присваивания значения сигналу в одном случае является последовательным, а в другом параллельным?
В чем суть различия переменной и сигнала?
Какие конструкции являются базовыми для задания поведения архитектуры с учетом параллельности выполняемых действий?
Какова роль списка чувствительности в операторе process?
В каком варианте используется оператор wait для синтеза?
В чем суть событийного моделирования?
Что моделирует сила сигнала?
Что означает второе свойство модели программно-управляемого автомата об ее рекурсивности.
Модуль 3
2. Программное обеспечение встроенных систем
Программное обеспечение (ПО) встроенных систем можно разделить на два основных класса: системное и прикладное ПО. Системное ПО это такие программы как драйверы устройств, пакеты поддержки плат (BSP – Board Support Package), операционные системы (ОС) и промежуточное ПО. Прикладное ПО это программы верхнего уровня, которые и определяют назначение и функции встроенной системы, а также управляют большинством элементов взаимодействия с окружающей средой.
Драйверы устройств это библиотеки программ для инициализации аппаратных средств, управления доступа к ним элементами вышестоящего уровня.
ОС это множество библиотек предназначенных для обеспечения уровня абстракций на верхних уровнях ПО, уменьшения зависимости от аппаратных средств, управления различными системными аппаратными средствами и программными ресурсами, обеспечения эффективности и надежности системных операций. Полноценные ОС могут размещаться в MPS, множество команд которых поддерживают привилегированный режим работы.
Встроенные системы часто напрямую не взаимодействуют с человеком как персональные компьютеры. Как следствие совокупность необходимых сервисов ОС, в которых они нуждаются, может быть очень разным. Microsoft Windows, MacOS X и Linux сегодня являются доминирующими ОС для персональных компьютеров общего назначения. Они обеспечивают сервисы, которые для встроенных MPS могут потребоваться, а могут и нет. Например, многие встроенные приложения не требуют графического интерфейса пользователя (GUI), файловой системы, управления фонтами и даже сетевого стека.
Несколько ОС были спроектированы специально для встроенных приложений: Windows CE (WinCE) от Microsoft, VxWorks от WindRiver Systems (приобретена Intel в 2009), QNX от QNX Software Systems (приобретена в 2010 Research in Motion (RIM)), Embedded Linux (поддерживает открытое сообщество) и FreeRTOS (поддерживает другое открытое сообщество). Эти ОС разделяют много особенностей с ОС общего назначения, но обычно имеют специализированное ядро операционных систем реального времени (RTOS). RTOS обеспечивает ограниченную задержку при выполнении подпрограмм обработки прерываний и программы планировщика для процессов с ограничениями реального времени.
Мобильные операционные системы являются третьим классом ОС, спроектированных для управления такими устройствами как мобильные телефоны и карманные компьютеры. Примерами являются Symbian OS (открытая с поддержкой Symbian Foundation), Android от Google, BlackBerry OS от RIM, iPhone OS от Apple, Palm OS от Palm, Inc.( приобретена Hewlett Packard и 2010) и Windows Mobile, Windows Phone от Microsoft. Эти ОС имеют специальную поддержку для беспроводного взаимодействия и мультимедиа-форматов.
Сердцевиной любой ОС является ядро (kernel), которое управляет порядком, в котором процессы выполняются, какую память используют и как информация передается к периферийным устройствам и сетям через драйверы устройств.
Микроядро (microkernel) – очень маленькая ОС, которая обеспечивает только эти сервисы (или даже подмножество сервисов). ОС могут поддерживать и другие сервисы: виртуальную память, выделение и освобождение памяти, защиту памяти, файловую систему и сервисы для программ, такие как семафоры, мутексы и библиотеки передачи сообщений.
Промежуточное ПО обычно является посредником между приложением и ядром ОС или драйверами устройств.
Основная целькомпонент BSP это обеспечить уровень абстракции между ОС и драйверами устройств.
На рис. 63 представлены различные уровневые модели встроенных систем, отличающихся стеком программ системного ПО.
Рис. 63. Варианты уровневых моделей встроенных систем