ChibiOS/RT
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
ChibiOS/RT는 임베디드 시스템 개발을 위한 마이크로커널 기반의 실시간 운영 체제(RTOS)이다. 선점형 멀티스레딩을 지원하여 시스템 응답성을 향상시키고, 128단계의 우선순위 큐와 라운드 로빈 스케줄링을 통해 효율적인 자원 할당을 제공한다. 다양한 시스템 객체와 하드웨어 추상화 계층을 지원하며, TCP/IP 스택 및 파일 시스템 라이브러리도 포함한다. STM32, STM8, LPC, MSP430 등 다양한 마이크로컨트롤러를 지원하며, Win32 프로세스에서 커널 실행을 통한 개발 환경을 제공한다. ChibiOS/RT는 IoT 기기, 스마트 팩토리, 드론, 웨어러블 기기, 산업용 제어 시스템 등 다양한 분야에 활용되며, AI 엣지 컴퓨팅, 자율주행 자동차, 우주항공 시스템 등 미래 기술 분야에서도 중요한 역할을 할 것으로 기대된다.
더 읽어볼만한 페이지
- 마이크로커널 - QNX
QNX는 고든 벨과 댄 도지가 개발한 마이크로커널 기반의 실시간 운영 체제로, 산업용 기계 제어 분야에서 신뢰성을 인정받아 현재는 블랙베리가 소유하며 자동차 인포테인먼트 시스템, 자율 주행 시스템 등 다양한 임베디드 시스템에 활용되고, POSIX 표준 준수로 유닉스 계열 소프트웨어와 호환된다. - 마이크로커널 - Mach (커널)
Mach 커널은 1980년대 DARPA에서 개발한 멀티프로세서 운영 체제로, 멀티프로세서 지원, 거대한 메모리 공간 활용, 분산 시스템 지원을 목표로 개발되었으며, 마이크로커널 구조를 채택하여 다양한 운영체제의 기반 기술로 활용되었다. - 실시간 운영체제 - Nucleus RTOS
Nucleus RTOS는 1993년 Accelerated Technology에서 출시된 실시간 운영 체제로, 다양한 아키텍처와 구성 요소를 지원하며 안전 인증을 받아 여러 제품에 사용되었다. - 실시간 운영체제 - 블랙베리 10
블랙베리 10은 2013년에 출시된 블랙베리 리미티드의 모바일 운영 체제로, 터치스크린 및 물리 키보드 스마트폰을 지원하며 제스처 기반 인터페이스, 블랙베리 허브 등의 기능을 제공했으나 2022년에 공식 지원이 종료되었다. - 임베디드 운영체제 - 블랙베리 10
블랙베리 10은 2013년에 출시된 블랙베리 리미티드의 모바일 운영 체제로, 터치스크린 및 물리 키보드 스마트폰을 지원하며 제스처 기반 인터페이스, 블랙베리 허브 등의 기능을 제공했으나 2022년에 공식 지원이 종료되었다. - 임베디드 운영체제 - QNX
QNX는 고든 벨과 댄 도지가 개발한 마이크로커널 기반의 실시간 운영 체제로, 산업용 기계 제어 분야에서 신뢰성을 인정받아 현재는 블랙베리가 소유하며 자동차 인포테인먼트 시스템, 자율 주행 시스템 등 다양한 임베디드 시스템에 활용되고, POSIX 표준 준수로 유닉스 계열 소프트웨어와 호환된다.
| ChibiOS/RT - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 기본 정보 | |
| 개발자 | 조반니 디 시리오 |
| 소스 모델 | 오픈 소스 |
| 커널 종류 | 마이크로커널 |
| 지원 플랫폼 | Intel 80386 ARM 7, 9 Cortex: M0 M3 M4 M7 PowerPC e200z Atmel AVR TI MSP430 STM8 Freescale Coldfire Renesas H8S |
| 제품군 | 실시간 운영 체제 |
| 출시일 | 2007년 |
| 최신 출시 버전 | 21.11.3 |
| 최신 출시일 | 2022년 12월 29일 |
| 마케팅 대상 | 임베디드 시스템 |
| 개발 언어 | C 어셈블리어 |
| 사용 언어 | 영어 |
| 작업 상태 | 현재 |
| 라이선스 | GPL3 독점 |
| 웹사이트 | ChibiOS 공식 웹사이트 |
2. 특징
ChibiOS/RT는 임베디드 시스템에 적합하도록 설계된 실시간 운영 체제(RTOS)이다. 주요 특징은 다음과 같다.
- 마이크로커널 구조: 멀티스레딩, 128단계 우선 순위 큐, 라운드 로빈 스케줄링, 소프트웨어 타이머, 계수 세마포어, 우선 순위 상속을 지원하는 뮤텍스, 조건 변수, 동기 및 비동기 메시지, 이벤트 플래그 및 핸들러, 큐, 타임아웃 기능을 갖춘 동기 및 비동기 I/O, 스레드 안전 메모리 힙 및 메모리 풀 할당자를 지원한다.
- 하드웨어 추상화 계층(HAL): ADC, CAN, GPT(범용 타이머), EXT, I²C, ICU, MAC, MMC/SD, PAL, PWM, RTC, SDC, 시리얼, SPI, USB 등 다양한 하드웨어 드라이버를 지원하여 여러 종류의 마이크로컨트롤러에서 사용할 수 있다.
- 추가 기능: LwIP 및 uIP TCP/IP 스택과 FatFs 파일 시스템 라이브러리를 지원한다.
- 높은 안정성: 시스템 안정성을 위해 커널 아키텍처는 완전히 정적이며, 메모리 할당기가 필요하지 않으며(옵션으로 사용 가능), 테이블 또는 배열과 같은 상한 크기 제한이 있는 자료 구조가 없다. 시스템 API는 오류 코드 또는 예외와 같은 오류 조건이 없도록 설계되었다.
- 다양한 마이크로컨트롤러 지원: ST마이크로일렉트로닉스, NXP 반도체, Atmel, 텍사스 인스트루먼트, 마이크로칩 테크놀로지 등 다양한 제조사의 마이크로컨트롤러를 지원한다. Coldfire 및 H8S 제품군에 대한 포트도 제공된다.[5]
- 라즈베리 파이 지원: 라즈베리 파이로 이식되었으며[6] GPIO, 시리얼, GPT(범용 타이머), I2C, SPI, PWM 장치 드라이버가 구현되어 있다.
- 쉬운 개발: 물리적 하드웨어 없이도 쉬운 애플리케이션 개발을 가능하게 하는 소프트웨어 I/O 에뮬레이션 모드에서 Win32 프로세스에서 커널을 실행하는 것도 가능하다. MinGW 컴파일러에 대한 예제가 포함되어 있다.
- wolfSSL 지원: ChibiOS/RT는 wolfSSL과 같은 TLS/SSL 라이브러리를 지원한다.
2. 1. 마이크로커널 구조
ChibiOS/RT 마이크로커널은 다음과 같은 기능을 지원한다.[4]- 선점형 멀티스레딩
- 128 우선 순위 큐 레벨
- 동일한 우선 순위 레벨의 스레드에 대한 라운드 로빈 스케줄링
- 소프트웨어 타이머
- 계수 세마포어
- 우선 순위 상속 알고리즘을 지원하는 뮤텍스
- 조건 변수
- 동기 및 비동기 메시지
- 이벤트 플래그 및 핸들러
- 큐
- 타임아웃 기능을 갖춘 동기 및 비동기 I/O
- 스레드 안전 메모리 힙 및 메모리 풀 할당자
- ADC, CAN, GPT(범용 타이머), EXT, I²C, ICU, MAC, MMC/SD, PAL, PWM, RTC, SDC, 시리얼, SPI, USB 드라이버를 지원하는 하드웨어 추상화 계층
- LwIP 및 uIP TCP/IP 스택 지원
- FatFs 파일 시스템 라이브러리 지원
스레드, 세마포어, 타이머 등과 같은 모든 시스템 객체는 런타임에 생성 및 삭제될 수 있다. 사용 가능한 메모리를 제외하고 상한선은 없다. 시스템 안정성을 높이기 위해 커널 아키텍처는 완전히 정적이며, 메모리 할당기가 필요하지 않으며(옵션으로 사용 가능), 테이블 또는 배열과 같은 상한 크기 제한이 있는 자료 구조가 없다. 시스템 API는 오류 코드 또는 예외와 같은 오류 조건이 없도록 설계되었다.
2. 2. 선점형 멀티스레딩
ChibiOS/RT 마이크로커널은 선점형 멀티스레딩을 지원한다.[4] 이는 여러 개의 스레드가 동시에 실행되는 것처럼 보이게 하는 기능이다. 각 스레드는 자신의 코드, 레지스터, 스택을 가지고 독립적으로 실행된다.선점형 멀티스레딩의 장점:
- 응답성 향상: 사용자 인터페이스와 같이 즉각적인 반응이 필요한 작업의 응답 속도를 높여준다.
- 자원 활용도 증가: 여러 스레드가 CPU를 효율적으로 나눠 쓰므로 전체적인 시스템 성능이 향상된다.
- 프로그램 구조 개선: 복잡한 작업을 여러 개의 작은 스레드로 나누어 관리하기 쉽게 만들어준다.
ChibiOS/RT는 128개의 우선 순위 큐 레벨을 지원하며, 동일한 우선 순위 레벨의 스레드에 대해서는 라운드 로빈 스케줄링을 적용한다. 또한, 소프트웨어 타이머, 계수 세마포어, 우선 순위 상속 알고리즘을 지원하는 뮤텍스 등 다양한 기능을 제공한다.[4]
2. 3. 우선순위 및 스케줄링
ChibiOS/RT는 128단계 우선 순위 큐를 지원하며, 동일한 우선 순위 레벨의 스레드에 대해서는 라운드 로빈 스케줄링 방식을 사용한다.[4]2. 4. 다양한 시스템 객체 지원
ChibiOS/RT 마이크로커널은 다음과 같은 다양한 시스템 객체를 지원한다.[4]- 소프트웨어 타이머
- 계수 세마포어
- 우선 순위 상속 알고리즘을 지원하는 뮤텍스
- 조건 변수
- 동기 및 비동기 메시지
- 이벤트 플래그 및 핸들러
- 큐
이러한 시스템 객체들은 런타임에 생성 및 삭제될 수 있으며, 사용 가능한 메모리 외에 상한선은 없다.[9] 커널은 안정성을 위해 완전히 정적으로 설계되었으며, 메모리 할당은 선택 사항이다. 시스템 API는 오류 조건이 없도록 설계되었다.[10]
2. 5. 동기 및 비동기 I/O
타임아웃 기능을 갖춘 동기 및 비동기 I/O를 지원한다.[4]2. 6. 메모리 관리
ChibiOS/RT는 스레드 안전 메모리 힙 및 메모리 풀 할당자를 지원한다.[4]2. 7. 하드웨어 추상화 계층
ADC, CAN, GPT(범용 타이머), EXT, I²C, ICU, MAC, MMC/SD, PAL, PWM, RTC, SDC, 시리얼, SPI, USB 드라이버를 지원하는 하드웨어 추상화 계층을 제공한다.[4] LwIP 및 uIP TCP/IP 스택과 FatFs 파일 시스템 라이브러리도 지원한다.라즈베리 파이에 이식되었을 때[6] GPIO, 시리얼, GPT(범용 타이머), I2C, SPI, PWM 장치 드라이버가 구현되었다.
2. 8. TCP/IP 스택 및 파일 시스템 지원
LwIP 및 uIP TCP/IP 스택과 FatFs 파일 시스템 라이브러리를 지원한다.[4]3. 성능
ChibiOS/RT는 8비트, 16비트, 32비트 마이크로컨트롤러 임베디드 애플리케이션을 위해 설계되었다. 크기와 실행 효율성은 이 프로젝트의 주요 목표이다.[8]
STM32 Cortex-M3 프로세서에서 모든 하위 시스템을 활성화했을 때 커널 크기는 최소 1.2KiB에서 최대 5.5KiB이다. 커널은 초당 220,000개 이상의 스레드 생성/종료를 달성할 수 있으며, STM32 @ 72MHz에서 1.2 마이크로초 만에 컨텍스트 스위치를 수행할 수 있다. 지원되는 모든 플랫폼에 대한 유사한 측정항목은 소스 코드 배포에 테스트 보고서로 포함되어 있다.[12]
3. 1. 커널 크기
ChibiOS/RT는 8비트, 16비트, 32비트 마이크로컨트롤러 임베디드 애플리케이션을 위해 설계되었다. 크기와 실행 효율성이 주요 프로젝트 목표이다.[3] 참고로, 커널 크기는 STM32 Cortex-M3 프로세서에서 모든 하위 시스템이 활성화된 상태에서 최소 1.2KiB에서 최대 5.5KiB까지 가능하다.[12]3. 2. 스레드 생성/종료 속도
커널은 초당 220,000개 이상의 스레드 생성/종료를 달성할 수 있으며 STM32 @ 72 MHz에서 1.2 마이크로초 만에 컨텍스트 스위치를 수행할 수 있다.[12] 지원되는 모든 플랫폼에 대한 유사한 측정항목은 소스 코드 배포에 테스트 보고서로 포함되어 있다.3. 3. 컨텍스트 스위치 속도
커널은 초당 220,000개 이상의 스레드 생성/종료를 달성할 수 있으며 STM32 @ 72 MHz에서 1.2µs 만에 컨텍스트 스위치를 수행할 수 있다.[12] 지원되는 모든 플랫폼에 대한 유사한 측정 항목은 소스 코드 배포에 테스트 보고서로 포함되어 있다.4. 지원 플랫폼
ChibiOS/RT는 임베디드 시스템 애플리케이션용으로 설계되었으며, ST마이크로일렉트로닉스, NXP 반도체, Atmel, 텍사스 인스트루먼트 (TI), 마이크로칩 테크놀로지 등 다양한 제조사의 마이크로컨트롤러를 지원한다. Coldfire, H8S 제품군, 라즈베리 파이로도 이식되었다.[5][6]
또한, 물리적 하드웨어 없이도 쉬운 애플리케이션 개발을 위해 소프트웨어 I/O 에뮬레이션 모드에서 Win32 프로세스로 커널을 실행할 수 있으며, MinGW 컴파일러 예제가 포함되어 있다.
4. 1. 마이크로컨트롤러
ChibiOS/RT는 다양한 종류의 마이크로컨트롤러를 지원하며, 각 마이크로컨트롤러에 대한 데모 애플리케이션을 포함하고 있다.[4]| 제조사 | 제품군 |
|---|---|
| ST마이크로일렉트로닉스 | STM32F1xx, STM32F2xx, STM32F3xx, STM32F4xx, STM32L1xx, STM32F0xx, STM8S208x, STM8S105x, STM8L152x, ST/프리스케일 SPC56x, MPC56xx |
| NXP 반도체 | LPC11xx, LPC11Uxx, LPC13xx, LPC2148 |
| Atmel | AT91SAM7S, AT91SAM7X, megaAVR |
| 텍사스 인스트루먼트 (TI) | MSP430x1611, TM4C123G, TM4C1294 |
| 마이크로칩 테크놀로지 | PIC32MX |
| 프리스케일 | Coldfire, H8S[5] |
| 라즈베리 파이[6] | GPIO, 시리얼, GPT (범용 타이머), I2C, SPI, PWM 드라이버 구현 |
4. 2. 개발 환경
Win32 프로세스에서 커널을 소프트웨어 I/O 에뮬레이션 모드로 실행할 수 있어, 실제 하드웨어 없이도 쉽게 애플리케이션을 개발할 수 있다. MinGW 컴파일러에 대한 예제가 포함되어 있다.[4]5. uGFX (GUI 툴킷) 지원
ChibiOS/RT는 그래픽 사용자 인터페이스(GUI) 툴킷인 µGFX를 완벽하게 지원하며, µGFX는 과거 ChibiOS/GFX로 불렸다.
참조
[1]
웹사이트
The ARMv7-M Port
http://www.chibios.o[...]
2020-08-20
[2]
웹사이트
RTOS performance data on emb4fun.de
http://www.emb4fun.d[...]
2013-01-11
[3]
웹사이트
ChibiOS/RT statistics on ohloh.net
https://web.archive.[...]
2010-01-30
[4]
웹사이트
A detailed explanation of multithreading in ChibiOS/RT
https://web.archive.[...]
2016-11-03
[5]
웹사이트
Additional supported architectures on emb4fun.de
http://www.emb4fun.d[...]
2013-01-11
[6]
웹사이트
ChibiOS/RT on the Raspberry Pi
http://www.stevebate[...]
[7]
웹사이트
RTOS performance data on emb4fun.de
http://www.emb4fun.d[...]
2013-01-11
[8]
웹사이트
ChibiOS/RT statistics on ohloh.net
https://www.ohloh.ne[...]
[9]
웹사이트
A detailed explanation of multithreading in ChibiOS/RT
http://www.playembed[...]
[10]
웹사이트
Additional supported architectures on emb4fun.de
http://www.emb4fun.d[...]
2013-01-11
[11]
웹사이트
ChibiOS/RT on the Raspberry Pi
http://www.stevebate[...]
2019-01-14
[12]
웹인용
ChibiOS/RT statistics on ohloh.net
https://web.archive.[...]
2010-01-30
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com