# FreeRTOS-study
**Repository Path**: dwl-study/free-rtos-study
## Basic Information
- **Project Name**: FreeRTOS-study
- **Description**: 来源GitHub上的开源教程 https://github.com/Despacito0o/FreeRTOS.git
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-11-05
- **Last Updated**: 2025-11-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# FreeRTOS 嵌入式开发学习库
[](https://github.com/Despacito0o/FreeRTOS)
[](https://github.com/Despacito0o/FreeRTOS)
[](https://github.com/Despacito0o/FreeRTOS)
[](https://opensource.org/licenses/MIT)



[English](README.md) | [中文](README_zh.md)
---
## 📚 项目概述
这是一个专注于STM32微控制器上的FreeRTOS开发的综合学习资源。本仓库提供了循序渐进的教程、功能完整的示例项目和详细的指南,帮助您掌握嵌入式RTOS开发。
**适合人群:**
- 🎓 嵌入式系统初学者
- 🔄 正在转向基于RTOS的应用开发的开发者
- 🛠️ 寻找实用STM32+FreeRTOS示例的工程师
- 📝 从事学术项目的学生
### 🌟 主要特点
- 📖 从基础到高级的详细FreeRTOS移植教程
- 🔧 完整的STM32开发环境搭建指南和故障排除提示
- 💡 渐进式学习路径和实用示例项目
- 🔄 RTOS概念的实际演示(任务、队列、信号量等)
- 📝 中英双语的清晰文档
- 🔍 常见问题解决方案和调试技巧
---
## 🚀 快速开始
### 1. **克隆仓库**
```bash
git clone https://github.com/Despacito0o/FreeRTOS.git
cd FreeRTOS
```
### 2. **按学习路径进行**
本仓库按循序渐进的学习旅程组织,从基础到高级:
| 阶段 | 项目编号 | 重点 | 获得的技能 |
|-------|----------|-------|--------------|
| 初级 | 001-002 | 环境搭建,FreeRTOS基础 | 开发环境设置,基本概念 |
| 中级 | 003-006 | 任务管理,内存模型 | 任务创建/删除,内存优化 |
| 高级 | 007-012 | 任务间通信与同步 | 参数传递,队列,信号量,资源管理 |
### 3. **探索示例项目**
每个示例都在前一个基础上构建,逐步增加复杂度和功能:
| 编号 | 示例项目 | 描述 | 关键技能 |
|-------|----------|-------|--------------|
| 001 | STM32项目模板 | STM32开发的起点 | 标准外设库配置 |
| 002 | FreeRTOS基础示例 | FreeRTOS的第一步 | 任务创建与运行 |
| 003 | 动态任务创建 | 多任务处理基础 | 动态内存分配 |
| 004 | 静态任务创建 | 内存优化的任务创建 | 静态内存分配 |
| 005 | 项目完善 | 添加串口通信、调试功能 | 外设集成与调试技术 |
| 006 | 多任务操作 | 创建、删除和监控任务 | 任务生命周期管理 |
| 007 | 任务参数 | 使用参数实现灵活的任务函数 | 参数传递技术 |
| 008 | 队列通信 | 基本的任务间通信 | 数据共享与传输 |
| 009 | 队列高级操作 | 高效的数据传输技术 | 结构化数据传输 |
| 010 | 二值信号量 | 任务同步与互斥访问控制 | 资源保护与同步 |
| 011 | 计数型信号量 | 资源管理与事件计数 | 资源池管理 |
| 012 | 优先级翻转 | 理解和解决优先级翻转问题 | 系统稳定性与实时性 |
---
## 📋 项目结构
```
FreeRTOS/
├── docs/ # 文档
│ ├── README.md # 文档索引
│ ├── en/ # 英文文档
│ │ ├── 001-STM32-Development-Environment-Setup.md
│ │ ├── 002-FreeRTOS-Port-to-Keil6.md
│ │ ├── ...
│ │ └── 012-FreeRTOS-Priority-Inversion-Tutorial.md
│ └── zh/ # 中文文档
│ ├── 001-STM32标准库开发环境搭建教程.md
│ ├── 002-FreeRTOS移植到keil6.md
│ ├── ...
│ └── 012-FreeRTOS优先级翻转详解与实战教程.md
├── Despacito/ # STM32F103示例项目
│ ├── 001/ # STM32项目模板
│ ├── 002/ # FreeRTOS基础示例
│ ├── ...
│ └── 012/ # FreeRTOS优先级翻转示例
├── templates/ # 项目模板
│ └── README_template.md # 示例项目README模板
├── CONTRIBUTING.md # 贡献指南
├── CHANGELOG.md # 版本历史
├── LICENSE # MIT许可证
└── README.md/README_zh.md # 项目文档
```
---
## 📖 文档导航
### 📁 核心文档
按照学习路径浏览我们的综合指南:
- **[001]** [STM32标准库开发环境搭建教程](docs/zh/001-STM32标准库开发环境搭建教程.md)
- **[002]** [FreeRTOS移植到keil6](docs/zh/002-FreeRTOS移植到keil6.md)
- **[003]** [FreeRTOS动态任务创建](docs/zh/003-FreeRTOS动态任务创建.md)
- **[004]** [FreeRTOS静态任务创建](docs/zh/004-FreeRTOS静态任务创建.md)
- **[005]** [FreeRTOS项目工程完善指南](docs/zh/005-FreeRTOS项目工程完善指南.md)
- **[010]** [FreeRTOS二值信号量详解与实战教程](docs/zh/010-FreeRTOS二值信号量详解与实战教程.md)
- **[011]** [FreeRTOS计数型信号量详解与实战教程](docs/zh/011-FreeRTOS计数型信号量详解与实战教程.md)
- **[012]** [FreeRTOS优先级翻转详解与实战教程](docs/zh/012-FreeRTOS优先级翻转详解与实战教程.md)
### 📝 项目资源
- [文档索引](docs/README.md) - 导航所有可用文档
- [贡献指南](CONTRIBUTING.md) - 如何为项目做出贡献
- [变更日志](CHANGELOG.md) - 版本历史和最近更新
---
## 🔍 示例项目详解
### 🟢 初级阶段(项目 001-002)
#### [001] STM32项目模板
一个干净、即用的STM32F103模板,包含标准外设库,是所有其他示例的基础。
#### [002] FreeRTOS基础示例
FreeRTOS的第一步 - 演示基本任务创建和LED闪烁等简单功能。
### 🟠 中级阶段(项目 003-006)
#### [003] 动态任务创建
学习FreeRTOS中任务如何动态创建和调度,包含任务优先级和调度的实际示例。
#### [004] 静态任务创建
探索任务创建的静态内存分配 - 对于内存受限的嵌入式系统至关重要。
#### [005] 项目完善
通过串口通信、printf调试和优化配置提升项目水平 - 使开发更加便捷和高效。
#### [006] 多任务操作
掌握任务生命周期管理,包括动态创建和删除、优先级管理和状态监控技术。
### 🔴 高级阶段(项目 007-012)
#### [007] 任务参数
通过学习如何使用void指针传递参数,使任务更灵活和可重用。
#### [008] 队列通信
使用队列实现可靠的任务间通信,包括简单消息传递和结构化数据传输的示例。
#### [009] 队列高级操作
探索高效的任务间数据传输高级技术,包括基于指针的方法和常见问题的解决方案。
#### [010] 二值信号量
掌握二值信号量的使用,实现任务同步和互斥资源访问。
#### [011] 计数型信号量
学习使用计数型信号量进行资源池管理和事件计数,通过实例掌握高级同步场景的应用。
#### [012] 优先级翻转
学习认识实时系统中的优先级翻转问题,理解其产生原因,并掌握如何通过优先级继承和互斥量等技术解决这一棘手问题。
---
## 🤝 贡献
您的贡献使这个资源对所有人都更有价值!在提交拉取请求或问题之前,请阅读我们的[贡献指南](CONTRIBUTING.md)。
贡献方式:
- 📝 改进文档和解释
- 🐛 修复示例代码中的错误
- ✨ 添加新的示例或教程
- 🌍 帮助翻译
- 💡 提出改进建议
---
## 📄 许可证
本项目基于MIT许可证 - 详情请见 [LICENSE](LICENSE) 文件。
---
## 👨💻 作者与联系方式
- **[Despacito0o](https://github.com/Despacito0o)** - FreeRTOS开发者和教程创作者
- 访问我的 **[CSDN博客](https://blog.csdn.net/supershmily)** 获取更多嵌入式开发内容
- 有问题或建议?请创建issue或直接联系!
---
## 🙏 致谢
- FreeRTOS开发团队的优秀文档
- STMicroelectronics的全面外设库
- 所有为改进这个资源的贡献者和社区成员
---
⭐ 如果您觉得这个项目有帮助,请给它点亮星标! ⭐