# RTOS-API-ABSATION **Repository Path**: eson_1617/rtos-api-absation ## Basic Information - **Project Name**: RTOS-API-ABSATION - **Description**: 统一的 RTOS 抽象接口层 - **Primary Language**: Unknown - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-18 - **Last Updated**: 2025-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RTOS Abstraction Layer 这是一个统一的 RTOS 抽象接口层,旨在屏蔽不同 RTOS 的差异,提供一致的 API 编程体验。目前支持以下三种 RTOS: - FreeRTOS - RT-Thread - POSIX pthread(用于 PC 模拟环境或 Linux 测试) ## ✅ 特性 - 统一 API:通过 `rtos_*` 前缀提供任务、信号量、互斥锁、队列、事件、定时器等常用接口。 - 易于移植:只需切换宏定义即可在不同 RTOS 之间切换。 - 支持中断上下文使用(如 `*_from_isr` 函数)。 - 提供错误码定义,简化平台间错误处理。 ##🛠️ 支持的模块 ### ✅ 任务管理:创建、删除、挂起、恢复、自身句柄 ### ✅ 信号量:创建、获取、释放、删除(支持 ISR) ### ✅ 互斥锁:创建、加锁、解锁、删除 ### ✅ 消息队列:创建、收发(支持 ISR)、删除 ### ✅ 软件定时器:创建、启动、停止、删除 ### ✅ 事件标志组:创建、等待、设置、清除(支持 ISR) ### ✅ 系统信息:tick 获取、是否在中断等 ### ✅ 内存管理:malloc/free ## 🔧平台配置 通过定义以下宏中的一个来选择目标 RTOS: ```c #define USE_RTOS_FREERTOS // 使用 FreeRTOS #define USE_RTOS_RTTHREAD // 使用 RT-Thread #define USE_RTOS_PTHREAD // 使用 pthread ``` ## 📁文件结构 ```cpp ├── rtos_abstraction.h // 统一的 RTOS 接口声明 ├── rtos_abstraction.c // 不同平台的实现体(内部用 #if 处理) ├── README.md ``` ## 🚀 快速上手 ### 创建任务 ```C void my_task(void *param) { while (1) { // do something rtos_task_delay(1000); } } int main() { rtos_task_create(my_task, "my_task", 1024, NULL, RTOS_PRIORITY_NORMAL); rtos_start_scheduler(); // 启动调度器 } ``` ### 使用信号量 ```c rtos_sem_t sem = rtos_sem_create(0, 1); rtos_sem_give(sem); if (rtos_sem_take(sem, 1000) == RTOS_OK) { // 获取成功 } ```