Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 636193)
Контекстум
Руконтекст антиплагиат система

Микроконтроллеры ARM7 семейств LPC2300/2400. Вводный курс разработчика (2000,00 руб.)

0   0
Первый авторМартин
ИздательствоДМК Пресс, Додэка-XXI
Страниц337
ID836272
АннотацияКнига представляет собой введение в архитектуру процессора ARM7 TDMI и микроконтроллеров семейств LPC2300 и LPC2400 компании NXP. В ней рассматриваются следующие вопросы: введение в ядро ARM7, средства разработки программного обеспечения, системная архитектура и периферийные устройства микроконтроллеров LPC2300/2400. Кроме того, в книгу включено полное учебное пособие, где на практических примерах закрепляются вопросы, изложенные в основном тексте. Изучая теоретический материал и выполняя сопутствующие упражнения, вы быстро освоите ядро ARM7 и микроконтроллеры семейств LPC2300/2400. На компакт-диске, прилагаемом к книге, имеются справочные материалы и руководства пользователя по микроконтроллерам семейств LPC2300 и LPC2400, исходные коды всех упражнений и другие полезные материалы. Предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов технических вузов и радиолюбителей.
ISBN978-5-89818-450-6
Мартин, Т. Микроконтроллеры ARM7 семейств LPC2300/2400. Вводный курс разработчика / Т. Мартин .— : ДМК Пресс, Додэка-XXI, 2023 .— 337 с. — ISBN 978-5-89818-450-6 .— URL: https://rucont.ru/efd/836272 (дата обращения: 18.05.2024)

Предпросмотр (выдержки из произведения)

Микроконтроллеры_ARM7_семейств_LPC23002400._Вводный_курс_разработчика.pdf
УДК 621.316.544.1(035.5) ББК 32.844.1-04я2 М29 Уральского Государственного Политехнического университета (УПИ) С. А. Агафонова, И. В. Букрина, А. В. Гусева при финансовой поддержке Российского представительства компании NXP Данное издание подготовлено к печати при участии студентов и преподавателей М29 Мартин, Тревор. Микроконтроллеры ARM7 семейств LPC2300/2400. Вводный курс разработчика / Т. Мартин ; пер. с англ. А. В. Евстифеева. — 2-е изд., эл. — 1 файл pdf : 337 с. — Москва : ДМК Пресс, Додэка-XXI, 2023. — (Мировая электроника). — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-450-6 Книга представляет собой введение в архитектуру процессора ARM7 TDMI и микроконтроллеров семейств LPC2300 и LPC2400 компании NXP. В ней рассматриваются следующие вопросы: введение в ядро ARM7, средства разработки программного обеспечения, системная архитектура и периферийные устройства микроконтроллеров LPC2300/2400. Кроме того, в книгу включено полное учебное пособие, где на практических примерах закрепляются вопросы, изложенные в основном тексте. Изучая теоретический материал и выполняя сопутствующие упражнения, вы быстро освоите ядро ARM7 и микроконтроллеры семейств LPC2300/2400. На компакт-диске, прилагаемом к книге, имеются справочные материалы и руководства пользователя по микроконтроллерам семейств LPC2300 и LPC2400, исходные коды всех упражнений и другие полезные материалы. Предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов технических вузов и радиолюбителей. УДК 621.316.544.1(035.5) ББК 32.844.1-04я2 Электронное издание на основе печатного издания: Микроконтроллеры ARM7 семейств LPC2300/2400. Вводный курс разработчика / Т. Мартин ; пер. с англ. А. В. Евстифеева. — Москва : ДМК Пресс, Додэка-XXI, 2016. — 336 с. — (Мировая электроника).— ISBN 978-5-97060-400-7. — Текст : непосредственный. Все права защищены, никакая часть этого издания не может быть воспризведена в любой форме или любыми средствами, электронными или механическими, включая фотографирование, ксерокопирование или иные средства копирования или сохранения информации, без письменного разрешения издательства. Оригинальное название «The Insider’s Guide To The NXP LPC2300/2400 Based Microcontrollers. An Engeneer’s Introduction To The LPC2300 & LPC2400 Series».. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-450-6 © Hitex (U K) Lt d. © Издательский дом «Додэка-XXI» © Издание, ДМК Пресс, 2016
Стр.3
Оглавление IJ 3 ОГЛАВЛЕНИЕ Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Глава 1. Процессорное ядро ARM7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1. Основные положения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2. Конвейер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.3. Регистры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4. Регистр текущего состояния программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.5. Режимы обработки исключительных ситуаций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.6. Набор команд ARM7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.6.1. Команды ветвления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.6.2. Команды обработки данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.7. Команда обмена . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.8. Изменение регистров состояния . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.9. Программное прерывание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.10. Модуль MAC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1.11. Набор команд THUMB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 1.12. Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Глава 2. Разработка программного обеспечения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.1. Основные положения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.1.1. Загрузка и установка пакета программ компании Keil . . . . . . . . . . . . . . . . . . . . . 30 2.1.2. ИСР μVISION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.1.3. ИСР HiTOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.1.4. Учебные примеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.2. Стартовый код . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.2.1. Определение карты памяти проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.2.2. Определение карты памяти для компилятора GCC . . . . . . . . . . . . . . . . . . . . . . . 38 2.3. Взаимодействие кодов ARM и THUMB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.3.1. Обеспечение взаимодействия в компиляторе GCC . . . . . . . . . . . . . . . . . . . . . . . 43 2.4. Библиотека STDIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.4.1. Библиотека STDIO и компилятор GCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Стр.4
4 IJ Оглавление 2.5. Организация доступа к периферийным устройствам . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.5.1. Организация доступа к периферийным устройствам в компиляторе GCC . . . 46 2.6. Процедуры обработки прерываний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.6.1. Обработка прерываний в компиляторе GCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.6.2. Отладка обработчиков системных ошибок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.6.3. Программное прерывание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.6.4. Программное прерывание и компилятор GCC . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.6.5. Размещение переменных по абсолютным адресам . . . . . . . . . . . . . . . . . . . . . . . . 51 2.6.6. Размещение кода в ОЗУ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.6.7. Загрузка кода и данных в ОЗУ при использовании компилятора GCC . . . . . . 52 2.7. Встраиваемые функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.7.1. Встраиваемые функции в компиляторе GCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.8. Встроенный ассемблер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.8.1. Встроенный ассемблер компилятора GCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.8.2. Импортирование программ для компилятора GCC . . . . . . . . . . . . . . . . . . . . . . . 56 2.9. Аппаратные средства отладки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.9.1. Важное замечание! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.9.2. Еще более важное замечание! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.10. Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Глава 3. Системные периферийные устройства. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.1. Основные положения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.2. Внутренние шины . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.3. Организация памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.4. Программирование регистров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.5. Модуль ускорения работы памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.5.1. Пример конфигурирования модуля MAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.6. Программирование FLASHпамяти. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.6.1. Управление картой распределения памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.6.2. Загрузчик . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.6.3. Внутрисхемное программирование (ISP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.6.4. Внутрипрограммное программирование (IAP) . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.6.5. Защита FLASHпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.6.6. Системные тактовые сигналы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.6.7. Схема ФАПЧ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.6.8. Тактовые сигналы периферийных устройств . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.7. Управление электропитанием . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.7.1. Группы потребителей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.7.2. Режимы пониженного энергопотребления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 3.8. Система прерываний LPC2300 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.8.1. Блок управления выводами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.8.2. Выводы внешних прерываний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.8.3. Структура прерываний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 3.8.4. Прерывание FIQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Стр.5
Оглавление IJ 5 3.8.5. Выход из прерывания FIQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 3.8.6. Векторные прерывания IRQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 3.8.7. Выход из прерывания IRQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 3.8.8. Пример: прерывание IRQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 3.8.9. Программное прерывание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 3.8.10. Вложенные прерывания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 3.9. Контроллер DMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 3.9.1. Обзор модуля DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 3.9.2. Синхронизация DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 3.9.3. Пересылка из памяти в память . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 3.9.4. Пакетная передача . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 3.9.5. Поддержка модулем DMA периферийных устройств . . . . . . . . . . . . . . . . . . . . . . 94 3.9.6. Пересылка несмежных данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 3.10. Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Глава 4. Периферийные устройства общего назначения. . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.1. Основные положения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.2. Порты ввода/вывода общего назначения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.2.1. Быстрые регистры ввода/вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.2.2. Прерывание от GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.3. Таймеры общего назначения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.3.1. Режим захвата . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.3.2. Режим счетчика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.3.3. Режим совпадения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.4. Модуль ШИМ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.4.1. Режим счетчика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.5. Часы реального времени. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.5.1. Опорный сигнал модуля RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 4.6. Сторожевой таймер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 4.6.1. Период сторожевого таймера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 4.7. Универсальный асинхронный приемопередатчик. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 4.7.1. Настройка скорости обмена . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 4.7.2. Автоопределение скорости обмена . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 4.7.3. Передача данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 4.7.4. Организация обмена по протоколу IrDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 4.8. Интерфейс I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 4.9. Интерфейс SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 4.10. Аналогоцифровой преобразователь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 4.11. Цифроаналоговый преобразователь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 4.12. Синхронный последовательный порт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 4.12.1. Контроллер I2S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 4.13. Интерфейс карт FLASHпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 4.13.1. Модуль MCI микроконтроллеров семейства LPC2300 . . . . . . . . . . . . . . . . . . . 146
Стр.6
6 IJ Оглавление Глава 5. Развитые периферийные устройства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 5.1. Ethernet MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 5.2. Протокол TCP/IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 5.2.1. Сетевая модель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 5.2.2. Ethernet и IEEE 802.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 5.2.3. Дейтаграммы TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 5.2.4. Модуль Ethernet MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 5.2.5. Стек uIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 5.2.6. Создание вебсервера с использованием коммерческого стека TCP/IP . . . . . 173 5.3. Полноскоростной интерфейс USB 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 5.3.1. Введение в USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 5.3.2. Модуль контроллера USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 5.3.3. Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 5.4. Контроллер интерфейса CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 5.4.1. Семиуровневая модель ISO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 5.4.2. Структура узла сети CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 5.4.3. Объекты сообщений CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 5.4.4. Арбитраж на шине CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 5.4.5. Тактовая синхронизация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 5.4.6. Передача сообщений CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 5.4.7. Ограничение распространения ошибок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 5.4.8. Прием сообщений CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 5.4.9. Фильтрация сообщений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Глава 6. Использование ОС компании Keil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 6.1. Возможности ОСРВ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 6.2. Настройка проекта. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 6.3. Процессы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 6.4. Запуск ОСРВ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 6.5. Создание процессов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 6.6. Управление процессами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 6.7. Множество экземпляров. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 6.8. Управление временем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 6.8.1. Формирование задержки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 6.8.2. Периодический запуск процесса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 6.8.3. Виртуальный таймер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 6.8.4. Демон ожидания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 6.9. Межпроцессное взаимодействие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 6.9.1. События . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 6.9.2. Обработка прерываний в ОСРВ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 6.9.3. Семафоры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 6.9.4. Предостережение по поводу семафоров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 6.9.5. Мьютексы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Стр.7
Оглавление IJ 7 6.9.6. Предостережение по поводу мьютексов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 6.9.7 Буферы сообщений 243 6.10. Конфигурация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 Глава 7. Использование ОС FreeRTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 7.1. Портирование ОС FreeRTOS на LPC2300 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 7.1.1. Тики таймера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 7.1.2. Процедура обработки прерывания от таймера . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 7.1.3. Переключение контекста . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 7.1.4. Инициализация стека . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 7.1.5. Управление памятью . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 7.2. Конфигурация FreeRTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 7.2.1. Запуск FreeRTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 7.2.2. Процессы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 7.2.3. Управление процессами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 7.2.4. Ловушка на тики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 7.2.5. Семафоры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 7.2.6. Управление ядром . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 Глава 8. Учебное пособие. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Введение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Упражнение 1. Знакомство с ИСР Keil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Установка аппаратных средств. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Отладчик Keil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 Редактирование проекта. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Управление процессом выполнения программы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Просмотр данных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Упражнение 2. Стартовый код.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 Упражнение 3. Совместное использование команд ARM и THUMB. . . . . . . . . . . . . . . . . 287 Упражнение 4. Программное прерывание. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Упражнение 5. Модуль MAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Упражнение 6. Использование загрузчика от NXP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 Упражнение 7. Схема ФАПЧ.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 Упражнение 8. Конфигурирование системы тактирования.. . . . . . . . . . . . . . . . . . . . . . . . . 299 Упражнение 9. Быстрое прерывание. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Упражнение 10. Векторное прерывание. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 Упражнение 11. Пересылка данных из памяти в память при помощи DMA. . . . . . . . . . . 306 Упражнение 12. Пересылка несмежных данных при помощи DMA. . . . . . . . . . . . . . . . . . 308 Упражнение 13. Порты ввода/вывода общего назначения.. . . . . . . . . . . . . . . . . . . . . . . . . . 309 Упражнение 14. Прерывание от порта GPIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 Упражнение 15. Функция захвата (capture).. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Упражнение 16. Функция совпадения (match).. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Упражнение 17. ШИМ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Упражнение 18. Часы реального времени. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Стр.8
8 IJ Оглавление Упражнение 19. UART. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 Упражнение 20. Аналогоцифровой преобразователь. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 Упражнение 21. Цифроаналоговый преобразователь. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 Упражнение 22. Драйвер Ethernet.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 Упражнение 23. TCP/IP стек uIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 Упражнение 24. Передача по интерфейсу CAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 Упражнение 25. Прием по интерфейсу CAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Упражнение 26. Прием в режиме FullCAN.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Упражнение 27. Запуск двух процессов в ОСРВ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 Упражнение 28. Управление временем. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 Упражнение 29. Приостановка и запуск процесса.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 Упражнение 30. Возобновление процесса из обработчика прерывания. . . . . . . . . . . . . . . 331 Упражнение 31. Процесс Idle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 Упражнение 32. Семафор.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 Упражнение 33. Очередь сообщений. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 Приложения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 Список литературы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 Полезные ссылки.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 Оценочные платы и модули.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Стр.9

Облако ключевых слов *


* - вычисляется автоматически
Антиплагиат система на базе ИИ