나는 RTOS 세계에 처음이다. Raspberry Pi 3에서 일부 RTOS를 사용할 계획입니다 (FreeRTOS 일 수 있음). 누구나 RTOS가 초보자에게 좋을 것이라고 제안 할 수 있습니까?
아직 BCM2837에 데이터 시트를 공개하지 않았기 때문에 RTOS를 Raspberry Pi 3에로드 할 수 있습니까?
나는 RTOS 세계에 처음이다. Raspberry Pi 3에서 일부 RTOS를 사용할 계획입니다 (FreeRTOS 일 수 있음). 누구나 RTOS가 초보자에게 좋을 것이라고 제안 할 수 있습니까?
아직 BCM2837에 데이터 시트를 공개하지 않았기 때문에 RTOS를 Raspberry Pi 3에로드 할 수 있습니까?
답변:
원래 프로젝트는 Raspberry Pi 1 만 지원하지만 Raspberry Pi 2 에서이 포크를 성공적으로 컴파일했으며 3도 지원한다고 말합니다.
지금까지 나는 raspberry pi 3에 대해 성공하지 않고 다음 RTOS를 테스트했습니다.
RISC OS의 경우 RTOS가 아닙니다.
내가 지금까지 raspberry pi 3에서 실행할 수 있었던 유일한 것은 Fuchsia OS의 커널 (Magenta)이지만 초기 단계에 있으며 문서화되어 있지 않습니다.
다른 방법은 스스로 RTOS를 구축하는 것입니다. 예, ULTIBO CORE를 사용하고 해당 자습서를 따르는 것이 가능합니다.- http ://www.valvers.com/open-software/raspberry-pi/step01-bare-metal- 프로그래밍 된-CPT1 / - https://www.youtube.com/watch?v=TCfpb8M0WeQ
모든 최신 Raspberry Pi 모델에서 Broadcom 프로세서가 사용 하는 ISA 제품군 인 ARM 은 RISC를 기반으로 하며 RISC OS 가 작성됩니다. RISC OS 필자는 동일한 영국 기반 기술 회사 (Acorn)가 원래 ARM과 RISC OS를 모두 설계 한 것처럼 처음 10 년 동안 ARM 장치를 지배했다고 생각합니다. 실제로 ARM은 처음에는 "Acorn RISC machine"을 옹호했으며, Raspberry Pi가 그 이유라고 불리는 이유 중 일부는 영국에서 과일이나 견과류를 사용한 컴퓨터 시스템 명명의 전통 때문입니다.
RISC OS는 실제 실시간 운영 체제는 아니지만 협력적인 멀티 태스킹을 사용 하므로 다른 프로세스에 자신을 포기하는 것을 자발적으로 거부 할 수있는 프로세스를 실행할 수 있습니다. 이것이 어떤 결과가 될지 모르지만 다음과 같이 가정합니다.
문제없이 이것을 허용하도록 구성된 것을 얻을 수 있지만 OS와 관련하여 (예를 들어, 네트워킹과 관련하여) 제한 할 수 있습니다.
컨텍스트 를 커널 모드로 전환하면 목표를 달성하기 위해 프로세스가 시스템을 호출했기 때문에 발생합니다.
"실시간"을 얻는 방법에 따라 실시간 기능과 매우 비슷합니다. 또한 RISC OS가 Pi 3에서 실행된다는 확인이 있습니다.
RTOS의 정의는 응용 프로그램, 일반적으로 훨씬 단순한 것으로 가장하는 컴퓨터에 따라 다르므로 RISC OS는 중복 잡 한 응용 프로그램의 RTOS이며, 고 복잡한 RTOS 일 필요는 없습니다. 용어의 모순처럼 들립니다. Mahmoud Almostafa RABBAH의 예는 OS가 없으며 RTOS가 아닌 부트 로더에서 직접 단일 작업 프로그램을 실행하는 것을 말합니다.
이를 이해하는 합리적인 방법은 RTOS 정의를 세 가지 수준으로 나누는 것입니다.
복잡성이 낮 으면 세탁기 나 데이터 로거와 같은 것일 수 있습니다. 아두 이노 나 단순한 MCU와 같은 단순한 하드웨어 나 심지어 순차적 인 논리를 사용하는 것이 좋습니다. 전력 소비가 적고 걱정할 것이 훨씬 적습니다. 이전보다 더 복잡하게 만들지 마십시오.
높은 복잡성은 RTOS가 아닌 완전한 멀티 태스킹 시스템과 같은 것입니다. 원하는 경우 별도의 장치에서 GUI를 실행하는 것이 좋습니다. 복잡성이 높은 프로세스는 다른 프로세스를 호출하는 프로세스를 모니터링 할 수 있으며 일부 프로세스는 우선 순위를 정해야하지만 다시 병렬 처리를 사용하는 것이 더 좋거나 실시간 응답 기능이 실패합니다.
중간 정도의 복잡성은 일반적인 OS가 제공 할 수있는 인터페이스 (예 : USB 및 작은 디스플레이 출력)가 필요한 곳이지만 데이터 스트림을 처리하고 어떤 것도 중단하지 않으려 고합니다. 이것은 자동차 애플리케이션 수준과 같습니다.
이를 위해 호스트 시스템을 사용하여 OS없이 무언가를 컴파일하거나 BASIC으로 직접 부팅하고 대상 시스템에서 개발하는 RISC OS 버전을 사용할 수 있습니다.
그것은 다른 일에 방해받지 않고 여러 이벤트를 폴링하기에 충분히 빠를 수있는 단일 작업을 실행합니다. 하드웨어 인터럽트는 비활성화되어 있지 않으면 (정말 쉬운 작업이 아닌 경우) 여전히 실행되며 디스플레이 / USB 등을 작동시키기 위해 필요한 인터럽트입니다. 다른 하드웨어 인터럽트는 사용하지 않을 수있는 타이머 및 IO를 실행합니다.
RTOS 응용 프로그램에서 RISC OS의 또 다른 장점은 필요한 모듈 만 사용할 수 있다는 것입니다. 기존 GUI 응용 프로그램에는 의미가 없으며 STD / AdvantageSix [1]에서는 "임베디드 시스템"이라는 용어를 사용하지만이 모듈을 사용할 수 있습니다. "RTOS"대신. 이로 인한 장점은 단순화 된 설계, 낮은 전력 요구량, 낮은 메모리 사용 및 빠른 부팅 시간입니다 (일부 I / O 장치 인터페이스는 미니 부팅 자체를 필요로하며 OS는 이에 참여해야합니다. ).
나는 위의 정보에 약간의 차이를 채우고 내 지식의 차이를 분명히하기를 바랍니다.
[1] http://www.advantagesix.co.uk/about_us.html (메모리의 다른 예는 더 이상 온라인으로 제공되지 않습니다.)