Настоящая книга представляет собой исчерпывающее руководство по новому 32-битному процессору компании ARM - Cortex-МЗ. В данном руководстве подробно описана архитектура процессорного ядра Cortex-МЗ и его подсистемы памяти. Также подробно рассмотрены остальные узлы процессора, в том числе контроллер векторных прерываний NVIC, модуль защиты памяти MMU и разнообразные компоненты отладки. Приводится детальное описание новой системы команд Tbumb-2, поддерживаемой данным процессором. Книга содержит большое число примеров программного кода как на языке Си, так и на ассемблере. Это руководство должно быть у любого разработчика, использующего в своей работе микроконтроллеры с ядром Cortex-МЗ. Полнота и ясность изложения материала книги также позволяет рекомендовать её студентам соответствующих специальностей и подготовленным радиолюбителям.
Название: Ядро Cortex-МЗ компании ARM. Полное руководство Автор: Джозеф Ю Издательство: Додэка-ХХI Серия: Мировая электроника ISBN: 978-5-94120-243-0 Год: 2012 Страниц: 552 Формат: DjVu Размер: 21 Mб Язык: Русский Качество: Отличное
Содержание:
Вступительное слово Вступительное слово Вступительное слово Предисловие автора Обозначения Глоссарий Глава 1. Введение 1.1. Процессор ARM Cortex-МЗ — что же это такое? 1.2. ARM — компания и архитектура 1.2.1. Историческая справка 1.2.2. Версии архитектуры 1.2.3. Обозначения процессоров 1.3. Развитие набора команд 1.4. Технология Thumb-2 и архитектура набора команд 1.5. Области применения процессора Cortex-МЗ 1.6. Структура книги 1.7. Дополнительная литература Глава 2. Обзор Cortex-МЗ 2.1. Основные сведения 2.2. Регистры 2.2.1. R0...R12 — регистры общего назначения 2.2.2. R13 — указатели стека 2.2.3. R14 — регистр связи 2.2.4. R15 — счётчик команд 2.2.5. Регистры специального назначения 2.3. Режимы работы 2.4. Встроенный контроллер вложенных векторных прерываний 2.4.1. Поддержка вложенных прерываний 2.4.2. Поддержка векторных прерываний 2.4.3. Поддержка динамического изменения приоритетов 2.4.4. Уменьшение времени реакции на прерывание 2.4.5. Маскирование прерываний 2.5. Карта памяти 2.6. Интерфейсы шин 2.7. Модуль защиты памяти MPU 2.8. Набор команд 2.9. Прерывания и исключения 2.9.1. Низкое энергопотребление и высокая энергоэффективность 2.10. Возможности отладки 2.11. Резюме 2.11.1. Высокая производительность 2.11.2. Развитые средства поддержки прерываний 2.11.3. Низкое энергопотребление 2.11.4. Системные возможности 2.11.5. Поддержка отладки Глава 3. Основы Cortex-МЗ 3.1. Регистры 3.1.1. Регистры общего назначения с R0 по R7 3.1.2. Регистры общего назначения с R8 по R12 3.1.3. Указатель стека R13 3.1.4. Регистр связи R14 3.1.5. Счётчик команд R15 3.2. Регистры специального назначения 3.2.1. Регистры состояния программы 3.2.2. Регистры PRIMASK, FAULTMASK и BASEPRI 3.2.3. Регистр управления CONTROL 3.3. Режимы работы 3.4. Исключения и прерывания 3.5. Таблица векторов 3.6. Стек 3.6.1. Основные стековые операции 3.6.2. Реализация стека в процессоре Cortex-МЗ 3.6.3. Два стека процессора Cortex-МЗ 3.7. Цикл сброса Глава 4. Набор команд 4.1. Основы языка ассемблера 4.1.1. Язык ассемблера: основы синтаксиса 4.1.2. Язык ассемблера: использование суффиксов 4.1.3. Язык ассемблера: унифицированный язык ассемблера 4.2. Список команд 4.2.1. Неподдерживаемые команды 4.3. Описание команд 4.3.1. Язык ассемблера: пересылка данных 4.3.2. Псевдокоманды LDR и ADR 4.3.3. Язык ассемблера: обработка данных 4.3.4. Язык ассемблера: вызов подпрограмм и безусловный переход 4.3.5. Язык ассемблера: условное выполнение и переходы 4.3.6. Язык ассемблера: объединение операций сравнения и условного перехода 4.3.7. Язык ассемблера: команды барьерной синхронизации 4.3.8. Язык ассемблера: операции насыщения 4.4. Некоторые полезные команды процессора Cortex-МЗ 4.4.1. Команды MSR и MRS 4.4.2. Ещё раз об IT-блоке 4.4.3. Команды SDIV и UDIV 4.4.4. Команды REV, REVH и REVSH 4.4.5. Перестановка битов 4.4.6. Команды SXTB, SXTH, UXTB и UXTH 4.4.7. Очистка и вставка битового поля 4.4.8. Команды UBFX и SBFX 4.4.9. Команды LDRD и STRD 4.4.10. Команды табличного перехода ТВВ и ТВН Глава 5. Система памяти 5.1. Основные особенности системы памяти 5.2. Карта памяти 5.3. Атрибуты доступа к памяти 5.4. Права доступа к памяти, принятые по умолчанию 5.5. Операции побитового доступа 5.5.1. Преимущества использования метода bit-band 5.5.2. Битовые операции с данными разной разрядности 5.5.3. Битовые операции в Си-программах 5.6. Обращения к не выровненным данным 5.7. Монопольный доступ 5.8. Порядок расположения байтов Глава 6. Особенности реализации Cortex-МЗ 6.1. Конвейер 6.2. Подробная блок-схема 6.3. Интерфейсы шин в процессоре Cortex-МЗ 6.3.1. Шина I-Code 6.3.2. Шина D-Code 6.3.3. Системная шина 6.3.4. Внешняя шина РРВ 6.3.5. Шина DAP 6.4. Другие интерфейсы процессора Cortex-МЗ 6.5. Внешняя шина РРВ 6.6. Типичная схема подключения процессора 6.7. Виды сброса и сигналы сброса Глава 7. Исключения 7.1. Типы исключений 7.2. Приоритеты исключений 7.3. Таблица векторов 7.4. Входы прерываний и отложенная обработка прерываний 7.5. Исключения отказов 7.5.1. Отказы шины 7.5.2. Отказы системы управления памятью 7.5.3. Отказы программы 7.5.4. Тяжёлые отказы 7.5.5. Обработка отказов 7.6. Вызов супервизора и системных служб Глава 8. Контроллер вложенных векторных прерываний и управление прерываниями 8.1. Общие сведения о контроллере прерываний 8.2. Базовые средства конфигурации прерываний 8.2.1. Разрешение и запрещение прерываний 8.2.2. Установка/сброс признака отложенного прерывания 8.2.3. Уровни приоритета 8.2.4. Активное состояние 8.2.6. Регистр BASEPRI 8.2.7. Конфигурационные регистры остальных исключений 8.3. Примеры инициализации прерывания 8.4. Программные прерывания 8.5. Системный таймер SYSTICK Глава 9. Прерывания 9.1. Последовательность обработки прерываний/исключений 9.1.1. Сохранение контекста 9.1.2. Выборка вектора 9.1.3. Обновление регистров 9.2. Выход из исключения 9.3. Вложенные прерывания 9.4. «Цепочечная» обработка прерываний 9.5. «Опоздавшие» исключения 9.6. Ещё раз о значении EXCJRETURN 9.7. Задержка обработки прерывания 9.8. Отказы, связанные с прерываниями 9.8.1. Сохранение контекста 9.8.2. Восстановление контекста 9.8.3. Выборка вектора 9.8.4. Некорректный возврат Глава 10. Программирование Cortex-МЗ 10.1. Общие сведения 10.2. Типичный процесс разработки ПО 10.3. Использование языка Си 10.3.1. Компиляция простой Си-программы в пакете RVDS 10.3.2. Компиляция простой Си-программы в пакете MDK-ARM 10.3.3. Отображённые в память регистры и язык Си 10.3.4. Встроенные функции 10.3.5. Встроенный и inline-ассемблер 10.4. Стандарт CMSIS 10.4.1. Предпосылки появления стандарта CMSIS 10.4.2. Области стандартизации 10.4.3. Структура CMSIS 10.4.4. Использование стандарта CMSIS 10.4.5. Выгода от использования CMSIS 10.5. Использование ассемблера 10.5.1. Интерфейс между ассемблером и Си 10.5.2. Программирование на ассемблере — первые шаги 10.5.3. Вывод результатов работы программы 10.5.4. Программа «Hello World» 10.5.5. Использование памяти данных 10.6. Монопольный доступ и семафоры 10.7. Метод bit-band и семафоры 10.8. Использование команд извлечения битового поля и команд табличных переходов Глава 11. Работа с прерываниями/исключениями 11.1. Использование прерываний 11.1.1. Конфигурирование стека 11.1.2. Настройка таблицы векторов прерываний 11.1.3. Назначение приоритетов прерываний 11.1.4. Разрешение прерываний 11.2. Обработчики исключений/прерываний 11.3. Программные прерывания 11.4. Пример перемещения таблицы векторов 11.5. Использование команды SVC 11.6. Пример использования команды SVC: функции вывода текстовых сообщений 11.7. Использование команды SVC в программах на языке Си Глава 12. Продвинутые программные возможности и поведение системы 12.1. Реализация системы с двумя раздельными стеками 12.2. Выравнивание стека на границу двойного слова 12.3. Переход в режим потока с любого уровня вложенности 12.4. Пара слов о производительности 12.5. Состояние блокировки 12.5.1. Что происходит во время блокировки? 12.5.2. Предотвращение блокировки 12.6. Регистр FAULTMASK Глава 13. Модуль защиты памяти MPU 13.1. Общие сведения 13.2. Регистры модуля MPU 13.3. Настройка модуля MPU 13.4. Типичный процесс настройки модуля MPU 13.4.1. Пример использования запрета подобластей Глава 14. Прочие возможности процессора Cortex-МЗ 14.1. Системный таймер SYSTICK 14.2. Управление электропитанием 14.2.1. Спящие режимы 14.2.2. Функция Sleep-On-Exit 14.2.3. Контроллер WIC 14.3. Межпроцессорный обмен 14.4. Управление сбросом Глава 15. Архитектура системы отладки 15.1. Общие сведения о возможностях отладки 15.2. Обзор архитектуры CoreSight 15.2.1. Отладочный интерфейс процессора 15.2.2. Интерфейс хоста отладки 15.2.3. Модули DP, АР и DAP 15.2.4. Интерфейс трассировки 15.2.5. Характеристики архитектуры CoreSight 15.3. Режимы отладки 15.4. События отладки 15.5. Точки останова в процессоре Cortex-МЗ 15.6. Получение доступа к содержимому регистров при отладке 15.7. Прочие отладочные возможности ядра Глава 16. Компоненты отладки 16.1. Общие сведения 16.1.1. Система трассировки в процессоре Cortex-МЗ 16.2. Компоненты трассировки: модуль DWT 16.3. Компоненты трассировки: модуль ITM 16.3.1. Программная трассировка с использованием модуля ITM 16.3.2. Аппаратная трассировка с использованием модулей ITM и DWT 16.3.3. Временные отметки модуля ITM 16.4. Компоненты трассировки: модуль ЕТМ 16.5. Компоненты трассировки: модуль TPIU 16.6. Модуль FPB 16.6.1. Точка останова 16.6.2. Функция Flash Patch 16.6.3. Компараторы 16.7. Порт доступа шины АНВ 16.8. Таблица ПЗУ Глава 17. Приступая к работе с процессором Cortex-МЗ 17.1. Выбор устройства с ядром Cortex-МЗ 17.2. Средства разработки 17.2.1. Си-компиляторы и отладчики 17.2.2. Поддержка встраиваемых ОС 17.3. Различия между процессорами Cortex-МЗ ревизий 0 и 1 17.3.1. Ревизия 1 — замена модуля JTAG-DP на SWJ-DP 17.4. Различия между процессорами Cortex-МЗ ревизий 1 и 2 17.4.1. Выравнивание стека на границу двойного слова по умолчанию 17.4.2. Дополнительный регистр управления 17.4.3. Новое значение регистров идентификации 17.4.4. Возможности отладки 17.4.5. Особенности режима пониженного энергопотребления 17.5. Чем же хороша ревизия 2 процессора Cortex-МЗ? 17.6. Различия между процессорами Cortex-МЗ и Cortex-МО 17.6.1. Модель программирования 17.6.2. Исключения и контроллер NVIC 17.6.3. Набор команд 17.6.4. Особенности системы памяти 17.6.5. Возможности отладки 17.6.6. Совместимость Глава 18. Перенос приложений с процессора ARM7 на процессор Cortex-МЗ 18.1. Общие сведения 18.2. Особенности системы 18.2.1. Карта памяти 18.2.2. Прерывания 18.2.3. Модуль MPU 18.2.4. Управление системой 18.2.5. Режимы работы 18.3. Файлы с исходным текстом на ассемблере 18.3.1. Режим Thumb 18.3.2. Состояние ARM 18.4. Файлы с исходным текстом на Си 18.5. Скомпилированные объектные файлы 18.6. Оптимизация Глава 19. Разработка приложений для Cortex-МЗ с использованием GNU 19.1. Общие сведения 19.2. Приобретение инструментария GNU 19.3. Процесс разработки программы 19.4. Примеры 19.4.1. Пример 1: первая программа 19.4.2. Пример 2: связывание нескольких файлов 19.4.3. Пример 3: простая программа «Hello World» 19.4.4. Пример 4: данные в ОЗУ 19.4.5. Пример 5: программа на Си 19.4.6. Пример 6: перенаправление вывода в программе на Си 19.4.7. Пример 7: реализация собственной таблицы векторов 19.5. Обращения к регистрам специального назначения 19.6. Использование неподдерживаемых команд 19.7. Inline-ассемблер в компиляторе GCC Глава 20. Использование пакета RealView MDK-ARM компании Keil 20.1. Общие сведения 20.2. Приступая к работе в ИСР µVision 20.3. Вывод сообщения «Hello World» по интерфейсу UART 20.4. Тестирование программы 20.5. Использование отладчика 20.6. Симулятор 20.7. Модификация таблицы векторов 20.8. Прерывания и стандарт CMSIS 20.9. Перевод существующих приложений на стандарт CMSIS Глава 21. Программирование Cortex-МЗ в LabVIEW 21.1. Общие сведения 21.2. Знакомство с LabVIEW 21.2.1. Типичные области применения 21.2.2. Что нам нужно, чтобы использовать LabVIEW и ARM 21.3. Процесс разработки 21.4. Пример использования среды LabVIEW 21.4.1. Создание проекта 21.4.2. Определение входов и выходов 21.4.3. Создание программы 21.4.4. Компиляция программы и тестирование приложения 21.5. Как это работает 21.6. Дополнительные возможности LabVIEW 21.7. Перенос проекта на другие процессоры ARM
Приложение А. Набор команд Cortex-МЗ. Справочный материал Приложение Б. 16-битные команды Thumb и версии архитектуры ARM Приложение В. Исключения процессора Cortex-МЗ Приложение Г. Регистры контроллера NVIC и блока управления системой Приложение Д. Руководство по локализации ошибок в программах для Cortex-МЗ Приложение Е. Пример сценария компоновщика для пакета Sourcery G++ Приложение Ж. Функции доступа к ядру стандарта CMSIS Приложение 3. Соединители для подключения отладочных средств Приложение И. Семейство микроконтроллеров Stellaris®
Список литературы Предметный указатель
Скачать:Ядро Cortex-МЗ компании ARM. Полное руководство