LiteOS
LiteOS
Section titled “LiteOS”LiteOS 是一个基于 C 语言实现的轻量级 OS 示例工程,使用 CMake 组织构建。当前项目围绕三个核心能力展开:
- 事件系统:支持事件注册、投递与派发
- 软件定时器:支持单次和循环定时回调
- 协作式任务调度:支持按周期与优先级执行任务
项目地址:LiteOS
os_init()统一初始化事件、定时器和任务子系统os_run(timestamp)作为主循环入口,驱动整个调度流程- 支持外部传入时间戳,便于适配 PC 模拟或 MCU 硬件定时器
- 模块划分清晰,适合作为裸机框架、轻量级调度内核或教学示例工程继续扩展
核心运行流程
Section titled “核心运行流程”LiteOS 的主循环非常简单:
os_run() 当前按如下顺序执行:
- 更新系统 tick
- 检查并执行到期定时器
- 运行到期任务
- 派发事件队列中的全部事件
这种设计非常适合裸机、轮询式循环或桌面模拟环境。
示例入口 project/app/main.c 展示了 LiteOS 的典型使用方式:
- 创建两个循环定时器:
500ms与1s - 创建两个周期任务,分别用于
500ms模拟 LED 翻转与2000ms打印系统 tick - 注册并投递一个按键事件
EVT_KEY - 在
while (1)中持续调用os_run(GetTickCount())
示例主循环如下:
核心容量参数位于 project/os/os_config.h:
当 OS_USE_TASK 为 1 时,会额外启用任务调度模块:
如果你只想保留“事件 + 定时器”能力,可以将 OS_USE_TASK 改为 0。
Windows
Section titled “Windows”依赖工具:
- CMake 3.15+
- Ninja
常用命令:
也可以直接使用 CMake:
- 作为轻量级嵌入式调度内核的起点
- 用于事件系统、软件定时器和任务调度的教学演示
- 作为后续扩展消息机制、延时任务或更复杂优先级策略的实验工程
MIT License