FreeRTOS/FreeRTOS
GitHub: FreeRTOS/FreeRTOS
FreeRTOS是一个开源的实时操作系统内核,专为嵌入式系统和物联网设备设计,提供任务调度、内存管理、网络通信和AWS IoT集成等完整功能。
Stars: 7061 | Forks: 1955
[FreeRTOS 202411.00](https://github.com/FreeRTOS/FreeRTOS/tree/202411.00) 版本将 FreeRTOS Kernel、FreeRTOS+TCP、coreMQTT、corePKCS11、coreHTTP、coreJSON、AWS IoT Over-the-air-Updates (OTA)、AWS IoT Device Shadow、AWS IoT Jobs、AWS IoT Device Defender、Backoff Algorithm、AWS IoT Fleet Provisioning、coreSNTP、SigV4 和 FreeRTOS Cellular Interface 库更新到了它们的 [202406-LTS](https://github.com/FreeRTOS/FreeRTOS-LTS/blob/202406-LTS/CHANGELOG.md) 版本。它还将 coreMQTT Agent 更新到了 v1.3.0,将 MbedTLS 更新到了 v3.5.1。此版本还新增了 ARMv7-R No_GIC Port Demo、ARMv7-R MPU Port Demos 和 FreeRTOS_Plus_TCP_IPv6_Demo Windows Simulator Demo。此外,所有 WinSim Demos 已更新为使用 TLSv1.3。此版本还将 WolfSSL 更新到了 v5.6.4 版本。
[FreeRTOS 202212.00](https://github.com/FreeRTOS/FreeRTOS/tree/202212.00) 版本将 FreeRTOS Kernel、FreeRTOS+TCP、coreMQTT、corePKCS11、coreHTTP、coreJSON、AWS IoT Over-the-air-Updates (OTA)、AWS IoT Device Shadow、AWS IoT Jobs、AWS IoT Device Defender、Backoff Algorithm、AWS IoT Fleet Provisioning、coreSNTP、SigV4 和 FreeRTOS Cellular Interface 库更新到了它们的 [LTS 2.0](https://github.com/FreeRTOS/FreeRTOS-LTS/blob/202210-LTS/CHANGELOG.md) 版本。它还将 coreMQTT Agent 更新到了 v1.2.0 以兼容 coreMQTT v2.X.X,并将 MbedTLS 更新到了 v3.2.1。此版本还为 FreeRTOS Kernel、FreeRTOS+TCP、Logging、MbedTLS、coreHTTP 和 corePKCS11 添加了 Visual Studio 静态库项目。随着静态库项目的添加,所有 Visual Studio 项目都已更新为使用它们。此外,所有依赖 coreMQTT 的 demo 都已更新为适配 coreMQTT v2.X.X。
## 入门指南
[FreeRTOS.org](https://www.freertos.org) 网站包含 [FreeRTOS Kernel 快速入门指南](https://www.freertos.org/Documentation/01-FreeRTOS-quick-start/01-Beginners-guide/02-Quick-start-guide)、[支持的设备和编译器列表](https://www.freertos.org/RTOS_ports.html)、[API 参考](https://www.freertos.org/Documentation/02-Kernel/04-API-references/01-Task-creation/00-TaskHandle)以及许多其他资源。
### 获取帮助
您可以使用您的 Github 登录凭证在我们的[活跃支持论坛](https://forums.freertos.org)上获得来自 FreeRTOS 社区的支持,以及直接来自主要 FreeRTOS 开发者的支持。[FAQ](https://www.freertos.org/Why-FreeRTOS/FAQs) 提供了另一种支持资源。
## 克隆此仓库
此仓库使用 [Git Submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) 来引入依赖组件。
**注意:** 如果您下载 GitHub UI 提供的 ZIP 文件,您将无法获取子模块的内容。(该 ZIP 文件也不是一个有效的 git 仓库)
如果使用 Windows,由于此仓库及其子模块包含符号链接,请使用以下命令将 `core.symlinks` 设置为 true:
```
git config --global core.symlinks true
```
除此之外,要么启用[开发者模式](https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development),要么在每当使用写入系统的 git 命令(例如 `git pull`、`git clone` 和 `git submodule update --init --recursive`)时,使用以管理员身份提升权限的控制台,以便 git 能为此仓库正确创建符号链接。否则,符号链接将被写入为普通文件,其中包含符号链接的路径作为文本。[这里](https://blogs.windows.com/windowsdeveloper/2016/12/02/symlinks-windows-10/)提供了更多解释。
使用 HTTPS 克隆:
```
git clone https://github.com/FreeRTOS/FreeRTOS.git --recurse-submodules
```
使用 SSH:
```
git clone git@github.com:FreeRTOS/FreeRTOS.git --recurse-submodules
```
如果您在下载仓库时没有使用 `--recurse-submodules` 参数,则需要运行:
```
git submodule update --init --recursive
```
## 仓库结构
此仓库包含 FreeRTOS Kernel、许多辅助库(包括 LTS 库)以及一套全面的示例项目。许多库(包括 FreeRTOS kernel)是作为 Git 子模块从其各自的 Git 仓库中引入的。
### 内核源代码和示例项目
```FreeRTOS/Source``` 包含 FreeRTOS kernel 源代码(子模块来源于 https://github.com/FreeRTOS/FreeRTOS-Kernel)。
```FreeRTOS/Demo``` 包含预配置的示例项目,演示了 FreeRTOS kernel 在不同硬件平台上使用不同编译器的执行情况。
### 辅助库源代码和示例项目
```FreeRTOS-Plus/Source``` 包含额外的 FreeRTOS 组件库的源代码,以及精选的合作伙伴提供的库。这些子目录包含更多的自述文件和文档链接。
```FreeRTOS-Plus/Demo``` 包含预配置的示例项目,演示了 FreeRTOS kernel 与额外的 FreeRTOS 组件库配合使用的情况。
## 以前的版本
[Releases](https://github.com/FreeRTOS/FreeRTOS/releases) 包含更旧的 FreeRTOS 版本。
## 学习 FreeRTOS
有关 FreeRTOS 的详细且最新的信息,包括面向新手和资深用户的入门指南和文档,请参阅 FreeRTOS 官方网站:
https://www.freertos.org/
## FreeRTOS 实验室项目 (Lab Projects)
FreeRTOS Lab 项目是功能齐全的库和 demo,但可能是实验性的,或者正在进行优化和重构,以改善内存使用、模块化、文档、demo 可用性或测试覆盖率。
大多数 FreeRTOS Lab 库可以在 [FreeRTOS-Labs repository](https://github.com/FreeRTOS/FreeRTOS-Labs) 中找到。
许多 FreeRTOS Lab Demos 可以在 [FreeRTOS Github Organization](https://github.com/FreeRTOS) 中通过搜索 "Lab" 或跟随[此链接](https://github.com/FreeRTOS?q=Lab&type=&language=)到搜索结果来找到。
## coreMQTT Agent 演示
[FreeRTOS/coreMQTT-Agent-Demos](https://github.com/FreeRTOS/coreMQTT-Agent-Demos) 仓库包含 demo,旨在展示 [coreMQTT-Agent](https://github.com/FreeRTOS/coreMQTT-Agent) 库的使用,以便在多个应用任务间共享单个 MQTT 连接。
这些 demo 展示了在多个应用任务之间使用单个 MQTT 连接与 AWS 服务(包括[Over-the-air-Updates](https://docs.aws.amazon.com/freertos/latest/userguide/freertos-ota-dev.html)、[Device Shadow](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html)、[Device Defender](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender.html))进行交互,同时执行简单的 Publish-Subscribe 操作。
## CBMC
`FreeRTOS/Test/CBMC/proofs` 目录包含 CBMC 证明。
要了解有关 CBMC 和证明的更多具体信息,请查看[此处](https://model-checking.github.io/cbmc-training)的培训材料。
为了运行这些证明,您需要按照[此处](https://model-checking.github.io/cbmc-training/installation.html)的说明安装 CBMC 和其他工具。
标签:AWS IoT, DNS解析, FreeRTOS, Hakrawler, IoT, JSON, MbedTLS, OTA更新, PKCS11, RTOS, SNTP, TCP/IP协议栈, TLSv1.3, WolfSSL, 任务调度, 内核, 内核编程, 实时操作系统, 客户端加密, 嵌入式开发, 嵌入式系统, 工业控制, 并发处理, 底层编程, 开源项目, 微控制器, 智能家居, 物联网, 网络安全平台, 蜂窝网络接口, 设备管理