Введение

Эта книга содержит документацию пользовательского уровня о фреймворке Real-Time Interrupt-driven Concurrency (RTIC). Справочник по API можно найти здесь.

Также известен как Real-Time For the Masses.

Это документация по RTIC версии v0.6.x; за документацией по другим версиям:

• v0.5.x сюда.

• v0.4.x сюда.

Возможности

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

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

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

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

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

Выполнение без Deadlock, гарантируемое на этапе компиляции. Данная гарантия строже, чем та, что предоставляется стандартный абтракцией Mutex.

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

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

Все Cortex-M устройства полностью поддерживаются.

• К такой модели задач можно применять так называемый анализ WCET (Наихудшего времени выполнения), а также техники анализа диспетчеризации. (Хотя мы еще не разработали дружественный к Rust'у инструментарий для этого.)

• Приложения должны быть написаны в редакции 2018.

Документация пользователя Справочник по API Чат

Присоединяйтесь к нам, чтобы говорить о RTIC в Matrix-комнате.

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

Внести вклад

Новые возможности и большие изменения следует проводить через процесс RFC в соответствующем RFC-репозитории.

Благодарности

Этот крейт основан на языке Real-Time For the Masses, созданном Embedded Systems group в Техническом Университете Luleå, под руководством Prof. Per Lindgren.

Ссылки

1

Eriksson, J., Häggström, F., Aittamaa, S., Kruglyak, A., & Lindgren, P. (2013, June). Real-time for the masses, step 1: Programming API and static priority SRP kernel primitives. In Industrial Embedded Systems (SIES), 2013 8th IEEE International Symposium on (pp. 110-113). IEEE.

2

Lindgren, P., Fresk, E., Lindner, M., Lindner, A., Pereira, D., & Pinho, L. M. (2016). Abstract timers and their implementation onto the arm cortex-m family of mcus. ACM SIGBED Review, 13(1), 48-53.

Лицензия

Все исходные тексты (включая примеры кода) лицензированы под одной из лицензий:

• Apache License, Version 2.0 (LICENSE-APACHE или https://www.apache.org/licenses/LICENSE-2.0)

• MIT license (LICENSE-MIT или https://opensource.org/licenses/MIT)

на ваш выбор.

Текст книги лицензирован по условиям лицензий Creative Commons CC-BY-SA v4.0 (LICENSE-CC-BY-SA или https://creativecommons.org/licenses/by-sa/4.0/legalcode).

Условия участия

Если вы не укажете этого отдельно, любой вклад, который вы предоставите в эту работу, как указано в тексте лицензии Apache-2.0, будет лицензирован по условиям, указанным выше, без каких-либо дополнительных условий.

Загрузка...