Микроконтроллеры ARM7. Семейство LPC2000 компании Philips. Вводный курс
Вводный курс
Покупка
Новинка
Тематика:
Микроэлектроника. Наноэлектроника
Издательство:
ДМК Пресс
Автор:
Тревор Мартин
Год издания: 2017
Кол-во страниц: 240
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-97060-444-1
Артикул: 661886.03.99
К покупке доступен более свежий выпуск
Перейти
Семейство микроконтроллеров LPC2000 компании Philips — первый представитель нового поколения микроконтроллеров, построенных на базе 16/32 битного RISC процессора ARM7 TDMI. Эта книга — введение в архитектуру процессора ARM7 TDMI и микроконтроллеров семейства LPC2000. Она основана на материалах однодневных семинаров, которые проводятся для профессиональных инженеров, заинтересованных в быстром изучении микроконтроллеров семейства LPC2000. В ней рассматриваются следующие вопросы: введение в процессор ARM7, средства разработки программного обеспечения, системная архитектура LPC2000, периферийные устройства LPC2000. Кроме того, в книгу включено полное учебное пособие, где на практических примерах закрепляются вопросы, изложенные в основном тексте. Изучая теоретический материал и выполняя сопутствующие упражнения, вы быстро освоите процессор ARM7 и микроконтроллеры семейства LPC2000. На сайте издательства www.dmkpress.com имеются ознакомительные версии популярной интегральной среды разработки μVISION и компилятора Си от компании Keil Elektronik, а также исходный код для всех упражнений как в версии для компилятора Keil, так и в версии для компилятора GCC. Кроме того там содержатся руководства пользователя по ядру ARM7, микроконтроллерам семейства LPC2000, различные спецификации и другие материалы. Предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов технических вузов и радиолюбителей.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 11.03.01: Радиотехника
- 11.03.04: Электроника и наноэлектроника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИКРОКОНТРОЛЛЕРЫ ARM7 Семейство LPC2000 компании Philips Вводный курс
Trevor Martin The Insider's Guide To The Philips ARM7BASED MICROCONTROLLERS An Engineer's Introduction To The LPC 2000 Series
Тревор Мартин МИКРОКОНТРОЛЛЕРЫ ARM7 Семейство LPC2000 компании Philips Вводный курс Перевод с английского Серия «МИРОВАЯ ЭЛЕКТРОНИКА» Москва ДМ К П р есс, Додэка, 201 7
УДК 621.316.544.1(035.5) ББК 32.844.104я2 М29 Мартин Т. Микроконтроллеры ARM7. Семейство LPC2000 компании Philips. Вводный курс / Пер. с англ. — М.: ДМК Пресс, 2017. — 240 с. : ил. — (Серия «Мировая электроника»). ISBN 978 5970604441 Семейство микроконтроллеров LPC2000 компании Philips — первый представитель нового поколения микроконтроллеров, построенных на базе 16/32битного RISCпроцессора ARM7 TDMI. Эта книга — введение в архитектуру процессора ARM7 TDMI и микроконтроллеров семейства LPC2000. Она основана на материалах однодневных семинаров, которые проводятся для профессиональных инженеров, заинтересованных в быстром изучении микроконтроллеров семейства LPC2000. В ней рассматриваются следующие вопросы: введение в процессор ARM7, средства разработки программного обеспечения, системная архитектура LPC2000, периферийные устройства LPC2000. Кроме того, в книгу включено полное учебное пособие, где на практических примерах закрепляются вопросы, изложенные в основном тексте. Изучая теоретический материал и выполняя сопутствующие упражнения, вы быстро освоите процессор ARM7 и микроконтроллеры семейства LPC2000. На сайте издательства www.dmkpress.com имеются ознакомительные версии популярной интегральной среды разработки μVISION и компилятора Си от компании Keil Elektronik, а также исходный код для всех упражнений как в версии для компилятора Keil, так и в версии для компилятора GCC. Кроме того там содержатся руководства пользователя по ядру ARM7, микроконтроллерам семейства LPC2000, различные спецификации и другие материалы. Предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов технических вузов и радиолюбителей. УДК 621.316.544.1(035.5) ББК 32.844.104я2 Все права защищены. Никакая часть этого издания не может быть воспроизведена в любой форме или любыми средствами, электронными или механическими, включая фотографирование, ксерокопирование или иные средства копирования или сохранения информации, без письменного разрешения издательства. M29 ISBN 9780954998813 (англ.) © Hitex (UK) Ltd. ISBN 9785970604441 (ДМК Пресс) © Издание, ДМК Пресс, 2017 ISBN 9785941201044 (Додэка) © Издательский дом «ДодэкаXXI»
CОДЕРЖАНИЕ 5 CОДЕРЖАНИЕ Введение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Глава 1. Процессорное ядро ARM7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Основные положения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Конвейер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Регистры. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Регистр текущего состояния программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Режимы обработки исключительных ситуаций. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Набор команд ARM7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Команды ветвления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Команды обработки данных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Команда обмена . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Изменение регистров состояния . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Программное прерывание. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Модуль MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Набор команд THUMB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Глава 2. Разработка программного обеспечения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Основные положения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Какой из компиляторов? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 ИСР μVISION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Учебное пособие. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Стартовый код . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Взаимодействие кода ARM и THUMB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Библиотека STDIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Организация доступа к периферийным устройствам. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Подпрограммы обработки прерываний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Программное прерывание. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Размещение кода в ОЗУ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Встраиваемые функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
CОДЕРЖАНИЕ 6 Поддержка операционных систем. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Размещение объектов по фиксированным адресам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Встроенный ассемблер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Аппаратные средства отладки. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Важное замечание!. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Еще более важное замечание! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Глава 3. Системные периферийные устройства. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Основные положения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Внутренние шины . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Организация памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Программирование регистров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Модуль ускорения работы памяти. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Пример конфигурирования модуля MAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Программирование FLASHпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Управление картой распределения памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Загрузчик. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Внутрисхемное программирование (ISP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Внутрипрограммное программирование (IAP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Интерфейс внешней шины. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Интерфейс внешней памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Использование интерфейса внешней шины. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Загрузка из ПЗУ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Схема ФАПЧ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Делитель шины VPB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Управление электропитанием . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Система прерываний LPC2000. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Блок управления выводами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Выводы внешних прерываний. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Структура прерываний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Прерывание FIQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Выход из прерывания FIQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Векторные прерывания IRQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Выход из прерывания IRQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Невекторные прерывания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Выход из невекторного прерывания IRQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Вложенные прерывания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Глава 4. Периферийные устройства общего назначения. . . . . . . . . . . . . . . . . . . . . . . . . . 91 Основные положения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Порты ввода/вывода общего назначения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Таймеры общего назначения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Модуль ШИМ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
CОДЕРЖАНИЕ 7 Часы реального времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Сторожевой таймер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Универсальный асинхронный приемопередатчик . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Интерфейс I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Интерфейс SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Аналогоцифровой преобразователь. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Цифроаналоговый преобразователь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Контроллер интерфейса CAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Семиуровневая модель ISO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Структура узла сети CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Объекты сообщений CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Арбитраж на шине CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Тактовая синхронизация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Передача сообщений CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Ограничение распространения ошибок. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Прием сообщений CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Фильтрация сообщений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Полноскоростной интерфейс USB 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Введение в USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Физическая организация шины USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Логическая организация шины USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Скорость передачи данных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Каналы шины USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Распределение полосы пропускания шины . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Транзакции на шине USB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Ограничение распространения ошибок. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Конфигурация устройства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Дескриптор устройства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Дескриптор конфигурации. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Дескриптор интерфейса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Дескриптор конечной точки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Нумерация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Глава 5. Учебное пособие по средствам разработки компании Keil . . . . . . . . . . . . . . . 171 Установка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Использование ИСР μVISION компании Keil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Упражнение 1. Использование пакета программ компании Keil . . . . . . . . . . . . . . . . 173 Использование программы отладки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Использование аппаратного JTAGотладчика ULINK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Установка отладчика ULINK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Упражнение 2. Стартовый код. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Упражнение 3. Использование кода THUMB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Упражнение 4. Использование библиотек STDIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
CОДЕРЖАНИЕ 8 Упражнение 5. Простое прерывание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Упражнение 6. Программное прерывание. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Упражнение 7. Модуль MAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Упражнение 8. Внутрипрограммное программирование . . . . . . . . . . . . . . . . . . . . . . . 198 Упражнение 9. Интерфейс внешней шины. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Упражнение 10. Схема ФАПЧ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Упражнение 11. Быстрое прерывание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Упражнение 12. Векторное прерывание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Упражнение 13. Невекторное прерывание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Упражнение 14. Вложенные прерывания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Упражнение 15. Порты ввода/вывода общего назначения. . . . . . . . . . . . . . . . . . . . . . 208 Упражнение 16. Функция захвата (capture) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Упражнение 17. Функция совпадения (match) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Упражнение 18. Генерация симметричного ШИМсигнала . . . . . . . . . . . . . . . . . . . . 212 Упражнение 19. Часы реального времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Упражнение 20. UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Упражнение 21. Интерфейс I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Упражнение 22. Интерфейс SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Упражнение 23. Аналогоцифровой преобразователь. . . . . . . . . . . . . . . . . . . . . . . . . . 217 Упражнение 24. Цифроаналоговый преобразователь . . . . . . . . . . . . . . . . . . . . . . . . . 218 Упражнение 25. Передача данных по интерфейсу CAN . . . . . . . . . . . . . . . . . . . . . . . . 218 Упражнение 26. Прием данных по интерфейсу CAN . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Глава 6. Учебное пособие по средствам разработки GNU . . . . . . . . . . . . . . . . . . . . . . . 221 Основные положения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Стартовый код GCC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Взаимодействие кода ARM/THUMB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Организация доступа к периферийным устройствам. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Подпрограммы обработки прерываний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Программное прерывание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Встраиваемые функции. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Упражнение 1. Использование инструментальных средств компании Keil совместно с компилятором GNU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Упражнение 2. Стартовый код. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Упражнение 3. Использование кода THUMB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 Упражнение 4. Использование библиотек GNU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 Упражнение 5. Простое прерывание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 Упражнение 6. Программное прерывание. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Приложение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Список литературы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Ссылки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Инструментальные средства и ПО . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Оценочные платы и модули . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Материалы, размещенные на сайте издательства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Благодарности Автор хотел бы поблагодарить сотрудников компании Philips Semiconductors Киса ван Севентера и Криса Дэвиса за помощь в создании этой книги
К покупке доступен более свежий выпуск
Перейти