RIOT OS. Установка и настройка минимального рабочего окружения

Решил я попробовать перевести какой-нибудь из своих текущих проектов на RTOS и путем долгого сравнения выбрал RIOT OS, хотя изначально думал о ChibiOS, т.к. был уже опыт работы с ней. RIOT OS — операционная система реального времени для IoT — интернета вещей, полностью open source разработка для 32-х, 16-ти и 8-и битных микроконтроллеров. Для работы с этой ОС необходим Linux, либо MacOS на рабочей станции разработчика. Подробнее о преимуществах, функционале и сравнение с другими ОСРВ можно прочесть на официальном сайте.

Статья подразумевает, что у вас уже установлен на компьютере Linux или он установлен в качестве гостевой операционной системы на виртуальной машине. Я буду показывать все действия на примере Manjaro Linux и платы STM32F4-Discovery. Для тех, кто работает в Ubuntu, а таких я думаю большинство, я по возможности буду давать отдельные сноски с командами терминала.

Перед настройкой минимального рабочего окружения для работы с RIOT OS нам необходимо установить все рекомендованные для работы программы и утилиты. Начнем:

  1. Устанавливаем GIT:
  2. Устанавливаем пакет программ base-devel (make, gcc и т.д.):

    В Ubuntu такой пакет называется build-essential, соответственно:
  3. Устанавливаем некоторые зависимости

    Если у вас 64-битная система на компьютере то необходимо установить multilib варианты программ:

    Соответственно, в Ubuntu:
  4. Устанавливаем OpenOCD:

    На текущий момент последняя версия OpenOCD 0.10.0. ST-LINK V2 программатор и отладчик JTAG, встроенный в платы Discovery и Nucleo. Настраиваем работу с программатором ST-LINK V2 в ОС.
    В Linux настроить права на USB через UDEV. Для этого надо положить в /etc/udev/rules.d/ файл 99-openocd.rules следующего содержания:

    Перезагружаем правила UDEV:

    Если все сделано правильно, то следующая команда должна соединяться с контроллером и выводить данные о нем:
  5. Устанавливаем GCC ARM Embedded Toolchain:
  6. Этого вполне достаточно для начала работы и теперь можно скопировать репозиторий с туториалами в любую рабочую директорию:

    Начнем сразу с первого туториала, переходим в директорию с первым заданием:

    Компилируем программу для native платформы, это специальная платформа, которая позволяет запускать программу с RITO OS как Linux процесс. Для запуска достаточно в Makefile указать платформу BOARD как native, вызвать make и выполнить elf файл, который генерируется после компиляции:

    Запускаем команду help, чтобы увидеть список доступных команд:

    Например, посмотрим вывод ps:

    Ну ок, теперь можно и запуститься на реальном железе, для этого в Makefile меняем BOARD=native на BOARD=stm32f4discovery и запускаем команду:

    Эта команда скомпилирует программу, прошьет микроконтроллер через подключенный программатор STLINK V2 и откроет соединение с командной оболочкой RIOT.

    Если получаем ошибку Error: libusb_open() failed with LIBUSB_ERROR_ACCESS то не забываем запускать команду make flash с sudo.

    В следующий раз попробуем установить более продвинутое окружение для работы и создать свой демо проект для STM32. И обсуждение на форуме

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

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