Вопросы начинающих о компиляторах Frtos

Я хочу изучить FreeRtos. Я только начал читать несколько книг в формате pdf в Интернете. Я совсем новичок в этой области и у меня есть вопрос:

Я погуглил и обнаружил, что компилятор Visual Studio 2010 Express поддерживает FreeRtos. Означает ли это, что если я напишу какой-нибудь код C FreeRTOS в этом компиляторе так же, как я напишу обычную программу .c, будет ли он работать нормально? Также, пожалуйста, объясните, что такое «порт», когда речь идет об RTOS.

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


person Cantafford    schedule 04.07.2017    source источник


Ответы (2)


Хотя ответ @Richard указывает, что FreeRTOS можно использовать в среде Windows, это нетипичный вариант использования.

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

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

Встроенное приложение — это стандартное приложение C, но это не «обычная программа C» в том смысле, в каком вы запускаете ее на своем ПК. Вы компилируете и записываете программу в чип, и она автоматически выполнит main() при включении питания или сбросе. Нет отдельной ОС, и обычно у вас нет stdio или какого-либо ПК-подобного пользовательского интерфейса. Ваше приложение — это единственное, что работает, и оно отвечает буквально за все. Библиотеки, такие как FreeRTOS, помогают с некоторыми сложными или трудными задачами или простыми, но распространенными задачами. (Производитель чипа предоставит библиотеки для настройки и управления его основными функциями.)

«Порт» FreeRTOS — это адаптация FreeRTOS к конкретному семейству микроконтроллеров, адаптация ее к конкретным таймерам, регистрам управления или другим аппаратным возможностям (или их отсутствию), предоставляемым чипом. Основные файлы FreeRTOS не изменились, и вы будете выбирать файлы «порта» в зависимости от используемого вами чипа. Ваше приложение будет включать и ссылаться на необходимые файлы кода FreeRTOS, как и любая другая библиотека.

Что касается компиляторов и других инструментов разработки, вы будете использовать любые обычные инструменты для целевого чипа. Visual Studio Express на самом деле не предназначен для разработки встраиваемых систем, и я не думаю, что он поддерживает его из коробки (без кросс-компилятора). Я использовал сторонний плагин под названием VisualGDB с STM32 Discovery для компиляции и запуска простых приложений на основе FreeRTOS — это работало довольно хорошо, и легко запустить.

В конечном итоге я обнаружил, что это необычное решение, и мне трудно найти помощь, когда я застрял. Я перехожу на стандартную GNU ARM Toolchain (с визуальным Studio Code в качестве редактора), а сам прорабатываю кривую обучения инструменту.

person mbmcavoy    schedule 07.07.2017

Да, вы можете запускать FreeRTOS в среде Windows, но при этом не ожидайте поведения в реальном времени. Планировщик FreeRTOS будет планировать задачи как обычно, но в конечном итоге он будет работать в процессе Windows, которым сама Windows управляет. Если вы читаете последнюю книгу (доступную для бесплатного скачивания), то в ней об этом сказано и примеры уже предварительно настроены для запуска в среде windows (симулятор). Вы также можете узнать больше о запуске FreeRTOS в процессе Windows здесь: http://www.freertos.org/FreeRTOS-Windows-Simulator-Emulator-for-Visual-Studio-and-Eclipse-MingW.html

person Richard    schedule 04.07.2017