|
适合 DIY显存8M的单片机显卡的开源操作系统RT-THREAD
[复制链接]
网址:http://www.rt-thread.org
内核及组件
实时线程操作系统(RT-Thread) 是一款主要由中国开源社区主导开发的开源实时操作系统(许可证GPLv2)。实时线程操作系统不仅仅是一个单一的实时操作系统内核,它也是一个完整的应用 系统,包含了实时、嵌入式系统相关的各个组件:TCP/IP协议栈,文件系统,libc接口,图形用户界面等。
实时操作系统核心 虚拟文件设备系统 轻型网络协议栈 图形用户界面 - 用户shell
实时操作系统核心
RT-Thread实时操作系统核心是一个高效的硬实时核心,它具备非常优异的实时性、稳定性、可剪裁性。
最小可以到3k ROM占用、1k RAM占用。
- 内核对象系统
实时线程操作系统内部采用面向对象的方式设计,内建内核对象管理系统,能够访问/管理所有内核对象。内核对象包含了内核中绝大部分设施,而这些内核对象可 以是静态分配的静态对象,也可以是从系统内存堆中分配的动态对象。通过内核对象系统,RT-Thread可以做到不依赖于具体的内存分配方式,伸缩性得到 极大的加强。
- 任务/线程调度
支持以线程为基本调度单位的多任务系统。调度算法是基于优先级的全抢占式线程调度,支持256个线程优先级(亦可配置成32个线程优先级),0优先级代表 最高优先级,255优先级留给空闲线程使用;相同优先级上支持多个线程,这些相同优先级的线程采用可设置时间片长度的时间片轮转调度;调度器寻找下一个最 高优先级就绪线程的时间是恒定的(O(1))。系统不限制线程数量的多少,只与物理平台的具体内存相关。
- 同步机制
系统支持semaphore,mutex等线程间同步机制。mutex采用优先级继存方式以防止优先级翻转。semaphore释放动作可安全用于中断服 务例程中。同步机制支持线程按优先级等待或按先进先出方式获取信号量或互斥锁。
- 通信机制
系统支持event,mailbox,message queue通信机制等。event支持多事件"或触发"及"与触发",适合于线程等待多个事件情况。mailbox中一个mail的长度固定为4字节,效 率较messagequeu高。通信设施中的发送动作可安全用于中断服务例程中。通信机制支持线程按优先级等待或按先进先出方式获取。
- 时钟,定时器
系统默认使用时钟节拍来完成同优先级任务的时间片轮转调度;线程对内核对象的时间敏感性是通过系统定时器来实现的;定时器又分成了硬定时器和软定时器,一 次定时及周期性定时。
- 内存管理
系统支持静态内存池管理及动态内存堆管理。从静态内存池中获取/释放内存块时间恒定,而当内存池空时,可根据申请线程请求把申请线程挂起、立刻返回、或等 待一段时间仍未获得返回。当其他线程释内存块到内存池时,将把挂起的线程唤醒。对于系统内存紧张的系统,RT-Thread也提供了小型的伙伴内存管理算 法。而对于拥有大一些内存的嵌入式系统,RT-Thread提供了性能非常高效的SLAB内存管理系统。
- 诊断
通过系统提供的FinSH shell系统,能够查看到线程,信号量,互斥锁,事件,邮箱,消息队列的运行情况,以及各个线程的栈使用情况。
RT-Thread与UCOS-II的对比
| UCOS-II | RT-Thread | 任务/线程调度 | 256 个优先级,
不允许有相同优先级任务
最大256个任务 | 256/32/8个优先级,
允许存在相同优先级线程
线程数不限制
允许动态创建/删除线程 | 同步互斥机制 | semaphore,mutex
mailbox, message queue, event
mailbox只能存放1条消息 | semaphore, mutex
mailbox, message queue,
event
mailbox可存储多条消息 | 内存管理 | 固定大小内存块管理 | 固定分区内存管理
小内存系统动态内存管理
大内存系统SLAB内存管理 | 定时器 | 只能使用OSTimeDly进行时间间隔处理 | 挂接到OS定时器的硬定时器或软定时器 | 中断嵌套 | 允许 | 允许 |
|
|