Как использовать FreeRTOS для STM32F103C8 в Arduino IDE


STM32F103C — это процессор ARM Cortex M3, который может использовать FreeRTOS. В этой статье мы рассмотрим как использовать FreeRTOS на плате STM32F103C8 непосредственно из Arduino IDE. Мы также можем использовать Keil, но в этом случае нам нужно загрузить и вставить загруженные файлы в путь Keil, а это довольно длительный процесс по сравнению с Arduino IDE. Чтобы узнать больше о том, как работать с FreeRTOS на плате STM32F103C8 вы можете обратиться к официальной документации данной операционной системы FreeRTOS STM32F103C8.

Как использовать FreeRTOS для STM32F103C8 в Arduino IDE

Ранее на нашем сайте мы рассматривали ряд вопросов по использованию FreeRTOS на платах Arduino:

Необходимые компоненты

  1. Отладочная плата STM32F103C8 (STM32 Blue Pill) (купить на AliExpress).
  2. Плата FTDI (3.3V) (купить на AliExpress).
  3. Светодиод (купить на AliExpress).
  4. Макетная плата.
  5. Соединительные провода.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Что такое FreeRTOS?

FreeRTOS - это бесплатная операционная система реального времени (real-time OS, RTOS) с открытым исходным кодом, которая работает на многих популярных микроконтроллерах, включая STM32.

Операционная система (ОС) может быть частью программного обеспечения, которая управляет другими программными и аппаратными ресурсами в вычислительной системе. Универсальная ОС обычно разрабатывается с учетом пользовательского опыта.

Например, предположим, что мы разрабатываем приложение на ОС для мобильного телефона. Пользователь может захотеть транслировать фильм, поэтому мы можем разбить этот потоковый опыт на две задачи: загрузка фрагментов видео из сети как Задание 1 и отображение каждого фрагмента пользователю как Задание 2. Эти задачи могут быть частью эквивалентной программы, в этом случае они могут быть реализованы как параллельно работающие потоки.

Если в нашем процессоре доступно только 1 ядро, наше потоковое приложение может быстро переключаться между заданиями 1 и 2, создавая у пользователя впечатление, что загрузка и просмотр происходят в одно и то же время.

Принцип работы ОС обычного назначения при выполнении 2-х задач

Важно знать, как происходит работа с FreeRTOS на плате STM32F103C8 в Arduino IDE. Хотя FreeRTOS является базовой программной средой, которая позволяет переключать задачи, планировать и т. д., мы не будем делать вызовы FreeRTOS напрямую. ARM создала библиотеку CMSIS-RTOS, которая позволяет нам формировать вызовы базовой RTOS, тем самым улучшая переносимость кода между различными процессорами ARM.

Как загрузить FreeRTOS для STM32F103C8 в Arduino IDE?

Итак, мы рассмотрим, как поэтапно установить FreeRtos для Arduino.

Шаг 1:

В Arduino IDE сначала перейдите в File -> Preferences (Файл -> Настройки). Скопируйте ссылку ниже и вставьте в дополнительный менеджер плат, как показано на рисунке ниже. Ссылка для скачивания

Настройка поддержки платы STM32F103C8 в Arduino IDE

Шаг 2:

Теперь нам нужно скачать файл библиотеки FreeRTOS. Для загрузки перейдите в Sketch-> Include Library-> Manage libraries и нажмите Manage Libraries.

Переход к управлению библиотеками в Arduino IDE

Шаг 3:

Теперь подождите секунду, в строке поиска введите FreeRTOS, он отобразит некоторые файлы библиотеки, прокрутите вниз и найдите STM32duino FreeRTOS Ричарда Барри. Затем выберите эту библиотеку и нажмите install («Установить»). Установка займет некоторое время. После установки отобразится как установленное.

Установка библиотеки STM32duino FreeRTOS от Ричарда Барри

Шаг 4:

Теперь наш Arduino может использовать библиотеку freeRTOS для STM32F103C8. Мы напишем простую программу мигания для встроенного светодиода и отдельного светодиода.

Схема проекта

Для демонстрации возможности использования freeRTOS в плате STM32F103C8 мы будем использовать схему, представленную на следующем рисунке.

Схема для демонстрации возможности использования freeRTOS в плате STM32F103C8

Здесь я использую один встроенный светодиод, подключенный к PC13, а другой светодиод подключается отдельно и подключается к PB11.

Как запустить две разные задачи на STM32F103C8 с использованием FreeRTOS?

Я использую два светодиода, для двух светодиодов создаю две задачи для каждого светодиода. В этой задаче один светодиод мигает в течение одной секунды, а другой светодиод мигает в течение 200 мс. Теперь давайте начнем кодирование для мигания этих двух светодиодов с помощью FreeRTOS.

Создайте новый скетч в Arduino IDE, скопируйте и вставьте в него приведенный ниже код.

После загрузки кода вы можете увидеть следующий результат.

Демонстрация работы проекта

(Проголосуй первым!)
Загрузка...
21 просмотров

Добавить комментарий

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