Библиотека knigago >> Компьютеры и Интернет >> Учебники и самоучители по компьютеру >> Real-Time Interrupt-driven Concurrency


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1634, книга: Попаданка с правами (СИ)
автор: Ли Мезина

Книга "Попаданка с правами" Ли Мезиной - это захватывающее фэнтезийное приключение, которое бросает вызов традиционным гендерным ролям. В центре повествования - Элла, современная деловая женщина, которая оказывается перенесенной в другой мир, где женщины занимают подчиненное положение. Элла не намерена мириться с такими ограничениями. Она вооружена современными знаниями и правом, которое защищает ее в этом незнакомом месте. Она борется за свои права, оспаривает устоявшиеся гендерные...

Коллектив авторов - Real-Time Interrupt-driven Concurrency

Real-Time Interrupt-driven Concurrency
Книга - Real-Time Interrupt-driven Concurrency.   Коллектив авторов  - прочитать полностью в библиотеке КнигаГо
Название:
Real-Time Interrupt-driven Concurrency
Коллектив авторов

Жанр:

Учебники и самоучители по компьютеру

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Real-Time Interrupt-driven Concurrency"

https://rtic.rs/dev/book/ru/
Конкурентный фреймворк для создания систем реального времени
#Rust , #RTIC , #RTOS


Читаем онлайн "Real-Time Interrupt-driven Concurrency". Главная страница.

Real-Time Interrupt-driven Concurrency

Конкурентный фреймворк для создания систем реального времени

Введение

Эта книга содержит документацию пользовательского уровня о фреймворке 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, будет лицензирован по условиям, указанным выше, без каких-либо дополнительных условий.

RTIC в примерах

В этой части книги фреймворк Real-Time Interrupt-driven Concurrency (RTIC) представляется новым пользователям путем прохода по примерам от простых к более сложным.

Все примеры в этой части книги можно найти в репозитарии проекта. Большинство из них можно пройти, запустив их на эмуляторе QEMU без специального оборудования.

Для запуска примеров на вашем ПК, вам понадобится программа qemu-system-arm. В the embedded Rust book есть инструкции по настройке среды для эмбеддед разработке, в том числе QEMU.

Примеры из реальной жизни

Ниже представлены примеры использования RTIC (RTFM) в реальных проектах.

RTFM V0.4.2

   • etrombly/sandbox. Аппаратный дзэн-сад, рисующий картинки на песке. Картинки передаются по последовательному порту с помощью G-кода.

Атрибут app

Это простейшая из возможных программ на RTIC:


#![allow(unused)]

fn main() {

//! examples/smallest.rs


#![no_main]

#![no_std]


use panic_semihosting as _; // panic handler

use rtic::app;


#[app(device = lm3s6965)]

mod app {

#[shared]

struct Shared {}


#[local]

struct Local --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.