OpenRTOS
타사의 Real Time Engineers Ltd.의 라이선스에 따라 제공되는 FreeRTOS의 상용 라이선스 버전입니다.
SafeRTOS
FreeRTOS와 동일한 사용 모델을 공유하지만 국제적으로 인정된 다양한 안전 관련 표준을 준수한다고 주장하는데
필요한 관행, 절차 및 프로세스에 따라 개발되었습니다.
실시간 커널을 사용하는 이유
좋은 임베디드 소프트웨어를 작성하기위한 잘 확립된 기술이 많이 있습니다.
커널을 사용하고 개발중인 시스템이 간단한 경우 이러한 기술이 가장 적절한 솔루션을 제공할 수 있습니다.
더 복잡한 경우에는 커널을 사용하는 것이 좋을 수 있지만 크로스 오버 포인트가 발생하는 곳은 항상 주관적입니다.
작업 우선 순위 지정은 응용 프로그램이 처리를 충족하도록 보장할 수 있지만 그러나 커널은 다른 덜 명백한 이점도 가져올 수 있습니다.
- 타이밍 정보 추상화 커널은 실행 타이밍을 담당하며 시간 관련 API를 애플리케이션에 제공합니다.
이를 통해 응용 프로그램 코드의 구조가 더 단순 해지고 전체 코드 크기가 더 작아집니다.
- 유지 관리 / 확장성
타이밍 세부 사항을 추상화하면 모듈 간의 상호 종속성이 줄어들어 소프트웨어가 제어되고 예측 가능한 방식으로 발전 할 수 있습니다. 또한 커널은 타이밍을 담당하므로 애플리케이션 성능이 기본 하드웨어의 변경에 덜 민감합니다.
- 모듈성
작업은 독립적인 모듈이며, 각 모듈에는 잘 정의된 목적이 있어야 합니다.
- 팀 개발
또한 작업에는 잘 정의 된 인터페이스가 있어야 팀에서 쉽게 개발할 수 있습니다.
- 더 쉬운 테스트
작업이 깔끔한 인터페이스로 잘 정의 된 독립 모듈 인 경우 격리 된 상태에서 테스트 할 수 있습니다.
- 코드 재사용
더 큰 모듈 성과 더 적은 상호 의존성은 적은 노력으로 코드를 재사용할 수있게 합니다.
- 효율성 향상
커널을 사용하면 소프트웨어가 완전히 이벤트 중심이 될 수 있으므로 발생하지 않은 이벤트를 폴링하여 처리 시간을 낭비하지 않습니다. 코드는 수행해야 할 작업이 있을 때만 실행됩니다. 효율성 절감의 반대는 RTOS 틱 인터럽트를 처리하고 한 작업에서 다른 작업으로 실행을 전환해야 한다는 것입니다. 그러나 RTOS를 사용하지 않는 응용 프로그램에는 일반적으로 어떤 형태의 틱 인터럽트가 포함됩니다.
- 유휴시간
유휴 작업은 스케줄러가 시작될 때 자동으로 생성됩니다. 실행하려는 응용 프로그램 작업이 없을 때마다 실행됩니다. 유휴 작업은 예비 처리 용량을 측정하거나 백그라운드 확인을 수행하거나 단순히 프로세서를 저전력 모드로 전환하는 데 사용할 수 있습니다.
- 전원 관리
RTOS를 사용하여 얻은 효율성 향상은 프로세서가 저전력 모드에서 더 많은 시간을 보낼 수 있도록 합니다. 유휴 작업이 실행될 때마다 프로세서를 저전력 상태로 전환하면 전력 소비를 크게 줄일 수 있습니다. FreeRTOS에는 특별한 틱리스 모드도 있습니다. 틱리스 모드를 사용하면 프로세서가 보다 낮은 전력 모드로 들어갈 수 있습니다. 그렇지 않으면 가능한 더 오래 저전력 모드를 유지하는 것이 좋습니다
- 유연한 인터럽트 처리
인터럽트 핸들러는 다음에 의해 생성 된 작업에 대한 처리를 지연하여 매우 짧게 유지할 수 있습니다. 애플리케이션 작성자 또는 FreeRTOS 데몬 작업입니다.
- 혼합 처리 요구 사항
단순한 설계 패턴은 애플리케이션 내에서 주기적, 연속적 및 이벤트 중심 처리를 혼합 할 수 있습니다. 또한 적절한 작업 및 인터럽트 우선 순위를 선택하여 하드 및 소프트 실시간 요구 사항을 충족 할 수 있습니다.
'OS > FreeRTOS' 카테고리의 다른 글
RTOS 이해하기 1-2[기초] (0) | 2020.12.10 |
---|---|
RTOS 이해하기 1-1[기초] (0) | 2020.12.10 |
RTOS 소스 파일 및 프로젝트 (0) | 2020.12.09 |
FreeRTOS 기능 (0) | 2020.12.09 |
표기법 목록 (0) | 2020.12.09 |