物联网操作系统是指以操作系统内核(可以是 RTOS、Linux 等)为基础,包括如文件系统、图形库等较为完整的中间件组件,具备低功耗、安全、通信协议支持和云端连接能力的软件平台,RT-Thread 就是一个 IoT OS。
-
RT-Thread 与其他很多 RTOS 如 FreeRTOS、uC/OS 的主要区别之一是,它不仅仅是一个实时内核,还具备丰富的中间层组件,如下图所示。
-
1线程调度
线程是Rt-Thread操作系统最小的调度单位,线程调度算法是基于优先级的全抢占式件事。多线多线程调度算法。除了中断处理函数,调度器上锁部分的代码和禁止中断的代码,不可抢占之外,系统的其他部分都是可以抢占的,对于stm32默认配置是32个线程优先级。
在相同优先级的线程间采用时间片轮转调度算法进行调度,使每个线程运行时间相同的时间。 -
2时钟管理
时钟管理以时钟节拍为基础。时钟节拍是Rt-Thread操作系统中最小的时钟单位。
Rt-Thread的定时器提供两种定时机制:单次触发跟周期性触发两类。 -
3线程间同步
Rt-Thread采用信号量互斥量与事件集实现线程间同步。互斥量采用优先级继承的方式,解决了实时系统常见的优先级反转问题。事件集支持多事件的 ”或触发“ 和“与触发”式和线程等待多个事件的情况。 -
4线程间通讯
邮箱和消息队列等通信机制。邮箱有一封邮件的长度固定为4字节,大小消息队列能接收非固定长度的信息,并把消息缓存在自己的内存空间中。 -
5内存管理
Rt-Thread支持静态内存池管理及动态内存堆管理。 -
6 I/O设备管理
根据嵌入式系统的特点,对不同的设备可以挂接相应的事件,当设备事件触发时,由驱动程序通知给上层的应用程序。Rt-Thread将PIN,IIC,SPI,USB,UART。等作为外设设备。