Ядро Cortex-МЗ компании ARM. Полное руководство

Купить бумажную книгу и читать

Купить бумажную книгу

По кнопке выше можно купить бумажные варианты этой книги и похожих книг на сайте интернет-магазина "Лабиринт".

Using the button above you can buy paper versions of this book and similar books on the website of the "Labyrinth" online store.

Реклама. ООО "ЛАБИРИНТ.РУ", ИНН: 7728644571, erid: LatgCADz8.

Автор:

Название: Ядро Cortex-МЗ компании ARM. Полное руководство

Издательство: Додэка-ХХI

Год: 2012

Формат: DjVu

Размер: 20,8 Мб

Для сайта:

Настоящая книга представляет собой исчерпывающее руководство по новому 32-битному процессору компании ARM - Cortex-МЗ. В данном руководстве подробно описана архитектура процессорного ядра Cortex-МЗ и его подсистемы памяти. Также подробно рассмотрены остальные узлы процессора, в том числе контроллер векторных прерываний NVIC, модуль защиты памяти MMU и разнообразные компоненты отладки. Приводится детальное описание новой системы команд Tbumb-2, поддерживаемой данным процессором.

Книга содержит большое число примеров программного кода как на языке Си, так и на ассемблере.

Это руководство должно быть у любого разработчика, использующего в своей работе микроконтроллеры с ядром Cortex-МЗ. Полнота и ясность изложения материала книги также позволяет рекомендовать её студентам соответствующих специальностей и подготовленным радиолюбителям.

 

Вступительное слово

Вступительное слово

Вступительное слово

Предисловие автора

Обозначения

Глоссарий

Глава 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®

Список литературы

Предметный указатель

Дата создания страницы: