RT-Thread 5.3، یک سیستم عامل بلادرنگ (RTOS) برای دستگاههای اینترنت اشیا، منتشر شد. این سیستم عامل که از سال ۲۰۰۶ توسط جامعهای از توسعهدهندگان چینی توسعه داده شده است، اکنون به ۱۵۵ برد، تراشه و میکروکنترلر مبتنی بر معماریهای x86، ARM، MIPS، C-SKY، Xtensa، ARC و RISC-V منتقل شده است. یک ساختار مینیمالیستی از RT-Thread (نانو) تنها به ۳ کیلوبایت فلش و ۱.۲ کیلوبایت رم نیاز دارد. برای دستگاههای اینترنت اشیا با محدودیت منابع نامحدود، یک نسخه کاملاً مجهز در دسترس است که از مدیریت بسته، پیکربندیکنندهها، پشته شبکه، بستههای رابط کاربری گرافیکی، سیستمهای کنترل صدا، DBMS، سرویسهای شبکه و موتورهای اسکریپتنویسی پشتیبانی میکند. کد این سیستم عامل به زبان C نوشته شده و تحت مجوز Apache 2.0 توزیع شده است.
سیستم عامل از سه لایه اصلی تشکیل شده است:
- هسته ای که اجازه می دهد وظایف در زمان واقعی اجرا شوند. هسته اولیه هسته عمومی را فراهم می کند که حوزه هایی مانند مدیریت قفل و همگام سازی داده ها، زمان بندی وظایف، مدیریت رشته، مدیریت سیگنال، صف پیام، مدیریت تایمر و مدیریت حافظه را پوشش می دهد. ویژگیهای سختافزاری در سطوح libcpu و BSP پیادهسازی میشوند که شامل درایورها و کدهای لازم برای پشتیبانی از CPU است.
- مؤلفهها و سرویسهایی که در بالای هسته اجرا میشوند و انتزاعیهایی مانند سیستم فایل مجازی، سیستم مدیریت استثنا، ذخیرهسازی کلید/مقدار، رابط خط فرمان FinSH، پشته شبکه (LwIP) و چارچوبهای شبکه، کتابخانههای پشتیبانی دستگاه، زیرسیستم صوتی، ارائه میدهند. پشته بی سیم، اجزای پشتیبانی از Wi-Fi، LoRa، بلوتوث، 2G/4G. معماری ماژولار به شما امکان می دهد بسته به وظایف و منابع سخت افزاری موجود، اجزا و خدمات را به هم متصل کنید.
- بسته های نرم افزاری اجزای نرمافزاری عمومی و کتابخانههای تابع در قالب بستههایی توزیع و نصب میشوند. این مخزن در حال حاضر شامل بیش از 450 بسته است که همه چیز را از رابط های گرافیکی، برنامه های چند رسانه ای و برنامه های شبکه گرفته تا سیستم های کنترل ربات و پردازنده های مبتنی بر یادگیری ماشین ارائه می دهد. این بسته ها همچنین موتورهایی را برای سازماندهی اجرای برنامه ها به زبان های Lua، JerryScript، MicroPython، PikaScript و Rust (rtt_rust) ارائه می دهند.

ویژگی های پلتفرم:
- پشتیبانی معماری:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (میکروکنترلرهای تولیدکنندگانی مانند ST، Winner Micro، MindMotion، Realtek، Infineon، GigaDevic، Nordic، Nuvoton، NXP پشتیبانی میشوند).
- ARM Cortex-R4.
- ARM Cortex-A8/A9 (NXP).
- ARM7 (سامسونگ).
- ARM9 (Allwinner، Xilinx، GOKE).
- ARM11 (فولان).
- MIPS32 (Loongson، Ingenic).
- RISC-V RV32E/RV32I[F]/RV64[D] (Sifive، Canaan Kendriyt، bouffalo_lab، Nuclei، T-Head، HPMicro).
- ARC (SYNOPSYS)
- DSP (TI).
- سی-اسکای.
- x86
- معماری ماژولار توسعه پذیر که به شما امکان می دهد محیطی مناسب برای سیستم هایی با منابع محدود ایجاد کنید (حداقل نیاز - 3 کیلوبایت فلش و 1.2 کیلوبایت رم).
- پشتیبانی از رابط های استاندارد مختلف برای توسعه برنامه، مانند POSIX، CMSIS، C++ API. لایه RTduino به طور جداگانه برای سازگاری با API پروژه آردوینو و کتابخانه ها در حال توسعه است.
- امکان گسترش از طریق سیستم پکیج ها و قطعات پلاگین.
- پشتیبانی از توسعه برنامه برای پردازش اطلاعات با کارایی بالا.
- سیستم مدیریت توان انعطاف پذیر که به شما امکان می دهد دستگاه را به صورت خودکار در حالت خواب قرار دهید و به صورت دینامیکی ولتاژ و فرکانس را بسته به بار کنترل کنید.
- پشتیبانی سخت افزاری برای رمزگذاری و رمزگشایی، ارائه کتابخانه ها با الگوریتم های رمزنگاری مختلف.
- رابط یکپارچه برای دسترسی به دستگاه های جانبی و تجهیزات اضافی.
- سیستم فایل مجازی و در دسترس بودن درایورهای فایل سیستمی مانند FAT، UFFS، NFSv3، ROMFS و RAMFS.
- پشته پروتکل برای TCP/IP، اترنت، وایفای، بلوتوث، NB-IoT، 2G/3G/4G، HTTP، MQTT، LwM2M و غیره.
- سیستمی برای تحویل از راه دور و نصب بهروزرسانیها که از رمزگذاری و تأیید با استفاده از امضای دیجیتال، از سرگیری نصب قطع شده، بازیابی از خرابی، بازگرداندن تغییرات و غیره پشتیبانی میکند.
- سیستمی از ماژول های هسته بارگذاری شده پویا که به شما امکان می دهد اجزای هسته را به طور جداگانه بسازید و توسعه دهید و در صورت نیاز آنها را به صورت پویا بارگذاری کنید.
- از بسته های شخص ثالث مختلف مانند Yaffs2، SQLite، FreeModbus، Canopen و غیره پشتیبانی می کند.
- امکان کامپایل مستقیم بسته BSP (بسته پشتیبانی هیئت مدیره) با اجزایی برای پشتیبانی از یک پلت فرم سخت افزاری خاص و بارگذاری آن بر روی برد.
- در دسترس بودن یک شبیه ساز (BSP qemu-vexpress-a9) که به شما امکان می دهد بدون استفاده از بردهای واقعی برنامه ها را توسعه دهید.
- پشتیبانی از کامپایلرهای رایج و ابزارهای توسعه مانند GCC، MDK Keil و IAR.
- توسعه محیط توسعه یکپارچه خود RT-Thread Studio IDE، که به شما امکان می دهد برنامه ها را ایجاد و اشکال زدایی کنید، آنها را روی بردها بارگذاری کنید و تنظیمات را مدیریت کنید. افزونه های توسعه برای RT-Thread برای Eclipse و VS Code نیز موجود است.
- وجود رابط کنسول Env که ایجاد پروژه ها و تنظیم محیط را ساده می کند.
از جمله تغییرات نسخه جدید:
- پشتیبانی از توسعه کامپوننتها به زبان Rust گسترش یافته است. اتصالات Rust برای نخها، mutexeها، سمافورها، صفهای پیام و همچنین عملیات با حافظه، زمان و فایلها اضافه شده است. کامپوننتهایی برای ادغام با SCons و Cargo پیادهسازی شدهاند. تشخیص خودکار پلتفرمهای هدف ARM، AArch64 و RISC-V اکنون در دسترس است. ماکروهای رویهای برای مقداردهی اولیه و ثبت دستورات اضافه شدهاند.
- برای میکروکنترلرهای Cortex-M، پشتیبانی از استاندارد Open Firmware با توصیف محیطی از طریق Device Tree فعال شده است.
- پشتیبانی از VirtIO 1.2 با قابلیت استفاده از صفهای بسته، انتقالهای MMIO/PCI و هماهنگسازی DMA اضافه شده است. درایورهای VirtIO برای 9P، رمزنگاری، RNG، SCMI و SCSI اضافه شدهاند. درایورهای VirtIO برای شبکه، دستگاههای بلوک، کنسول، دستگاههای ورودی و GPU بهروزرسانی شدهاند.
- چارچوب DVFS (مقیاسبندی پویای ولتاژ و فرکانس) برای مدیریت پویای فرکانس پردازنده و دستگاه اضافه شده است. ادغام با میانافزار ARM SCMI برای مدیریت توان فراهم شده است. مدیریت فن بهبود یافته است.
- پشتیبانی از محیطهای TEE (محیط اجرای مطمئن) و مکانیسم پیامرسانی RPMSG (پیامرسانی پردازنده از راه دور) اضافه شد.
- پشتیبانی از سوکتهای یونیکس پیادهسازی شده است.
- پشتیبانی از مکانیسمهای امنیتی شبکه بیسیم WPA3، EA (احراز هویت سازمانی)، WAPI، OWE و DPP اضافه شد.
- پشتیبانی از پروتکل همگامسازی زمان PTP (پروتکل زمان دقیق) اضافه شد.
- چارچوب Clock Time برای کار با زمان، پشتیبانی از تایمرهای با دقت بالا و هماهنگسازی زمان در چندین منبع اضافه شده است. این چارچوب جدید جایگزین کامپوننتهای ktime، cputime و hwtimer که قبلاً استفاده میشدند، شده است.
- سیستم فایل 9PFS پیادهسازی شده است که برای تبادل فایلها بین محیط میزبان و ماشینهای مجازی استفاده میشود.
- پیادهسازی فرآیندهای سبک (lwP) اکنون از معماری ARM پشتیبانی میکند و پشتیبانی از مکانیزم vDSO (شیء مشترک پویای مجازی) را اضافه میکند، که به کنترلکنندهها اجازه میدهد از هسته به فضای کاربر منتقل شوند و از سوئیچهای زمینه جلوگیری شود.
- هسته از عملیات اتمی ۸ و ۱۶ بیتی پشتیبانی میکند.
- پشتیبانی از چندپردازشی متقارن (SMP) برای پردازندههای RISC-V سری XuanTie C/R و شبیهساز QEMU virt64 اضافه شد.
- پشته USB CherryUSB به نسخه ۱.۶.۱ بهروزرسانی شد.
- درایورهای جدید DM (مدیریت دستگاه) برای UFS، AHCI، NVMe، اترنت، Intel HDA، جویاستیکها و صفحات لمسی اضافه شد.
منبع: opennet.ru
