# pony
**Repository Path**: icanpool/pony
## Basic Information
- **Project Name**: pony
- **Description**: A new generation lightweight real-time operating system (RTOS)
- **Primary Language**: C
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: https://gitee.com/icanpool/pony_doc
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-02-04
- **Last Updated**: 2025-06-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Pony, RTOS, IOT, embedded
## README
# 前言
Pony 是一款以 LiteOS-Nova 内核为蓝本而开发的轻量级嵌入式实时操作系统(RTOS)。
如今,独立的 LiteOS 已逐渐退出历史舞台,其内核以全新的姿态融入 OpenHarmony,成为其底层实时内核的基础。
作为一名曾经的 LiteOS 开发者,希望通过 Pony,在保留 LiteOS 优秀基因的情况下,对开源 RTOS 做一些实践。
# 目录
|一级|二级|三级|说明|
|:--|:--|:--|:--|
|arch|arm|cortex-m|体系架构,当前仅支持 Cortex-M 系|
|compat|cmsis
hal
kal
posix
...||兼容层,包括系统、硬件等抽象层|
|components|cmder
fs
log
...||组件,包括shell、文件系统、日志等|
|drivers|...|lcd
mtd
sensor
tp
...|驱动|
|include|...||公共头文件|
|kernel|...||内核|
|mm|...||内存管理|
|projects|...||项目/工程|
|scripts|...||辅助脚本工具|
|sdk|ambiq
arm
nordic
st
ti
...||芯片的库代码|
|service|||基础服务组件|
|target|board
soc||目标单板和SOC|
|tests|gtest
llt
...||单元测试|
|thirdparty|lvgl
usbx
...||第三方组件|
|utils|...||通用组件|
# 命名
|模块|规则|
|:--|:--|
|arch|文件名以 a_ 作为前缀|
|hal|文件名以 hal_ 作为前缀|
|drivers|头文件路径以 pony 作为前缀|
|kernel|文件名以 k_ 作为前缀|
|mm|文件名以 m_ 作为前缀|
|include
utils
service|文件名以 x_ 作为前缀|
说明:
- 公共类文件,文件名以 x_ 作为前缀
- 特殊类文件,文件名以特殊的前缀字母作为标识
- 采用特殊的前缀,有以下几点考虑:
- 减少命名冲突,便于集成其它开源软件
- 减少包含头文件时的路径深度,比如:代替
- 起到强调作用,看到前缀可以快速知道用途
# 体验
请访问 [项目文档](https://gitee.com/icanpool/pony_doc) 或本地 [doc](./doc/README.md) 内的文档开启 pony 之旅。
下面是 pony 在 QEMU 模拟器上运行的输出示例:
```shell
Welcome to pony!
build time: Jun 23 2025 09:12:54
build tool: +GNUC
xsh> i
NAME ENTRY TASK_ID O_PRI C_PRI SP_BASE LOWEST NOW SP_TOP STATUS PC
=================== ======== ======== ===== ===== ======== ======== ======== ======== ======= ========
main 10000121 38003b28 20 20 38003be8 380043f0 380043f0 38004410 READY 10000121
cmder 100052e5 38002a38 1 1 38002af8 380039a4 38003b00 38003b20 RUNNING NA
defer 100002bd 38000c28 0 0 38000ce0 3800141c 38001498 380014e0 PENDING 10006dd6
idle 10001695 380016dc NA NA 38001640 380016a0 380016a0 380016c0 READY 10006ca4
xsh> ?
i - show task information
uptime - show the system running time
meminfo - show memory information, usage: 'meminfo [--chunk]'
dev - show device driver
help - show help content (which you are seeing)
? - show help content (which you are seeing)
history - show command history, continuous same commands will only save once
m - modify memory
d - display memory
xsh>
```
# 后语
- 欢迎提交 issue 对关心的问题发起讨论
- 欢迎 Fork 仓库,pull request 贡献
- 欢迎加 QQ 群: 1043214541 交流