Наш канал в telegram

Записи с меткой «Cortex-M3»

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Приложение 3. Драйвера и функции библиотеки StdPeriph

MISC (Framework) ADC BKP CAN CEC CRC DAC DBGMCU DMA EXTI FLASH FSMC GPIO I2C IWDG PWR RCC RTC SDIO SPI TIM USART WWDG Часть 1. Установка MDK, создание проекта, основы Keil uVision Часть 2. Команды и директивы ассемблера, структура и синтаксис программы. Первая программа для STM32 Часть 3. Карта памяти контроллеров STM32, методы работы …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 11. Подключение и использование драйверов из пакета StdPeriph

Подключение драйверов стандартной периферии из пакета StdPeriph Пример использования драйверов для работы с RCC и GPIO. Подключение драйверов стандартной периферии из пакета StdPeriph В прошлый раз мы познакомились со стандартом CMSIS, а также научились подключать поставляемые вместе с пакетом Keil uVision библиотеки. Сегодня мы продолжим изучение стандарта CMSIS и рассмотрим пакет StdPeriph Drivers — драйвера …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 10. CMSIS, использование стандартных библиотек и функций.

Стандарт CMSIS Подключение к проекту модулей и библиотек CMSIS RTE_Device.h — конфигурирование контроллера startup_stm32f10x_md.s — таблица векторов, заглушки обработчиков, код запуска system_stm32f10x.c — настройка системы тактирования stm32f10x.h — определения имён областей, регистров, битов, констант… Пример использования CMSIS в программах Стандарт CMSIS К этому моменту мы уже можем с нуля накодить для STM32 на асме какой-нибудь …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Приложение2 — таблица векторов прерываний для семейств STM32F101, STM32F102, STM32F103

Ниже представлена таблица векторов прерываний для семейств STM32F101, STM32F102, STM32F103 с размером флеша до 512 кб. Жёлтым цветом выделены системные исключения. Чтобы увидеть подробное описание — щёлкните по соответствующему акрониму. Для того, чтобы каждый раз не прописывать эту таблицу в своих проектах — просто скачайте архив с файлом stm32_IRQ_table.asm и вставляйте этот файл в свои …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 9. Система прерываний

Введение Как настроить и включить прерывание Как происходит вход в прерывание? Сохранение контекста Специальные значения EXC_RETURN Как выйти из прерывания? Восстановление контекста Пример программы с прерыванием Введение В предыдущей части мы говорили, что группы инструкций, выполняющие какую-либо элементарную задачу, можно оформлять в виде процедур и потом вызывать их в программе каждый раз, когда они нам …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 8. Процедуры на асcемблере для STM32

Для уменьшения размеров кода и улучшения его читабельности, группы инструкций, выполняющие какую-либо элементарную задачу, могут быть оформлены в виде «процедур». Удобство процедур в том, что мы можем обращаться к ним из любого места программы, любое число раз. Объявляются процедуры с помощью ключевых слов PROC / ENDP или FUNCTION / ENDFUNC. Keil-овский ассемблер для ARM-ов не …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Приложение 1. Набор инструкций THUMB-2 и особенности их использования

Процессор Cortex-M3 использует набор инструкций, который называется THUMB-2. Этот набор представляет собой смесь 16-ти и 32-х битных команд. Ниже приводится таблица со списком и кратким описанием команд, а после неё даны некоторые пояснения относительно таблицы и описанных в ней команд. Ткнув по команде из таблицы можно перейти к её подробному описанию. команда 32 бит краткое …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 7. Работа с портами ввода-вывода

Начнём с того, что вообще такое порт ввода-вывода. Для настройки режима работы или изменения состояния линии ввода-вывода обычно достаточно одного-двух битов, а регистры в контроллерах, как правило, восьми, шестнадцати или даже 32-х битные (как в stm32). Выделять для каждой линии ввода-вывода свой отдельный регистр — довольно расточительно, вот и придумали группировать в одном регистре биты …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 6. Настройка системы тактирования

Контроллеры STM32 обладают достаточно развитой системой тактирования, включающей кучу различных делителей, умножителей и селекторов, которые позволяют «разогнать» до 72 МГц частоту ядра и системной шины, а также организовать тактирование на различных частотах всех входящих в состав контроллера модулей (USB, I/O, I2C, SPI…). При этом стартует контроллер всегда от внутреннего генератора на 8 МГц, а дальнейший …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 5. Как залить прошивку в контроллер

Ну, вот мы и дошли до одного из самых интересных этапов, — как же залить в контроллер готовую прошивку и оживить наконец нашу железяку. Вообще-то прошивать контроллеры STM32 можно по-разному, но мы рассмотрим самый простой вариант прошивки — через последовательный интерфейс с помощью фирменной утилиты Flash Loader Demonstrator. Эта утилита совершенно бесплатна и её можно …