# ulOS
**Repository Path**: David_chu1119/ulOS
## Basic Information
- **Project Name**: ulOS
- **Description**: 轻量级嵌入式实时操作系统内核,提供线程调度、同步互斥、消息通信、定时器等核心功能。面向对象组件化架构。
- **Primary Language**: C
- **License**: GPL-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 27
- **Forks**: 9
- **Created**: 2025-12-08
- **Last Updated**: 2026-01-05
## Categories & Tags
**Categories**: os
**Tags**: RTOS, 微内核, 组件化, 面向对象
## README
# ulOS - 嵌入式实时操作系统
Just for fun. :-)
---
轻量嵌入式RTOS,提供线程调度、同步、通信和定时器等基本功能,并提供各种组件。
最小占用ROM >= 3KB,RAM >= 1KB(-O2)
## 移植指南,例程
点击跳转 [移植工程示例](docs/transplant_guide/stm32_hal/example-f103.md)
## 特性
- **优先级机制**: 0为最高优先级,最大32个优先级
- **多线程调度**:支持抢占式优先级调度+可编辑的时间片调度
- **同步机制**:提供互斥锁(Mutex)用于资源保护
- **通信机制**:支持信号量(Semaphore)、队列(Queue)和事件(Event)等IPC机制
- **定时器服务**:提供软件定时器功能
- **内存管理**:集成空闲内存块合并算法的堆管理模块
- **内核裁剪**:通过配置文件可以灵活裁剪功能,减少资源占用
## 架构
```
ulOS/
├── kernel # 内核实现
├── component # 组件
├── example # 示例代码
├── platform # 平台移植实现
├── docs # 文档集合
├── LICENSE # 许可证
└── ul_config.h # 配置文件
```
## 组件库
均采用桥接模式实现抽象,方便开发者快速构建应用:
**硬件驱动组件**
- **ul_pin**: 常用于LED,蜂鸣器等PIN控制,可实现无阻塞指令式控制
- **ul_button**: 按键驱动,支持防抖处理和事件回调
- **ul_buzzer**: 蜂鸣器控制,支持不同频率和模式的蜂鸣
- **ul_softwarei2c**: 软件模拟I2C总线,无需硬件I2C资源
- **ul_softwarespi**: 软件模拟SPI总线,支持全双工通信
- **ul_at24cxx**: AT24C系列EEPROM存储器驱动
- **ul_w25qxx**: W25Q系列SPI Flash存储器驱动
- **ul_max6675**: MAX6675热电偶温度传感器驱动
- **ul_ina226**: INA226高精度电流/功率传感器驱动
**算法与工具组件**
- **ul_filter**: 数字滤波器,包括均值滤波、中值滤波等常用算法
- **ul_crc**: CRC校验算法,支持多种标准CRC计算
- **ul_pid**: PID控制器实现,支持位置式和增量式PID
- **ul_swtimer**: 软件定时器,提供毫秒级精度的非阻塞延时
**通信组件**
- **ul_topic**: 发布-订阅模式通信组件,支持模块间解耦通信
## API
请参考 [ulOS API使用参考手册](docs/api/README.md)
## 许可证
本项目采用GPL2.0许可证,详见LICENSE文件。
## 如何贡献
1. Fork 项目
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
### TODO:
- [ ] 提供cmsis-os2抽象层
- [ ] 添加makefile
- [ ] 添加编码规范文档
- [ ] 内核加入QPC架构
- [ ] 持续丰富组件库
- [ ] 支持更多第三方库
- [ ] 实现极简的GUI框架
- [ ] 支持更多平台
- [ ] 支持单元测试
- [ ] 添加实时性能分析和监控工具
- [ ] 支持日志系统
- [ ] 支持图形化配置工具
- [ ] 实现低功耗管理框架
## 联系方式
如有问题或建议,请通过以下方式联系:
| 项目维护者 | email |
|-----------|------|
| David Chu | 2499311743@qq.com |
| levi_jia | 13533319308@163.com |
项目地址:
gitee: https://gitee.com/David_chu1119/ulOS
github: https://gitee.com/David_chu1119/ulOS