# atomthreads **Repository Path**: yifengling0/atomthreads ## Basic Information - **Project Name**: atomthreads - **Description**: Lightweight, Portable RTOS Scheduler 基于atomthreads RTOS 提供驱动,组件和软件包框架 - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 3 - **Created**: 2022-04-16 - **Last Updated**: 2025-09-01 ## Categories & Tags **Categories**: hardware **Tags**: None ## README ## Atomthreads RTOS BSP 驱动与组件框架 本项目基于 [Atomthreads RTOS](http://atomthreads.com) 提供了一套适用于资源受限设备的驱动、组件和软件包框架。适用于内存小于8K、Flash小于64K的嵌入式芯片开发,通过内核定制和优化,最大限度地减少资源占用。 --- ### 📌 主要特性 - **轻量内核** - 最低可在1KB RAM和8KB ROM运行 - 不使用动态内存分配 - 极简C库依赖 - **系统组件** - 简易Shell命令行 - 带颜色的系统日志(syslog) - 内核调试命令(如`ps`) - 内核assert机制 - **通用驱动模型** - UART - SPI(包含虚拟SPI) - WDT - RTC - GPIO/PIN - I2C - PWM - ADC - **支持芯片平台** - STM8S103 - STM8LX51 - STM32L032 - x86 Ubuntu模拟(upboard) - ESP32(基于POSIX和FreeRTOS模拟) - **内核扩展** - Idle Hook支持 - 事件模型(Event) - Tickless 低功耗支持 --- ### 🛠 开发与调试支持 - 项目结构清晰,便于移植和调试 - 驱动和组件设计模块化,支持通过文件系统接口(FD)调用 - 支持命令行注册与调试(如`CONSOLE_REG_CMD`) - 提供通用RingBuffer、内存分配、字符串处理等基础库 --- ### 📚 文档与源码结构 - **内核源码**:`kernel/` - **平台移植**:`ports/`(包含ARM、AVR、Cortex-M、STM8、upboard等) - **设备驱动**:`bsp/` 下的各芯片目录 - **组件与设备模型**:`com/`, `device/`, `drv/` - **通用库**:`lib/`(如ringbuffer、string、number等) - **测试代码**:`tests/` 所有文档和配置信息已内嵌于源码注释中。 --- ### 📦 当前组件示例 - Shell/Debug命令行:`com/shell/`, `com/debug/` - 通用设备模型:`device/` - 软件包管理:`ports/upboard/upboard/packages.c` - 内存管理驱动:`drv/ram/` - 网络与WLAN支持:`drv/wlan/` - 电源管理(开发中):`TODO: PM 框架` --- ### 🧪 测试支持 - 支持自动化测试套件(`tests/` 目录下) - 针对线程、信号量、互斥锁、队列等核心机制的单元测试 - Travis CI 自动构建支持 --- ### 📝 构建与移植 - 移植需在对应平台`ports/`目录下进行 - 例如构建AVR平台应用:参考 `ports/avr/README` - 项目强调可移植性,通过添加架构相关的移植文件即可支持新平台 --- ### 📄 License 本项目遵循 [BSD Revised License](https://opensource.org/licenses/BSD-3-Clause),由 Kelvin Lawson 创建,适用于商业和教育用途。 --- ### 📱 目标应用场景 适用于物联网边缘设备、小型嵌入式系统、教育项目、低功耗传感器节点等场景,尤其适合需要跨平台、轻量级调度的8位、32位MCU开发。