FreeRTOS

| latest release version = 10.4.3
| latest release date =
| marketing target = Hệ thống nhúng
| programmed in = C
| language = Tiếng Anh
| language count =
| update model =
| package manager =
| supported platforms = ARM (ARM7, ARM9, Cortex-M3, -M4, -M7, -A, -R4), Atmel AVR, AVR32, HCS12, MicroBlaze, Cortus (APS1, APS3, APS3R, APS5, FPF3, FPS6, FPS8), MSP430, PIC, Renesas H8/S, SuperH, RX, x86, 8052, Coldfire, V850, 78K0R, Fujitsu series MB91460, MB96340, Nios II, TMS570, RM4x, Espressif ESP32, RISC-V
| kernel type = Microkernel RTOS
| ui =
| license = MIT
| website =
}}
FreeRTOS là hạt nhân hệ điều hành thời gian thực cho hệ thống nhúng được phát triển bởi Real Time Engineers Ltd, sáng lập và sở hữu bởi Richard Barry. Nó đã được port sang 35 nền tảng vi điều khiển và được phân phối theo giấy phép MIT.

Lịch sử
Nhân FreeRTOS ban đầu được phát triển bởi Richard Barry vào khoảng năm 2003, sau đó được phát triển và duy trì bởi công ty của Barry, Real Time Engineers Ltd. Vào năm 2017, công ty đã chuyển quyền quản lý dự án FreeRTOS cho Amazon Web Services (AWS). Barry tiếp tục làm việc trên FreeRTOS như một phần của nhóm AWS.

Triển khai
FreeRTOS được thiết kế nhỏ gọn và đơn giản. Nó chủ yếu được viết bằng ngôn ngữ lập trình C để dễ dàng port và bảo trì. Nó cũng bao gồm một số hàm hợp ngữ nếu cần, chủ yếu là trong các quy trình của bộ lập lịch cụ thể theo kiến trúc.

FreeRTOS cung cấp các phương thức cho đa luồng hoặc tác vụ, mutexes, semaphores và đồng hồ. Chế độ không đánh dấu được cung cấp cho các ứng dụng năng lượng thấp. Ưu tiên luồng được hỗ trợ. Các ứng dụng FreeRTOS có thể được cấp phát tĩnh, nhưng các đối tượng cũng có thể được cấp phát động với năm lược đồ quản lý bộ nhớ (cấp phát):

chỉ cấp phát;
phân bổ và tự do với một thuật toán rất đơn giản, nhanh chóng;
một thuật toán tự do và phân bổ phức tạp hơn nhưng nhanh hơn với sự kết hợp bộ nhớ;
một giải pháp thay thế cho sơ đồ phức tạp hơn bao gồm sự kết hợp bộ nhớ cho phép chia nhỏ và nhân trên nhiều vùng bộ nhớ.
và thư viện C phân bổ và tự do với một số bảo vệ loại trừ lẫn nhau.

RTOS thường không có các tính năng nâng cao hơn thường thấy trong các hệ điều hành như Linux và Microsoft Windows, chẳng hạn như trình điều khiển thiết bị, quản lý bộ nhớ nâng cao, tài khoản người dùng. Điểm nhấn là tính nhỏ gọn và tốc độ thực thi. FreeRTOS có thể được coi như một thư viện luồng hơn là một hệ điều hành, mặc dù có sẵn giao diện dòng lệnh và tính năng trừu tượng nhập/xuất (I/O) giống POSIX.

FreeRTOS triển khai nhiều đa luồng bằng cách yêu cầu chương trình chủ gọi một phương thức đánh dấu luồng vào những khoảng thời gian ngắn đều đặn. TPhương thức đánh dấu luồng chuyển đổi các tác vụ tùy thuộc vào mức độ ưu tiên và một sơ đồ lập lịch vòng lặp. Khoảng thời gian thông thường là 1 đến 10 mili giây ( đến giây) thông qua ngắt từ bộ hẹn giờ phần cứng, nhưng khoảng thời gian này thường được thay đổi để phù hợp với một ứng dụng nhất định.

Bản phân phối phần mềm chứa các cấu hình và trình diễn được chuẩn bị sẵn cho mọi cổng và trình biên dịch, cho phép thiết kế ứng dụng nhanh chóng. Trang web của dự án cung cấp tài liệu và hướng dẫn RTOS cũng như chi tiết về thiết kế RTOS.

Tính năng chính

Sách và tài liệu hướng dẫn tham khảo
Kích thước bộ nhớ nhỏ, chi phí thấp và thực thi nhanh chóng.
Tùy chọn ít đánh dấu cho các ứng dụng năng lượng thấp.
Dành cho cả những người có sở thích và các nhà phát triển chuyên nghiệp làm việc trên các sản phẩm thương mại.
Scheduler can be configured for both preemptive or cooperative multitasking.
Hỗ trợ Coroutine (coroutines trong FreeRTOS là các tác vụ đơn giản và nhẹ với việc sử dụng ngăn xếp cuộc gọi có giới hạn)
Hỗ trợ theo dõi thông qua macro theo dõi chung. Các công cụ như Tracealyzer, một công cụ thương mại của đối tác FreeRTOS Percepio, do đó có thể ghi lại và trực quan hóa hành vi runtime của các hệ thống dựa trên FreeRTOS để gỡ lỗi và xác minh. Điều này bao gồm lập lịch tác vụ và các cuộc gọi hạt nhân cho các hoạt động semaphore và hàng đợi.

Kiến trúc hỗ trợ

Altera Nios II
ARM architecture
ARM7
ARM9
ARM Cortex-M
ARM Cortex-A
Atmel
Atmel AVR
AVR32
SAM3, SAM4
SAM7, SAM9
SAMD20, SAML21
Ceva
Ceva-BXx
SensPro
Ceva-XC16
Ceva-XM6
Ceva-Xx
Ceva-XM4
Cortus
APS1
APS3
APS3R
APS5
FPS6
FPS8
Cypress
PSoC
Energy Micro
EFM32
eSi-RISC
eSi-16x0
eSi-32x0
DSP Group
DBMD7
Espressif
ESP8266
ESP32
Fujitsu
FM3
MB91460
MB96340
Freescale
Coldfire V1, V2
HCS12
Kinetis
IBM
PPC404, PPC405
Infineon
TriCore
Infineon XMC4000
Intel
x86
8052
Microchip Technology
PIC18, PIC24, dsPIC
PIC32
Microsemi
SmartFusion
Multiclet
P1
NXP
LPC1000
LPC2000
LPC4300
Renesas
78K0R
RL78
H8/S
RX600
RX200
SuperH
V850
RISC-V
RV32I
RV64I
PULP RI5CY
Silicon Labs
Gecko (ARM Cortex)
STMicroelectronics
STM32
STR7
Texas Instruments
MSP430
Stellaris
Hercules (TMS570LS04 & RM42)
Xilinx
MicroBlaze
Zynq-7000

Biến thể

Amazon FreeRTOS
Amazon cung cấp một phần mở rộng của FreeRTOS, được gọi là a:FreeRTOS. Đây là FreeRTOS với các thư viện hỗ trợ Internet vạn vật (IoT), đặc biệt cho Amazon Web Services. Kể từ phiên bản 10.0.0 vào năm 2017, Amazon đã quản lý mã FreeRTOS, bao gồm mọi bản cập nhật cho hạt nhân gốc.

SAFERTOS
SAFERTOS được phát triển như một phiên bản bổ sung của FreeRTOS, với các chức năng phổ biến, nhưng được thiết kế để thực hiện quan trọng về an toàn. FreeRTOS là đối tượng của nghiên cứu nguy cơ và khả năng hoạt động (HAZOP), và các điểm yếu đã được xác định và giải quyết. Kết quả được đưa vào vòng đời phát triển IEC 61508 SIL 3 đầy đủ, mức cao nhất cho một thành phần chỉ phần mềm.

SAFERTOS được phát triển bởi Wittenstein High Integrity Systems, hợp tác với Real Time Engineers Ltd, nhà phát triển chính của FreeRTOS. Cả SAFERTOS và FreeRTOS đều chia sẻ cùng một thuật toán lập lịch, có giao diện lập trình ứng dụng (API) tương tự và rất giống nhau, nhưng chúng được phát triển với các mục tiêu khác nhau. SAFERTOS chỉ được phát triển bằng ngôn ngữ C để đáp ứng các yêu cầu chứng nhận theo tiêu chuẩn IEC61508..

SAFERTOS chỉ có thể nằm trong bộ nhớ chỉ đọc (ROM) trên chip của bộ vi điều khiển để tuân thủ các tiêu chuẩn. Khi được triển khai trong bộ nhớ phần cứng, mã SAFERTOS chỉ có thể được sử dụng trong cấu hình gốc, được chứng nhận của nó. Điều này có nghĩa là chứng nhận một hệ thống không cần kiểm tra lại phần nhân của một thiết kế. SAFERTOS được bao gồm trong ROM của một số Vi điều khiển Stellaris từ Texas Instruments. Mã nguồn SAFERTOS không cần phải mua riêng. Trong trường hợp sử dụng này, tệp tiêu đề C được sử dụng để ánh xạ các hàm API SAFERTOS tới vị trí của chúng trong bộ nhớ chỉ đọc.

OPENRTOS
OPENRTOS là phiên bản Amazon FreeRTOS được cấp phép thương mại, được bán bởi WITTENSTEIN High Integrity Systems. Sản phẩm này cung cấp hỗ trợ và cho phép các công ty sử dụng hạt nhân và thư viện Amazon FreeRTOS mà không cần giấy phép a:FreeRTOS MIT.

Xem thêm

Hệ điều hành nhúng

Tham khảo

Liên kết ngoài