STM 32 Микроконтроллер | AmpExpert - Электроника
Микроконтроллер stm32

STM 32 Микроконтроллер

Подробное знакомство с STM 32 Микроконтроллером

 

Семейство микроконтроллеров STM32, основанное на ядре ARM Cortex-M3, обеспечивает

основу для создания широкого спектра встроенных систем от простых ключей с батарейным

питанием до сложных систем реального времени, таких как автопилоты вертолетов. Это

семейство компонентов включает в себя десятки различных конфигураций, обеспечивающих

широкий выбор размеров памяти, доступных периферийных устройств, производительности и

мощности. Компоненты достаточно дешевы в небольших количествах — несколько долларов за

наименее сложные устройства — чтобы оправдать их использование для большинства

малосерийных приложений. Действительно, недорогие компоненты  Value Line  сравнимы по

стоимости с деталями ATmega, которые используются для популярных плат разработки Arduino,

но предлагают значительно более высокую производительность и более мощные периферийные

устройства. Более того, используемые периферийные устройства являются общими для многих

членов семейства (например, модули USART являются общими для всех компонентов STM32 F1) и

поддерживаются одной библиотекой встроенного ПО. Таким образом, научиться

программировать одного члена семейства STM32 F1 позволяет запрограммировать их все.

К сожалению, мощность и гибкость достигаются за счет затрат — разработка

программного обеспечения для семейства STM32 может быть чрезвычайно сложной

для непосвященных, с огромным количеством документации и программных

библиотек, с которыми нужно разобраться. Например, RM0041, справочное

руководство для устройств STM32 F1 большой линейки, состоит из 675 страниц и даже

не охватывает ядро процессора Cortex-M3! К счастью, нет необходимости читать эту

книгу, чтобы начать разработку программного обеспечения для STM32, хотя она и

является важным справочным материалом. Кроме того, новичок сталкивается с

множеством вариантов выбора цепочки инструментов.2 Напротив, платформа Arduino

предлагает простую библиотеку приложений и единую цепочку инструментов,

доступную для относительно неопытных программистов. Для многих простых систем

это обеспечивает быстрый путь к прототипу. Однако простота имеет свою цену:

программная платформа Arduino плохо подходит для управления одновременными

действиями в сложной системе реального времени, а для программного обеспечения,

взаимодействующего с внешними устройствами, зависит от библиотек,

разработанных вне модели программирования Arduino с использованием

инструментов и инструментов. методы, аналогичные тем, которые требуются для

STM32. Кроме того, платформа Arduino не обеспечивает возможности отладки, что

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

выхода за пределы платформы Arduino.

Для читателей с предыдущим опытом программирования на  C  семейство

STM32 является гораздо лучшей платформой, чем Arduino, на которой можно

создавать системы с питанием от микроконтроллера, если барьеры для входа могут

быть уменьшены. Цель этой книги — помочь начинающим встраиваемым системам

начать программирование семейства STM32. Я предполагаю базовые навыки

программирования на C в среде Linux — читателям без опыта программирования

будет лучше начать с такой платформы, как Arduino. Я предполагаю знакомство с

текстовым редактором; и опыт написания, компиляции и отладки программ на C. Я не

претендую на серьезное знакомство с аппаратным обеспечением — небольшое

количество  схем , требуемых в этой книге, может быть легко выполнено новичком.

Легкодоступные, недорогие, готовые модули. К ним относятся потрясающая плата

STM32 VL Discovery (плата за 10 долларов, которая включает в себя как процессор

STM32 F100, так и аппаратную отладку), небольшой ЖК-дисплей, мост USB / UART, Wii

Nunchuk, а также модули динамика и микрофона. С помощью этого небольшого

набора компонентов мы можем исследовать три наиболее важных аппаратных

интерфейса — последовательный, SPI и I2C — интерфейсы аналогового ввода и

вывода, а также разработку встроенного ПО, использующего как прерывания, так и

DMA. Все необходимые строительные блоки легко доступны через местных

поставщиков, а также продавцов ebay. Я решил не использовать единую

всеобъемлющую  оценочная доска , как это обычно делается с учебными пособиями,

потому что я надеюсь, что читатели этой книги увидят, что этот базовый набор

компонентов вместе с представленными программными методами обеспечивает

концепции, необходимые для адаптации многих других автономных компонентов.

Попутно я предлагаю другие подобные модули и описываю, как адаптировать методы,

представленные в этой книге, к их использованию.

Программное обеспечение для разработки, используемое в этой книге, имеет открытый

исходный код. Нашим основным ресурсом является цепочка инструментов разработки программного

обеспечения GNU, включая gcc, gas, objcopy, objdump и отладчик gdb. Я не использую IDE, такую как

eclipse. Я считаю, что большинство IDE имеют высокую начальную стоимость, хотя в конечном итоге они

могут упростить процесс разработки для больших систем. IDE также скрывают процесс компиляции

таким образом, что трудно определить, что происходит на самом деле, когда моя цель здесь состоит в

том, чтобы обнажить процесс разработки. Хотя читатель может использовать IDE, я не даю

рекомендаций по ее настройке. Не следует предполагать, что открытый исходный код означает более

низкое качество — многие коммерческие цепочки инструментов для встраиваемых систем используют

программное обеспечение GNU, и значительная часть разработки коммерческого программного

обеспечения выполняется с помощью программного обеспечения GNU. Ну наконец то, практически

каждый встроенный процессор поддерживается цепочкой программных инструментов GNU. Обучение

использованию этой цепочки инструментов на одном процессоре буквально открывает широкие двери

для разработки встраиваемого программного обеспечения.

Разработка микропрограмм существенно отличается от разработки приложений,

потому что зачастую чрезвычайно сложно определить, что на самом деле происходит в

коде, взаимодействующем с аппаратным периферийным устройством, просто изучив

состояние программы. Кроме того, во многих ситуациях нецелесообразно останавливать

выполнение программы (например, с помощью отладчика), потому что это нарушит

поведение в реальном времени. Например, при разработке кода для интерфейса с Wii

Nunchuk (один из проектов, описанных в этой книге) мне было трудно отследить ошибку

синхронизации, связанную с тем, как быстро данные  тактируются  через аппаратный

интерфейс. Никакой отладки программного обеспечения

мог бы помочь изолировать эту проблему — мне нужен был способ увидеть поведение

оборудования. Точно так же, разрабатывая код для обеспечения управления потоком для

последовательного интерфейса, я обнаружил, что мои предположения о том, как

конкретный мост USB/UART, с которым я общался, были неверны. Только наблюдая за

аппаратным интерфейсом, я обнаружил эту проблему.

В этой книге я представляю процесс разработки прошивки, который сочетает в себе традиционную

отладку программного обеспечения (с помощью GDB) с использованием недорогого  логического анализатора ,

позволяющего фиксировать поведение аппаратных интерфейсов в реальном времени.

 

 

Требуемое оборудование

Список аппаратного обеспечения, необходимого для учебных пособий в этой книге, представлен снизу. Список компонентов организован по категориям, соответствующим различным интерфейсам, описанным в этой книге, за которыми следуют необходимые материалы для прототипирования и тестовое оборудование. В оставшейся части этого раздела я опишу каждый из этих компонентов и, если существуют некоторые варианты, ключевые свойства, которые должны быть удовлетворены. Некоторые из этих компонентов требуют припайки штырьков. Это довольно простая задача, которую можно выполнить даже с очень дешевым карандашным паяльником. Необходимое количество пайки минимально, и я рекомендую по возможности одолжить необходимое оборудование. В сети много уроков по пайке. Самый дорогой необходимый компонент — это логический анализатор. Хотя я использую Saleae Logic, он может быть слишком дорогим для обычных любителей (150 долларов).

3 Альтернатива, OpenBench Logic Sniffer, значительно дешевле ($50) и, вероятно, достаточна. Мой выбор был продиктован потребностями учебной лаборатории, где оборудование терпит колоссальные потери — открытая электроника и контакты Logic Sniffer слишком уязвимы для такой среды. Осциллограф может быть полезен для аудиоинтерфейсов, но это далеко не обязательно.

STM32 ВЛ Дискавери

Ключевым компонентом, используемым в учебных пособиях, является плата обнаружения STM32 VL производства STMicroelectronics (ST), которую можно приобрести у многих дистрибьюторов электроники примерно за 10 долларов США.4Эта плата, показанная на рис. 1.2, включает в себя настраиваемый пользователем микроконтроллер STM32 F100 с флэш-памятью 128 КБ и оперативной памятью 8 КБ, а также встроенный интерфейс аппаратного отладчика на основе выделенного USB- подключенного STM32 F103. С соответствующим программным обеспечением

Требуемое оборудование для прототипа и поставщики-1
Требуемое оборудование для прототипа и поставщики

 

Работая на хосте, можно подключиться к процессору STM32 F100 для загрузки, выполнения и отладки пользовательского кода. Кроме того, аппаратная отладка

ГЛАВА 1. ПОЛУЧЕНИЕ ST

Плата обнаружения STM32 VL
Плата обнаружения STM32 VL

 

Интерфейс ger доступен через контактные заголовки и может использоваться для отладки любого члена семейства STM32 — по сути, ST отдает интерфейс аппаратного отладчика с базовой платой для прототипирования. Плата STM32 VL Discovery распространяется с полной документацией, включая схемы. [14]. На фотографии чуть левее средней точки есть вертикальная белая линия. Справа от линии находятся STM32 F100, кварцевые генераторы, два доступных для пользователя светодиода, доступная пользователю кнопка и кнопка сброса. Слева находится интерфейс аппаратного отладчика, включающий STM32 F103, регулятор напряжения и другие компоненты. Регулятор преобразует 5 В, подаваемые через USB- соединение, в 3,3 В для процессоров, а также доступно на краевых разъемах платы. Этот стабилизатор способен обеспечить достаточный ток для поддержки дополнительного оборудования, используемого в учебных пособиях. Все контакты STM32 F100 выведены на хорошо помеченные заголовки — как мы увидим, метки контактов напрямую соответствуют логическим именам, используемым в документации STM32, а не физическим контактам, связанным с конкретной используемой частью / пакетом. Такое использование логических имен единообразно во всем семействе и значительно упрощает задачу разработки переносимого программного обеспечения. STM32 F100 входит в линейку процессоров STM32 и работает на относительно медленной (для процессоров Cortex-M3) частоте 24 МГц, но обеспечивает гораздо большую вычислительную мощность и мощность ввода-вывода, чем требуется для учебных пособий, описанных в этой книге. Кроме того, все периферийные устройства, предоставляемые STM32 F100, являются общими для других членов семейства STM32, и код, разработанный для этого компонента, полностью переносим на микропроцессор.

 

 

НЕОБХОДИМОЕ ОБОРУДОВАНИЕ

семья контроллеров.

Асинхронный последовательный

Одним из наиболее полезных методов отладки программного обеспечения является

вывод сообщений на терминал. Микроконтроллеры STM32 обеспечивают необходимые

возможности для последовательной связи через устройства USART (универсальный

синхронный асинхронный приемник-передатчик), но не обеспечивают физическое

соединение, необходимое для связи с главным компьютером. Для учебных пособий мы

используем обычный мост USB/UART. Наиболее распространенные из них предназначены

для замены последовательного порта для ПК и не подходят для наших целей, поскольку

включают в себя преобразователи уровня напряжения, соответствующие спецификации

RS-232. Вместо этого нам требуется устройство, обеспечивающее более электронные контакты

Устройство моста USB/UART.

 

Разделительная плата Pololu CP2102Разделительная плата Pololu CP2102

Примером такого устройства, показанного на рис. 1.3, является коммутационная плата Pololu cp2102. Альтернативой является коммутационная плата Sparkfun FT232RL (BOB-00718), в которой используется мостовая микросхема FTDI FT232RL. Я купил плату cp2102 на ebay, она была дешевой и хорошо работала. Хотя плата с любым мостовым устройством подойдет, важно отметить, что не все такие платы подходят. Наиболее распространенные платы cp2102 с шестиконтактным разъемом не обеспечивают доступа к аппаратным контактам управления потоком данных, которые необходимы для надежного высокоскоростного соединения. Важным учебным пособием в этой книге является реализация надежного высокоскоростного последовательного интерфейса. Вы должны посмотреть на распиновку любой такой платы, чтобы убедиться, что доступны как минимум следующие сигналы:rx, tx, rts, cts.

Асинхронные последовательные интерфейсы используются во многих общедоступных модулях, включая приемники GPS (глобальная система позиционирования), сотовые модемы GSM и беспроводные интерфейсы Bluetooth.

 

EEPROM в пакете PDIP
EEPROM в пакете PDIP

 

СПИ

Простейшим из двух синхронных последовательных интерфейсов, которые мы

рассматриваем в этой книге, является SPI. Основными модулями, которые мы рассматриваем,

являются цветной ЖК-дисплей и карта флэш-памяти SD. Поскольку они представляют собой

относительно сложное использование интерфейса SPI, мы сначала обсудим более простое

устройство — последовательную EEPROM (электрически стираемую программируемую память).

 

Многие встроенные системы используют их для постоянного хранения, и относительно просто

разработать код, необходимый для доступа к ним. Доступно много EEPROM с похожими, хотя и не идентичными

интерфейсами. Я рекомендую начать с Microchip 25LC160 в корпусе PDIP Другие пакеты могут быть сложными для использования в

базовой среде прототипирования. EEPROM с разной плотностью хранения часто требуют несколько разных протоколов связи.Второе устройство SPI, которое мы рассматриваем, — это дисплей — мы используем недорогой модуль цветного TFT (тонкопленочного транзистора), который включает в себя слот для адаптера карты micro SD. Хотя я использовал модуль, показанный на рисунке, аналогичный модуль доступен в Adafruit. Наиболее важным ограничением является то, что в примерах в этой книге предполагается, что контроллер дисплея представляет собой ST7735 с интерфейсом SPI. Мы используем адаптер SD-карты, хотя можно найти альтернативные адаптеры от Sparkfun и других.

Дисплей представляет собой полноцветный дисплей с разрешением 128×160 пикселей, аналогичный тем, которые используются в таких устройствах, как iPod и цифровые камеры. Цвета довольно яркие и могут легко отображать изображения с хорошей точностью. Одним из существенных ограничений для дисплеев на основе SPI является пропускная способность канала связи — для высокоскоростной графики рекомендуется использовать дисплей с параллельным интерфейсом. Хотя компонент линии ценности на плате обнаружения не имеет встроенного периферийного устройства для поддержки параллельных интерфейсов, многие другие компоненты STM32 имеют его.

Наконец, вам понадобится карта памяти SD в диапазоне 1G-2G вместе с  адаптером для программирования карты с настольным компьютером. Скорость и марка не критичны. Рекомендуемый модуль TFT включает слот для

карты флэш-памяти SD.

Модуль цветного дисплеяМодуль цветного дисплея

I2C

Wii Nunchuk
Wii Nunchuk

Второй синхронный последовательный интерфейс, который мы изучаем, — это I2C. Чтобы

проиллюстрировать использование шины I2C, мы используем Wii Nunchuk. Он был

разработан и использовался для видеоконсоли Wii, но был перепрофилирован любителями. Он

содержит 3-осевой акселерометр ST LIS3L02AL, 2-осевой аналоговый джойстик,

и две кнопки, все из которых можно опрашивать по шине I2C. Они широко доступны как в

подлинной, так и в клонированной форме. Я должен отметить, что между различными клонами,

похоже, есть некоторые тонкие различия, которые могут повлиять на разработку программного

обеспечения. Конкретная проблема заключается в разнице в последовательностях

инициализации и кодировании данных.

Адаптер wii nunchuk
Адаптер Wii Nunchuk

 

Разъем на Nunchuk является собственностью Wii, и я не нашел

источник ответного разъема. Доступны простые адаптерные платы, которые

хорошо подходят для целей этих учебных пособий. Они доступны из

нескольких источников; версия Sparkfun показана

Основанный на времени

Аппаратные таймеры являются ключевыми компонентами большинства микроконтроллеров. В

дополнение к тому, что они используются для измерения течения времени, например, для подачи

сигнала тревоги через равные промежутки времени, таймеры используются как для генерации, так и для

декодирования сложных последовательностей импульсов. Обычно используется для генерации сигнала

с широтно-импульсной модуляцией для управления скоростью двигателя. Таймеры STM32 довольно

сложны и поддерживают сложное генерирование и измерение времени. Мы демонстрируем, как можно

использовать таймеры для установки положения обычных сервоприводов для хобби (рис. 1.8) и для

измерения времени пролета ультразвукового датчика дальности (рис. 1.9). Ультразвуковой датчик

дальности, который мы используем, известен как HC-SR04 и доступен от нескольких поставщиков — я

купил один у поставщика ebay. Однако практически любой небольшой сервопривод для хобби будет

работать из-за ограничений мощности.

USB желательно использовать  микро  сервопривод для экспериментов, описанных в этой

книге.

 

 

Оборудование
Оборудование

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Аналоговый

Последний интерфейс, который мы рассматриваем, является аналоговым — как входным (аналогово-

цифровым), так и выходным (цифро-аналоговым). Цифро-аналоговый преобразователь (ЦАП) преобразует

цифровое значение в напряжение. Чтобы проиллюстрировать эту возможность, мы используем ЦАП для

управления небольшим динамиком через усилитель (рис. 1.11). Конкретный эксперимент по считыванию

аудиофайлов с карты памяти SD и последующему воспроизведению через динамик требует использования

нескольких интерфейсов, а также таймеров и прямого доступа к памяти.

Чтобы проиллюстрировать использование аналого-цифрового преобразования, мы используем

небольшой потенциометр (рис. 1.10) для обеспечения переменного входного напряжения и микрофон

(рис. 1.12) для подачи аналогового сигнала.

Потенциометры
Потенциометры

Источник питания

 

В нашей лаборатории мы используем питание USB для большинства экспериментов.

Однако, если необходимо построить проект с питанием от батареи, все, что нужно, — это

регулятор напряжения (преобразователь) между желаемым напряжением батареи и 5 В.

STM32 VL Discovery включает в себя линейный стабилизатор для преобразования 5 В в 3,3 В.

Я использовал простой понижающий преобразователь (на рис. 1.13 показан один,

доступный в Pololu) для преобразования выходного напряжения 9-вольтовой батареи в 5-

вольтовое. С таким преобразователем и батареей все эксперименты, описанные в этой

книге, можно сделать портативными.

Источник питания
Источник питания

Материалы для прототипирования

 

Нужны фотографии

Чтобы обеспечить платформу для соединения различных компонентов вместе,

я рекомендую приобрести две макетные платы на 700 контактов без пайки вместе с

несколькими перемычками для макетных плат в конфигурации  гнездо-гнездо  и

 штекер . Все это доступно на ebay по чрезвычайно конкурентоспособным ценам.

 

Испытательное оборудование

 

Логический анализатор Saleae Logic показан на рис. 1.14. Это устройство представляет собой

простой 8-канальный логический анализатор, способный захватывать цифровые данные на частоте

10-20 МГц, что достаточно быстро для отладки основных последовательных протоколов, используемых в

этих учебных пособиях. При этом само железо достаточно простое — даже примитивное

— Программное обеспечение очень сложное. Что наиболее важно, он имеет возможность

анализировать несколько протоколов связи и отображать полученные данные осмысленным

образом. На рис. 1.15 показано отображение последовательных данных — в данном случае  hello

world  (вам может потребоваться увеличить масштаб программы просмотра PDF-файлов, чтобы

увидеть подробности).

При разработке программного обеспечения во встраиваемой среде наиболее

вероятный сценарий при тестировании нового аппаратного интерфейса — это… ничего не

происходит. Если все не работает идеально, трудно понять, с чего начать поиск проблем. С

помощью логического анализатора можно захватывать и визуализировать любые

передаваемые данные. Например, при работе над программным обеспечением для

управления последовательным портом можно определить, передается ли что-нибудь, и

если да, то что. Это становится особенно важным, когда встроенный процессор

обменивается данными с внешним устройством (например, Wii Nunchuk), где каждая

команда требует передачи и приема определенной двоичной последовательности.

Логический анализатор дает ключ к наблюдению за реальными событиями связи (если

таковые имеются!).

Логика продаж
Логика продаж

 

Программное обеспечение Saleae Logic

Установка программного обеспечения

1.2 Установка программного обеспечения

В процессе разработки программного обеспечения, описанном в этой книге, используются библиотеки

микропрограмм, распространяемые STMicroelectronics, которые обеспечивают низкоуровневую

УСТАНОВКА ПРОГРАММЫ

доступ ко всем периферийным устройствам семейства STM32. Хотя эти библиотеки

относительно сложны, эта книга предоставит дорожную карту по их использованию, а также

некоторые начальные сокращения. Преимущества использования этих встроенных

библиотек заключаются в том, что они абстрагируют большую часть деталей на уровне

битов, необходимых для программирования STM32, они относительно зрелые и были

тщательно протестированы, а также позволяют разрабатывать код приложений,

переносимый в семействе STM32. . Напротив, мы изучили образец кода, поставляемый с

процессорами NXP LPC13xx Cortex-M3, и обнаружили, что он неполный и находится в

относительно незрелом состоянии.

Цепочка инструментов GNU

Разработка программного обеспечения для этой книги выполнялась с

использованием встроенных средств разработки GNU, включая gcc, gas, gdb и gld. Мы

успешно использовали два разных дистрибутива этих инструментов. В среде Linux мы

используем Sourcery (дочерняя компания Mentor Graphics) CodeBench Lite Edition для

ARM (EABI). Их можно получить вhttps://sourcery.mentor. com/sgpp/lite/arm/portal/

subscription?@template =lite.Я рекомендую использовать программу установки GNU/

Linux. Сайт включает документацию в формате PDF для цепочки инструментов GNU, а

также документ  Начало работы , содержащий подробные инструкции по установке.

Добавление следующего к инициализации Linux bash упростит

доступ

экспорт PATH=путь к/codesourcery/bin:$PATH

В системах OS X (Mac) мы используем yagarto (www.yagarto.de) распространение

набора инструментов GNU. Существует простой установщик, доступный для скачивания.

Библиотека прошивки STM32

Детали STM32 хорошо поддерживаются стандартной периферийной библиотекой ST. 5

который предоставляет прошивку для поддержки всех периферийных устройств на различных

частях STM32. Эта библиотека, хотя и проста в установке, может быть довольно сложной в

использовании. Существует множество отдельных модулей (по одному на каждое периферийное

устройство), а также большое количество определений и функций для каждого модуля. Кроме

того, для компиляции с этими модулями требуются соответствующие флаги компилятора, а также

несколько внешних файлов (файл конфигурации и небольшое количество кода). Подход, используемый в

этой документации, состоит в том, чтобы предоставить базовую среду сборки (файлы make, файл

конфигурации и т. д.), которую можно легко расширить по мере изучения различных периферийных

устройств. Вместо того, чтобы пытаться полностью описать эту периферийную библиотеку, я

представляю модули по мере необходимости, а затем только те функции/определения, которые нам

нужны.

Шаблон кода

Хотя микропрограмма, предоставляемая STMicroelectronics, обеспечивает

прочную основу для разработки программного обеспечения для семейства

STM32, начать работу с ней может быть непросто. К сожалению, примеры,

поставляемые с платой STM32 VL Discovery, тесно переплетены с коммерческими

IDE на базе Windows, доступными для разработки кода STM32, и их сложно

извлечь и использовать в среде Linux. Я создал небольшой пример шаблона, в

котором используются стандартные файлы сборки Linux и в котором

пользователю доступны все аспекты процесса сборки.

Шаблон кода

 

Этот шаблон можно скачать следующим образом:

git-клон git://github.com/geoffreymbrown/STM32-Template.git

Каталог шаблонов (показанный на рис. 1.16) состоит из специфичного для части кода

запуска, специфичного для части сценария компоновщика, общего make-файла и

УСТАНОВКА ПРОГРАММЫ

заголовочный файл, требуемый стандартной периферийной библиотекой. Подкаталог

содержит код и конкретный пример make-файла. Каталог включает рабочий двоичный

файл для STM32 VL Discovery. Демонстрационная программа обсуждается далее в главе

GDB-сервер

 

Чтобы загрузить и отладить код на плате STM32 VL Discovery, мы

можем использовать встроенный интерфейс USB-отладчика,

называемый stlink, который взаимодействует со встроенным модулем

отладки STM32. Интерфейс stlink можно использовать как для

процессора на плате Discovery, так и, установив перемычку

соответствующим образом, для внешних процессоров. ST также

продает автономную версию этого интерфейса отладчика. К

сожалению, интерфейс stlink поддерживается только в Windows, а ST

не публикует спецификацию интерфейса. Широко известно, что

интерфейс stlink реализован с использованием класса запоминающих

устройств USB, и также известно, что эта конкретная реализация

несовместима с драйверами ядра OS X и Linux. Тем не менее,

git-клон git://github.com/texane/stlink.git

 

В файле README описан процесс установки. Плата STM32VL

Discovery использует протокол STLINKv1, что в любом случае несколько

проблематично из-за того, как он взаимодействует с ядром ОС. Из-за

проблем с ядром важно следовать предоставленным указаниям. В случае

с OS X также существует  драйвер для mac os x , который необходимо

собрать и установить.

Чтобы запустить сервер gdb, подключите плату обнаружения STM32 VL. Проверьте,

существует ли  /dev/stlink , а затем выполните: st-util -1

Примечание. В более ранних версиях st-util требуется другая последовательность запуска.

st-util 4242 /dev/stlink

Чтобы загрузить пример с мигающим светом, запустите экземпляр armnoneeabi-

gdb в отдельном окне и выполните следующие действия.

arm-none-eabi-gdb BlinkingLights.elf

(gdb) target extended-remote :4242 (gdb)

load

(гдб) продолжить

Это загрузит программу во флэш-память и начнет выполнение. GDB

также можно использовать для установки точек останова и наблюдения.

1.3 Основные ссылки

Существует огромное количество документов, относящихся к семейству

микроконтроллеров Cortex-M3 STM32. Следующий список включает основные

документы, на которые ссылаются в этой книге. Большинство из них доступны онлайн

наwww. ст.ком.Технический справочник Cortex-M3 доступен по адресуwww.arm.com.

RM0041

Справочное руководство для STM32F100x Advanced на базе ARM 32-бит

микроконтроллеры [20]. В этом документе содержится справочная информация обо всех

периферийных устройствах, используемых в процессорах стоимостной линии STM32,

включая процессор, используемый на плате STM32 VL Discovery.

PM0056STM32F10xx/20xx/21xx/L1xxx [19]. Ссылка ST для программы-

с ядром Cortex-M3. Включите модель выполнения и набор команд, а также основные

периферийные устройства (например, контроллер прерываний).

Кортекс-М3 Техническое справочное руководство ARM Cortex-M3 (редакция r1p1).

Окончательный источник информации, относящейся к Cortex-M3 [1].

Техническая спецификация Лист данных STM32 Value Line с низкой и средней плотностью [15]. Про-

содержит информацию о контактах, особенно сопоставление имен GPIO и

альтернативных функций. Существуют таблицы данных для ряда микроконтроллеров

семейства STM32 — этот относится к микроконтроллеру на плате обнаружения STM32

VL.

UM0919 Руководство пользователя STM32 Value Line Discovery [14]. Предоставляет подробные

информация, включая принципиальные схемы, для платы STM32 VL

Discovery

.

 

 

 

Оставьте комментарий

Ваш адрес email не будет опубликован.

Прокрутить наверх