RT-Thread 5.3, một hệ điều hành thời gian thực (RTOS) dành cho các thiết bị Internet vạn vật (IoT), đã được phát hành. Được phát triển từ năm 2006 bởi một cộng đồng các nhà phát triển Trung Quốc, hệ điều hành này hiện đã được port sang 155 bo mạch, chip và vi điều khiển dựa trên các kiến trúc x86, ARM, MIPS, C-SKY, Xtensa, ARC và RISC-V. Phiên bản tối giản của RT-Thread (Nano) chỉ yêu cầu 3 KB Flash và 1.2 KB RAM. Đối với các thiết bị IoT có tài nguyên hạn chế không giới hạn, một phiên bản đầy đủ tính năng đã được cung cấp, hỗ trợ quản lý gói, trình cấu hình, ngăn xếp mạng, gói giao diện người dùng đồ họa (GUI), hệ thống điều khiển bằng giọng nói, hệ quản trị cơ sở dữ liệu (DBMS), dịch vụ mạng và công cụ kịch bản. Mã nguồn được viết bằng ngôn ngữ C và được phân phối theo giấy phép Apache 2.0.
Hệ điều hành bao gồm ba lớp cơ bản:
- Một hạt nhân cho phép các tác vụ được thực thi trong thời gian thực. Hạt nhân cung cấp các nguyên hàm cốt lõi chung bao gồm các lĩnh vực như quản lý khóa và đồng bộ hóa dữ liệu, lập lịch tác vụ, quản lý luồng, xử lý tín hiệu, xếp hàng tin nhắn, quản lý bộ hẹn giờ và quản lý bộ nhớ. Các tính năng dành riêng cho phần cứng được triển khai ở cấp độ libcpu và BSP, bao gồm các trình điều khiển và mã cần thiết để hỗ trợ CPU.
- Các thành phần và dịch vụ chạy trên kernel và cung cấp các tính năng trừu tượng như hệ thống tệp ảo, hệ thống xử lý ngoại lệ, lưu trữ khóa/giá trị, giao diện dòng lệnh FinSH, ngăn xếp mạng (LwIP) và khung mạng, thư viện hỗ trợ thiết bị, hệ thống con âm thanh, ngăn xếp không dây, các thành phần hỗ trợ Wi-Fi, LoRa, Bluetooth, 2G/4G. Kiến trúc mô-đun cho phép bạn kết nối các thành phần và dịch vụ tùy thuộc vào nhiệm vụ của bạn và tài nguyên phần cứng sẵn có.
- Gói phần mềm. Các thành phần phần mềm đa năng và thư viện chức năng được phân phối và cài đặt dưới dạng gói. Kho lưu trữ hiện bao gồm hơn 450 gói, cung cấp mọi thứ từ giao diện đồ họa, ứng dụng đa phương tiện và ứng dụng mạng cho đến hệ thống điều khiển robot và bộ xử lý dựa trên máy học. Các gói này cũng cung cấp các công cụ để tổ chức thực thi các chương trình bằng các ngôn ngữ Lua, JerryScript, MicroPython, PikaScript và Rust (rtt_rust).

Tính năng nền tảng:
- Hỗ trợ kiến trúc:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (hỗ trợ các bộ vi điều khiển của các nhà sản xuất như ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP).
- CÁNH TAY Cortex-R4.
- CÁNH TAY Cortex-A8/A9 (NXP).
- ARM7 (Samsung).
- ARM9 (Allwinner, Xilinx, GOKE).
- ARM11 (Fullhan).
- MIPS32 (Loongson, Ingenic).
- RISC-V RV32E/RV32I[F]/RV64[D] (sif, Canaan Kendryt, bouffalo_lab, Nuclei, T-Head, HPMicro).
- ARC (TỔNG HỢP)
- DSP (TI).
- C-Bầu trời.
- x86.
- Kiến trúc mô-đun mở rộng cho phép bạn tạo môi trường phù hợp với các hệ thống có tài nguyên hạn chế (yêu cầu tối thiểu - 3 KB Flash và 1.2 KB RAM).
- Hỗ trợ các giao diện tiêu chuẩn khác nhau để phát triển chương trình, chẳng hạn như POSIX, CMSIS, C++ API. Lớp RTduino đang được phát triển riêng để tương thích với các thư viện và API của dự án Arduino.
- Khả năng mở rộng thông qua hệ thống các gói và thành phần plug-in.
- Hỗ trợ phát triển ứng dụng để xử lý thông tin hiệu suất cao.
- Hệ thống quản lý nguồn linh hoạt cho phép bạn tự động đưa thiết bị vào chế độ ngủ và tự động điều khiển điện áp, tần số tùy theo tải.
- Hỗ trợ phần cứng để mã hóa và giải mã, cung cấp thư viện với nhiều thuật toán mã hóa khác nhau.
- Giao diện hợp nhất để truy cập vào các thiết bị ngoại vi và thiết bị bổ sung.
- Hệ thống tệp ảo và tính sẵn có của trình điều khiển cho các hệ thống tệp như FAT, UFFS, NFSv3, ROMFS và RAMFS.
- Ngăn xếp giao thức cho TCP/IPEthernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M, v.v.
- Một hệ thống phân phối và cài đặt từ xa các bản cập nhật hỗ trợ mã hóa và xác minh bằng chữ ký số, tiếp tục cài đặt bị gián đoạn, khôi phục sau lỗi, khôi phục các thay đổi, v.v.
- Một hệ thống các mô-đun hạt nhân được tải động cho phép bạn xây dựng và phát triển các thành phần hạt nhân một cách riêng biệt và tải động chúng khi cần.
- Hỗ trợ các gói của bên thứ ba khác nhau, chẳng hạn như Yaffs2, SQLite, FreeModbus, Canopen, v.v.
- Khả năng biên dịch trực tiếp gói BSP (Gói hỗ trợ bo mạch) với các thành phần để hỗ trợ nền tảng phần cứng cụ thể và tải nó lên bo mạch.
- Có sẵn trình giả lập (BSP qemu-vexpress-a9), cho phép bạn phát triển ứng dụng mà không cần sử dụng bảng thực.
- Hỗ trợ các trình biên dịch và công cụ phát triển phổ biến như GCC, MDK Keil và IAR.
- Phát triển môi trường phát triển tích hợp RT-Thread Studio IDE của riêng chúng tôi, cho phép bạn tạo và gỡ lỗi các ứng dụng, tải chúng lên bảng và quản lý cài đặt. Các plugin phát triển cho RT-Thread cũng có sẵn cho Eclipse và VS Code.
- Sự hiện diện của giao diện bảng điều khiển Env, giúp đơn giản hóa việc tạo dự án và thiết lập môi trường.
Trong số những thay đổi trong bản phát hành mới:
- Hỗ trợ phát triển các thành phần bằng ngôn ngữ Rust đã được mở rộng. Đã bổ sung các liên kết Rust cho luồng, mutex, semaphore, hàng đợi tin nhắn, cũng như các thao tác với bộ nhớ, thời gian và tệp. Các thành phần để tích hợp với SCons và Cargo đã được triển khai. Hiện tại đã có tính năng tự động phát hiện các nền tảng mục tiêu ARM, AArch64 và RISC-V. Đã thêm các macro thủ tục để khởi tạo và đăng ký lệnh.
- Đối với bộ vi điều khiển Cortex-M, hỗ trợ tiêu chuẩn Open Firmware với mô tả thiết bị ngoại vi thông qua Device Tree đã được kích hoạt.
- Đã thêm hỗ trợ cho VirtIO 1.2 với khả năng sử dụng hàng đợi gói, giao thức MMIO/PCI và đồng bộ hóa DMA. Đã thêm trình điều khiển VirtIO cho 9P, mã hóa, RNG, SCMI và SCSI. Trình điều khiển VirtIO cho mạng, thiết bị khối, bảng điều khiển, thiết bị đầu vào và GPU đã được cập nhật.
- Khung DVFS (Dynamic Voltage and Frequency Scaling) đã được bổ sung để quản lý tần số CPU và thiết bị một cách linh hoạt. Việc tích hợp với phần mềm ARM SCMI để quản lý nguồn điện đã được thực hiện. Quản lý quạt cũng đã được cải thiện.
- Đã bổ sung hỗ trợ cho môi trường TEE (Trusted Execution Environment) và cơ chế nhắn tin RPMSG (Remote Processor Messaging).
- Hỗ trợ cho socket Unix đã được triển khai.
- Đã bổ sung hỗ trợ cho các cơ chế bảo mật mạng không dây WPA3, EA (Enterprise Authentication), WAPI, OWE và DPP.
- Đã thêm hỗ trợ cho giao thức đồng bộ thời gian PTP (Precision Time Protocol).
- Khung Clock Time đã được thêm vào để làm việc với thời gian, hỗ trợ bộ đếm thời gian độ chính xác cao và đồng bộ hóa thời gian từ nhiều nguồn khác nhau. Khung mới này thay thế các thành phần ktime, cputime và hwtimer được sử dụng trước đây.
- Hệ thống tập tin 9PFS đã được triển khai, được sử dụng để trao đổi tập tin giữa môi trường máy chủ và các máy ảo.
- Việc triển khai các tiến trình nhẹ (lwP) hiện hỗ trợ kiến trúc ARM và bổ sung hỗ trợ cho cơ chế vDSO (đối tượng chia sẻ động ảo), cho phép di chuyển các trình xử lý từ nhân hệ điều hành sang không gian người dùng và tránh chuyển đổi ngữ cảnh.
- Nhân hệ điều hành hỗ trợ các phép toán nguyên tử 8-bit và 16-bit.
- Đã thêm hỗ trợ xử lý đa luồng đối xứng (SMP) cho bộ xử lý RISC-V dòng XuanTie C/R và trình giả lập QEMU virt64.
- Bộ giao thức USB CherryUSB đã được cập nhật lên phiên bản 1.6.1.
- Đã thêm các trình điều khiển DM (Trình quản lý thiết bị) mới cho UFS, AHCI, NVMe, Ethernet, Intel HDA, cần điều khiển và màn hình cảm ứng.
Nguồn: opennet.ru
