Как запустить программу в режиме реального времени

Я знаю, что она работает на Linux и есть реальные патчи время, доступное для Linux. Эти патчи работают?

Кто-нибудь пробовал еще в режиме реального времени-ОС на Raspberry Пи?

Идея в том, чтобы использовать доску для регулирования и контроля заданий, время критических.

60 2012-08-02T14:46:42+00:00 8
Редактировал вопрос 29-го сентября 2012 в 5:36
Комментарии к вопросу (8)
Ответ на вопрос
8-го сентября 2012 в 5:26
2012-09-08T05:26:50+00:00

Дополнительно

В ядре Linux, позволяющая PREEMPT_RT обеспечит ограниченной задержек и в реальном времени интерфейсы. Помимо настройки PREEMPT_RT , то `и sched_fifo и SCHED_RR политики также должны быть выбраны. И приложения нужно установить параметры в реальном времени, вызывая соответствующие API или с помощью соответствующей утилиты.

По данным [на свободных электронах обучения: в реальном времени во встраиваемых Linux-систем][1], PREEMPT_RT был проект, который приносит возможность в реальном времени в ядре. Он полностью сложить в 2.6.33 и 3.0 поток ядра. Ознакомиться с документом вы’ll найти все.

Как полностью отключить Защитник Windows 10 в режиме реального времени?

В принципе есть два подхода, чтобы принести возможность в реальном времени для ядра Linux:

  • Изменения внутри ядра, то есть проект PREEMPT_RT .
  • Запуск в реальном времени часть бок о бок с нормальным ядром и ниже нормального ядра, там были три поколения: файл rtlinux , также рассматривается возможность » и » Xenomai . ( Aedos как упоминает авио ниже?)
  • См. том’ы усилия, чтобы запустить его как это может быть сделано шаг за шагом.
  • Включение упреждение-это немного рискованно. Увидеть дискуссионную тему о недавнем патче ядра сделано в апреля 2013 года: «по гарантии блокировки неявных барьеров для !PREEMPT_COUNT на».

Источник: kzen.dev

2.3.2.2 Подпрограмма запуска программы пользователя в режиме реального времени

Перед запуском программы пользователя, микроконтроллер принимает из ПК адрес начала программы и сохраняет его в регистре DPTR.

Для приема адреса используется подпрограмма приема двух байтов информации.

Алгоритм запуска программы пользователя в режиме реального времени представлен на рисунке 6.

Читайте также:
Самый последний сборник программ

Рис. 6. Алгоритм запуска программы пользователя в режиме реального времени.

Рис. 7. Алгоритм программы приема двух байтов информации.

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

Значение первого принятого байта сохраняется в регистре DPL.

Прием второго байта адреса программы пользователя из ПК аналогичен приему первого байта, с той лишь разницей, что его значение сохраняется в регистре DPH.

Настраиваем MSI Afterburner — Мониторинг, фпс, frametime, железо в оверлее

В случае возникновения ошибки подпрограмма завершает свою работу, оставляя без изменения содержимое регистра R4.

Подпрограмма запуска программы пользователя в режиме реального времени проверяет правильность принятия адреса по регистру R4. В случае возникновения ошибки передает в ПК код0Fh. После чего возвращается в программу «Монитор»

Непосредственно перед запуском программы пользователя необходимо изменить рабочий БАНК памяти данных МК на БАНК 0.

Алгоритм программы приема двух байтов информации представлен на рисунке 7.

2.3.2.3 Подпрограмма запуска программы пользователя в пошаговом режиме

На этапе отладки прикладной программы очень удобным для разработчика оказывается режим пошагового (покомандного)исполнения программ. Этот режим можно организовать, используя систему прерываний микроконтроллера.

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

Для использования этого свойства системы прерываний микроконтроллера можно запрограммировать одно из внешних прерываний (например,INT0) на обслуживание пошагового режима работы.

Рис. 8. Аппаратная реализация пошагового режима выполнения программы пользователя.

При реализации этого режима можно воспользоваться двумя способами:

  • На вывод INT0подавать сигнал от кнопки «ШАГ», и микроконтроллер по сигналуINT0=0вызовет подпрограмму обслуживания внешнего прерывания.
  • Предусмотреть возможность программного изменения состояния уровня сигнала на выводе INT0, используя один из свободных выводов порта Р2.

Второй способ является наиболее удобным, т.к. позволяет организовать пошаговый режим непосредственно на ПК. Кроме того первый способ требует больших материальных вложений для устранения дребезга контактов от кнопки «ШАГ». После того, как адрес программы пользователя будет принят и проверен, подпрограмма выдаст активный сигнал на вход P3.2. По этому сигналу микроконтроллер перейдет в режим обработки прерыванияINT0. До того, как будет выполнена первая команда в программе пользователя, основная программа должна выполнить две команды(выставить сигналINT0=0и запустить программу пользователя). Поэтому в подпрограмме обработки прерывания необходим счетчик пропущенных шагов. Этот счетчик можно будет использовать для выполнения блока команд в режиме пошагового исполнения программы пользователя. Алгоритм запуска программы пользователя в пошаговом режиме представлен на рисунке 9. Рис. 9. Алгоритм выполнения программы пользователя в пошаговом режиме. Подпрограмма обработки прерывания INT0аналогична программе «Монитор». В начале программы выполняется первоначальная установка:

  • сохраняется содержимое аккумулятора, слова состояния программы и регистра DPTRв стеке;
  • устанавливается БАНК 2, как активный банк памяти данных микроконтроллера;
  • в регистр R4 записывается количество допустимых ошибок.
Читайте также:
Программе ms powerpoint анимация применяется

После выполнения первоначальной установки, микроконтроллер проверяет содержимое регистра R3. Этот регистр выполняет роль счетчика пропущенных шагов программы. Если счетчик не равен нулю, то подпрограмма восстанавливает содержимое аккумулятора, слова состояния программы,DPTR и выходит из режима обработки прерывания, для выполнения следующего шага программы пользователя. Алгоритм программы обработки прерывания INT0 показан на рисунке 10. Рис.10. Алгоритм программы обработки прерыванияINT0. Если счетчик был равен нулю, тогда микроконтроллер переходит в режим приема кода операции от ПК. Алгоритм дешифрации кода операции в программе обработки прерывания INT0аналогичен алгоритму дешифрации кода операции в программе «Монитор». Здесь предусмотрены следующие коды операций:

  • 01h- чтение памяти программ МК;
  • 02h-запись информации в программно – доступные узлы МК;
  • 03h- запись в память программ МК;
  • 04h- выдача кода следующей команды;
  • 05h- выполнение блока команд программы пользователя;
  • 06h-выполнение программы в режиме реального времени;
  • 07h-останов программы;
  • 08h-выполнение следующего шага программы;
  • другие–выполнение программ пользователя.

Большая часть подпрограмм, выбираемых пользователем в пошаговом режиме, аналогична подпрограммам, выбираемым в программе «Монитор». Если значение регистра R5, при выходе из подпрограммы будет нулевым, то будет выполнен следующий шаг основной программы. Для выполнения останова программы, достаточно перевести состояние сигнала на выходе P2.5 в нулевое состояние и в стеке подменить адрес следующей команды на адрес начала программы «Монитор». Для того чтобы перевести программу пользователя из пошагового режима, в выполнение программы в режиме реального времени необходимо установить состояние сигнала P2.5 в нулевое состояние. Алгоритм декодирования кода операции представлен на рисунке 11. Рис. 11. Алгоритм декодирования кода операции в пошаговом режиме работы программы пользователя. Для выдачи кода следующей команды необходимо считать 3 байта информации из памяти программ. Начальный адрес следующей команды можно взять из указателя стека.

Читайте также:
Написать программу которая находит все четырехзначные числа

Источник: studfile.net

Linux в режиме реального времени

Операционная система реального времени необходима, когда к работе процессора или потоку данных предъявляются жесткие временные требования. Таким образом она часто выполняет роль блока управления в специальных устройствах. Проведение научных экспериментов, приложения визуализации в медицине, промышленные устройства управления являются системами реального времени. Механизмы впрыска топлива автомобильных двигателей, контроллеры бытовой и военной техники также являются системами реального времени.

При этом разные события имеют различные временные требования. Например, требование к задержке для антиблокировочной тормозной системы может составлять от 3-5 миллисекунд. То есть с момента, когда колесо впервые обнаруживает, что оно скользит, у системы, управляющей антиблокировочными тормозами, есть от 3-5 миллисекунд, чтобы отреагировать и исправить ситуацию.

Возможности ядра в реальном времени существует уже более десяти лет в экосистеме программ с открытым исходным кодом. Столько же времени доступна поддержка Red Hat Enterprise Linux (RHEL) для ядра реального времени. Тем не менее многие системные администраторы неверно истолковывают его основные концепции и фактическое рабочее поведение. В этой статье я опишу некоторые из его основных функций, отличия от стандартного ядра и шаги по установке.

Планировщик ЦП в реальном времени

Для разных классов задач можно обозначить системы мягкого реального времени и системы жесткого реального времени. Первые не гарантируют точное время, когда критический процесс будет запланирован в реальном времени. Они гарантируют только то, что процессу будет отдано предпочтение перед некритическими процессами. Вторые имеют более строгие требования и задание либо выполняется в заданных временных рамках, либо считается не выполненным.

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru