실시간 소프트웨어를 실행할 수 있습니까?


60

Linux를 실행하고 Linux에 사용할 수있는 실시간 패치가 있다는 것을 알고 있습니다. 그 패치가 작동합니까?

누구든지 Raspberry Pi에서 다른 실시간 운영 체제를 사용해 보셨습니까?

아이디어는 시간이 중요한 규제 및 제어 작업에 보드를 사용하는 것입니다.


2
폐쇄 형 GPU 솔루션이 방해가된다면 왜 당신이 할 수 없었는지 유일하게 생각할 수있는 유일한 이유는 생각합니다. 실시간 작업 중에 GPU를 무시하기로 결정할 수 있다면 실시간 확장 기능을 사용할 수 있다고 생각합니다.
Chris Stratton

7
전체 라즈베리 파이 시스템은 사용자가 수정할 수 있도록 개방되어 있지 않습니다. 문제는 실시간 작업을 실행하는 동안 GPU가 아닌 부분 (GPU)이 기꺼이 방해가되지 않는지 또는 램에 액세스하기 위해 버스주기 또는 "주의"를 피할 수 없는지 여부입니다. 어려운 타이밍 목표를 좌절시키는 방식으로 ARM 코어에서
Chris Stratton

4
분명히 RISCOS는 아주 잘 특정 실시간 애플리케이션에 적합하고 그건됩니다 라즈베리 파이 포트가 잘되어 가고있다. * 8 ')
Mark Booth

4
RISCOS는 Wikipedia 링크에 따라 실시간 OS가 아니므로 어떻게 도움이 될 수 있습니까?
Lars Pötter

4
CONFIG_PREEMPT_RT 패치는 Linux를 실행하는 여러 ARM 프로세서 에서 시연되었습니다 . 대기 시간 문제가있을 수 있지만 마이크로 초 단위로 측정 할 수 있어야합니다.
획기적인

답변:


16

RaspberryPi 에서 Xenomai 를 실행하는 관심이있을 수 있습니다 . 여기 에서이를 수행하는 방법에 대한 자습서를 찾을 수 있습니다. 간단히 말해서, Xenomai는 사용자 정의 Linux 커널 (커널 소스에 적용해야하는 패치 제공)을 생성하여 실시간 커널 인 다른 커널 (Xenomai 코어)을 실행할 수있는 프로젝트입니다. 이를 통해 드라이버를 작성할 필요없이 광범위한 하드웨어에서 Xenomai 응용 프로그램을 실행할 수 있습니다 (Linux는 매우 다양한 하드웨어에서 작업하기 때문에). 이를 통해 몇 가지 다른 RT API를 사용하여 RT 사용자 공간 응용 프로그램을 작성할 수 있습니다.


1
이 도구로 얻을 수있는 최대 주파수는 어느 것입니까? 나는 1 kHz에서 반올림 속도에서 DC 모터를 제어하는 방법에 대한 관심이
니콜라스 아리아

19

Linux 커널에서 활성화 PREEMPT_RT는 제한된 지연 시간과 실시간 API를 제공합니다. 구성 외에 PREEMPT_RTSCHED_FIFOSCHED_RR정책도 선택해야합니다. 또한 응용 프로그램은 적절한 API를 호출하거나 적절한 유틸리티를 사용하여 실시간 매개 변수를 설정해야합니다.

프리 전자 교육 에 따르면 , PREEMPT_RT는 실시간 기능을 커널에 제공하는 프로젝트였습니다. 2.6.33 및 3.0 커널 스트림으로 완전히 접혔습니다. 모든 것을 찾을 수있는 문서를 참조하십시오.

기본적으로 Linux 커널에 실시간 기능을 제공하는 두 가지 방법이 있습니다.

  • 커널 내부, 즉 PREEMPT_RT프로젝트를 수정하십시오 .
  • 일반 커널과 실시간 부품 나란히 실행하고 일반 커널 아래 세 세대가 있었다 : RTLinux, RTAI,와 Xenomai. ( Aedos로는 Avio아래에 언급?)

편집하다:


2
Raspberry Pi에 오신 것을 환영합니다. RT PREEMPT patch에 의해 잉고 몰 나르가 함께 사용 High Resolution Timers(HRT) 커널이 달성 할 수 있도록 지원 하드 리얼 타임 기능을. 현재, 그 지원은 3.4.11 커널에 도달 하고 "좋은 소식"은 패치가 "축소되고"있다는 것입니다. 여기 에서 적용하고 사용하는 방법에 대한 훌륭한 자습서를 찾을 수 있습니다 .
Avio

1
어, Linux에서 하드 실시간 지원을 제공하는 대안 중에서 Adeos 를 인용하는 것을 잊지 마십시오 .
Avio

2
PRESPPT_RT를 Raspberry Pi 커널과 함께 사용하는 것은 쉬운 일이 아니며 단순히 패치를 적용하면 작동하지 않는 커널이 생성됩니다. 또한 Raspberry Pi 커널에는 많은 새 드라이버가 있으며 이러한 드라이버는 PREEMPT_RT로 테스트되지 않았으며 너무 긴 차단 절전 모드가 해제되지 않았습니다. 이것은 매우 진행중인 작업입니다.
Nakedible

2
이것에 대한 업데이트? 드라이버가이 커널 패치를 사용할만큼 안정적입니까? 아직 커널을 컴파일하지 않은 사람들을위한 실습 튜토리얼을 좋아합니다.
fabb

@fabb : 몇 년이 지난 후에도 RT 요구 사항에 대해 결함이있는 드라이버가 여전히 있습니다. 당신은 그것을 실행하여 찾을 수 있습니다. 그건 그렇고, 최근에 일부 사용자 공간 응용 프로그램의 우선 순위가 올라간 네트워크 결함이 예기치 않은 것으로 나타났습니다. 이러한 모든 종류의 상황은 구성 및 응용 프로그램에 따라 다릅니다.
minghua

6

Wyolum 은 쌓을 수있는 방식으로 Pi의 상단에 맞도록 aLaMode (Almond Pi라고 함)를 사용합니다. 실시간 클록이 있고 aTiny 328을 사용하며 GPIO Real UART / 전원 공급 장치이며 다양한 방식으로 플래시 가능합니다. Arduino가 실시간 인터럽트로 실행되는 동안 Pi는 원하는대로 웹 서버 / 데이터베이스를 수행 할 수 있기 때문에 좋습니다.

여기에 이미지 설명을 입력하십시오


1
2 개의 마이크로 컨트롤러를 실행하는 것은 약간 비현실적인 것처럼 보이지만 다른 접근 방식이 충분히 빠르지 않은 경우 실시간 작동을 보장합니다.
fabb

1
RPi가 제어 루프 속도를 늦추지 않고 다른 µC와 깨끗하게 통신하는 방법에 대한 힌트가 있습니까?
fabb

1
예. 그러나 µC는 UART 인터럽트가 제어 루프 타이머 인터럽트를 연기하지 않도록하기 위해 UART를 폴링해야합니다. 그런 다음 제어 루프의 시작 부분에서 UART를 폴링하고 너무 오래 걸리지 않도록 많은 바이트를 읽지 않도록해야합니까? 아니면 UART 버퍼가 너무 쉽게 오버플로 될 수 있습니까? 또는 제어 루프 주파수가 UART 속도보다 훨씬 높아 루프 당 1 바이트 씩 읽는 것이 충분할까요?
fabb

1
좋은 제안입니다. BTW Raspberry Pi Alamode는 이미 말장난입니다. 알라 모드는 파이에 아이스크림을 넣을 때입니다.
Dan

1
정말 ? 헤헤 그게 무슨 뜻인지 궁금했습니다. 이제 이해가 되네요 :)
Piotr Kula

2

내가 본 최고의 솔루션 은 Heber 의 X10i-Raspberry Pi 용 실시간 제어 보드입니다 .

X10i는 모든 PC 시스템에서 USB를 통해 여러 입력 / 출력을 제어 할 수있는 강력하고 안전한 범용 컨트롤러입니다. Heber는 이제 프로그래머, 발명가 및 개발자가 PC에서 외부 세계와 더 쉽게 연결할 수 있도록 다양한 프로그래밍 언어로 지원합니다.

위의 링크는 훌륭하고 광범위한 문서를 제공하며 최신 버전의 Debian for Pi로 드라이버를 최신 상태로 유지하려고합니다.


그래서 Pi에서 리본 커넥터가 필요합니까? 물건의 고용 사진을 찾을 수 없지만 실제로 부피가 커 보입니다. 그것에 대한 예제가 많이 있으므로 내가 생각하기에 좋습니다. +1
Piotr Kula

나는 그것을 사용했다고 말할 수는 없지만 데모에서 USB 인터페이스를 사용하는 사람을 기억하는 것처럼 보이지만 그렇게 기대할 것입니다. 그래도 꽤 부피가 크다.
Jivings

1

다음은 Xenomai로 실행되는 Raspberry Pi 에 관한 기사 (Google Translate에서 프랑스어로 번역)입니다 .


5
안녕. 일반적으로 링크 된 페이지가 이동하는 경우 단순히 링크 인 답변은 사용하지 않는 것이 좋습니다. 해당 페이지의 정보를 답변에 요약 해 주시겠습니까? 그런 다음 링크를 참조로 포함시킬 수 있습니다. 감사!
Jivings

1

RODOS는 또 다른 옵션입니다. 독일 항공 우주 센터와 몬테네그로 교수 팀과 학생들이 개발 한 오픈 소스 프로젝트입니다.

C ++을 사용하고 객체 지향 방식으로 완전히 작성되었으며 ARM7, Atmel AVR, STM32 / Cortex-M3, Xilinx, Raspberry Pi :), ...

내가 잘못하지 않으면 현재 위성 TET 및 LoTTo 컴퓨터에서 사용됩니다.

물론 두 가지 장점을 모두 발휘하기 위해 Linux에서 (가능하면) 실행하는 것이 좋습니다.하지만 Linux가 올바른 API를 제공 할 수 있는지 확실하지 않기 때문에 REAL TIME 질문이 남아 있습니다.

RODOS를 받으려면 Sergio Montenegro 교수 또는 DLR (German Aerospace Center)에 메시지를 작성해야합니다.


1

리눅스 외에도 실시간 운영 체제가 있습니다. 오픈 소스에서 매우 인기있는 것은 ChibiOS / RT입니다.

완전 휴대용, 오픈 소스, 초소형, 초고속 RTOS (실시간 운영 체제)

간략한 소개는 http://chibios.org/dokuwiki/doku.php?id=chibios:documents:introduction에 있습니다. 리눅스와 다르면 다음을 읽을 수도 있습니다.

ChibiOS / RT를 독특한 디자인으로 만들기 위해 설명하고 디자인해야 할 디자인 선택이 있습니다. 그 자체로는 전혀 새로운 것이 없지만 전체가 흥미 롭습니다.

또는 아닙니다. 당신이 그것을 좋아한다면-파이 실험은 https://github.com/steve-bate/ChibiOS-RPi 에서 경험할 가치가 있습니다 .

Raspberry PI 실험을위한 ChibiOS 포크.

저자는 좋은 가이드를 추가합니다

http://www.stevebate.net/chibios-rpi/GettingStarted.html

개인적으로, rtos에 관해서는, 리눅스는 평범한 나라의 요구를 위해 크로스 알파인 장비를 운반하는 것과 같습니다. 필요 없을 수도 있습니다. 파이조차도 너무 많을 수 있습니다. 더 적은 무게에 대해서는 http://forum.arduino.cc/index.php?topic=144715.0 을 확인하십시오 :)


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.