Ядро Cortex-M3 компании ARM. Полное руководство
Покупка
Тематика:
Проектирование, отладка и тестирование ПО. Вспомогательные средства проектирования. CASE-технологии
Издательство:
ДМК Пресс
Автор:
Джозеф Ю.
Перевод:
Евстифеев Андрей Викторович
Год издания: 2023
Кол-во страниц: 553
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-89818-435-3
Артикул: 701399.02.99
Доступ онлайн
В корзину
Настоящая книга представляет собой исчерпывающее руководство по новому 32-битному процессору компании ARM — Cortex-M3. В данном руководстве подробно описана архитектура процессорного ядра Cortex-M3 и его подсистемы памяти. Также подробно рассмотрены остальные узлы процессора, в том числе контроллер векторных прерываний NVIC, модуль защиты памяти MMU и разнообразные компоненты отладки. Приводится детальное описание новой системы команд Tuhmb-2, поддерживаемой данным процессором. Книга содержит большое число примеров программного кода как на языке Си, так и на ассемблере. Это руководство должно присутствовать на столе любого разработчика, использующего в своей работе микроконтроллеры с ядром Cortex-M3. Полнота и ясность изложения материала книги также позволяет рекомендовать её студентам соответствующих специальностей и подготовленным радиолюбителям.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Проектирование, отладка и тестирование ПО. Вспомогательные средства проектирования. CASE-технологии
Тематика:
ББК:
УДК:
ОКСО:
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Ядро Cortex-M3 компании ARM Полное руководство
Joseph Yiu THE DEFINITIVE GUIDE TO THE ARM CORTEX-M3
СЕРИЯ МИРОВАЯ ЭЛЕКТРОНИКА Джозеф Ю ЯДРО CORTEX-M3 КОМПАНИИ ARM Полное руководство Перевод А. В. Евстифеева Москва 2023 ДМК Пресс, ДодэкаXXI 2-е издание, электронное
УДК 004.31(035.3) ББК 32.973-04я81 Ю11 Данное издание подготовлено при участии компании «Компэл» и российского представительства компании Texas Instruments. На сайтах www.compel.ru и www.ti.com/ru вы можете получить консультацию, а также заказать бесплатные образцы микросхем. Телефон горячей линии технической поддержки TI +7-495-981-07-01. Ю11 Ю, Джозеф. Ядро Cortex-M3 компании ARM. Полное руководство / Дж. Ю ; пер. с англ. А. В. Евстифеева. — 2-е изд., эл. — 1 файл pdf : 553 с. — Москва : ДМК Пресс, Додэка-XXI, 2023. — (Мировая электроника). — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-435-3 Настоящая книга представляет собой исчерпывающее руководство по новому 32-битному процессору компании ARM — Cortex-M3. В данном руководстве подробно описана архитектура процессорного ядра Cortex-M3 и его подсистемы памяти. Также подробно рассмотрены остальные узлы процессора, в том числе контроллер векторных прерываний NVIC, модуль защиты памяти MMU и разнообразные компоненты отладки. Приводится детальное описание новой системы команд Tuhmb-2, поддерживаемой данным процессором. Книга содержит большое число примеров программного кода как на языке Си, так и на ассемблере. Это руководство должно присутствовать на столе любого разработчика, использующего в своей работе микроконтроллеры с ядром Cortex-M3. Полнота и ясность изложения материала книги также позволяет рекомендовать её студентам соответствующих специальностей и подготовленным радиолюбителям. УДК 004.31(035.3) ББК 32.973-04я81 Электронное издание на основе печатного издания: Ядро Cortex-M3 компании ARM. Полное руководство / Дж. Ю ; пер. с англ. А. В. Евстифеева. — Москва : ДМК Пресс, Додэка-XXI, 2015. — 552 с. — (Мировая электроника). — ISBN 978-5-97060-307-9. — Текст : непосредственный. Все права защищены. Никакая часть этого издания не может быть воспроизведена в любой форме или любыми средствами, электронными или механическими, включая фотографирование, ксерокопирование или иные средства копирования или сохранения информации, без письменного разрешения издательства. Книга «Ядро Cortex-M3 компании ARM. Полное руководство» Дж. Ю подготовлена и издана по договору с Elsevier Inc., 30 Corporste Drive, 4th Floor, Burlington, MA 01803, USA. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-435-3 © 2010 Elsevier Inc. All rights reserved. © Издательский дом «Додэка-XXI», 2012 © Издание, ДМК Пресс, 2015
Содержание ■ V Вступительное слово ................................................................... 1 Вступительное слово ................................................................... 2 Вступительное слово ................................................................... 3 Предисловие автора ..................................................................... 4 Обозначения ................................................................................ 5 Глоссарий ..................................................................................... 6 Глава 1. Введение ........................................................................ 9 1.1. Процессор ARM Cortex-M3 — что же это такое? .......................................................9 1.2. ARM — компания и архитектура .......................................................................... 11 1.2.1. Историческая справка ............................................................................................11 1.2.2. Версии архитектуры .............................................................................................. 12 1.2.3. Обозначения процессоров ....................................................................................14 1.3. Развитие набора команд ......................................................................................... 16 1.4. Технология Th umb-2 и архитектура набора команд .......................................... 17 1.5. Области применения процессора Cortex-M3 ....................................................... 18 1.6. Структура книги ...................................................................................................... 19 1.7. Дополнительная литература .................................................................................. 19 Глава 2. Обзор Cortex-M3 ..........................................................21 2.1. Основные сведения ................................................................................................. 21 2.2. Регистры ....................................................................................................................22 2.2.1. R0…R12 — регистры общего назначения ......................................................... 23 2.2.2. R13 — указатели стека ........................................................................................... 23 2.2.3. R14 — регистр связи ............................................................................................... 23 2.2.4. R15 — счётчик команд ........................................................................................... 23 2.2.5. Регистры специального назначения .................................................................. 23 2.3. Режимы работы .......................................................................................................24 СОДЕРЖАНИЕ
VI ■ Содержание
Содержание ■ VII 2.4. Встроенный контроллер вложенных векторных прерываний........................25 2.4.1. Поддержка вложенных прерываний ................................................................. 25 2.4.2. Поддержка векторных прерываний .................................................................. 26 2.4.3. Поддержка динамического изменения приоритетов ................................... 26 2.4.4. Уменьшение времени реакции на прерывание .............................................. 26 2.4.5. Маскирование прерываний ................................................................................. 26 2.5. Карта памяти ............................................................................................................26 2.6. Интерфейсы шин ..................................................................................................... 27 2.7. Модуль защиты памяти MPU ................................................................................28 2.8. Набор команд ...........................................................................................................28 2.9. Прерывания и исключения ...................................................................................30 2.9.1. Низкое энергопотребление и высокая энергоэффективность ....................31 2.10. Возможности отладки ........................................................................................... 32 2.11. Резюме ...................................................................................................................... 33 2.11.1. Высокая производительность ............................................................................ 33 2.11.2. Развитые средства поддержки прерываний .................................................. 34 2.11.3. Низкое энергопотребление ................................................................................. 35 2.11.4. Системные возможности .................................................................................... 35 2.11.5. Поддержка отладки .............................................................................................. 35 Глава 3. Основы Cortex-M3 .......................................................37 3.1. Регистры .................................................................................................................... 37 3.1.1. Регистры общего назначения с R0 по R7 ........................................................... 37 3.1.2. Регистры общего назначения с R8 по R12 ........................................................ 37 3.1.3. Указатель стека R13 ................................................................................................. 37 3.1.4. Регистр связи R14 .................................................................................................... 40 3.1.5. Счётчик команд R15 ............................................................................................... 40 3.2. Регистры специального назначения .................................................................... 41 3.2.1. Регистры состояния программы ........................................................................ 41 3.2.2. Регистры PRIMASK, FAULTMASK и BASEPRI ............................................... 43 3.2.3. Регистр управления CONTROL .......................................................................... 44 3.3. Режимы работы ........................................................................................................45 3.4. Исключения и прерывания ................................................................................... 47 3.5. Таблица векторов .....................................................................................................49 3.6. Стек ............................................................................................................................49 3.6.1. Основные стековые операции ............................................................................. 50 3.6.2. Реализация стека в процессоре Cortex-M3 .......................................................51 3.6.3. Два стека процессора Cortex-M3......................................................................... 52 3.7. Цикл сброса ...............................................................................................................54 Глава 4. Набор команд ............................................................. 56 4.1. Основы языка ассемблера ......................................................................................56 4.1.1. Язык ассемблера: основы синтаксиса ................................................................ 56 4.1.2. Язык ассемблера: использование суффиксов .................................................. 57 4.1.3. Язык ассемблера: унифицированный язык ассемблера ............................... 58
VIII ■ Содержание
Содержание ■ IX 4.2. Список команд ......................................................................................................... 59 4.2.1. Неподдерживаемые команды .............................................................................. 64 4.3. Описание команд .....................................................................................................65 4.3.1. Язык ассемблера: пересылка данных ................................................................. 66 4.3.2. Псевдокоманды LDR и ADR ................................................................................. 69 4.3.3. Язык ассемблера: обработка данных ................................................................. 70 4.3.4. Язык ассемблера: вызов подпрограмм и безусловный переход ................. 75 4.3.5. Язык ассемблера: условное выполнение и переходы .................................... 76 4.3.6. Язык ассемблера: объединение операций сравнения и условного перехода ..........................................................................................................79 4.3.7. Язык ассемблера: команды барьерной синхронизации ................................81 4.3.8. Язык ассемблера: операции насыщения........................................................... 82 4.4. Некоторые полезные команды процессора Cortex-M3 ......................................85 4.4.1. Команды MSR и MRS ............................................................................................. 85 4.4.2. Ещё раз об IT-блоке ................................................................................................ 86 4.4.3. Команды SDIV и UDIV .......................................................................................... 87 4.4.4. Команды REV, REVH и REVSH ........................................................................... 88 4.4.5. Перестановка битов................................................................................................ 88 4.4.6. Команды SXTB, SXTH, UXTB и UXTH ............................................................. 88 4.4.7. Очистка и вставка битового поля ....................................................................... 89 4.4.8. Команды UBFX и SBFX .......................................................................................... 89 4.4.9. Команды LDRD и STRD ........................................................................................ 89 4.4.10. Команды табличного перехода TBB и TBH .................................................... 90 Глава 5. Система памяти ...........................................................93 5.1. Основные особенности системы памяти ............................................................. 93 5.2. Карта памяти ............................................................................................................ 93 5.3. Атрибуты доступа к памяти ...................................................................................96 5.4. Права доступа к памяти, принятые по умолчанию ...........................................98 5.5. Операции побитового доступа ..............................................................................99 5.5.1. Преимущества использования метода bit-band ............................................ 103 5.5.2. Битовые операции с данными разной разрядности ................................... 106 5.5.3. Битовые операции в Си-программах .............................................................. 106 5.6. Обращения к невыровненным данным ............................................................. 107 5.7. Монопольный доступ ............................................................................................ 109 5.8. Порядок расположения байтов ............................................................................111 Глава 6. Особенности реализации Cortex-M3 ........................114 6.1. Конвейер ...................................................................................................................114 6.2. Подробная блок-схема .......................................................................................... 116 6.3. Интерфейсы шин в процессоре Cortex-M3 ........................................................ 119 6.3.1. Шина I-Code............................................................................................................ 120 6.3.2. Шина D-Code ......................................................................................................... 120 6.3.3. Системная шина .................................................................................................... 120 6.3.4. Внешняя шина PPB ............................................................................................... 120
X ■ Содержание
Содержание ■ XI 6.3.5. Шина DAP ............................................................................................................... 120 6.4. Другие интерфейсы процессора Cortex-M3 ....................................................... 121 6.5. Внешняя шина PPB ............................................................................................... 121 6.6. Типичная схема подключения процессора ....................................................... 122 6.7. Виды сброса и сигналы сброса .............................................................................124 Глава 7. Исключения ...............................................................126 7.1. Типы исключений .................................................................................................. 126 7.2. Приоритеты исключений ..................................................................................... 128 7.3. Таблица векторов ................................................................................................... 134 7.4. Входы прерываний и отложенная обработка прерываний ............................ 135 7.5. Исключения отказов ............................................................................................. 138 7.5.1. Отказы шины .......................................................................................................... 138 7.5.2. Отказы системы управления памятью ........................................................... 140 7.5.3. Отказы программы ................................................................................................141 7.5.4. Тяжёлые отказы ..................................................................................................... 143 7.5.5. Обработка отказов ................................................................................................ 143 7.6. Вызов супервизора и системных служб ............................................................. 144 Глава 8. Контроллер вложенных векторных прерываний и управление прерываниями ...................................149 8.1. Общие сведения о контроллере прерываний ................................................... 149 8.2. Базовые средства конфигурации прерываний ................................................ 150 8.2.1. Разрешение и запрещение прерываний.......................................................... 150 8.2.2. Установка/сброс признака отложенного прерывания ............................... 153 8.2.3. Уровни приоритета .............................................................................................. 153 8.2.4. Активное состояние ............................................................................................. 153 8.2.6. Регистр BASEPRI ................................................................................................... 155 8.2.7. Конфигурационные регистры остальных исключений ............................. 156 8.3. Примеры инициализации прерывания ............................................................ 158 8.4. Программные прерывания .................................................................................. 160 8.5. Системный таймер SYSTICK................................................................................ 161 Глава 9. Прерывания ..............................................................164 9.1. Последовательность обработки прерываний/исключений ............................ 164 9.1.1. Сохранение контекста .......................................................................................... 164 9.1.2. Выборка вектора .................................................................................................... 166 9.1.3. Обновление регистров ......................................................................................... 166 9.2. Выход из исключения ........................................................................................... 166 9.3. Вложенные прерывания ....................................................................................... 167 9.4. «Цепочечная» обработка прерываний ............................................................... 168 9.5. «Опоздавшие» исключения .................................................................................. 168 9.6. Ещё раз о значении EXC_RETURN ..................................................................... 169 9.7. Задержка обработки прерывания ....................................................................... 171
XII ■ Содержание 9.8. Отказы, связанные с прерываниями ................................................................. 172 9.8.1. Сохранение контекста .......................................................................................... 172 9.8.2. Восстановление контекста .................................................................................. 172 9.8.3. Выборка вектора ................................................................................................... 173 9.8.4. Некорректный возврат ........................................................................................ 173 Глава 10. Программирование Cortex-M3 .................................174 10.1. Общие сведения ....................................................................................................174 10.2. Типичный процесс разработки ПО ...................................................................174 10.3. Использование языка Си .................................................................................... 175 10.3.1. Компиляция простой Си-программы в пакете RVDS ...............................176 10.3.2. Компиляция простой Си-программы в пакете MDK-ARM ................... 179 10.3.3. Отображённые в память регистры и язык Си ............................................ 180 10.3.4. Встроенные функции ......................................................................................... 182 10.3.5. Встроенный и inline-ассемблер ....................................................................... 183 10.4. Стандарт CMSIS ................................................................................................... 183 10.4.1. Предпосылки появления стандарта CMSIS ................................................. 183 10.4.2. Области стандартизации .................................................................................. 185 10.4.3. Структура CMSIS ................................................................................................ 185 10.4.4. Использование стандарта CMSIS ................................................................... 187 10.4.5. Выгода от использования CMSIS .................................................................... 189 10.5. Использование ассемблера ................................................................................. 190 10.5.1. Интерфейс между ассемблером и Си ............................................................. 190 10.5.2. Программирование на ассемблере — первые шаги .........................................191 10.5.3. Вывод результатов работы программы ........................................................ 192 10.5.4. Программа «Hello World» ................................................................................. 194 10.5.5. Использование памяти данных ...................................................................... 197 10.6. Монопольный доступ и семафоры .................................................................... 198 10.7. Метод bit-band и семафоры ................................................................................. 201 10.8. Использование команд извлечения битового поля и команд табличных переходов .........................................................................202 Глава 11. Работа с прерываниями/исключениями .................204 11.1. Использование прерываний ..............................................................................204 11.1.1. Конфигурирование стека ..................................................................................204 11.1.2. Настройка таблицы векторов прерываний .................................................205 11.1.3. Назначение приоритетов прерываний ..........................................................206 11.1.4. Разрешение прерываний ...................................................................................207 11.2. Обработчики исключений/прерываний .........................................................209 11.3. Программные прерывания ................................................................................ 211 11.4. Пример перемещения таблицы векторов ........................................................ 213 11.5. Использование команды SVC ............................................................................ 216 11.6. Пример использования команды SVC: функции вывода текстовых сообщений ............................................................................................................. 217 11.7. Использование команды SVC в программах на языке Си .............................220
Содержание ■ XIII Глава 12. Продвинутые программные возможности и поведение системы .................................................223 12.1. Реализация системы с двумя раздельными стеками .....................................223 12.2. Выравнивание стека на границу двойного слова ..........................................226 12.3. Переход в режим потока с любого уровня вложенности .............................. 227 12.4. Пара слов о производительности ......................................................................229 12.5. Состояние блокировки ....................................................................................... 231 12.5.1. Что происходит во время блокировки? ........................................................ 231 12.5.2. Предотвращение блокировки ......................................................................... 232 12.6. Регистр FAULTMASK ........................................................................................... 233 Глава 13. Модуль защиты памяти MPU ...................................234 13.1. Общие сведения ...................................................................................................234 13.2. Регистры модуля MPU ........................................................................................ 235 13.3. Настройка модуля MPU ......................................................................................241 13.4. Типичный процесс настройки модуля MPU ...................................................247 13.4.1. Пример использования запрета подобластей .............................................248 Глава 14. Прочие возможности процессора Cortex-M3 ...........252 14.1. Системный таймер SYSTICK .............................................................................. 252 14.2. Управление электропитанием ........................................................................... 255 14.2.1. Спящие режимы .................................................................................................. 255 14.2.2. Функция Sleep-On-Exit ...................................................................................... 257 14.2.3. Контроллер WIC ................................................................................................. 258 14.3. Межпроцессорный обмен ...................................................................................260 14.4. Управление сбросом ............................................................................................264 Глава 15. Архитектура системы отладки .................................266 15.1. Общие сведения о возможностях отладки ......................................................266 15.2. Обзор архитектуры CoreSight ............................................................................266 15.2.1. Отладочный интерфейс процессора .............................................................. 267 15.2.2. Интерфейс хоста отладки ................................................................................. 267 15.2.3. Модули DP, AP и DAP ........................................................................................268 15.2.4. Интерфейс трассировки ................................................................................... 269 15.2.5. Характеристики архитектуры CoreSight ...................................................... 269 15.3. Режимы отладки .................................................................................................. 271 15.4. События отладки ................................................................................................. 275 15.5. Точки останова в процессоре Cortex-M3 .......................................................... 276 15.6. Получение доступа к содержимому регистров при отладке ......................... 277 15.7. Прочие отладочные возможности ядра ............................................................ 278
XIV ■ Содержание Глава 16. Компоненты отладки ................................................280 16.1. Общие сведения ...................................................................................................280 16.1.1. Система трассировки в процессоре Cortex-M3 ...........................................280 16.2. Компоненты трассировки: модуль DWT ......................................................... 281 16.3. Компоненты трассировки: модуль ITM ...........................................................283 16.3.1. Программная трассировка с использованием модуля ITM ....................284 16.3.2. Аппаратная трассировка с использованием модулей ITM и DWT ......... 285 16.3.3. Временные отметки модуля ITM .................................................................... 285 16.4. Компоненты трассировки: модуль ETM ..........................................................285 16.5. Компоненты трассировки: модуль TPIU..........................................................286 16.6. Модуль FPB ...........................................................................................................287 16.6.1. Точка останова ..................................................................................................... 287 16.6.2. Функция Flash Patch ..........................................................................................288 16.6.3. Компараторы ........................................................................................................288 16.7. Порт доступа шины AHB ....................................................................................290 16.8. Таблица ПЗУ ......................................................................................................... 291 Глава 17. Приступая к работе с процессором Cortex-M3.........294 17.1. Выбор устройства с ядром Cortex-M3 ................................................................294 17.2. Средства разработки ...........................................................................................295 17.2.1. Си-компиляторы и отладчики ......................................................................... 296 17.2.2. Поддержка встраиваемых ОС ......................................................................... 297 17.3. Различия между процессорами Cortex-M3 ревизий 0 и 1 ..............................298 17.3.1. Ревизия 1 — замена модуля JTAG-DP на SWJ-DP .......................................300 17.4. Различия между процессорами Cortex-M3 ревизий 1 и 2 ..............................300 17.4.1. Выравнивание стека на границу двойного слова по умолчанию ...........300 17.4.2. Дополнительный регистр управления .......................................................... 301 17.4.3. Новое значение регистров идентификации ................................................. 301 17.4.4. Возможности отладки ........................................................................................ 301 17.4.5. Особенности режима пониженного энергопотребления ........................302 17.5. Чем же хороша ревизия 2 процессора Cortex-M3? .........................................303 17.6. Различия между процессорами Cortex-M3 и Cortex-M0 ................................304 17.6.1. Модель программирования .............................................................................305 17.6.2. Исключения и контроллер NVIC ....................................................................305 17.6.3. Набор команд .......................................................................................................306 17.6.4. Особенности системы памяти .........................................................................307 17.6.5. Возможности отладки ........................................................................................307 17.6.6. Совместимость .....................................................................................................307 Глава 18. Перенос приложений с процессора ARM7 на процессор Cortex-M3 ............................................309 18.1. Общие сведения ...................................................................................................309 18.2. Особенности системы .........................................................................................309 18.2.1. Карта памяти ........................................................................................................309
Содержание ■ XV 18.2.2. Прерывания ..........................................................................................................310 18.2.3. Модуль MPU .........................................................................................................311 18.2.4. Управление системой ..........................................................................................311 18.2.5. Режимы работы ....................................................................................................311 18.3. Файлы с исходным текстом на ассемблере ....................................................... 312 18.3.1. Режим Th umb ........................................................................................................313 18.3.2. Состояние ARM ...................................................................................................313 18.4. Файлы с исходным текстом на Си ..................................................................... 315 18.5. Скомпилированные объектные файлы ........................................................... 316 18.6. Оптимизация ....................................................................................................... 316 Глава 19. Разработка приложений для Cortex-M3 с использованием GNU .............................................318 19.1. Общие сведения.................................................................................................... 318 19.2. Приобретение инструментария GNU ............................................................... 319 19.3. Процесс разработки программы ....................................................................... 319 19.4. Примеры ................................................................................................................ 321 19.4.1. Пример 1: первая программа ........................................................................... 321 19.4.2. Пример 2: связывание нескольких файлов .................................................. 323 19.4.3. Пример 3: простая программа «Hello World» .............................................. 324 19.4.4. Пример 4: данные в ОЗУ ................................................................................... 326 19.4.5. Пример 5: программа на Си ............................................................................. 327 19.4.6. Пример 6: перенаправление вывода в программе на Си .......................... 330 19.4.7. Пример 7: реализация собственной таблицы векторов .............................331 19.5. Обращения к регистрам специального назначения ...................................... 332 19.6. Использование неподдерживаемых команд ................................................... 332 19.7. Inline-ассемблер в компиляторе GСС ............................................................... 332 Глава 20. Использование пакета RealView MDK-ARM компании Keil ............................................................334 20.1. Общие сведения ................................................................................................... 334 20.2. Приступая к работе в ИСР μVision .................................................................... 334 20.3. Вывод сообщения «Hello World» по интерфейсу UART ................................ 341 20.4. Тестирование программы ..................................................................................343 20.5. Использование отладчика ..................................................................................346 20.6. Симулятор ............................................................................................................350 20.7. Модификация таблицы векторов ..................................................................... 353 20.8. Прерывания и стандарт CMSIS .........................................................................354 20.9. Перевод существующих приложений на стандарт CMSIS ............................360 Глава 21. Программирование Cortex-M3 в LabVIEW ..............361 21.1. Общие сведения.................................................................................................... 361 21.2. Знакомство с LabVIEW ........................................................................................ 361 21.2.1. Типичные области применения ...................................................................... 362
XVI ■ Содержание 21.2.2. Что нам нужно, чтобы использовать LabVIEW и ARM ........................... 363 21.3. Процесс разработки .............................................................................................364 21.4. Пример использования среды LabVIEW ..........................................................366 21.4.1. Создание проекта ................................................................................................366 21.4.2. Определение входов и выходов ....................................................................... 367 21.4.3. Создание программы .........................................................................................368 21.4.4. Компиляция программы и тестирование приложения ........................... 370 21.5. Как это работает ................................................................................................... 371 21.6. Дополнительные возможности LabVIEW ........................................................ 372 21.7. Перенос проекта на другие процессоры ARM ..................................................... 374 Приложение А. Набор команд Cortex-M3. Справочный материал ...................................375 Приложение Б. 16-битные команды Th umb и версии архитектуры ARM ...........................437 Приложение В. Исключения процессора Cortex-M3 ...............438 Приложение Г. Регистры контроллера NVIC и блока управления системой ...................... 440 Приложение Д. Руководство по локализации ошибок в программах для Cortex-M3 ..........................455 Приложение Е. Пример сценария компоновщика для пакета Sourcery G++ ................................468 Приложение Ж. Функции доступа к ядру стандарта CMSIS ..473 Приложение З. Соединители для подключения отладочных средств ........................................480 Приложение И. Семейство микроконтроллеров Stellaris® ..... 484 Список литературы ...................................................................529 Предметный указатель .............................................................530
ВСТУПИТЕЛЬНОЕ СЛОВО С момента выхода первого издания книги прошло не так уж много времени, а темпы развития сообщества пользователей микроконтроллеров с процессорами ARM уже превзошли самые смелые ожидания. Безо всякого преувеличения можно сказать, что продукция нашей компании произвела настоящую революцию в мире микроконтроллеров. На сегодняшний день в мире насчитывается тысячи и тысячи конечных пользователей микроконтроллеров, построенных на процессорах ARM, что даёт все основания считать данную технологию наиболее быстро развивающейся из представленных на рынке. Поэтому второе издание книги Джозефа, содержащее наиболее актуальную информацию о данной технологии МК, появилось как нельзя вовремя. О развитии сообщества можно судить по таким фактам, как увеличение числа компаний, предлагающих свои изделия на базе процессора Cortex-M3 (на сегодняшний день насчитывается более 30 таких компаний), разработка стандарта CMSIS, облегчающего перенос приложений как между различными вариантами процессора Cortex, так и между устройствами разных производителей, а также появление более совершенных средств разработки. Нельзя не упомянуть и о выпуске процессора Cortex-M0, который открыл перед микроконтроллерами ARM нишу чрезвычайно дешёвых устройств. Всё это свидетельствует о наступлении эры встраиваемых систем на базе процессора Cortex-M3! Ричард Йорк (Richard York) Руководитель подразделения маркетинга продукции, компания ARM
ВСТУПИТЕЛЬНОЕ СЛОВО Люди, пишущие программы для микроконтроллеров, в чём-то подобны божествам. Подчиняя микроконтроллеры своей воле, они вдыхают жизнь в застывшие конструкции и в итоге создают фантастические изделия. Далеко не последнюю роль в этом акте творения играют средства разработки — вот почему в группу, основной задачей которой было упрощение и в то же время усовершенствование процессора ARM7TDMI, помимо разработчиков ЦПУ, вошли специалисты отдела разработки программных средств компании ARM. В результате такого совместного творчества на свет появился процессор Cortex™-M3, явивший собой потрясающее развитие оригинальной архитектуры ARM. Новый процессор органично сочетает в себе все преимущества 32-битной архитектуры ARM с поддержкой чрезвычайно эффективного набора команд Th umb-2, обеспечивая при этом ряд новых возможностей. Однако, несмотря на все усовершенствования, процессор Cortex-M3 сохранил упрощённую модель программирования, которая хорошо знакома всем приверженцам архитектуры ARM. Уэйн Лайонз (Wayne Lyons) Руководитель подразделения встраиваемых решений, компания ARM
ВСТУПИТЕЛЬНОЕ СЛОВО Сегодня многие российские разработчики и специалисты хорошо знакомы или начинают знакомиться с продукцией компании ARM, в том числе с новыми продуктами серии Cortex (M0, M3, M4…). На все вопросы, связанные с преимуществами архитектуры ядра Cortex-M3, призвана ответить данная книга. Это первый и пока единственный технический материал на русском языке, рассказывающий о данной архитектуре, выпущенный при содействии компаний Texas Instruments и КОМПЭЛ. В предисловиях автора и сотрудников компании ARM говорится о тенденциях в мире микроконтроллеров и актуальных темах, связанных с архитектурой ядра. В свою очередь, я бы хотела сфокусировать внимание непосредственно на компании Texas Instruments, которая также использует продукты ARM в своих разработках, в том числе — в микроконтроллерах на ядре Cortex-M3 (семейство Stellaris, см. Приложение И). Итак, Texas Instruments (TI) — один из самых крупных производителей полупроводниковых компонентов с номенклатурой более 80 000 наименований, которая значительно расширилась в 2011 в связи с приобретением компании National Semiconductor. Компания TI была основана в 1930 г. и изначально занималась сейсмографической разведкой нефти, но уже с 1952 г. переориентировалась на электронику, а в 1958 г. сотрудник TI Джек Килби изобрел первую в мире интегральную микросхему. С этого момента началась новая эпоха в развитии электроники. Компания TI самостоятельно разрабатывала микроконтроллеры и цифровые сигнальные процессоры. Тем не менее, важной особенностью развития бизнеса TI была и покупка других фирм, в основном в области аналоговых компонентов. Это помогло компании вырасти из нишевой в гиганта с широчайшей номенклатурой полупроводниковых компонентов. Из самых значимых приобретений — Silicon Systems в 1996 г., Unitrode и Power Trends в 1999 г., Burr-Brown в 2000 г., Chipcon в 2007 г., Luminary Micro в 2009 г. и самая большая покупка на сегодня — компания National Semiconductor в 2011 г. Последние приобретения открывают для TI новые технологии и продукты. Например, с покупкой Luminary Micro компания приобрела микроконтроллеры семейства Stellaris на базе ядра Cortex-M3. Его описанию посвящено отдельное приложение в рамках этого издания. TI не останавливается просто на покупке: с момента присоединения Luminary Micro линейка продуктов продолжает расти. Совсем недавно анонсирована линейка новых микроконтроллеров LM4F на базе ядра Cortex-M4. Данная архитектура расширила семейство Stellaris, которое получило не только новые вычислительные возможности, но и фирменную технологию производства Texas Instruments. Топологической нормой для производства новых контроллеров стала отработанная в течение последних пяти лет 65-нанометровая технология. В результате стало возможным достичь небывалого компромисса между производительностью и энергопотреблением. Надеюсь, эта книга станет для вас не просто настольным справочником, а настоящим помощником в работе с микроконтроллерами, сделанными на базе ядра Cortex-M3 от компании ARM. Мария Рудяк Руководитель направления по работе с продукцией Texas Instruments КОМПЭЛ
ПРЕДИСЛОВИЕ АВТОРА Данная книга предназначена как для разработчиков, так и для программистов, заинтересовавшихся процессором Cortex™-M3 компании ARM. Разумеется, в официальных документах, таких как «Cortex-M3 Technical Reference Manual» и «ARMv7-M Architecture Application Level Reference Manual», содержится практически вся информация по этому процессору. Однако указанные документы излишне подробны и могут оказаться слишком сложными для понимания. Эта же книга писалась в расчёте на программистов, разработчиков встраиваемых устройств, разработчиков систем на кристалле, радиолюбителей, учёных — в общем, самых разных людей, изучающих процессор Cortex-M3 и хоть в какой- то мере знакомых с микроконтроллерами либо микропроцессорами. В книге достаточно подробно рассматриваются архитектура процессора Cortex-M3, набор команд с примерами использования некоторых из них, различные аппаратные возможности, а также развитая система отладки процессора. Кроме того, в книге также приведены примеры программ, позволяющие читателю освоить азы разработки ПО для процессора Cortex-M3 с использованием инструментариев ARM и GNU. Эта книга также пригодится разработчикам, переносящим свои проекты с процессора ARM7TDMI на Cortex-M3, поскольку описывает как различия между двумя указанными процессорами, так и собственно процесс переноса прикладных программ с процессора ARM7TDMI на Cortex-M3. Благодарности Прежде всего, я хотел бы поблагодарить всех тех, кто своими советами, консультациями и отзывами оказал мне огромную помощь в написании первого и второго изданий книги: Ричарда Йорка (Richard York), Эндрю Фрейма (Andrew Frame), Рейнхарда Кейла (Reinhard Keil), Ника Сампейза (Nick Sampays), Дэва Ба- нерджи (Dev Banerjee), Роберта Бойза (Robert Boys), Доминика Паджака (Dominic Pajak), Алана Трингхэма (Alan Tringham), Стивена Теобальда (Stephen Th eobald), Дэна Брука (Dan Brook), Дэвида Браша (David Brash), Гайдна Поуви (Haydn Povey), Гэри Кэмпбелла (Gary Campbell), Кевина Макдермотта (Kevin McDermott), Ричарда Ирншоу (Richard Earnshaw), Шияма Садасивана (Shyam Sadasivan), Саймона Краске (Simon Craske), Саймона Аксфорда (Simon Axford), Такаши Угаджина (Ta- kashi Ugajin), Уэйна Лайонза (Wayne Lyons), Самина Иштиака (Samin Ishtiaq) и Саймона Смита (Simon Smith). Я хотел бы особо поблагодарить Яна Белла (Ian Bell) и Джейми Бреттль (Jamie Brettle) из компании National Instruments за помощь в написании главы, посвящённой пакету LabVIEW, и за их поддержку. Также я хотел бы выразить мою признательность Карлосу О’Донеллу (Carlos O’Donell), Брайану Баррере (Brian Barrera) и Дэниелу Якобовицу (Daniel Jakobowitz) из компании CodeSourcery за их поддержку и помощь в подборе материалов, касающихся разработки ПО в пакете Sourcery G++. И, конечно же, огромное спасибо всем сотрудникам издательства Elsevier за их профессионализм, проявленный при подготовке данной книги к публикации. Наконец, я хотел бы высказать благодарность Питеру Коулю (Peter Cole) и Ивану Ярдли (Ivan Yardley) за их постоянную поддержку и заинтересованность в этом проекте.
ОБОЗНАЧЕНИЯ В данной книге используются следующие обозначения и правила оформления: Обычный ассемблерный код MOV R0, R1; Копируем содержимое регистра R1 в регистр R0 Ассемблерный код с использованием обобщённого синтаксиса Элементы, обозначенные угловыми скобками, необходимо заменить названиями регистров: MRS <reg>, <special_reg> Тексты программ на языке Си for (i=0;i<3;i++) { func1(); } Псевдокод if (a > b) { ... Значения 1. 4’hC, 0x123 — шестнадцатеричные значения. 2. #3 — элемент №3 (например, IRQ #3 означает IRQ с номером 3). 3. #immed _ 12 — 12-битное непосредственное значение (константа). Биты регистров Обычно используются для указания части содержимого регистра; например, запись «биты [15:12]» относится к битам с 15-го по 12-й. Доступность битов регистров обозначается следующим образом: 1. R — доступен только для чтения. 2. W — доступен только для записи. 3. R/W — доступен для чтения и для записи. 4. R/Wc — доступен для чтения, при записи сбрасывается.
ГЛОССАРИЙ ADK AMBA Design Kit Набор разработки AMBA AHB Advanced High-Performance Bus Усовершенствованная высокопроизводительная шина (шина AHB) AHB-AP AHB Access Port Порт доступа к шине AHB AMBA Advanced Microcontroller Bus Architecture Усовершенствованная шинная архитектура для микроконтроллеров APB Advanced Peripheral Bus Усовершенствованная шина периферии (шина APB) ARM ARM ARM Architecture Reference Manual Справочное руководство по архитектуре ARM ASIC Application-Specifi c Integrated Circuit Заказная интегральная схема ATB Advanced Trace Bus Усовершенствованная шина трассировки (шина ATB) BE-8 Byte-invariant big Endian mode Обратный порядок байтов с неизменным расположением байтов (формат хранения данных) CMSIS Cortex Microcontroller Soft ware Interface Standard Стандарт программного интерфейса микроконтроллеров с ядром Cortex CPI Cycles Per Instruction Число тактов на команду CPU Central Processing Unit Центральный процессор, ЦПУ CS3 CodeSourcery Common Start-up Code Sequence Общий стартовый код ИСР CodeSourcery DAP Debug Access Port Порт доступа к модулю отладки (порт DAP) DSP Digital Signal Processor/Digital Signal Processing Процессор цифровой обработки сигналов / Цифровая обработка сигналов DWT Data Watchpoint and Trace unit Модуль трассировки и поддержки контрольных точек данных EABI/ABI Embedded Application Binary Interface Двоичный интерфейс встраиваемых приложений (интерфейс EABI) ETM Embedded Trace Macrocell Встроенная макроячейка трассировки FPB Flash Patch and Breakpoint unit Модуль коррекции флэш-памяти и задания точки останова FPGA Field Programmable Gate Array Программируемая вентильная матрица
Доступ онлайн
В корзину