Книги По Программированию Cortex M3

Книги По Программированию Cortex M3

Книги По Программированию Cortex M3' title='Книги По Программированию Cortex M3' />Если вы намерены серьезно изучать программирование микроконтроллеров данная статья для вас. Сам же я начинал с CortexM3. Начинаем изучать Cortex M на примере STM3. Хабрахабр. Данная статья является первой в планируемом цикле статей по изучению программирования микроконтроллеров. Изучая различные материалы я отметил, что практически все они начинаются с того, что новичку предлагается скачать или использовать идущую со средой разработки библиотеку для работы с периферийными устройствами и использовать ее для написания своей первой программы обычно мигание светодиодом. Меня это сильно удивило. Если верить данным статьям, для программирования не обязательно даже читать документацию к программируемому контроллеру. Меня же учили премудростям железного программирования совершенно иначе. В этой статье, путь от фразы Да, я хочу попробовать до радостного подмигивания светодиода, будет значительно длиннее чем у других авторов. Я постараюсь раскрыть аспекты программирования микроконтроллеров, которые прячутся за использованием библиотечных функций и готовых примеров. Если вы намерены серьезно изучать программирование микроконтроллеров данная статья для вас. Возможно, она может заинтересовать и тех, кто вдоволь наигрался с Arduino и хочет получить в свои руки все аппаратные возможности железа. Выбор микроконтроллера. Многие могут сказать, что начинать изучение микроконтроллеров лучше с AVR, PIC, 8. Вопрос многогранный и спорный. Я знаю достаточно примеров, когда люди изучив Cortex M, программировали AVR, ARM7 и т. Сам же я начинал с Cortex M3. Если перед вами стоит определенная задача, в интернете достаточно много информации со сравнением различных типов микроконтроллеров и решаемых с их помощью задач. На хабре этот вопрос тоже поднимался, например тут. Будем считать, что с типом микроконтроллера мы разобрались. Книги По Программированию Cortex M3' title='Книги По Программированию Cortex M3' />Книги по программированию микроконтролеров для начинающих Ядро CortexM3 компании ARM. Полное руководство. Но на рынке представлен огромнейший спектр различных модификаций от разных производителей. Они отличаются по множеству параметров от размера флеш памяти до количества аналоговых входов. Фирма АРМ продала более 200 лицензий на ядра CortexM, и на рынке. Программирование микроконтроллеров. Микроконтроллерам CortexM3. Настоящая книга представляет собой исчерпывающее руководство по новому 32битному процессору. Программирование CortexМЗ. Книги По Программированию Cortex M3' title='Книги По Программированию Cortex M3' />Для каждой задачи выбор стоит производить индивидуально. Ни каких общих рекомендаций тут нет и быть не может. Отмечу лишь, что стоит начинать изучение с МК производителей имеющих как можно больший ассортимент. Тогда, при выборе МК для определенной задачи достаточно велик шанс, что из представленного ассортимента вам что нибудь да подойдет. Я остановил свой выбор на STM3. МК от Texas. Instruments очень грамотно составлена документация, потому что они широко распространены среди российских разработчиков электроники. При возникновении проблем и вопросов вы сможете без труда найти решения на форумах. Еще одним плюсом является богатый выбор демонстрационных плат как от производителя, так и от сторонних организаций. Что необходимо для изучения Придется где то раздобыть демонстрационную плату и программатор. Хотя это и уменьшает конкуренцию на рынке труда. Сам я использую демонстрационную плату STM3. G EVAL и программатор J Link PRO. Но для начала, будет вполне достаточно STM3. F4. DISCOVERY, которую можно купить без особых проблем за небольшую сумму. Все примеры будут именно для отладочной платы STM3. F4. DISCOVERY. На данном этапе нам будет совершенно не важно, что этой плате стоит МК на базе ядра Cortex M4. В ближайшее время мы не будем использовать его особенности и преимущества над Cortex M3. А как там будет дальше посмотрим. Если у вас есть в наличии любая другая плата на базе STM3. F2xxSTM3. 2F4xx, вы сможете работать с ней. В изложении материала я постараюсь максимально подробно описывать почему мы делаем именно так, а не иначе. Надеюсь ни у кого не возникнет проблем с переносом примеров на другое железо. Среда разработки. Как уже неоднократно упоминалось, для ARM микроконтроллеров существует достаточное количество сред разработки, как платных так и не очень. И снова хочется опустить полемику по этому поводу. Я использую IAR Embedded Workbench for ARM 6. Все примеры будут именно в этой среде. Если вам по душе или в вашей организации используется что то другое Keil, Eclipse, CCS, Coo. Coc и т. д. то это вам тоже не очень помешает. На особенности, связанные именно со средой разработки, я буду обращать отдельное внимание. Почему платная среда разработки Возможно, кто то будет не совсем доволен тем, что я предлагаю использовать платную среду разработки, но в IAR есть возможность получить временную лицензию без ограничения функционала, либо безлимитную лицензию с ограничением по размеру кода 3. КБ для МК это очень много. И к сожалению эти МК в некоторых областях незаменимы. IAR позволяет создать проекты на ASM, C и C. Мы будем использовать C. Перед нами появится пустой проект с main файлом. Теперь необходимо настроить проект для начала работы с нашим МК и отладчиком. На плате STM3. 2F4. DISCOVERY установлен MK STM3. F4. 07. VG. Его необходимо выбрать в свойствах проекта General Options Target Device При выборе целевого программируемого процессора происходит загрузка его описания, что дает широкие возможности для отладки об этом будет идти речь ниже. Кроме того, автоматически присоединяется конфигурационный файл с описанием доступного адресного пространства для линкера. Если будет необходимо, мы затронем тему конфигурационного файла линкера в следующих статьях. После этого необходимо настроить отладчик. Отладка программы происходит непосредственно в железе. Производится это с помощью JTAG отладчика. Более подробнее ознакомиться с тем, как это происходит можно на Википедии. На плату STM3. 2F4. DISCOVERY интегрирован отладчик ST LINKV2. Для работы с отладчиком необходимо выбрать его драйвер в меню Debugger Setup Driver. Так же необходимо указать, что отладка должна производиться непосредственно в железе. Для этого необходимо поставить флаг Debugger Download Use flash loadersДля тех, кто увидел слово Simulator. Теоретически, IAR позволяет отлаживать программы с использованием симулятора. Но я ни разу на практике не встречал его использования. Теперь проект готов для работы программирования, заливки и отладки. ТЗ для первого проекта. Подведем промежуточный итог МК и отладочная плата выбраны, проект подготовлен. Пора определиться с задачей. Не будем отходить от классики. Первым проектом будет мигающий светодиод. Благо на плате их предостаточно. Что же это означает с точки зрения программированияПервым делом необходимо изучить принципиальную схему демонстрационной платы и понять как заводится светодиод. User manualдоступен на сайте производителя. В данном описании даже есть отдельный раздел про светодиоды на плате 4. LEDs. Для примера, будем использовать User LD3. Найдем его на схеме Простейший анализ схемы говорит о том, что для того, что бы зажечь светодиод необходимо на пин МК подать 1 которая для данного МК соответствует 3. В. Выключение производится подачей на этот пин 0. На схеме этот пин обозначается PD1. В итоге, мы можем написать ТЗ для нашей первой программы Программа для МК должна переводить состояние пина МК PD1. Прежде чем приступать к программированию, или немного теории. Прежде чем приступить к реализации нашего ТЗ, необходимо понять как производится управление МК. Начнем с того, что любой МК включает ядро, память и периферийные блоки. Думаю, что с памятью пока все понятно. Упомяну лишь, в STM3. МК в общем случае это не верное утверждение, программа может храниться во внешней энергонезависимой памяти, но пока это опустим и другие данные, в том числе и пользовательские. Так же есть SRAM оперативная память. Ядро часть микроконтроллера, осуществляющая выполнение одного потока команд. В нашем МК тип ядра Cortex M4. Ядро МК можно сравнить с процессором в ПК. Оно умеет только выполнять команды и передавать данные другим блокам в этом сравнении не учитываются процессоры с интегрированными графическими ускорителями. При этом производитель МК не разрабатывает ядро. Ядро покупается у компании ARM Limited. Главное отличие между различными МК в периферии. Периферийные блоки блоки осуществляющие взаимодействие с внешним миром или выполняющие специфические функции, недоступные ядру МК. Современные МК в том числе и STM3. Ядро Cortex МЗ компании ARM. Полное руководство. Настоящая книга представляет собой исчерпывающее руководство по новому 3. ARM Cortex МЗ. В данном руководстве подробно описана архитектура процессорного ядра Cortex МЗ и его подсистемы памяти. Также подробно рассмотрены остальные узлы процессора, в том числе контроллер векторных прерываний NVIC, модуль защиты памяти MMU и разнообразные компоненты отладки. Приводится детальное описание новой системы команд Tbumb 2, поддерживаемой данным процессором. Книга содержит большое число примеров программного кода как на языке Си, так и на ассемблере. Название Ядро Cortex МЗ компании ARM. Полное руководство. Автор Джозеф Ю. Формат djvu. Размер 2. 0,4 Mb. Качество хорошее. Язык русский. Год издания 2. Страниц 5. 53. Содержание. Глава 1. Введение. Процессор ARM Cortex МЗ что же это такоеARM компания и архитектура. Историческая справка. Версии архитектуры. Обозначения процессоров. Развитие набора команд. Технология Thumb 2 и архитектура набора команд. Области применения процессора Cortex МЗ1. Структура книги. 1. Дополнительная литература. Глава 2. Обзор Cortex МЗ2. Основные сведения. Регистры. 2. 2. 1. R0. R1. 2 регистры общего назначения. R1. 3 указатели стека. R1. 4 регистр связи. R1. 5 счтчик команд. Регистры специального назначения. Режимы работы. 2. Встроенный контроллер вложенных векторных прерываний. Поддержка вложенных прерываний. Поддержка векторных прерываний. Поддержка динамического изменения приоритетов. Уменьшение времени реакции на прерывание. Маскирование прерываний. Карта памяти. 2. 6. Интерфейсы шин. 2. Модуль защиты памяти MPU2. Набор команд. 2. 9. Прерывания и исключения. Низкое энергопотребление и высокая энергоэффективность. Возможности отладки. Резюме. 2. 1. 1. 1. Высокая производительность. Развитые средства поддержки прерываний. Низкое энергопотребление. Системные возможности. Поддержка отладки. Глава 3. Основы Cortex МЗ3. Регистры. 3. 1. 1. Регистры общего назначения с R0 по R7. Регистры общего назначения с R8 по R1. Указатель стека R1. Регистр связи R1. Счтчик команд R1. Регистры специального назначения. Регистры состояния программы. Регистры PRIMASK, FAULTMASK и BASEPRI3. Регистр управления CONTROL3. Режимы работы. 3. Исключения и прерывания. Таблица векторов. Основные стековые операции. Реализация стека в процессоре Cortex МЗ3. Два стека процессора Cortex МЗ3. Цикл сброса. Глава 4. Набор команд. 4. 1. Основы языка ассемблера. Язык ассемблера основы синтаксиса. Язык ассемблера использование суффиксов. Язык ассемблера унифицированный язык ассемблера. Список команд. 4. Неподдерживаемые команды. Описание команд. 4. Язык ассемблера пересылка данных. Псевдокоманды LDR и ADR4. Язык ассемблера обработка данных. Язык ассемблера вызов подпрограмм и безусловный переход. Язык ассемблера условное выполнение и переходы. Язык ассемблера объединение операций сравнения и условного перехода. Язык ассемблера команды барьерной синхронизации. Язык ассемблера операции насыщения. Некоторые полезные команды процессора Cortex МЗ4. Команды MSR и MRS4. Ещ раз об IT блоке. Команды SDIV и UDIV4. Команды REV, REVH и REVSH4. Перестановка битов. Команды SXTB, SXTH, UXTB и UXTH4. Очистка и вставка битового поля. Команды UBFX и SBFX4. Команды LDRD и STRD4. Команды табличного перехода ТВВ и ТВНГлава 5. Система памяти. 5. Основные особенности системы памяти. Карта памяти. 5. 3. Атрибуты доступа к памяти. Права доступа к памяти, принятые по умолчанию. Операции побитового доступа. Преимущества использования метода bit band. Битовые операции с данными разной разрядности. Битовые операции в Си программах. Обращения к не выровненным данным. Монопольный доступ. Порядок расположения байтов. Глава 6. Особенности реализации Cortex МЗ6. Конвейер. 6. 2. Подробная блок схема. Интерфейсы шин в процессоре Cortex МЗ6. Шина I Code. 6. 3. Шина D Code. 6. 3. Системная шина. 6. Внешняя шина РРВ6. Шина DAP6. 4. Другие интерфейсы процессора Cortex МЗ6. Внешняя шина РРВ6. Типичная схема подключения процессора. Виды сброса и сигналы сброса. Глава 7. Исключения. Типы исключений. 7. Приоритеты исключений. Таблица векторов. Входы прерываний и отложенная обработка прерываний. Исключения отказов. Отказы шины. 7. 5. Отказы системы управления памятью. Отказы программы. Тяжлые отказы. 7. Обработка отказов. Вызов супервизора и системных служб. Глава 8. Контроллер вложенных векторных прерываний и управление прерываниями. Общие сведения о контроллере прерываний. Базовые средства конфигурации прерываний. Разрешение и запрещение прерываний. Установкасброс признака отложенного прерывания. Уровни приоритета. Активное состояние. Регистр BASEPRI8. Новаминсульфон 500 Инструкция. Конфигурационные регистры остальных исключений. Примеры инициализации прерывания. Программные прерывания. Системный таймер SYSTICKГлава 9. Прерывания. 9. 1. Последовательность обработки прерыванийисключений. Сохранение контекста. Выборка вектора. 9. Обновление регистров. Выход из исключения. Вложенные прерывания. Ещ раз о значении EXCJRETURN9. Задержка обработки прерывания. Отказы, связанные с прерываниями. Сохранение контекста. Восстановление контекста. Выборка вектора. 9. Некорректный возврат. Глава 1. 0. Программирование Cortex МЗ1. Общие сведения. 10. Типичный процесс разработки ПО1. Использование языка Си. Компиляция простой Си программы в пакете RVDS1. Компиляция простой Си программы в пакете MDK ARM1. Отображнные в память регистры и язык Си. Встроенные функции. Встроенный и inline ассемблер. Стандарт CMSIS1. 0. Предпосылки появления стандарта CMSIS1. Области стандартизации. Структура CMSIS1. Использование стандарта CMSIS1. Выгода от использования CMSIS1. Использование ассемблера. Интерфейс между ассемблером и Си. Программирование на ассемблере первые шаги. Вывод результатов работы программы. Программа Hello World1. Использование памяти данных. Монопольный доступ и семафоры. Метод bit band и семафоры. Использование команд извлечения битового поля и команд табличных переходов. Глава 1. 1. Работа с прерываниямиисключениями. Использование прерываний. Конфигурирование стека. Настройка таблицы векторов прерываний. Назначение приоритетов прерываний. Разрешение прерываний. Обработчики исключенийпрерываний. Программные прерывания. Пример перемещения таблицы векторов. Использование команды SVC1. Пример использования команды SVC функции вывода текстовых сообщений. Использование команды SVC в программах на языке Си. Глава 1. 2. Продвинутые программные возможности и поведение системы. Реализация системы с двумя раздельными стеками. Выравнивание стека на границу двойного слова. Переход в режим потока с любого уровня вложенности. Пара слов о производительности. Состояние блокировки. Что происходит во время блокировки Предотвращение блокировки. Регистр FAULTMASKГлава 1. Модуль защиты памяти MPU1. Общие сведения. 13. Регистры модуля MPU1. Настройка модуля MPU1. Типичный процесс настройки модуля MPU1. Пример использования запрета подобластей. Глава 1. 4. Прочие возможности процессора Cortex МЗ1. Системный таймер SYSTICK1. Управление электропитанием. Спящие режимы. 14. Функция Sleep On Exit. Контроллер WIC1. 4. Межпроцессорный обмен. Управление сбросом. Глава 1. 5. Архитектура системы отладки. Общие сведения о возможностях отладки. Обзор архитектуры Core. Sight. 15. 2. 1. Отладочный интерфейс процессора. Интерфейс хоста отладки. Модули DP, АР и DAP1. Интерфейс трассировки. Характеристики архитектуры Core. Sight. 15. 3. Режимы отладки. События отладки. 15. Точки останова в процессоре Cortex МЗ1. Получение доступа к содержимому регистров при отладке. Прочие отладочные возможности ядра. Глава 1. 6. Компоненты отладки. Общие сведения. 16. Система трассировки в процессоре Cortex МЗ1. Компоненты трассировки модуль DWT1. Компоненты трассировки модуль ITM1. Программная трассировка с использованием модуля ITM1. Аппаратная трассировка с использованием модулей ITM и DWT1. Временные отметки модуля ITM1. Компоненты трассировки модуль ЕТМ1. Компоненты трассировки модуль TPIU1. Модуль FPB1. 6. 6. Точка останова. 16. Функция Flash Patch. Компараторы. 16. 7. Порт доступа шины АНВ1. Таблица ПЗУГлава 1. Приступая к работе с процессором Cortex МЗ1. Выбор устройства с ядром Cortex МЗ1. Средства разработки.

Книги По Программированию Cortex M3
© 2017